PNG-атаки обходят ИИ-ревью GitHub и крадут секреты

Исследователи обнаружили изощрённый вектор атаки на цепочки поставок открытого кода, использующий фундаментальные ограничения как человеческого, так и автоматизированного ИИ-ревью. Новый метод эксплуатирует доверие к, казалось бы, безобидным графическим файлам, прикреплённым к pull request’ам. В то время как отрасль активно внедряет LLM-рецензентов для фильтрации вредоносного кода, злоумышленники нашли способ превратить слепую зону таких систем в идеальный канал доставки полезной нагрузки.

Иллюзия проверки: 73% pull request’ов сливают без ревью

Отправной точкой исследования стал масштабный анализ реальных рабочих процессов на GitHub. Авторы отчета проанализировали поток pull request’ов в активные публичные репозитории и выявили тревожную статистику:

  • 73% всех запросов на слияние были приняты и объединены без содержательной проверки — ни человеком, ни автоматизированным ботом.
  • Это формирует идеальную среду для эксплуатации: вредоносный код может миновать любые барьеры, если он просто не попадает в поле зрения рецензента.

Такая апатия к проверке делает атаки через pull request особенно опасными, и авторы исследования показывают, как усыпить даже тех «стражей», которые всё же настроены на анализ.

PNG вместо текста: как обмануть Bugbot и CodeRabbit

Классический подход — встраивание вредоносных инструкций непосредственно в тело pull request’а — быстро детектируется современными LLM-рецензентами. Они генерируют предупреждения высокой степени серьёзности, привлекая внимание мейнтейнеров. Чтобы обойти этот рубеж, злоумышленники использовали стеганографический приём, но не в привычном смысле скрытия данных в пикселях, а в виде игнорируемого контейнера.

Метод атаки выглядит следующим образом:

  • Сокрытие: вредоносные инструкции размещаются внутри PNG-изображения, которое прикрепляется к pull request’у.
  • Слепая зона ИИ: такие ИИ-ревьюеры кода, как Bugbot и CodeRabbit, по умолчанию исключают файлы изображений из области анализа. Они не генерируют никаких предупреждений, поскольку попросту не заглядывают внутрь PNG.
  • Обход проверок целостности: для успешного слияния злоумышленник создавал сценарий с поддельной информацией о происхождении файла, что позволяло обойти все требуемые проверки на согласованность.

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

Спящий режим и кража секретов через код-агентов

Внедрённый полезный груз не активируется немедленно. Он остаётся в спящем режиме до тех пор, пока разработчик не откроет проект в своей среде программирования и не инициирует взаимодействие кодового агента с заражённым PNG-файлом. Именно в этот момент разворачивается основная фаза атаки.

Когда инструмент на базе ИИ, выступающий в роли кодового агента, обрабатывает файл, он извлекает конфиденциальную информацию — например, секреты из .env-файла. Чтобы избежать детектирования стандартными сканерами секретов, украденные данные выводятся не в виде привычных строк, а как tuple of integers. Поскольку обычные secret scanners не имеют функциональности для декодирования последовательности целых чисел обратно в формат ASCII, тревога не срабатывает. Данные покидают среду разработки без каких-либо сигналов о компрометации.

Модель — не главное: ключевая роль tooling

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

«Одна и та же модель демонстрирует диаметрально противоположные результаты в разных средах — tooling вокруг ИИ играет ключевую роль в итоговых последствиях для безопасности».

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

Мультимодальный защитник: комплексный анализ pull request’ов

Для противодействия описанной угрозе авторы предлагают внедрение multimodal defender pull requests — системы, которая анализирует не только исходный код, но и все связанные с запросом изображения. Предложенный подход объединяет несколько эшелонов проверки:

  • сканирование на наличие невидимых символов и манипуляций с метаданными;
  • анализ текстовых и структурных элементов внутри файлов;
  • перекрёстную корреляцию между визуальным и кодовым контекстом запроса.

Тестирование прототипа на наборе намеренных атак, имитирующих описанную технику, показало высокую эффективность: защитник безошибочно выявлял попытки сокрытия вредоносной логики, при этом не генерируя ложных срабатываний на безобидных pull request’ах. Исследование доказывает, что эволюция процессов рецензирования в средах совместной работы с кодом должна обязательно учитывать мультимодальные векторы атак, которые долгое время оставались вне периметра контроля.

Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.

Ознакомиться подробнее с отчетом можно по ссылке.

Технологии киберугроз
Автор: Технологии киберугроз
Технологии киберугроз – технологическая компания, специализирующаяся на решениях по анализу угроз для предприятий любого размера. Мы собираем, нормализуем, обогащаем информацию о киберугрозах со всего мира. Нашими источниками являют более 260 открытых фидов, более 100 открытых поставщиков Threat Intelligence-отчетов, открытые online sandbox, социальные сети и репозитории GitHub. Мы также предоставляем ряд сервисов по: семантическом анализу Threat Intelligence-отчетов и приведения их в машиночитаемый формат STIX 2.1, проверки IoC на потенциальные ложноположительные сработки, а также получению WHOIS-записей для доменных имен.
Комментарии: