Поскольку жизненный цикл цепочки поставок программного обеспечения развивается от исходного кода до исполняемых артефактов, этап сборки становится критическим моментом. Тем не менее, эта преобразующая фаза также подвержена ряду угроз, которые могут поставить под угрозу целостность и build security. Эти угрозы могут проникнуть в процесс сборки различными способами, включая обход установленных CI/CD pipeline, изменение контроля кода после исходного кода, компрометацию самого процесса сборки или манипулирование хранилищами артефактов. В этом сообщении блога мы подробно рассмотрим эти угрозы и рассмотрим наиболее распространенные атаки на построение цепочек поставок программного обеспечения. Этот контент продолжает серию исследований в нашем блоге. software supply chain security течение SDLC.
Этап сборки в жизненном цикле разработки программного обеспечения
Этап сборки жизненного цикла цепочки поставок программного обеспечения включает в себя процесс преобразования исходного кода в исполняемые программные артефакты. Этот этап включает в себя компиляцию, связывание и упаковку исходного кода, а также создание установочных пакетов и файлов конфигурации.
Build security угрозы — это уязвимости, которые могут позволить злоумышленнику вносить несанкционированные изменения в программное обеспечение во время процесса сборки без изменения исходного кода. Эти угрозы могут быть внедрены различными способами, такими как компрометация среды сборки или эксплуатация уязвимостей в инструментах сборки.
Наиболее распространенные угрозы в цепочке поставок программного обеспечения — атаки на сборки
Обход 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 Orion. Этот скрипт внедрял вредоносный код в скомпилированное программное обеспечение SolarWinds Orion. Когда пользователи устанавливали скомпрометированное программное обеспечение, вредоносный код запускался в их системах, предоставляя злоумышленнику несанкционированный доступ к их системам. Злоумышленнику также удалось украсть конфиденциальные данные из их систем, такие как учетные данные, интеллектуальную собственность и информацию о клиентах.
Компрометировать хранилище артефактов
Это относится к несанкционированному доступу или манипуляциям с хранилищем артефактов, где пакеты программного обеспечения и двоичные файлы хранятся для распространения среди внутренних или внешних пользователей. Злоумышленники могут использовать эту уязвимость для внедрения вредоносного кода, нарушения подлинности программного обеспечения или нарушения процесса развертывания. Примером этой векторной атаки был RubyGems в 2022 году. Хакеры проникли в хранилище артефактов RubyGems. Хакеры заменили законный артефакт вредоносным, который затем был загружен тысячами организаций, создающих программное обеспечение с использованием Ruby on Rails. Вредоносный артефакт позволял хакерам выполнять произвольный код в системах организаций, установивших это программное обеспечение. Это потенциально может позволить им украсть данные, установить вредоносное ПО или нарушить работу.
Заключительные замечания
Поскольку организации продолжают использовать методы разработки программного обеспечения, в которых особое внимание уделяется автоматизации и непрерывной доставке, важность обеспечения безопасности процесса сборки программного обеспечения никогда не была такой высокой. Внедряя надежные меры безопасности на этапе сборки, организации могут значительно снизить риск стать жертвой вредоносных атак, которые могут поставить под угрозу целостность и безопасность их программного обеспечения.
Стратегии, изложенные в этой публикации в блоге, и приведенные примеры служат напоминанием о том, что этап сборки является уязвимым звеном в цепочке поставок программного обеспечения. Организациям следует обратить внимание на эти угрозы и принять необходимые меры безопасности для защиты своего программного обеспечения от атак. Поступая таким образом, они могут обеспечить целостность, безопасность и надежность своего программного обеспечения для своих пользователей и клиентов.
Присоединяйтесь к нашему пути к безопасной экосистеме программного обеспечения
Не упустите возможность оставаться на шаг впереди и избегать угроз в цепочке поставок программного обеспечения. Подпишитесь на наш блог сегодня и будьте первым, кто получит нашу последнюю информацию, гарантируя, что ваша организация останется устойчивой и безопасной среди развивающихся угроз. Вместе мы сможем построить более надежную и безопасную экосистему программного обеспечения для всех.
Посмотрите наше видео-демо





