Главная
npm-гейт: 175 фейковых пакетов и фишинговая вечеринка Beamglea
Пока одни девелоперы спорят, какой фреймворк быстрее, другие превращают npm в площадку для фишингового карнавала. Исследователи обнаружили 175 вредоносных пакетов, которые маскируются под безобидные библиотеки и служат не для кода, а для кражи логинов. Кампания получила кодовое имя Beamglea — звучит почти мило, если не знать, что под ней скрывается масштабный фишинг, охвативший больше 135 компаний из промышленного, техно- и энергетического сектора по всему миру.
Общий счёт — 26 000 скачиваний. И хотя половина из них, по словам исследователя Kush Pandya из Socket, скорее всего, пришлась на сканеры и аналитиков, выглядит всё равно крипово: npm, по сути, стал невольной инфраструктурой для масштабного фишингового рейда.
Сценарий атаки — настоящий DevOps-триллер. В центре истории — скрипт под названием redirect_generator.py. Этот питоновский заводик штампует пакеты в стиле redirect-xxxxxx, где “xxxxxx” — рандомный набор букв и цифр. Каждый такой пакет снабжается кусочком кода, куда подмешиваются e-mail жертвы и кастомная фишинговая ссылка. Всё это выкладывается на npm, откуда через UNPKG CDN автоматически становится доступным по адресу вроде unpkg.com/redirect-xs13nr@1.0.0/beamglea.js.
Теперь магия. Злоумышленники создают HTML-файлы, которые притворяются счётами, техспеками или коммерческими предложениями — «только подпишите вот тут, сэр». При открытии в браузере эти документы грузят beamglea.js с UNPKG, и тот мгновенно редиректит пользователя на поддельную страницу входа Microsoft. Но с фишкой: скрипт уже подставляет адрес жертвы в поле логина, создавая ощущение, будто «всё как всегда».
💡 Психология в деле: человек видит своё мыло уже введённым и думает — ну, это же мой корпоративный вход, логично! — и без раздумий вбивает пароль. Всё. Креды уплыли на пиратский сервер, а жертва остаётся ждать письма «Вы успешно вошли» от службы безопасности, которой уже поздно что-то делать.
Но фокус Beamglea в том, что пакеты не делают ничего злонамеренного при установке. Если разработчик вдруг поставит такой npm-пакет, ничего не произойдёт. Всё зло кроется в том, как злоумышленники используют сам npm и UNPKG как бесплатный CDN-хостинг. Никаких взломов, никаких вирусов — просто изящный перехват доверия.
Socket нашла 630+ HTML-файлов, оформленных под документы, и подозревает, что рассылаются они старым добрым способом — через почту. Приложение называется Purchase_Order.html, вы его открываете — и сразу попадаете в мини-ад.
С технической стороны — это просто бомба замедленного действия:
-
npm выступает как легитимный каталог,
-
UNPKG — как бесплатный CDN,
-
Python-скрипт автоматизирует генерацию пакетов,
-
всё работает без взлома инфраструктуры,
-
а жертвы сами кликают туда, куда надо.
💬 Как сказал Pandya, npm здесь стал “не атакующим вектором, а невольной инфраструктурой”. Девелоперы видят чистый код — ни вредоносных зависимостей, ни пост-инсталлов, ни шеллов. Но стоит только открыть сгенерированный HTML — и ты уже в фишинговом туннеле.
И что особенно красиво (по-хакерски красиво, конечно) — злоумышленники автоматизировали всё до уровня фабрики: 175 пакетов из 9 аккаунтов, каждый под уникальный адрес жертвы. И всё это — без затрат на хостинг. Просто гениально и гадко одновременно.
Мораль такая: npm и CDN-сервисы становятся новым “оружием массового редиректа”. Злоумышленники нашли, как использовать открытые платформы для построения фишинговой экосистемы, которая выглядит легитимно и не вызывает подозрений у систем безопасности. А главное — бесплатна, надёжна и без логов в даркнете.
Так что если тебе на почту прилетит .html с надписью “Invoice”, не спеши открывать его в браузере. Может, это не заказ от клиента, а приглашение на фишинговую экскурсию от Beamglea.
npm давно стал джунглей, и теперь там не только токсичные зависимости, но и целые киберджунгли с ловушками. Так что держи свой package.json в чистоте, а свою почту — в паранойе.
Beamglea — не баг, а фича современной угрозы. И, похоже, теперь npm — это не только для node_modules, но и для node_malware.