Исследователи из компании Socket обнаружили в репозитории NuGet девять вредоносных пакетов, которые содержат код с отложенной активацией. Малварь запрограммирована на срабатывание в период с августа 2027 по ноябрь 2028 года и нацелена на базы данных и ПЛК Siemens.

Все девять пакетов были опубликованы в 2023-2024 годах пользователем shanhai666:

  • MyDbRepository (последнее обновление: 13 мая 2023 года);
  • MCDbRepository (последнее обновление: 5 июня 2024 года);
  • Sharp7Extend (последнее обновление: 14 августа 2024 года);
  • SqlDbRepository (последнее обновление: 24 октября 2024 года);
  • SqlRepository (последнее обновление: 25 октября 2024 года);
  • SqlUnicornCoreTest (последнее обновление: 26 октября 2024 года);
  • SqlUnicornCore (последнее обновление: 26 октября 2024 года);
  • Core (последнее обновление: 27 октября 2024 года);
  • SqlLiteRepository (последнее обновление: 28 октября 2024 года).

При это известно, что суммарно злоумышленник опубликовал 12 пакетов, но оставшиеся не имели каких-либо вредоносных функций. К моменту обнаружения вредоносные пакеты успели скачать почти 9500 раз. В настоящее время все пакеты удалены из NuGet, однако неизвестно, сколько проектов оказались заражены.

На первый взгляд пакеты выглядели абсолютно безвредными: 99% кода относилось к легитимной функциональности, и только фрагмент из 20 строк имел вредоносную логику.

Как объясняют исследователи, малварь была нацелена на базы данных трех основных поставщиков в .NET-экосистеме: SQL Server, PostgreSQL и SQLite. Однако наиболее опасным оказался пакет Sharp7Extend, нацеленный на пользователей легитимной библиотеки Sharp7, которая используется для Ethernet-связи с программируемыми логическими контроллерами (ПЛК) Siemens.

«Добавляя “Extend” к доверенному названию Sharp7, злоумышленники ориентировались на разработчиков, ищущих расширения или улучшения Sharp7», — говорят эксперты.

Малварь использует методы расширения C# и внедряется в каждую операцию с БД или ПЛК. При каждом обращении код проверяет текущую системную дату и сравнивает ее с жестко закодированными триггерными датами в диапазоне от 8 августа 2027 до 29 ноября 2028.

Если обнаружена подходящая дата, запускается вероятностный механизм: код генерирует случайное число от 1 до 100, и если оно больше 80 (шанс 20%), вызывается команда принудительного завершения процесса через Process.GetCurrentProcess().Kill(). Для ПЛК-клиентов это означает мгновенную остановку работы.

Пакет Sharp7Extend использует противоположный подход, немедленно прерывая связь с ПЛК в 20% случаев. Этот вредоносный механизм работает до 6 июня 2028 года.

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

Во втором случае код создает фильтр для внутренних операций ПЛК и устанавливает задержку выполнения от 30 до 90 минут. После этого операции записи в ПЛК, проходящие через фильтр, с вероятностью 80% повреждаются.

Исследователи подчеркивают, что последствия срабатывания такой «бомбы замедленного действия» могут быть катастрофическими.

«Сочетание немедленного случайного завершения процесса (через BeginTran()) и отложенного повреждения данных при записи (через ResFliter) создает сложную многоуровневую атаку, которая эволюционирует со временем», — пишут специалисты.

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

«Эта кампания демонстрирует сложные методы, редко используемые при атаках на цепочки поставок а NuGet. К 2027–2028 годам, когда сработает вредоносное ПО для баз данных, разработчики, установившие эти пакеты в 2024 году, уже перейдут в другие проекты или другие компании, а двадцатипроцентная вероятность выполнения маскирует атаки под случайные сбои и отказы оборудования, — заключают исследователи. — Это делает реагирование на инциденты и проведение расследования практически невозможными: организации не смогут отследить вредоносное ПО до точки его внедрения, определить, кто установил скомпрометированную зависимость, и воссоздать четкую хронологию компрометации, что фактически уничтожает все следы атаки».

Socket призывает организации немедленно проверить свои проекты на наличие перечисленных выше пакетов. Если хотя бы один из них найден, следует считать систему скомпрометированной.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии