
Amazon Threat Intelligence обяви на 29 юли 2026 г., че зад компрометирането на npm пакетите debug и chalk от септември 2025 г. стои севернокорейската група, позната като Sapphire Sleet. Публикацията е подписана от CJ Moses, главен директор по сигурността на Amazon Integrated Security, и свързва в една кампания три отделни инцидента в екосистемата на JavaScript — typo-crypto (март 2025), debug и chalk (септември 2025) и axios (март 2026).
Групата се среща и под имената STARDUST CHOLLIMA, BlueNoroff, CageyChameleon, Alluring Pisces, а при Google Threat Intelligence — UNC1069. Мотивът ѝ е финансов: кражба на криптовалута.
Какво се случи през септември 2025
Атаката срещу debug и chalk започна с фишинг: поддръжник на пакетите получи писмо от домейн, имитиращ npm, и предаде достъпа си. След това нападателите публикуваха зловредни версии на поне 18 пакета с над 2 милиарда сваляния седмично общо.
Кодът беше насочен към браузъра — прихващаше fetch, XMLHttpRequest и API-тата на крипто портфейлите, за да подменя адресите в транзакциите в движение. Въпреки безпрецедентния обхват реалната плячка беше нищожна: около 600 долара (≈520 евро). Wiz установи, че в рамките на два часа заразените версии са стигнали до приблизително всяка десета облачна среда.
Репетицията: typo-crypto
Най-интересната част от анализа на Amazon е един почти незабелязан пакет. През март 2025 г. в typo-crypto се появява файл core.js, имитиращ легитимния core-js. Полезният товар се активира само при вход с хеш, започващ с 0098273, след което тегли втора степен за Windows, macOS или Linux от твърдо зашити адреси.
Обфускацията е base64 върху XOR с ключ 01042025. Индикаторите включват домейна npmjs[.]store и адреса 216[.]74[.]123[.]126, а случаят вече се води в базата OSV като MAL-2026-3400.
„Смятаме, че кампанията typo-crypto от март 2025 г. беше репетиция“, казва Moses пред CyberScoop. Логиката е проста — тества се механиката, преди да се удари наистина голяма цел.
Кулминацията: axios
На 31 март 2026 г. в npm се появиха версии 1.14.1 и 0.30.4 на axios — HTTP клиентът с над 100 милиона сваляния седмично. Те останаха живи около три часа.
Механизмът беше друг: фалшива зависимост plain-crypto-js@4.2.1, която чрез post-install скрипт сваляше троянец за отдалечен достъп — PowerShell вариант за Windows, двоичен файл com.apple.act.mond в /Library/Caches/ за macOS и Python зареждач ld.py в /tmp/ за Linux. C2 инфраструктурата беше sfrclak[.]com на порт 8000.
# Проверка дали зловредната зависимост е попадала в проекта
npm ls plain-crypto-js
grep -R "1.14.1\|0.30.4" package-lock.json
Този инцидент беше приписан на Sapphire Sleet още в рамките на дни — от Microsoft и независимо от Google. Новото сега е, че Amazon разпростира същата атрибуция назад във времето.
Колко силна е връзката
Amazon говори за средна увереност при debug и chalk — не за категоричност. Аргументите са споделен почерк: троянизирани пакети, post-install куки, преизползван код и препокриващи се C2 индикатори. Компанията обаче не уточнява кое доказателство към кой инцидент се отнася.
The Hacker News отбелязва и една неувязка: записът на typo-crypto@4.3.0 показва, че пакетът е създаден и публикуван с разлика от 204 милисекунди на 31 март 2025 г., без по-ранна версия — което не се връзва с описанието за компрометиран поддръжник, публикувал зловредни ъпдейти. Атрибуцията за debug и chalk идва 10 месеца след събитието, а за typo-crypto — 16.
Какво се промени в npm
Веригата от инциденти вече дава ефект върху самия регистър. npm v12, излязъл на 8 юли 2026 г., изключва скриптовете от жизнения цикъл на зависимостите по подразбиране — точно механизмът, който трите кампании ползваха. От 28 юли npm сканира новопубликуваните пакети за зловреден код преди инсталация.
Нито едната мярка не решава основния проблем: компрометиран поддръжник си остава компрометиран поддръжник. Amazon се присъедини и към инициативата Akrites на Linux Foundation със съвместна инвестиция от 12,5 млн. долара (около 11 млн. евро) за защита на екосистемата на отворения код.
Разработчикът е мишената
Паралелно Check Point Research описа 72 фалшиви сайта за сваляне на софтуер, работещи от август 2025 г. Те имитират Wintoys, PowerToys, CrystalDiskMark, Ghidra и dnSpy, класират се високо в Google и първоначално раздават истинските файлове, преди операторите да подменят линковете. Зад тях стоят SessionGate, RemusStealer и клипборд крадецът AnimateClipper, а разпределянето минава през JavaScript слой в CloudFront.
Общото между двете истории е целта — човекът с права да пише код. Същият модел видяхме и при руската кампания срещу Exchange OWA, както и при агента на OpenAI, ползвал изтекли пароли.
Заключение
Ако сте инсталирали зависимости през септември 2025 г. или на 31 март 2026 г., проверете lock файловете и ротирайте всичко, до което CI средата е имала достъп. Обновете до npm v12, фиксирайте версиите и ползвайте npm ci. А когато Amazon пише, че държавен актьор е репетирал цяла година върху пакет, който никой не следи — приемете го като описание на нормалния режим на работа, а не като изключение.
Новините на Overclock — директно в Telegram, без алгоритми.
Следвайте ни в Telegram