Shai-Hulud вернулся
Shai-Hulud вернулся Мы как-то не успели поговорить о Shai-Hulud в прошлом году, когда эта история только начиналась. Но вот появился отличный повод наверстать упущенное. Ведь червь вернулся, и теперь он не просто ползет, а вполне себе бежит по репозиториям npm. Аикидо Security зафиксировала новую волну, и масштаб, мягко говоря, впечатляет. Напомним вкратце для тех, кто пропустил первую серию Дюны. Shai-Hulud — это самораспространяющийся червь, который охотится на разработчиков Node.js. Он не вымогает деньги и не шифрует диски. Он крадет учетные данные, npm-токены, GitHub-ключи, AWS-секреты, Vault-токены, базы данных, Stripe и Slack — все, что плохо лежит, он забирает, шифрует и отправляет в публичный репозиторий с описанием «Shai-Hulud: Here We Go Again». Если туда не достучаться — есть запасной вариант npm-cache[.]com. При этом червь использует скомпрометированные учетки, чтобы модифицировать и перевыпускать другие пакеты, распространяясь как настоящая песчаная буря. На этот раз атака началась с аккаунта разработчика Jared Wray, мейнтейнера библиотеки Keyv, которая, внимание, имеет 127 млн загрузок в неделю. Злоумышленники запушили вредоносные файлы прямо в main-ветку и использовали легитимный GitHub Actions для публикации Keyv версии 6.0.0. Поскольку релиз прошел через штатный пайплайн, он получил валидную информацию о происхождении (provenance) на npm — подпись подтверждала, где собран пакет, но не то, что исходный код перед сборкой был безопасен. Ирония в том, что система доверия сработала безупречно, просто доверять было нечему. К 13:37 CEST (да, хакеры с чувством юмора и знанием l33t) число зараженных пакетов перевалило за 868 с 1381 вредоносной версией, а к моменту написания отчета — за 1280. В списке пострадавших — пакеты, связанные с Deliveroo, Picsart, Qlik и другими крупными игроками. Их присутствие означает, что доступ к публикации был скомпрометирован, но не факт, что внутренние сети компаний взломаны (утешимся хотя бы этим). В любом случае, любая рабочая станция или CI-раннер, запускавший зараженную версию, должна считаться скомпрометированной. Удаление пакета не поможет, так как украденные ключи уже ушли. Ротация всех токенов, проверка логов и аудит репозиториев — теперь новая головная боль. И да, Аикидо рекомендует не ждать ночного скана, а запустить ручной прямо сейчас. @antiinfosec