Злоумышленники скомпрометировали 42 репозитория GitHub, используя файлы, слишком большие для поиска

Github безопасность взлом репозитории Npm ии csoonline.com

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

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

Отчет компании JFrog Security Research гласит, что в пострадавших репозиториях содержались триггеры выполнения для ИИ-ассистентов кодирования и IDE, а также полиморфные оболочки размером до 13,7 МБ, которые «все декодировались в одну и ту же скрытую полезную нагрузку CI-publisher. Репозиторий злоумышленника также функционирует как активный центр зашифрованных данных, получая снимки, а атака использовала новую маскировку: скомпилированный нативный аддон, который сам по себе не содержит полезной нагрузки, а вместо этого расшифровывает файл с именем .napi_cache во время выполнения, чтобы раскрыть реальный».

JFrog заявила, что расследование также выявило захваты учетных записей, подделку хронологии коммитов, кратковременные ветки публикации и раскрытые учетные данные npm. Артефакты Shellpanel в том же кластере владельцев, подвергшихся взлому, связывают эту инфраструктуру жертв GitHub с ранее сообщенным использованием уязвимостей GitHub Actions в системах cPanel, доступных из интернета.

«В течение 21 октября наши сканеры оповестили нас о пакетах shai-hulud, обнаруженных в экосистеме npm», — написала JFrog. «Анализ SafeDep от 22 октября впервые задокументировал сторону npm/пакета этой активности и декодировал event-bus-lite-testmetest@0.0.1. SafeDep описала полезную нагрузку как семейство Miasma, явно отмечая неопределенность относительно ее происхождения».

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

Публикация JFrog также сосредоточилась на последствиях цепочки npm. 

«Цепочка npm обеспечивает связь с более широкой операцией. Вредоносные выпуски testmetest использовали расширение команды binding.gyp для выполнения index.js во время установки, хотя пакеты не объявляли обычный скрипт установки», — говорится в сообщении. «Загрузчик применял побитовое преобразование Цезаря к массиву кодов символов, расшифровывал этап AES-128-GCM и находил или загружал Bun 1.2.18. В зависимости от сборки расшифрованная полезная нагрузка передавалась в bun run - или записывалась во временный каталог .b-* и удалялась после выполнения. Полная полезная нагрузка npm собирала учетные данные, отравляла репозитории и конфигурацию CI, а также распространялась через реестры пакетов».

Контролируемые злоумышленниками репозитории служили источниками прикрытия для соответствующих пакетов npm, сообщил JFrog. 

«Вредоносные выпуски доставляли червя npm, который крал учетные данные GitHub и npm, что могло обеспечить доступ к сторонним репозиториям. В захваченных репозиториях кампания оставляла заполнители дымовых тестов или подготовленные полезные нагрузки», — написали исследователи. «Декодирование подготовленных файлов ci.js раскрыло издателей, предназначенных для запуска через GitHub Actions и использования токенов npm или доверенных публикаций для создания дальнейших вредоносных выпусков testmetest, возвращая доставку пакетов к компрометации репозитория».

Рекомендации по защите

В публикации JFrog рекомендованы различные тактики защиты для обнаружения и смягчения последствий этих атак, в том числе CISOs «следует рассматривать установку полной версии червя как компрометацию хоста». Также было предложено пользователям отозвать и заменить все учетные данные GitHub, GitLab, npm, PyPI, RubyGems, облачных сервисов, SSH, Vault, Kubernetes и поставщиков ИИ, а также провести аудит «всех репозиториев, доступных для затронутых идентификаторов, на наличие .github/init.js, .claude/settings.json, .gemini/settings.json, .cursor/mcp.json, .cursor/rules/setup.mdc, .vscode/tasks.json, неожиданных триггеров выполнения composer.json или Makefile, а также коммитов с skip-checks:true».

JFrog также предложила компаниям перечислять деревья репозиториев напрямую, а ИТ-отделам не полагаться на поиск кода GitHub или API содержимого из-за проблемы с размером оболочки.

«Удалите несанкционированные ветки chore/ci-* и deps/upd-*, отключите вредоносные рабочие процессы и удалите поддельные артефакты CodeQL с именем scan-output. Блокируйте hxxp[:]//43[.]228[.]157[.]68:80 и связанную вредоносную инфраструктуру на сетевых контроллерах», и «ищите в журналах и раннерах GitHub Actions /tmp/.svc, ipscan, CVE-2026-41940, запросы /api/dl/<arch>, специфичные для архитектуры, и необычно широкие сканирования с хостинговых или самостоятельно размещенных раннеров», — предложила JFrog. И, конечно же, ищите .napi.cache.

Приоритетная цель

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

Аман Махапатра, директор по стратегии нью-йоркской технологической консалтинговой фирмы Tribeca Softech, заявил, что особенности этой атаки, вероятно, предскажут путь новых атак, ориентированных на ИИ, в ближайшем будущем.

«В течение десятилетия модель угроз цепочки поставок предполагала, что вредоносный код запускается при установке или выполнении чего-либо», — сказал он. «Эта кампания устанавливает хук Claude Code SessionStart, настройки Gemini, конфигурацию и правила Cursor MCP, а также задачи открытия папок VS Code, так что полезная нагрузка выполняется, когда разработчик просто открывает репозиторий в своем инструменте. .claude/settings.json — это новый autorun.inf».

«Злоумышленники переместили триггер с выполнения кода на открытие папки, создали вредоносное ПО, которое по своей конструкции скрывается от песочниц, и превратили последнее исправление отрасли в следующую цель», — сказал Махапатра. «Защита цепочки поставок, построенная вокруг сканирования во время установки, теперь охраняет не тот момент».

Он сказал, что особенно обеспокоен тактикой размера файла, которую использовали злоумышленники.

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

Фрэнк Диксон, главный аналитик Dickson Research, также был впечатлен использованием злоумышленником нативного аддона.

«Он не несет собственной полезной нагрузки и отказывается запускаться в системах CI, контейнерах, небольших виртуальных машинах или под отладчиком», — сказал он. «В Windows он также прекращает работу, если запущен Wireshark или Process Monitor. Сканеры видят заполнитель, но на ноутбуке разработчика оказывается реальная вещь».

Диксон сказал, что риск, связанный с ИИ, существует, но это вторичное воздействие, которое становится проблемой только после того, как злоумышленники украдут активные учетные данные. Тем не менее, это усугубляется агентными усилиями. 

«Внедренные файлы являются триггерами выполнения для Claude, Gemini, Cursor и VS Code. Открытие проекта в поддерживаемом инструменте может запустить полезную нагрузку. Обычное действие разработчика становится детонатором. Ноутбук разработчика содержит ключи к королевству, если хотите: токены GitHub, токены npm, облачные ключи и учетные данные поставщиков ИИ. Злоумышленники нашли новый способ их запросить», — сказал Диксон. «Справедливости ради, эти хуки являются функциями, а не недостатками. Первопричиной здесь являются украденные учетные данные, а не инструменты ИИ. Тем не менее, функция, которая запускает код при открытии папки, заслуживает такого же пристального внимания, как и скрипт сборки».

Эта статья изначально была опубликована на InfoWorld.

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

Похожие новости: