00:00:00Это может быть одним из крупнейших взломов цепочки поставок NPM, которые мы когда-либо видели,
00:00:03и нет, это не первоапрельская шутка, просто неудачное время, и люди должны об этом знать.
00:00:07Это произошло в пакете Axios; этот HTTP-клиент был установлен 101 миллион раз на этой неделе
00:00:13и имеет более 174 000 зависимых проектов. Так что это уже затронуло такие пакеты, как Datadog,
00:00:18OpenClaw и WordPress, а также прослеживается связь с северокорейскими хакерами.
00:00:22Так что давайте сразу перейдем к делу и посмотрим, что произошло.
00:00:29Итак, вот история: 31 марта 2026 года злоумышленник взломал NPM-аккаунт
00:00:34ведущего мейнтейнера Axios и опубликовал два релиза с бэкдором: версию 1.14.1, которая
00:00:39была помечена как последняя (latest), а также версию 0.30.4, помеченную как устаревшая (legacy).
00:00:44В эти пакеты они внедрили фантомную зависимость под названием "plaincryptojs",
00:00:48которая по сути была обычным пакетом crypto.js, но с одной небольшой правкой:
00:00:52в нем был скрипт послеустановки setup.js. Это означает, что каждый человек и каждая CI-система,
00:00:58устанавливающие эти скомпрометированные пакеты, также запускали этот скрипт. Сам скрипт содержал
00:01:02обфусцированный код, который проверял вашу операционную систему, а затем подключался к серверу,
00:01:07чтобы скачать вторую полезную нагрузку, соответствующую вашей ОС. Так что никто
00:01:12не был в безопасности, и они даже позаботились о том, чтобы полезная нагрузка для Mac OS
00:01:16работала как на Intel, так и на Apple Silicon. И именно вторая нагрузка — самая опасная,
00:01:20это RAT или троян удаленного доступа, и он работает практически одинаково во всех
00:01:25операционных системах. Сначала он сканировал ваши файлы, проходя по папкам документов, рабочего стола
00:01:29и конфигураций, а Windows-версия сканировала даже ваш OneDrive, AppData и каждый
00:01:33диск в вашей системе, а затем отправляла этот список файлов обратно на сервер,
00:01:38вероятно, чтобы проверить, есть ли что-то ценное для кражи. После этого он начинал
00:01:42подавать сигналы: каждые 60 секунд он связывался с сервером, передавая имя хоста, имя пользователя, ОС,
00:01:47часовой пояс, модель оборудования и полный список всех запущенных процессов, чтобы хакер мог видеть,
00:01:52какое ПО вы используете и работаете ли вы в нем сейчас. И если все это звучит недостаточно плохо,
00:01:56худшее еще впереди, так как в любое время злоумышленник мог удаленно отдать четыре команды,
00:02:00позволяющие просматривать любую директорию, запускать произвольные shell-команды или скрипты,
00:02:05загружать и исполнять вредоносное ПО или даже убить весь процесс, чтобы замести следы. На самом деле,
00:02:10они даже сделали так, что исходный скрипт установки удалял сам себя, затем удалял package.json,
00:02:15в котором была прописана послеустановка, и заменял его чистой версией, чтобы быть
00:02:19максимально незаметными. Как видите, этот взлом был крайне серьезным, и он был разработан,
00:02:23чтобы атаковать рабочие станции разработчиков и раннеры CI/CD для поиска секретов, таких как .env файлы,
00:02:28NPM-токены, SSH-ключи и прочее; любую систему, запустившую эти вредоносные нагрузки,
00:02:34следует рассматривать как случай полной кражи учетных данных. Ко всему прочему,
00:02:38остается загадкой, как был взломан NPM-аккаунт. Мейнтейнер отметил, что у него включена 2FA,
00:02:43и в его пайплайнах GitHub Actions также включена авторизация. Судя по всему,
00:02:47пакеты были опубликованы через NPM CLI с использованием долгоживущего токена доступа NPM. Следующий вопрос:
00:02:53как они получили доступ к этому токену? Мейнтейнер даже допускает, что кто-то мог
00:02:56получить его коды восстановления аккаунта, но как это было сделано — пока полная тайна. Если вы хотите
00:03:01проверить, затронуло ли это вас, обязательно поищите в своих lock-файлах скомпрометированные
00:03:04версии axios, а также пакет plaincryptojs, и проверьте папку node_modules на наличие
00:03:09самого пакета. Если вы их там увидите, к сожалению, это плохие новости. Вы также можете проверить
00:03:14систему на наличие артефактов RAT; я оставлю ссылки на полные отчеты ниже, чтобы вы могли
00:03:18следовать инструкциям и знать, что делать в случае компрометации. На будущее также есть
00:03:22несколько шагов для предотвращения таких атак, и первый — всегда фиксируйте lock-файлы
00:03:26и используйте команду "npm ci" вместо "npm install" в ваших пайплайнах.
00:03:31Также стоит установить минимальный возраст пакета в вашем менеджере, гарантируя,
00:03:35что пакетам исполнилось хотя бы 48 часов перед установкой, в надежде, что вредоносные версии
00:03:39будут вовремя обнаружены, так как этот случай с axios выявили и удалили спустя три часа. Наконец,
00:03:44если возможно, используйте флаг --ignore-scripts при запуске npm install или просто перейдите
00:03:48на менеджер пакетов вроде bun, который блокирует все скрипты послеустановки по умолчанию и запускает
00:03:53их только для тех зависимостей, которые вы явно пометили как доверенные. Надеюсь, это самая крупная
00:03:57атака в этом году, но мы видим их все чаще и чаще, так что будьте осторожны
00:04:01и делитесь своим мнением обо всем этом в комментариях внизу,
00:04:04подписывайтесь и, как всегда, увидимся в следующем видео.