Взлом Bitwarden: как вредоносный CLI попал на npm через официальный пакет 🚀💰
22 апреля в npm появился вредоносный вариант командной строки Bitwarden под названием @bitwarden/cli@2026.4.0 За 93 минуты любой, кто установил CLI через npm, получил поддельный пакет, зараженный вредоносным кодом.
Bitwarden обнаружил взлом, удалил вредоносный пакет и выпустил заявление, в котором заявил, что не обнаружил доказательств того, что злоумышленники получили доступ к данным в зашифрованном хранилище или компрометировали производственные системы.
Аналитики JFrog изучили вредоносный payload и обнаружили, что он целью был GitHub-токен, ключи SSH, история shell, ключи AWS, ключи GCP, ключи Azure, секреты GitHub Actions и конфигурационные файлы инструментов AI.
Эти являются секретами, которые управляют тем, как команды строят, развертывают и достигают их инфраструктуру.
Навязанные секреты/тип данных, где они обычно хранятся, и почему это важно в операционном плане GitHub-токены Устройства разработчиков, конфигурационные файлы, окружения CI-автоматизации Позволяют получить доступ к репозиториям, атаковать потоковую передачу, перечислить секреты и осуществить горизонтальное перемещение посредством автоматизации npm-токены Конфигурационные файлы, окружения релизов Позволяют опубликовать вредоносные пакеты или изменить поток релизов SSH-ключи Устройства разработчиков, серверы для сборки Позволяют получить доступ к серверам, внутренним репозиториям и инфраструктуре Shell-история Устройства разработчика Позволяет обнаружить секреты, команды, внутренние хосты и детали потока AWS-креденшиалы Конфигурационные файлы, переменные окружения, секреты CI-автоматизации Позволяет получить доступ к облачным рабочим нагрузкам, хранилищам и системам развертывания GCP-креденшиалы Конфигурационные файлы, переменные окружения, секреты CI-автоматизации Позволяет получить доступ к облачным проекту, сервисам и потокам автоматизации Azure-креденшиалы Конфигурационные файлы, переменные окружения, секреты CI-автоматизации Позволяет получить доступ к облачной инфраструктуре, системам идентификации и потокам развертывания GitHub Actions-секреты Окружения CI/CD Позволяет получить доступ к автоматизации, выводам сборки, развертываниям и секретам downstream AI-инструменты/конфигурационные файлы каталог проекта, окружения разработки Позволяют получить доступ к API-ключам, внутренним конечным точкам, параметрам модели и связанным ключам Bitwarden обслуживает более 50 000 бизнесов и 10 миллионов пользователей, а его собственная документация описывает CLI как “сильный, полнофункциональный” способ получить доступ и управлять хранилищем, включая автоматизированные потоки, которые используют переменные окружения для аутентификации.
Bitwarden входит в список npm как самый простой и предпочтительный метод установки для пользователей, уже уверенных в регистре.
Сочетание автоматизированного использования, установки на устройствах разработчиков и официального распространения npm поместило CLI ровно там, где обычно хранятся секреты с высоким стоимостью инфраструктуры.
Аналитики JFrog показали, что вредоносный пакет перепрошел оба hooks-предварительно и bw-виходной точки до загрузчика, который запускает Bun-runtime и запускает зашифрованный payload.
Взлом произошел как при установке, так и при работе.
Организация могла использовать зараженный CLI, не коснувшись сохраненных паролей, а вредоносный код систематически собирал секреты, управляющие ее потоками CI, облачными учетными записями и потоками автоматизации развертывания.
Фирма безопасности Socket, по-видимому, эксплуатировала компрометированную GitHub-Action в потоке CI/CD Bitwarden, что соответствует шаблону, отслеживаемому исследователями из Checkmarx.
Bitwarden подтвердило, что инцидент связан с более широкой кампанией Checkmarx.
Бутстрап-версия npm построена для решения именно этого класса рисков.
Замена длиннобазовых токенов npm на OIDC-авторизацию CI/CD-автоматизации снимает один из наиболее распространенных пути для атакующих, чтобы подкрасться к регистру релизов, и npm рекомендует надежную публикацию и рассматривает ее как прогрессивный шаг.
Тяжелая часть – логика релиза самой себя, такие как потоки и действия, которые запускают шаг публикации
Документация npm рекомендует контролирующие меры за пределами OIDC, такие как требования ручной подтверждения для окружений развертывания, правила защиты тегов и ограничения ветвей.
Слой доверия, что это такое? С каким оно должно гарантировать результатом? Что все равно может пойти не так? Источник репозиторий Предполагается, что исходный код существует в заданном репозитории Атакующие могут никогда не понадобиться изменять основной код напрямую CI/CD-поток Автоматизирует сборку и выпуск из репозитория Если компрометирован, он может произвести и опубликовать вредоносный artifact GitHub-Actions/логика релиза Выполняет шаги, которые строят и публикуют программное обеспечение Злоумышленник, подменивший действие, или нарушившийся поток может превратить легитимную релизную тропу в вредоносную OIDC-защищенная публикация Заменяет длиннобазовые токены регистра на краткосрочную идентификационную авторизацию Показывает, что авторизованная работа публиковала пакет, а не, что сам поток был безопасным npm-официальный канал Распространяет программное обеспечение под заданным именем пакета Пользователями все равно могут получить вредоносное программное обеспечение, если официальный путь публикации заражен Устройства разработчика/потоки CI-автоматизации Потребляют официальный пакет Вредоносное программное обеспечение может собирать местные, облачные и секреты, связанные с автоматизацией, при установке время или время выполнения GitHub-настройки окружения позволяют организациям требовать подписывания от ревизеров, прежде чем путь развертывания может развернуть Framework SLSA goes дальше, просив потребителей проверить, соответствует ли происхождение заданным параметрам, таким как правильный репозиторий, ветка, тег, поток, конфигурация сборки.
Взлом Bitwarden показывает, что более сложная проблема находится на уровне потоков релиза
Если атакующий может подменить сам релизный поток, “официальный” значок все равно сопровождает вредоносный пакет.
Надежная публикация перемещает бремя доверия вверх к целостности потоков и действий, которые вызывают его, слой, который организациям в основном оставили незаинтересованными.
Одна токен – много дверей Для команд разработчиков и инфраструктуры, компрометированный релизный поток дает доступ к потокам CI, инфраструктуре автоматизации и секретам, которые управляют ими.
Анализ JFrog показывает, что вредоносный код, получив GitHub-токен, мог подтвердить токен, переч
По материалам CryptoSlate