Как одна кириллическая буква и 11 миллионов загрузок позволили украсть криптовалюту?

Атака на цепочку поставок, нацеленная на репозиторий пакетов NuGet, была обнаружена компанией Socket. Злоумышленники опубликовали вредоносную библиотеку под названием Netherеum.All, которая имитировала популярную.NET-платформу для интеграции с Ethereum — Nethereum. Основной целью атаки была кража ключей от криптовалютных кошельков и других конфиденциальных данных пользователей.
Как одна кириллическая буква и 11 миллионов загрузок позволили украсть криптовалюту?
Изображение носит иллюстративный характер

Вредоносный пакет был загружен 16 октября 2025 года пользователем с ником "nethereumgroup". Спустя всего четыре дня, 20 октября 2025 года, он был удален администрацией NuGet за нарушение условий использования. За короткий срок своего существования пакет успел продемонстрировать несколько изощренных методов обмана, направленных на усыпление бдительности разработчиков.

Ключевой уловкой стал омоглифический трюк: в названии пакета Netherеum.All последняя латинская буква "e" была заменена на визуально неотличимую кириллическую «е» (U+0435). При беглом просмотре или копировании названия такая подмена практически незаметна, что позволяет вредоносному пакету маскироваться под легитимный.

Для придания пакету ложной популярности и авторитетности злоумышленники искусственно завысили счетчик его загрузок до 11,7 миллиона. Такой показатель для новой библиотеки был охарактеризован как «огромный красный флаг». Исследователь безопасности Кирилл Бойченко объяснил, что подобная накрутка достигается путем публикации множества версий пакета и последующей автоматизации их скачивания с использованием v3 flat-container.

Технически для накрутки счетчика использовались циклические команды, такие как nuget.exe install и dotnet restore с опцией no-cache, запускаемые с большого количества облачных хостов. Чтобы обходить кэширование и системы защиты, скрипты постоянно меняли IP-адреса и user-агенты, а также распараллеливали запросы для достижения максимального объема загрузок.

Вредоносный код был спрятан внутри функции EIP70221TransactionService.Shuffle. Эта функция декодировала строку, зашифрованную с помощью XOR, чтобы получить адрес командного сервера (C2): solananetworkinstance[.]info/api/gads. После активации полезная нагрузка приступала к сбору и отправке на этот сервер конфиденциальных данных жертвы.

Целью злоумышленников были данные, связанные с криптовалютными кошельками. Пакет был спроектирован для поиска и кражи мнемонических фраз, приватных ключей и данных из файлов хранилищ ключей (keystore), что давало атакующим полный доступ к цифровым активам жертв.

Данный инцидент не был единичным. Тот же злоумышленник в начале октября 2025 года загрузил другой вредоносный пакет под названием "NethereumNet", который содержал идентичную функциональность и также был оперативно удален командой безопасности NuGet. Это указывает на систематические попытки компрометации разработчиков в.NET-экосистеме.

Проблема использования омоглифов в именах пакетов на NuGet не нова. Еще в июле 2024 года организация ReversingLabs опубликовала отчет, в котором задокументировала несколько других пакетов в этом репозитории, использовавших аналогичные методы визуальной подмены для маскировки под популярные легитимные библиотеки.

Коренная причина уязвимости кроется в политике именования пакетов NuGet. Платформа налагает минимальные ограничения, запрещая лишь пробелы и небезопасные для URL символы, но при этом не требует использования символов исключительно из набора ASCII. Это кардинально отличает NuGet от других крупных репозиториев.

Такие платформы, как PyPI, npm, Maven Central, Go Module и RubyGems, применяют более строгие правила именования. Они ограничивают использование символов набором ASCII, что эффективно предотвращает атаки с применением омоглифов и делает подобные методы обмана невозможными.

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


Новое на сайте

20327Кости прерий: как истребление бизонов породило целую индустрию — и сама себя же уничтожила 20326Кто и зачем взламывает серверы Ollama и ComfyUI ради ключей от AWS? 20325Как злоумышленники спрятали командный сервер внутри блокчейна и почему его невозможно... 20324Брюссель заставляет Android делиться секретами с чужими ИИ-помощниками 20323WordPress: как два бага слились в одну критическую дыру, которую назвали wp2shell 20322Как китайские хакеры обманули DigiCert и украли сертификаты для подписи кода? 20321Что скрывается за уязвимостью, которую агентство США внесло в список активно используемых... 20320Автономные системы наступают быстрее, чем инфраструктура для управления ими: кто выиграет... 20319Почему в OpenSSL нашли дыру, съедающую память серверов, но не дали ей даже номер CVE? 20317SonicWall SMA 1000: как два бага превратили VPN-шлюз в бэкдор для атакующих 20316Может ли уязвимость в клиенте Zoom для Windows открыть доступ к чужому аккаунту без... 20315TELEPUZ: новый вредонос на C, который научился прятаться в Telegram, Steam и блокчейне... 20314Дома из дёрна: как исландцы триста лет прятались от холода под слоем земли и травы 20313Как один токен от чужого сервиса мог впустить злоумышленника в чужой аккаунт n8n?
Ссылка