Ваша рабочий ноутбук — сундук с сокровищами. То, что вы там храните, включая простые текстовые файлы, переменные среды и конфигурационные каталоги, открывает доступ ко всей вашей инфраструктуре — API-токенам, паролям к базам данных, SSH-ключам, облачным учетным данным и токенам для npm-публикации. Ко всему, что нужно злоумышленнику, чтобы скомпрометировать не только ваши проекты, но и данные тысяч пользователей, зависящих от вашего кода.

Это не теоретическая страшилка. Два недавно появившихся червя — ShaiHulud и PhantomRaven — наглядно продемонстрировали, насколько ценными и уязвимыми стали среды разработчиков. Это не те вирусы времен вашего дедушки, что рассылали спам или майнили криптовалюту. Это сложное оружие для атак на цепочку поставок, которое превращает сами инструменты, используемые для разработки ПО, в векторы для масштабных компрометаций.

Неудобная правда о безопасности разработчиков

Вот статистика, которая заставит вас задуматься: 86% разработчиков не считают безопасность приложений своим главным приоритетом при написании кода. Почти каждый третий разработчик даже не знаком с практиками безопасной разработки. Дело не в личных провалах, а в культуре, которая исторически относилась к безопасности как к чужой проблеме, чему-то второстепенному, чем можно заняться после выпуска функционала и соблюдения дедлайнов.

Последствия такого подхода ошеломляют. В 2023 году GitGuardian просканировал более 1,1 миллиарда коммитов на GitHub и обнаружил, что 8 миллионов из них содержали как минимум одну секретную информацию. Более чем каждый десятый автор на GitHub в прошлом году допустил утечку учетных данных в своем коде. И это только публичные репозитории — представьте, сколько секретных данных раскрыто в приватных кодовых базах или разбросано по рабочим компьютерам в файлах .env и истории оболочки.

Злоумышленники это заметили. Кража учетных данных теперь стала причиной почти половины всех киберпреступлений. В 2023 году скомпрометированные учетные данные впервые обогнали эксплойты как главный вектор атак. Зачем тратить месяцы, пытаясь проникнуть в хорошо защищенную рабочую среду, если можно собрать, как мелочь по карманам, учетные данные, которые разработчики оставляют без присмотра?

ShaiHulud: червь, превративший npm в оружие

В сентябре 2025 года npm-экосистема столкнулась со своим первым известным самовоспроизводящимся червем. Вредоносное ПО ShaiHulud, названное в честь гигантских песчаных червей из «Дюны», не просто крало учетные данные — оно превратило всю цепочку поставок JavaScript в оружие против нее же самой.

Атака началась достаточно просто. Злоумышленники скомпрометировали аккаунт сопровождающего пакета npm, вероятно, через фишинг или перебор учетных данных. 

Получив возможность публиковать пакеты, они внедрили вредоносный код, который выполнялся автоматически во время npm install — команды, которую разработчики запускают десятки раз в день, не задумываясь. Но червь ShaiHulud не удовлетворился заражением всего одного пакета.

Оказавшись в компьютере разработчика или на CI-сервере, ShaiHulud приступал к работе с безжалостной эффективностью. Он сканировал среду в поисках любых учетных данных: файлов .npmrc, переменных среды, конечных точек метаданных облака. Червь не просто собирал их вслепую — он проверял каждый токен в реальном времени, выясняя, какие из них имели достаточно прав, чтобы их стоило украсть. Этот подход «сначала проверь, потом кради» означал, что он собирал только высокоценные учетные данные, избегая обнаружения из-за чрезмерного количества API-вызовов.

Далее ShaiHulud проявлял настоящее коварство. Используя украденные с GitHub учетные данные, червь создавал в аккаунтах жертв новые публичные репозитории — каждый под названием «ShaiHulud». Туда, в файлы data.json, он складывал все похищенные секретные данные. Вредитель также настраивал систему автоматизации задач (GitHub Actions) для эксфильтрации данных через ряд резервных каналов (веб-хуки, логи рабочих задач и даже обычные коммиты).

Даже если один канал эксфильтрации блокировался, украденные учетные данные могли все еще находиться в публичном репозитории GitHub, ожидая извлечения.

Но главная уловка червя была в его способности к самовоспроизведению. Используя украденные npm-токены, ShaiHulud аутентифицировался под именем скомпрометированного разработчика и сканировал все другие пакеты, которыми тот управлял. С каждым из них он проделывал одну и ту же операцию: скачивал пакет, добавлял в него вредоносный код, увеличивал номер версии и выпускал обновление. В результате каждый скомпрометированный разработчик невольно начинал распространять вирус среди пользователей своих пакетов.

За несколько дней были скомпрометированы сотни пакетов и более 500 версий пакетов. То, что могло бы занять у злоумышленников месяцы ручной работы — взлом одной учетной записи за другой — произошло автоматически за считанные часы. Агентство США по кибербезопасности и защите инфраструктуры (CISA) было вынуждено выпустить срочное предупреждение разработчикам, порекомендовав им фиксировать версии зависимостей и немедленно обновить все учетные данные.

PhantomRaven: когда галлюцинации ИИ становятся векторами атак

Если ShaiHulud был точечным ударом, распространявшимся через доверительные отношения внутри экосистемы, то PhantomRaven стал настоящим залпом картечи. В период с августа по октябрь 2025 года злоумышленники опубликовали в npm 126 вредоносных пакетов, которые набрали в сумме более 86 000 загрузок до того, как их обнаружили.

Создатели PhantomRaven использовали особенно изощренный метод социальной инженерии: слопсквоттинг (slopsquatting). Они эксплуатировали склонность ассистентов на основе ИИ к «галлюцинациям» — когда те предлагают названия пакетов, которые звучат правдоподобно, но в реальности не существуют. Злоумышленники отслеживали эти предложения ИИ или сами провоцировали их появление с помощью специальных запросов, а затем быстро публиковали пакеты с такими названиями. В итоге, разработчики, бездумно следовавшие советам своего помощника на основе ИИ, устанавливали вредоносное ПО вместо полезной библиотеки.

Вредоносные пакеты использовали метод под названием «удаленные динамические зависимости» (Remote Dynamic Dependencies). Их файлы package.json выглядели чистыми — в них не было объявлено никаких подозрительных зависимостей. Однако во время установки специальный скрипт (post-install) связывался с внешними серверами, загружал оттуда вредоносный код и запускал его. Такой подход делал пакеты практически невидимыми для статического анализа. Сканеры безопасности не замечали ничего подозрительного, потому что самого вредоносного кода просто не было в пакете до момента его установки и запуска.

После запуска PhantomRaven приступал к системному сканированию своей жертвы. Он искал email-адреса в переменных среды, чтобы выявить наиболее ценные цели. Программа собирала токены доступа для всех ключевых сервисов: npm, GitHub, GitLab, Jenkins, CircleCI и GitHub Actions — всю основную инструментальную цепочку, которую используют современные разработчики.

Для передачи украденных данных вредоносная программа использовала целых три метода: кодировала данные в параметрах обычных HTTP-запросов (GET), отправляла информацию в формате JSON с помощью POST-запросов, устанавливала постоянные WebSocket-соединения для потоковой передачи в реальном времени. Такое дублирование каналов гарантировало, что украденные учетные данные достигнут злоумышленников, даже если часть сетевой защиты жертвы сработает.

Эскалация атак с использованием ИИ

Вот что должно по-настоящему тревожить: эти атаки становятся умнее и происходят чаще. По данным Национального центра кибербезопасности Великобритании, количество кибератак с применением ИИ подскочило на 320% только за последний год. Мы наблюдаем не просто рост числа атак — мы являемся свидетелями того, как они адаптируются и эволюционируют в реальном времени.

Совсем недавно, 5 ноября 2025 года, исследователи безопасности сообщили о червях, которые используют большие языковые модели (LLM) для изменения собственного кода во время выполнения. Представьте себе вредоносное ПО, которое переписывает само себя, чтобы избежать обнаружения, и учится на каждой неудачной попытке. Мы становимся очевидцами появления по-настоящему полиморфных угроз, способных менять свою структуру при каждом запуске, что делает бесполезными традиционные методы обнаружения, основанные на сигнатурах. Как выразился один исследователь, «эпоха статичных вредоносных программ окончена; теперь мы имеем дело с ПО, которое думает».

Частота атак не просто растет — она растет экспоненциально. Ежедневно появляются новые варианты этих атак на цепочку поставок, каждый — чуть другой, чуть умнее. Учитывая, что 80% программ-вымогателей теперь используют ИИ, вопрос не в том, станете ли вы мишенью, а в том, когда это произойдет.

Сигнал к пробуждению

Самое пугающее в ShaiHulud и PhantomRaven — это их наглость. ShaiHulud создавал публичные репозитории, названные в честь себя. Создатели PhantomRaven публиковали пакеты с откровенно подозрительными названиями. Создается впечатление, что злоумышленники хотели, чтобы их обнаружили — возможно, чтобы послать сообщение: «Ваша защита настолько слаба, что нам даже не нужно скрываться».

Эта наглость наводит на мысль, что кто-то хотел, чтобы его работу заметили и обсудили. Возможно, кража учетных данных никогда не была главной целью. Возможно, главной задачей было продемонстрировать, насколько уязвимой стала вся экосистема.

Что это значит для вас

Если вы разработчик, то посыл очевиден: эпоха, когда безопасность была чужой проблемой, окончена. Ваш ноутбук — не просто инструмент для разработки, это потенциальная точка входа для атак, которые могут скомпрометировать всю вашу организацию и каждый ваш проект.

Нарушение безопасности менеджера паролей LastPass в 2022 году — отрезвляющий прецедент. Злоумышленники взломали LastPass не через сложную уязвимость нулевого дня. Они скомпрометировали домашний компьютер инженера-разработчика через трехлетнюю неисправную уязвимость в Plex Media Server, установили кейлоггер, перехватили мастер-пароль и MFA-токен инженера и просто вошли в корпоративное хранилище. И все потому, что один разработчик не обновил свое программное обеспечение.

Хорошая новость в том, что защита от этих атак не требует революционных изменений — только дисциплины и правильных инструментов. Начните с аудита своего компьютера на наличие секретных данных в открытом виде и переместите их в защищенные хранилища. Такие инструменты, как 1Password, теперь предлагают интеграцию с CLI, которая может подгружать секретные данные во время выполнения, не записывая их на диск.

Включите двухфакторную аутентификацию на каждой учетной записи разработчика.

Регулярно обновляйте свои инструменты. Помните уязвимость в React Native CLI с рейтингом серьезности 9.8? Она могла бы дать злоумышленникам полный контроль над компьютером любого разработчика в той же сети. 

Самое главное — привыкайте к образу мышления, в котором безопасность стоит на первом месте. Помните ту статистику о разработчиках, не считающих безопасность приоритетом? Пришло время стать частью решения, а не проблемы. Безопасность — это не опция, которую можно прикрутить потом. Это фундаментальный аспект качества программного обеспечения, такой же важный, как и работоспособность вашего кода.

Новая реальность

Мы наблюдаем фундаментальный сдвиг в том, как злоумышленники атакуют программные цепочки поставок. Теперь самой уязвимой мишенью стал не рабочий сервер, защищенный файрволами и системами мониторинга, а ноутбук разработчика — хранилище учетных данных, где работают десятки потенциально уязвимых инструментов. Чем мощнее и интегрированнее становятся среды разработки, тем более ценной добычей они оказываются.

ShaiHulud и PhantomRaven — это только начало. Поскольку злоумышленники уже используют в своем арсенале более совершенный ИИ и создают черви, способные к мутациям и адаптации, эскалация атак будет только нарастать. Вопрос уже не в том, будут ли новые атаки — они неизбежны. Вопрос в том, готовы ли вы к ним.

Ваш ноутбук стал эпицентром новой битвы за безопасность цепочек поставок ПО. Самое время начать защищать его как критически важную инфраструктуру — коей он и является.

Читайте также:

Читайте нас в Telegram, VK и Дзен


Перевод статьи Tim O’Brien: The Developer’s Laptop

Предыдущая статьяПравила безопасного завершения работы монолитного финтех-приложения