Исследователи безопасности предупреждают, что в результате масштабной атаки на цепочку поставок, получившей название «Мегалодон», вредоносное ПО было внедрено в более чем 5500 репозиториев GitHub посредством автоматических коммитов. Атака использовала рабочие процессы GitHub Actions для размещения скрытых полезных данных в среде непрерывной интеграции, нацеленных на конфиденциальную информацию, такую ​​​​как учетные данные, секреты CI, ключи и токены.

Согласно отчету охранной фирмы SafeDep, операция «Мег» опиралась на вредоносные рабочие процессы GitHub Actions, которые были пакетно внедрены в целевые репозитории с фальшивыми автоматическими коммитами, создавая концентрированную волну атак всего за шесть часов. SafeDep сообщила, что за шестичасовой период 18 мая злоумышленники перенесли более 5700 вредоносных коммитов в затронутые репозитории, что в конечном итоге затронуло 5561 независимый репозиторий.

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

После заражения целевой среды вредоносный рабочий процесс попытается украсть переменные среды CI, учетные данные AWS, токены доступа GCP, учетные данные Azure, закрытые ключи SSH, конфигурации Docker и Kubernetes, различные ключи API, строки подключения к базе данных, а также десятки различных типов конфиденциальной информации, такой как токены GitHub Actions и токены GitLab CI/CD. После утечки этой информации она может быть использована для дальнейшего компрометации облачной инфраструктуры, кодовых баз и производственных сред.

По данным SafeDep, «Мегалодон» был обнаружен при анализе платформы чата и чат-бота с открытым исходным кодом Tiledesk. Исследователи заметили, что в период с 19 по 21 мая проект последовательно выпускал подделанные вредоносные версии пакетов NPM, тем самым раскрывая стоящую за ним крупномасштабную операцию по вторжению на склад. Учетная запись NPM, связанная с атакой, называется eljohnny, а адрес электронной почты учетной записи — [email protected]. Он выпустил как чистую версию 2.18.5, так и зараженную версию.

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

Отслеживая источник атаки, SafeDep обнаружила, что вредоносная заявка, запустившая цепочку заражения, также произошла 18 мая, а автор заявки был идентифицирован как «build-bot». Проследив за соответствующим почтовым ящиком, исследователи обнаружили, что в тот день через этот почтовый ящик было отправлено в общей сложности 2878 сообщений, а еще 2841 сообщение было отправлено через другой связанный почтовый ящик. Всего за один день было отправлено 5718 вредоносных сообщений.

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

Хотя инцидент с «Мегалодоном» был раскрыт, на уровне экосистемы также пытались справиться с аналогичными угрозами. Недавно компания NPM объявила, что аннулировала все токены мелкомасштабного доступа, которые обходят двухфакторную аутентификацию и имеют разрешения на запись, чтобы предотвратить атаки на цепочку поставок, подобные «Мини Шай-Хулуд». Охранная компания Ox Security считает, что эта мера помогает снизить риск взлома учетной записи, но на самом деле не устраняет основной риск.

Ox Security предупреждает, что до тех пор, пока платформы позволяют загружать и распространять произвольный код без тщательной проверки, вредоносный код, распространяемый через скомпрометированные репозитории, будет продолжать появляться. Компания отметила, что атаки на цепочки поставок вступают в новую эру. Предыдущая атака TeamPCP на GitHub была только началом. В будущем волны атак, направленных на сообщество разработчиков, будут следовать как «цунами».

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