Лишняя буква в названии пакета NuGet пять лет крала криптокошельки 💰 Вредоносный пакет Tracer.Fody.NLog в экосистеме .NET несколько лет маскировался под популярную библиотеку трассировки Tracer.Fody. Он набрал около двух тысяч загрузок и крал данные кошельков криптовалюты Stratis. Поддельный пакет отличался от оригинала лишь одной буквой в имени учётной записи издателя (csnemess вместо csnemes), а в коде использовались кириллические символы, визуально неотличимые от латинских, что затрудняло даже ручную проверку. После подключения к проекту пакет незаметно встраивался в универсальный метод проверки аргументов. Как только в приложении появлялся объект с WalletPassword, то запускался фоновый процесс, который сканировал папки Stratis, находил файлы .wallet.json, извлекал их содержимое вместе с паролем и отправлял на сервер злоумышленников. Все ошибки подавлялись, поэтому работа приложения не нарушалась. В 2023 году та же инфраструктура использовалась для пакета Cleary.AsyncExtensions, который выдавал себя за разработки известного автора Стивена Клири и крал мнемонические фразы криптокошельков. Получается, что это системная кампания, и нацелена она на цепочки поставок .NET через подмену доверенных служебных библиотек. Типичный 🥸 Сисадмин