Исследователи обнаружили вредоносное ПО для промышленного саботажа, появившееся за 5 лет до Stuxnet

киберсаботаж Stuxnet руткит Lua Sentinelone csoonline.com

Червь Stuxnet 2010 года установил прецедент киберсаботажа, но новое открытие SentinelOne указывает на то, что подобные операции велись еще в 2005 году. Исследователи обнаружили вредоносный фреймворк, нацеленный на инженерное ПО и повреждающий вычисления с плавающей запятой. — csoonline.com

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

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

Один из компонентов фреймворка, драйвер ядра под названием fast16.sys, кратко упоминается в утечке документов Shadow Brokers 2017 года, касающихся эксплойтов и инструментов, используемых киберподразделениями Агентства национальной безопасности США.

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

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

Вредоносное ПО использует более 100 правил для идентификации точных рабочих нагрузок, которые оно должно саботировать. Хотя исследователям неизвестно, что именно это были за рабочие нагрузки, на основе этих правил они сузили список целевых приложений до трех инженерных программ, одна из которых фигурирует в отчетах о ядерной программе Ирана, а другая широко используется в Китае для строительства и структурного проектирования.

Погоня за вредоносным ПО с поддержкой Lua

Lua — это язык программирования, появившийся в начале 1990-х годов и очень популярный в разработке игр и встраиваемых систем. Его главное преимущество в том, что он может быть встроен в существующие приложения на C и C++ в качестве скриптового движка.

В современном вредоносном ПО Lua используется для обфускации и доставки полезных нагрузок в виде скриптов, которые загружаются и выполняются встроенной виртуальной машиной Lua внутри основного загрузчика. Одной из первых злонамеренных групп, применивших эту технику, является Equation Group — APT-группа, которую часто связывают с командой Tailored Access Operations (TAO) АНБ.

«Мы хотели определить, возник ли этот стиль разработки из общего источника, поэтому мы решили проследить самое раннее сложное использование встроенного движка Lua во вредоносном ПО для Windows», — заявили исследователи.

Это привело к обнаружению файла под названием svcmgmt.exe — вредоносного исполняемого файла эпохи Windows 2000/XP, первоначально созданного в 2005 году. Файл представляет собой модульный двоичный файл службы, который использует зашифрованный байт-код Lua для большей части своей логики и включает две полезные нагрузки: файл под названием ConnotifyDLL и файл под названием fast16.sys.

Кроме того, svcmgmt.exe может выполнять дополнительные полезные нагрузки Lua, называемые «червячками» (wormlets), которые используются для распространения на другие системы. Например, один из идентифицированных червячков, SCM, пытается скопировать вредоносное ПО в сетевые ресурсы, а затем выполнить его как удаленную службу. Это делает svcmgmt.exe самым ранним задокументированным червем на Lua.

Необычный руткит, повреждающий вычисления с плавающей запятой

Полезная нагрузка fast16.sys еще интереснее, поскольку она загружается как драйвер файловой системы ядра, который может перехватывать и изменять исполняемый код при чтении с диска. Компоненты вредоносного ПО, устанавливающие себя в качестве драйверов ядра, называются руткитами, поскольку они предоставляют максимально возможные привилегии в системе.

В эпоху Windows XP, когда системные драйверы не требовали доверенных цифровых подписей для установки, руткиты были обычным явлением и использовались для сокрытия компонентов и активности вредоносной программы. Однако у fast16.sys очень специфическое назначение.

Драйвер отслеживает выполнение файлов .exe, скомпилированных с помощью компилятора Intel C/C++, внедряет дополнительные секции в их заголовки, а затем применяет сложный набор из 101 правила сопоставления и замены байт-кода.

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

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

«Патч FPU в fast16.sys был написан для контролируемого повреждения этих рутин, что приводило к получению альтернативных результатов», — заявили исследователи. «Это выводит fast16 из области общего шпионского инструментария и переводит в категорию стратегического саботажа. Внося небольшие, но систематические ошибки в расчеты реального мира, фреймворк мог подорвать или замедлить программы научных исследований, со временем деградировать спроектированные системы или даже способствовать катастрофическому ущербу».

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

Целью стало инженерное моделирование

SentinelOne выявила три программных продукта, содержащих код, соответствующий патчинговому движку. Один из них, LS-DYNA версии 970, представляет собой пакет программного обеспечения для инженерного моделирования, который использует высокоточные вычисления для определения поведения материалов в экстремальных условиях, таких как высокоскоростные удары, столкновения, взрывы, формовка металлов и так далее.

Программное обеспечение использовалось во многих отраслях, включая автомобильную, аэрокосмическую, оборонную и производственную, но также упоминается в публичных отчетах, связанных с испытаниями боеголовок Ираном в рамках его программы AMAD по разработке ядерного оружия.

Другой вероятной целью, известной как Программное обеспечение для практического структурного проектирования и строительства (PKPM), представляет собой пакет САПР, широко используемый в гражданском строительстве и проектировании зданий в Китае. Программное обеспечение может моделировать расчеты прочности бетонных балок и колонн, обеспечивая сейсмический анализ, анализ ветровой нагрузки и анализ нагрузки для высотных зданий.

Третьей потенциальной целью, соответствующей правилам, стала Modelo Hidrodinâmico (MOHID) — система моделирования воды с открытым исходным кодом, разработанная в Высшем техническом институте в Лиссабоне, Португалия. Программное обеспечение охватывает гидродинамику, моделирование качества воды, перенос наносов, моделирование разливов нефти и лагранжево отслеживание частиц.

Последствия

Исследователи SentinelOne не смогли точно сказать, какие рабочие процессы из этих трех возможных программ были конкретно нацелены вредоносным ПО, но вывод очевиден: стратегический промышленный саботаж с использованием вредоносного ПО осуществлялся субъектами, действующими от имени государств, еще 20 лет назад, до того как Stuxnet был использован для повреждения центрифуг для обогащения урана на иранском ядерном объекте в Натанзе путем внедрения вредоносного кода в программируемые логические контроллеры.

«Если бы мне пришлось гадать, я думаю, целью было моделирование физики конкретных материалов, а имплантат предназначался для искажения их характеристических кривых (например, напряжение-деформация)», — написал независимый исследователь Рубен Сантамарта, который также анализировал код патчинга FPU fast16, в посте в LinkedIn. «Например, это заставило бы инженеров думать, что что-то более устойчиво, чем ожидалось, тогда как на самом деле оно выйдет из строя раньше, чем ожидалось… как в случае со Stuxnet».

Сантамарта, который исследовал атаки по принципу proof-of-concept на устройства и программное обеспечение, связанные с ядерной тематикой, заявил, что обнаружение в реальном мире чего-то, потенциально способного вызвать физические сбои путем саботажа на этапе проектирования, представляет собой смену парадигмы.

«Дело в том, что это произошло 20 лет назад, поэтому было бы интересно пересмотреть некоторые сбои в определенных странах за эти годы, долго смотреть на монитор и просто размышлять о возможностях», — написал он.

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

Похожие новости: