Логотип Зефирнет

Отравление артефактами в действиях GitHub импортирует вредоносное ПО через программные конвейеры

Дата:

Злоумышленник, отправляющий изменения в репозиторий с открытым исходным кодом на GitHub, может привести к тому, что нижестоящие программные проекты, включающие последнюю версию компонента, будут компилировать обновления с вредоносным кодом.

Согласно данным компании Legit Security, занимающейся безопасностью цепочек поставок программного обеспечения, в бюллетене, опубликованном 1 декабря, говорится, что эта уязвимость «отравления артефактами» может повлиять на программные проекты, использующие GitHub Actions — сервис для автоматизации конвейеров разработки — путем запуска процесса сборки, когда изменение обнаружено в программной зависимости. 

Уязвимость не является теоретической: Legit Security смоделировала атаку на проект, управляющий Rust, в результате чего проект был перекомпилирован с использованием настроенной — и вредоносной — версии популярной программной библиотеки GCC, говорится в сообщении компании.

Проблема, вероятно, затрагивает большое количество проектов с открытым исходным кодом, потому что сопровождающие обычно тестируют предоставленный код, прежде чем они действительно проанализируют код, говорит Лиав Каспи, главный технический директор Legit Security.

«Сегодня это обычная практика, — говорит он. «Сегодня многие проекты с открытым исходным кодом при запросе на изменение запускают кучу тестов для проверки запроса, потому что сопровождающий не хочет сначала проверять код. Вместо этого он автоматически запускает тесты».

Атака использует автоматизированный процесс сборки через GitHub Actions. По словам Legit Security, в случае с языком программирования Rust уязвимый шаблон мог позволить злоумышленнику выполнять код привилегированным образом в рамках конвейера разработки, похищая секреты репозитория и потенциально подделывая код.

«Проще говоря: в уязвимом рабочем процессе любой пользователь GitHub может создать форк, который создаст артефакт», — говорится в сообщении компании. указано в его рекомендации. «Затем внедрите этот артефакт в исходный процесс сборки репозитория и измените его выходные данные. Это еще одна форма атаки на цепочку поставок программного обеспечения, при которой выходные данные сборки изменяются злоумышленником».

Уязвимость делает возможной атаку, аналогичную атака с внедрением вредоносного ПО, нацеленная на CodeCov и, через программное обеспечение этой компании, ее последующие клиенты.

«Отсутствие встроенной реализации GitHub для обмена артефактами между рабочими процессами привело к тому, что многие проекты и сообщество GitHub Actions разработали небезопасные решения для обмена данными между рабочими процессами, что сделало эту угрозу широко распространенной», — говорится в бюллетене Legit Security.

GitHub подтвердил проблему и заплатил вознаграждение за информацию, в то время как Rust исправила свой уязвимый пайплайн, заявила Legit Security.

Отравление артефактами GitHub

Источник: Законная безопасность

Цепочка поставок программного обеспечения нуждается в безопасности

Уязвимость является последней проблемой безопасности, затрагивающей цепочки поставок программного обеспечения. Промышленность и государственные учреждения все чаще стремятся повысить безопасность программного обеспечения с открытым исходным кодом и программного обеспечения, предоставляемого как услуга.

Например, в мае 2021 года администрация Байдена выпустила указ об улучшении национальной кибербезопасности, федеральное правило, которое, среди прочего, требует, чтобы правительство требовать базовых стандартов безопасности для любого программного обеспечения, которое он покупает. Что касается частного сектора, Google и Microsoft пообещал миллиарды долларов для укрепления безопасности в экосистеме с открытым исходным кодом, которая предоставляет код, составляет более трех четвертей кодовой базы среднего приложения..

Логичный, но уязвимый

Проблема безопасности относится к сложно обнаруживаемому классу проблем, известных как проблемы логики, которые включают проблемы с разрешениями, возможность вставки разветвленных репозиториев в конвейер и отсутствие различий между разветвленными и базовыми репозиториями.

Поскольку программные проекты часто используют автоматизированные сценарии для проверки представленного кода перед его отправкой сопровождающим, запросы на вытягивание будут выполняться автоматически, прежде чем кто-либо из людей проверит их на наличие вредоносного кода. Хотя автоматизация экономит время, злоумышленники также должны рассматривать ее как способ вставки вредоносного кода в конвейер.

«Когда вы занимаетесь разработкой с открытым исходным кодом, проблема больше, потому что вы принимаете вклад от кого угодно в мире», — говорит Каспи. «Вы совершаете действия, которым не можете доверять».

GitHub признал проблему и расширил способы исключения материалов от внешних соавторов из автоматической вставки в конвейер действий. Компания обновлены API GetArtifact и ListArtifacts с целью предоставления дополнительной информации, которая поможет определить, можно ли доверять артефакту.

«Любой, кто делает что-то похожее на проект Rust — доверяет вкладу третьей стороны — все равно остается уязвимым», — говорит Каспи. «Это логическая проблема. GitHub только что упростил написание более безопасного сценария».

Spot_img

Последняя разведка

Spot_img