Shai-Hulud 2.0 заразил 30 тыс. репозиториев и похитил сотни GitHub-токенов

Shai-Hulud 2.0 заразил 30 тыс. репозиториев и похитил сотни GitHub-токенов

Shai-Hulud 2.0 заразил 30 тыс. репозиториев и похитил сотни GitHub-токенов

Одна из самых изощрённых и разрушительных кибератак на цепочки поставок ПО продолжает развиваться, несмотря на меры реагирования. Речь о кампании Shai-Hulud 2.0, которая с конца ноября 2025 года поражает репозитории разработчиков и CI/CD-инфраструктуры по всему миру.

Исследователи Wiz Research и Wiz CIRT отслеживают атаку с 24 ноября — и, по их словам, распространение хоть и замедлилось, но далеко не прекратилось.

Масштабы уже впечатляют: внутри заражённых проектов специалисты нашли около 24 тысяч уникальных файлов environment.json с конфиденциальными системными данными и учётными записями.

Всего Shai-Hulud 2.0 затронул более 30 тысяч репозиториев, причём примерно 70% содержали уникальные следы конкретных заражённых сред. Отдельно исследователи выделяют более 500 похищенных GitHub-токенов и логинов — прямой доступ к аккаунтам, который может стать основой для новых атак.

Чтобы оценить масштаб утечки, специалисты объединяли данные GitHub API и GHArchive, формируя один из наиболее полных массивов информации об инциденте.

Главная особенность Shai-Hulud 2.0 — его удивительная живучесть. Даже спустя шесть дней после обнаружения вредонос продолжал создавать новые репозитории, хоть и с меньшей интенсивностью.

1 декабря зафиксировали всплеск: более 200 новых заражённых репозиториев за 12 часов. Исследователи полагают, что кампания будет идти волнами.

 

Особенно часто вредонос встречается на CI/CD-платформах. Лидирует GitHub Actions, заметно реже — Jenkins, GitLab CI и AWS CodeBuild.

 

Механизм заражения затрудняет расследование и локализацию. Если червь не находит локальных учётных данных GitHub, он пытается использовать ранее украденные токены других жертв и загружает данные новой жертвы в репозиторий, связанный с уже скомпрометированным аккаунтом. Возникает цепная реакция, когда пострадавшие «накладываются» друг на друга.

Хотя основным каналом распространения была экосистема npm и вредоносные пакеты вроде @postman/tunnel-agent, атака быстро вышла за её пределы. Злоумышленники похитили не только npm-токены, но и ключ OpenVSX, что позволило заразить IDE-расширение asyncapi-preview — и закрепиться уже в экосистеме OpenVSX.

Следы вредоноса обнаружили и в мире Java/Maven — через пакет org.mvnpm:posthog-node:4.18.1. При этом в Maven Central активного распространения не было, но факт появления заражённых артефактов уже вызывает обеспокоенность.

Одна из самых тревожных деталей — жизнеспособность похищенных секретов. По оценкам Wiz, около 60% украденных npm-токенов остаются рабочими. Это означает, что злоумышленники могут запускать новые цепочки атак в любой момент.

В файлах truffleSecrets.json исследователи увидели до 400 тысяч уникальных секретов, из которых примерно 2,5% червь успел проверить, а порядка 25 JWT-токенов всё ещё действительны.

Компании уже сообщили о заражениях через скомпрометированные пакеты, а в сообществе сохраняется путаница вокруг настроек безопасности GitHub Actions — что только упрощает атаку.

Аналитики уверены: Shai-Hulud 2.0 — это сигнал о серьёзных проблемах с безопасностью цепочек поставок. Организациям рекомендуют срочно пересмотреть правила работы с GitHub Actions, усилить управление секретами и мониторинг, а также внимательно следить за использованием любых учётных данных.

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

Сайты научились следить за пользователями через задержки в работе SSD

У сайтов появился новый способ шпионить за пользователями. Исследователи описали атаку под кодовым названием FROST, которая позволяет веб-страницам отслеживать активность человека через едва заметные задержки в работе SSD.

Полное название техники — Fingerprinting Remotely Using OPFS-based SSD Timing.

Работает она так: сайт загружает в браузере специальный JavaScript, работает с файловым хранилищем OPFS и внимательно смотрит, как меняется время операций чтения с накопителя.

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

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

 

В основе FROST лежит принцип атаки по сторонним каналам. Разные процессы обращаются к одному и тому же SSD, создают нагрузку, а атакующий сайт измеряет задержки при собственных операциях ввода-вывода.

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

Особенно неприятно здесь, что атака работает прямо из браузера. Предыдущие атаки такого типа на SSD обычно требовали более низкоуровневого доступа, а FROST обходится возможностями современных веб-платформ. Браузеры давно перестали быть просто окошками для сайтов: сегодня в них крутятся офисные пакеты, редакторы фото и видео, IDE и другие тяжёлые веб-приложения.

Для работы FROST используется OPFS — Origin Private File System, изолированное файловое хранилище, которое сайт может создать для своих задач. Формально оно находится в песочнице и отделено от других сайтов и системы. Но этого оказалось достаточно, чтобы измерять задержки операций чтения и строить по ним отпечаток активности.

Правда, у техники есть серьёзные ограничения. Атакующему сайту нужен очень большой OPFS-файл, скорее всего, размером от гигабайта и выше. Массовая эксплуатация такого трюка быстро стала бы заметной: пользователи могли бы увидеть странный расход дискового пространства. Кроме того, файл должен находиться на том же SSD, активность которого пытаются анализировать. Для вкладок браузера это обычно не проблема, а вот приложения на другом накопителе FROST уже не увидит.

Исследователи полноценно проверили атаку на macOS-устройстве с чипом M2. На Linux они показали, что базовый механизм измерения задержек SSD из JavaScript тоже работает, но полный сценарий атаки не запускали. Windows в исследовании не тестировали.

RSS: Новости на портале Anti-Malware.ru