С напредването на жизнения цикъл на веригата за доставки на софтуер от изходния код до изпълнимите артефакти, етапът на изграждане е критичен момент. И все пак, тази трансформативна фаза е податлива и на редица заплахи, които могат да застрашат целостта и... build securityТези заплахи могат да проникнат в процеса на изграждане чрез различни методи, включително заобикаляне на установените CI/CD pipeline, модифициране на код след контрол на изходния код, компрометиране на самия процес на изграждане или манипулиране на хранилища за артефакти. В тази публикация в блога ще разгледаме подробно тези заплахи и ще разгледаме най-разпространените атаки за изграждане на софтуерни вериги. Това съдържание е продължение на нашата поредица от блогове, в която разглеждаме... software supply chain security през SDLC.
Етапът на изграждане в жизнения цикъл на разработка на софтуер
Етапът на изграждане от жизнения цикъл на веригата за доставки на софтуер обхваща процеса на трансформиране на изходния код в изпълними софтуерни артефакти. Този етап включва компилиране, свързване и пакетиране на изходния код, както и генериране на инсталационни пакети и конфигурационни файлове.
Build security Заплахите са уязвимости, които биха могли да позволят на злонамерен човек да въведе неоторизирани промени в софтуера по време на процеса на изграждане, без да променя изходния код. Тези заплахи могат да бъдат въведени чрез различни методи, като например компрометиране на средата за изграждане или използване на уязвимости в инструментите за изграждане.
Най-често срещаните заплахи за веригата за доставки на софтуер - атаки за изграждане
Bypass CI/CD
Това се отнася до практиката за заобикаляне на установените CI/CD (непрекъсната интеграция и непрекъсната доставка) pipeline да изгражда и публикува директно софтуер, без да се подлага на строги процеси на тестване, проверка и одит, които обикновено се прилагат от официалните pipelineТова може да се направи чрез ръчно изграждане на софтуера извън CI/CD среда или чрез използване на инструменти или скриптове, които позволяват неоторизирани модификации на процеса на изграждане. Пример за този тип векторна атака беше Атака на ДженкинсПрез 2022 г. хакери проникнаха в системата за изграждане. pipeline на популярен софтуерен проект с отворен код, наречен Jenkins. Хакерите са инжектирали зловреден код в Jenkinsfile, който е скрипт, дефиниращ процеса на изграждане. Злонамереният код е позволил на хакерите да заобиколят CI/CD pipelineпроверки за сигурност и инжектират своя код в процеса на изграждане. След това този код се изпълнява в системите на организациите, които са инсталирали софтуера.
Промяна на кода след контрола на изходния код
Тази практика включва извършване на неоторизирани промени в изходния код, след като той е бил commitкъм надеждна система за контрол на изходния код (SCS) и след това изграждане на софтуера с помощта на този модифициран код. Това може да се направи чрез директно модифициране на кода на работната станция на разработчика или чрез използване на външни инструменти или скриптове за инжектиране на злонамерен код в процеса на изграждане. Пример за тази векторна атака беше атаката срещу GitLab през 2022 г. Хакери проникнаха в системата за изграждане pipeline of GitLabХакерите са инжектирали зловреден код в GitLab. CI/CD pipeline, който е инструмент, автоматизиращ build security процес. Злонамереният код е позволил на хакерите да го променят, след като е бил проверен в системата за контрол на изходния код. Това им е позволило да инжектират кода си в софтуера, който след това е бил изпълнен на системите на организациите, инсталирали софтуера.
Процес на компромис
Това включва манипулиране или промяна на самия процес на изграждане, или чрез директен достъп до средата за изграждане, или чрез използване на уязвимости в инструментите за изграждане или зависимости от трети страни. Това може да се направи, за да се въведе злонамерен код в изхода на изграждането, да се промени произходът на изграждането или да се прекъсне изцяло процесът на изграждане. Най-известният пример за тази векторна атака беше Атака на SolarWindsАтакуващ е получил неоторизиран достъп до платформата за изграждане на SolarWinds, система, използвана за компилиране и пакетиране на софтуера SolarWinds Orion. Този скрипт е инжектирал злонамерен код в компилирания софтуер SolarWinds Orion. Когато потребителите са инсталирали компрометирания софтуер, злонамереният код е бил изпълнен на техните системи, предоставяйки на атакуващия неоторизиран достъп до тях. Атакуващият е успял също така да открадне чувствителни данни от техните системи, като например идентификационни данни, интелектуална собственост и информация за клиентите.
Компрометирано хранилище за артефакти
Това се отнася до неоторизиран достъп или манипулиране на хранилище за артефакти, където се съхраняват софтуерни пакети и двоични файлове за разпространение до вътрешни или външни потребители. Нападателите могат да използват тази уязвимост, за да въведат злонамерен код, да променят автентичността на софтуера или да нарушат процеса на внедряване. Пример за тази векторна атака беше РубиГемс през 2022 г.Хакери проникнаха в хранилището с артефакти на RubyGems. Хакерите замениха легитимен артефакт със злонамерен, който след това беше изтеглен от хиляди организации, изграждащи софтуер с Ruby on Rails. Злонамереният артефакт позволи на хакерите да изпълняват произволен код в системите на организациите, които са инсталирали софтуера. Това потенциално би могло да им позволи да крадат данни, да инсталират зловреден софтуер или да нарушават операциите.
Заключителни бележки
Тъй като организациите продължават да възприемат практики за разработване на софтуер, които наблягат на автоматизацията и непрекъснатата доставка, значението на осигуряването на процеса на изграждане на софтуер никога не е било по-голямо. Чрез прилагането на надеждни мерки за сигурност през целия етап на изграждане, организациите могат значително да намалят риска да станат жертва на злонамерени атаки, които могат да компрометират целостта и сигурността на техния софтуер.
Стратегиите, описани в тази публикация в блога, и предоставените примери служат като напомняне, че етапът на изграждане е уязвима точка във веригата за доставки на софтуер. Организациите трябва да обърнат внимание на тези заплахи и да внедрят необходимите мерки за сигурност, за да защитят софтуера си от атаки. По този начин те могат да гарантират целостта, сигурността и надеждността на софтуера си за своите потребители и клиенти.
Присъединете се към нашето пътуване към сигурна софтуерна екосистема
Не пропускайте тази възможност да сте с една крачка напред в избягването на заплахи за веригата за доставки на софтуер. Абонирайте се за нашия блог днес и бъдете първите, които ще получават най-новите ни анализи, като гарантирате, че вашата организация ще остане устойчива и сигурна сред променящите се заплахи. Заедно можем да изградим по-стабилна и сигурна софтуерна екосистема за всички.
Гледайте нашето видео демо




