Недавно злоумышленники скомпрометировали Axios — одну из самых популярных HTTP-библиотек, которая скачивается более 100 миллионов раз в неделю. Этот инцидент демонстрирует фундаментальный сдвиг в том, как происходят атаки на цепочки поставок (supply chain attacks). Если раньше это были долгие и точечные операции, то теперь они становятся автоматизированными, быстрыми и невидимыми для традиционных систем безопасности.
Атаки на цепочки поставок не являются чем-то новым. Индустрия помнит инциденты с SolarWinds, Log4Shell и бэкдором в XZ Utils. Однако за последний год произошли два важных изменения. Во-первых, большие языковые модели (LLM) и ИИ-агенты научились писать код и управлять зависимостями на машинной скорости, практически без участия человека. Во-вторых, злоумышленники научились масштабировать атаки на графы зависимостей, заражая целые экосистемы за считанные дни.
В случае с Axios злоумышленники не меняли исходный код библиотеки. Они получили доступ к учетной записи разработчика и добавили новую зависимость — пакет plain-crypto-js. При установке этот пакет запускал скрипт, который загружал троян для удаленного доступа, выполнял его и затем удалял сам пакет. Традиционные сканеры уязвимостей, опирающиеся на базы данных известных угроз (CVE), ничего не заметили, так как вредоносный пакет был абсолютно новым.
Ситуация усугубляется тем, что современные приложения состоят из сотен сторонних компонентов. Средний JavaScript-проект имеет около 755 транзитивных зависимостей — пакетов, которые устанавливаются автоматически вместе с основными библиотеками. Злоумышленникам достаточно скомпрометировать один узел в этой сети, чтобы получить доступ к тысячам проектов.
Появление ИИ-агентов создает новые векторы атак. Исследования показывают, что ИИ-ассистенты выбирают уязвимые версии зависимостей на 50% чаще, чем люди. Более того, языковые модели склонны к галлюцинациям и часто выдумывают названия несуществующих пакетов. Злоумышленники используют эту особенность, регистрируя выдуманные ИИ названия и загружая туда вредоносный код. Эта техника получила название «slopsquatting». Один из исследователей продемонстрировал эффективность метода: пустой пакет с названием, которое часто выдумывают LLM, собрал 30 000 скачиваний за несколько недель.
Автономные ИИ-агенты оптимизируют свою работу по принципу «это работает?», а не «это безопасно?». Они устанавливают пакеты и открывают запросы на слияние (pull requests) с такой скоростью, что окно для проверки безопасности сводится к нулю. В результате традиционные методы защиты, основанные на поиске известных сигнатур, перестают работать.
Индустрии придется перейти от статического анализа к поведенческому. Системы безопасности нового поколения должны анализировать не наличие пакета в базе уязвимостей, а то, что делает его код: пытается ли он получить доступ к сети, запустить процессы в оболочке или прочитать переменные окружения. Только смещение контроля безопасности к моменту фактического выполнения кода поможет защитить экосистему в эпоху автономной разработки.