Два года назад пользователь с ником «shanhai666» загрузил девять вредоносных пакетов NuGet. Это положило начало сложной атаке на цепочку поставок программного обеспечения.
По данным компании Socket, специализирующейся на безопасности цепочек поставок, эти пакеты были загружены в общей сложности 9488 раз. Кроме того, установлены конкретные триггеры на август 2027 года и ноябрь 2028 года.
Член команды Socket, Куш Пандья, обнаружил злоумышленника, стоящего за кампанией по распространению в общей сложности 12 пакетов. Девять из этих пакетов содержат вредоносные программы, а три представляют собой полностью функциональные реализации, замаскированные под «достоверные»
Пандья считает, что хакер использовал легитимные библиотеки вместе со вредоносными, чтобы обманом заставить разработчиков установить пакеты, не обнаружив аномалий во время обычного тестирования.
«Законная функциональность маскирует вредоносный код объемом около 20 строк, скрытый в тысячах строк легитимного кода, и задерживает его обнаружение, поскольку даже после активации сбои проявляются как случайные ошибки, а не какmatic атаки», — написал он в отчете от 6 ноября.
9 скрытых угроз NuGet в легитимном коде
девять Выявленныеdentвредоносных используемых в приложениях .NET: Microsoft SQL Server, PostgreSQL и SQLite. Один из пакетов, Sharp7Extend, специально нацелен на промышленные ПЛК, используемые в производстве и автоматизации технологических процессов.
В ходе исследования компании Socket было высказано предположение, что база данных может быть уязвима для атаки двойного назначения на цепочку поставок, угрожающей разработке программного обеспечения и работе критической инфраструктуры.
Пандья назвал пакет Sharp7Extend самым опасным из вредоносных пакетов, поскольку это опечатка в названии легитимной библиотеки Sharp7, реализованной на .NET для связи с программируемыми логическими контроллерами Siemens S7.

Добавление слова «Extend» к доверенному имени может помочь вредоносному пакету «dent» установить код через инженеров по автоматизации, ищущих улучшения для Sharp7. Пакет включает в себя полную неизмененную библиотеку Sharp7 вместе со своей вредоносной полезной нагрузкой. Стандартная связь ПЛК может выглядеть так, как будто она работает должным образом во время тестирования, но встроенное вредоносное ПО замаскировано.
«Sharp7Extend нацелен на промышленные ПЛК и использует два механизма саботажа: немедленное случайное завершение процесса и скрытые сбои записи, которые начинаются через 30-90 минут после установки», — заявил исследователь в области безопасности.
Вредоносные пакеты используют методы расширения C# для добавления опасного кода в операции с базами данных и ПЛК без изменения исходного кода. Для пакетов баз данных к типам команд добавляется метод .Exec(), а Sharp7Extend добавляет метод .BeginTran() к объектам S7Client.
Расширения запускаютсяmaticкаждый раз, когда приложение выполняет действие ПЛК или запрос. После даты срабатывания вредоносная программа генерирует случайное число от 1 до 100.
Если число превысит 80, что с вероятностью 20% действительно произойдет, пакет немедленно завершит запущенный процесс с помощью метода Process.GetCurrentProcess().Kill(). Затем произойдет внезапное завершение работы без предупреждений или записей в журнале, которые могли бы показаться признаками нестабильности сети, аппаратных сбоев или других «не вызывающих тревогу» системных ошибок.
Sharp7Extend также реализует отложенное искажение данных при записи с помощью таймера, устанавливающего льготный период от 30 до 90 минут. После истечения льготного периода метод фильтрации ResFliter.fliter() начинает незаметно прерывать операции записи в 80% случаев.
К числу затронутых методов относятся WriteDBSingleByte, WriteDBSingleInt и WriteDBSingleDInt. Операции отображаются как успешные, хотя данные фактически не записываются в ПЛК.
Таймер установлен на период с августа 2027 года по ноябрь 2028 года
В отчете Socket Security говорится, что некоторые пакеты, ориентированные на базы данных и находящиеся на стыке этой кампании, включая MCDbRepository, планируется запустить 8 августа 2027 года. Пакеты SqlUnicornCore и SqlUnicornCoreTest, вероятно, начнут работу 29 ноября 2028 года.
«Такой поэтапный подход дает злоумышленнику больше времени для сбора жертв до того, как сработает вредоносное ПО с отложенной активацией, и в то же время немедленно нарушает работу систем промышленного управления», — пояснил Пандья.
В ходе расследования компании Socket было установлено, что название «shanhai666» и часть исходного кода имеют китайское происхождение.
В сентябре аналитики по кибербезопасности обнаружили код на серверах Microsoft Internet Information Services (IIS), который использовал уязвимости с 2003 года. Операция включала в себя вредоносные модули IIS, используемые для удаленного выполнения команд и мошенничества в сфере поисковой оптимизации (SEO).

