Доверяй, но проверяй (орфографию). Лишняя буква в названии пакета стоила разработчикам всех сбережений

leer en español

Доверяй, но проверяй (орфографию). Лишняя буква в названии пакета стоила разработчикам всех сбережений

Визуально обнаружить ловушку было крайне сложно даже при ручной проверке.

image

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

Речь идёт о пакете Tracer.Fody.NLog, который имитирует известную библиотеку Tracer.Fody и её автора. Его выявила команда Socket Threat Research Team. На странице NuGet он выглядел как обычное расширение для интеграции трассировки с NLog, однако внутри содержал код для хищения данных Stratis-кошельков. Встроенная библиотека сканировала стандартный каталог Stratis, находила файлы .wallet.json, извлекала их содержимое и вместе с паролем отправляла на сервер злоумышленников.

Для маскировки использовались сразу несколько приёмов. Название пакета отличалось от оригинала минимально, а учётная запись издателя csnemess отличалась от настоящего имени сопровождающего csnemes всего одной буквой. Дополнительно в коде применялись гомоглифы — кириллические символы, визуально неотличимые от латинских. Из-за этого имена типов и атрибутов выглядели корректно, но на уровне Unicode были другими, что затрудняло ручную проверку.

После подключения вредоносного пакета к проекту он незаметно встраивался в универсальный вспомогательный метод проверки аргументов. Как только в приложении появлялся объект со свойством WalletPassword, запускалась фоновая процедура, которая без уведомлений и журналирования отправляла данные кошелька и пароль на удалённый сервер. Все ошибки при этом подавлялись, поэтому работа приложения внешне не нарушалась.

Tracer.Fody.NLog был опубликован ещё в 2020 году и за это время набрал около двух тысяч загрузок. По оценке авторов отчёта, за счёт длительного присутствия и убедительной маскировки он мог попасть в частные инструменты, рабочие станции разработчиков и конвейеры сборки, связанные с проектами на базе Stratis. На момент обнаружения пакет всё ещё оставался доступным в NuGet, о чём было сообщено службе безопасности платформы.

Этот случай оказался не единичным. В 2023 году аналогичная инфраструктура использовалась для распространения пакета Cleary.AsyncExtensions, который выдавал себя за разработки Стивена Клири и перехватывал мнемонические фразы и пароли, отправляя их на тот же IP-адрес. Это указывает на системную кампанию, ориентированную на цепочки поставок .NET и использование доверенных служебных библиотек.

Специалисты отмечают, что особую опасность представляют инструменты трассировки, логирования и переписывания кода на этапе сборки, поскольку они широко применяются и имеют доступ к чувствительным данным. Случай с Tracer.Fody.NLog показывает, что даже давно опубликованные и на первый взгляд безобидные зависимости могут оставаться источником угрозы годами.