Новая атака на цепочку поставок: десятки пакетов PyPI грузят инфостилер

Новая атака на цепочку поставок: десятки пакетов PyPI грузят инфостилер

Новая атака на цепочку поставок: десятки пакетов PyPI грузят инфостилер

Исследователи из стартапа Phylum обнаружили в каталоге PyPI около 30 пакетов, доставляющих инфостилер W4SP. По состоянию на 1 ноября вредоносный софт суммарно собрал свыше 5700 загрузок.

Вредоносные пакеты в рамках текущей атаки на цепочку поставок начали плодиться на PyPI с середины прошлого месяца; 22 октября был зафиксирован мощный вброс. Несколько находок с теми же IoC датировались июлем — по всей видимости, проба пера.

Анализ показал, что злоумышленники просто копируют популярные библиотеки и внедряют в базовый код инструкцию import. В большинстве случаев этот сильно обфусцированный фрагмент вставляется в setup.py или the __init__.py.

Имена вредоносных пакетов выглядят вполне невинно, иногда используется тайпсквоттинг. Список опасных находок (29 позиций) приведен в блог-записи Phylum; все перечисленные в нем проекты загружают трояна W4SP.

Два похожих пакета — pystile и threadings — недавно нашел на PyPI программист и исследователь Хауке Любберс (Hauke Lübbers). Оба содержат вредоносный код GyruzPIP, созданный на основе opensource-проекта EvilPIP (выложен на PyPI с пометкой «использовать только в образовательных целях»).

Для тестирования зловреда вирусописатели создали два репозитория на GitHub. Разбор кода GyruzPIP, проведенный в BleepingComputer, выявил функции инфостилера, такие как кража токенов Discord, паролей и куки из Chrome, вывод краденых данных на удаленный сервер через вебхук Discord.

Подобные находки на PyPI нередки, а в минувшем августе наблюдалось большое разнообразие. Исследователи обнаружили в открытом репозитории Python-пакеты, доставляющие бэкдоры, инфостилеры и даже DDoS-бот.

Вышла утилита RKN Block Checker для диагностики блокировок

Разработчик Дмитрий Виноградов представил утилиту RKN Block Checker с открытым исходным кодом. Она помогает понять, почему конкретный сайт не открывается: это обычная сетевая проблема или блокировка на стороне провайдера / регуляторной инфраструктуры.

Проект написан на Python и опубликован под лицензией MIT. Утилита работает из командной строки и проверяет соединение по цепочке DNS → TCP → TLS → HTTP.

Идея простая: не просто выдать вердикт, что сайт недоступен, а показать, на каком именно уровне всё сломалось. Например, если системный DNS не даёт нормальный ответ, а Cloudflare DoH возвращает корректный адрес, это может указывать на DNS-подмену. Если TCP-соединение на 443-й порт сбрасывается, речь может идти о блокировке на уровне IP.

Если TCP проходит, но соединение рвётся на TLS-рукопожатии с SNI, это уже похоже на работу DPI / ТСПУ. А если сайт открывается, но вместо страницы приходит заглушка провайдера или код 451, утилита фиксирует и такой сценарий.

 

Автор отдельно подчёркивает, что смысл RKN Block Checker не в том, чтобы заменить браузер. Браузер и так сообщает, что сайт не открылся. Здесь задача другая — разложить проблему по слоям и дать пользователю более понятную картину, где именно произошёл сбой и на что это похоже.

Утилита сравнивает ответы системного DNS и DNS over HTTPS через Cloudflare, проверяет обычное TCP-подключение, запускает TLS-handshake с SNI целевого домена и затем делает HTTP-запрос. Вердикт выставляется по первому уровню, на котором возникла ошибка.

 

У проекта есть и ограничения. Пока поддерживается только IPv4. Списки целей жёстко заданы в коде и включают около 20 сайтов на категорию, поэтому инструмент не поймает все частные случаи. Кроме того, это разовая проверка без повторов и долгосрочного мониторинга, хотя JSON-вывод можно использовать в cron для регулярных запусков.

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