NPM-пакеты, использующие тайпсквоттинг, крадут данные из сотен приложений

NPM-пакеты, использующие тайпсквоттинг, крадут данные из сотен приложений

NPM-пакеты, использующие тайпсквоттинг, крадут данные из сотен приложений

Кампания, нацеленная на цепочку поставок NPM, использовала десятки вредоносных модулей, в которых содержался обфусцированный JavaScript, для компрометации веб-сайтов и десктопных приложений.

Об атаках, стартовавших аж в декабре 2021 года, рассказали исследователи из ReversingLabs. Организаторами этой кампании стали участники киберпреступной группировки IconBurst. Злоумышленники использовали тайпсквоттинг для заражения разработчиков, которые искали популярные NPM-пакеты вроде umbrellajs и ionic.io.

Если девелопер «клевал» на похожее имя, ему доставались вредоносные пакеты, предназначенные для кражи данных из встроенных форм — например, тех, что используются для входа в учётную запись.

Один из таких злонамеренных пакетов — icon-package, который скачали 17 тыс. раз, был специально разработан для извлечения вводимых данных и отправки их на несколько доменов, находящихся под контролем киберпреступников.

 

«IconBurst полагается на технику, известную как тайпсквоттинг: через публичные репозитории злоумышленники предлагают пакеты, чьи имена практически идентичны легитимным (за исключением небольших опечаток)», — пишут специалисты ReversingLabs.

«Более того, общие черты фигурирующих в кампании доменов, на которые отправляются скомпрометированные данные, подтверждают, что все фейковые модули находятся под контролем одних и тех же киберпреступников».

ReversingLabs сообщила о своих находках команде безопасности NPM 1 июля 2022 года. Тем не менее некоторые из пакетов IconBurst до сих пор доступны для скачивания. Со списком таких пакетов можно ознакомиться по этой ссылке.

AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

Уязвимость в OpenSSH: имена пользователей позволяют выполнить код

Исследователь безопасности Дэвид Лидбитер обнаружил уязвимость в OpenSSH — CVE-2025-61984 — которая демонстрирует: даже мелкие особенности парсинга команд и поведения shell могут привести к удалённому выполнению кода.

Суть проблемы проста и неприятна: в OpenSSH (до версии 10.1) контрол-символы в именах пользователей, полученных из ненадёжных источников, могли не отфильтровываться.

Когда такое «имя» подставлялось в ProxyCommand (через переменную %r), OpenSSH формировал строку для exec, которую запускал через shell. Если в этой строке оказывались символы вроде $[ и символы новой строки, некоторые оболочки (например, bash) могли интерпретировать это так, что первая команда аварийно завершается, а затем выполняется то, что идёт после — то есть возможна инъекция команды.

Эксплуатация требует специфической связки: конфигурация, использующая ProxyCommand с %r, уязвимая оболочка и «входной» источник имени пользователя, который злоумышленник контролирует. Практический пример — злоумышленный .gitmodules, где в URL подставляют строку вроде:

[submodule "foo"]
  path = foo
  url = "$[+]\nsource poc.sh\n@foo.example.com:foo"

Если SSH-конфиг содержит строку вроде

ProxyCommand some-command %r@%h:%p

и вы запускаете git clone --recursive, то в подходящих условиях может выполниться source poc.sh — до установления самого соединения.

Важно понимать: условия для успешной атаки нишевые, но реальны — инструментальная цепочка Git → SSH → shell и автоматизация (CI/CD) дают атакующему много точек входа. Проблема усугубляется тем, что OpenSSH фильтровал многие метасимволы, но пропустил $ и [ — и это создало неожиданный вектор.

Исправление уже включено в OpenSSH 10.1: разработчики начали проверять и запрещать управляющие символы в именах пользователей через iscntrl() в ssh.c. То есть долгосрочное решение — обновиться до 10.1 или новее.

Если обновиться сразу нельзя, Лидбитер предлагает два практических временных шага. Во-первых, брать имя пользователя в одинарные кавычки в ProxyCommand, чтобы предотвратить подстановку:

ProxyCommand some-command '%r@%h:%p'

(Обратите внимание: одинарные кавычки нужны именно потому, что двойные не защитят от $[ — оболочка всё ещё будет их обрабатывать.) Во-вторых, по умолчанию отключить SSH-подмодули в Git и не позволять автоматические URL-хендлеры, которые могут передавать непроверенные SSH-команды:

git config --global protocol.ssh.allow user

Главный вывод — не полагаться на то, что «маленький» символ или строка не принесут беды: при передаче входа от ненадёжных источников через несколько инструментов даже неочевидная каверза в парсинге может стать критической. Рекомендуется как можно скорее обновить OpenSSH или применить временные защитные меры в конфигурациях ProxyCommand и политиках Git.

AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

RSS: Новости на портале Anti-Malware.ru