Основные сведения

Недавно американская компания по информационной безопасности Мандиант откликнулась на инцидент в инфраструктурной организации, где злоумышленник развернул вредоносное ПО, предназначенное для управления системами промышленной безопасности. Целевые системы обеспечивали возможности аварийного отключения для производственных процессов. Мы с уверенностью оцениваем события – злоумышленник развивал способность наносить физический урон и самопроизвольную остановку операции. Это вредоносное ПО, под названием TRITON, представляет собой инфраструктуру атаки, созданную для взаимодействия с управляющими объектами инструментальной системой безопасности Triconex (SIS). Мы не приписывали данный инцидент злоумышленнику, однако считаем, что деятельность согласуется с государством, которое готовится к нападению.

TRITON является одним из ограниченного числа общедоступных семейств вредоносных программ, предназначенных для промышленных систем управления (ICS). Он имеет родственную связь с вирусом Stuxnet, который использовался против Ирана в 2010 году и атака Industroyer, которая, по нашему мнению, была развернута группировкой Sandworm против Украины в 2016 году. TRITON имеет сходство с этими атаками, по той причине, что внедрение может помешать механизмам безопасности выполнять свою предполагаемую функцию, что приводит к физическим последствиям.

 

Семейство вредоносных программ

 

Основные модули

 

Описание

 

 

 

 

Triton

 

trilog.exe

Основные исполняемые файлы library.zip
 

 

library.zip

Пользовательская библиотечный комплект связи для взаимодействия с контроллерами Triconex.
Таблица 1: Описание вредоносного кода TRITON

Краткое резюме инцидента

Злоумышленник получил удаленный доступ к рабочей станции SIS и развернул структуру атаки TRITON для перепрограммирования контроллеров SIS. Во время инцидента некоторые управляющие объекты SIS вошли в состояние безопасности, которое автоматически отключило производственный процесс и послужило толчком для владельца активов начать расследование. Исследование показало, что управляющие объекты SIS инициировали безопасное завершение работы, когда код приложения между резервными процессорами не прошел проверку, в результате чего появляется сообщение об ошибке диагностики MP.

Мы с уверенностью можем заявить, что злоумышленник непреднамеренно останавливает операции, развивая способность причинять физическое повреждение по следующим причинам:

  • Изменение SIS может помешать правильному функционированию, увеличивая вероятность сбоя, что может привести к физическим последствиям.
  • вирус TRITON использовался для изменения памяти приложений на SIS-контроллерах в среде, которая могла дать сбой в проверке.
  • Сбой происходил в течение промежутка времени, когда использовался вирус TRITON.
  • Вполне вероятно, что существующие или внешние условия, в отдельности, вызвали ошибку во время происшествия.

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

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

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

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

Информация об управлении техническим процессом и инструментальной системой безопасности 

Рисунок 1: Ориентирная структура ICS

Современное управление технологическим процессом и системами автоматизации основаны на различных сложных системах управления и функциях безопасности. Эти системы и функции часто называются Industrial Control Systems (ICS) или Operational Technology (OT).

Автоматизированная система управления (DCS) предоставляет человеку-оператору возможность удаленного мониторинга и контроля промышленного процесса. Это компьютеризированная система управления, состоящая из компьютеров, программных приложений и контроллеров. Инженерная рабочая станция – это компьютер, используемый для конфигурирования, обслуживания и диагностики приложений системы управления и другого оборудования системы управления.

SIS – это система автономного управления, которая независимо отслеживает статус контролируемого процесса. Если процедура превышает параметры, которые определяют опасное состояние, SIS пытается вернуть процесс в безопасное состояние или автоматически выполняет безопасное завершение процесса. Если SIS и DCS не работают, конечный рубеж защиты – это проект промышленного объекта, который включает в себя механическую защиту оборудования (например, разрывные диски), физические аварийные сигналы, процедуры аварийного реагирования и другие механизмы для смягчения опасных ситуаций.

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

Модель угроз безопасности и сценарии атаки

Рисунок 2: Временные соотношения между киберзащитой и безопасностью

Жизненный цикл атаки для разрушительных воздействий против ICS аналогичен другим типам кибератак, с несколькими ключевыми различиями. Во-первых, миссия злоумышленника заключается в том, чтобы нарушить операционный процесс, а не украсть данные. Во-вторых, вредитель должен был произвести исследования ОТ и иметь достаточные специализированные инженерные знания, чтобы понять контролируемый промышленный процесс и успешно управлять им.

На рисунке 2 представлена ​​взаимосвязь между киберзащитой и элементами управления безопасностью в среде управления процессом. Даже если меры киберзащиты не сработали как надо, система обеспечения защиты предназначена для предотвращения физического ущерба. Чтобы максимизировать физическое воздействие, злоумышленник также должен был обойти контроль безопасности.

В приведенной ниже модели угрозы SIS представлены некоторые из доступных возможностей злоумышленнику, который успешно скомпрометировал SIS.

Вариант атаки 1: использовать SIS для завершения процесса

  • Злоумышленник может перепрограммировать логические функции SIS, чтобы заставить его отключить и завершить процесс, который на самом деле находится в безопасном состоянии. Другими словами, вызвать ложное срабатывание.
  • Последствия: финансовые потери из-за простоя процесса и сложной процедуры запуска установки после завершения работы.

Вариант атаки 2: перепрограммировать SIS так, чтобы допустить ненадежное состояние

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

Вариант атаки 3: перепрограммировать SIS так, чтобы обеспечить небезопасное состояние – при использовании DCS для создания ненадежного состояния или опасности

  • Злоумышленник может манипулировать процессом в небезопасном состоянии из DCS, не позволяя SIS функционировать надлежащим образом.
  • Последствия: воздействие на безопасность человека, окружающую среду или повреждение оборудования, степень которого зависит от физических ограничений процесса и конструкции установки.

Подробное рассмотрение намерений злоумышленника

Мы с уверенностью можем утверждать, что долгосрочная цель злоумышленника заключалась в том, чтобы развить способность вызывать физические изменения. Мы берем за основу тот факт, что злоумышленник вначале получил надежную опору на DCS и мог разработать возможность манипулировать процессом или отключать оборудование, но вместо этого пошел на компромисс в системе SIS. Подвергая риску как системы DCS, так и SIS позволило бы злоумышленнику разработать и провернуть атаку, которая привела бы к максимальному ущербу, допущенному физическими и механическими мерами безопасности.

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

Стоит отметить, что несколько раз мы наблюдали проявления долгосрочных вторжений в ICS, которые в конечном итоге не использовались для нарушения или отключения операций. Например, российские операторы, такие как группировка Sandworm Team, компрометировали Western ICS в течение долгих лет,  при этом не вызывая сбоев.

Статистика возможностей вредоносных программ

Хакерское программное средство TRITON был разработан с рядом функций, включая возможность чтения и записи программ, чтения и записи отдельных функций и запроса состояния контроллера SIS. Однако, только некоторые из этих возможностей были задействованы на примере trilog.exe (злоумышленник не использовал все возможности развернутого исследования вируса TRITON).

Вредоносная программа TRITON содержала возможность связываться с контроллерами SIS Triconex (например, отправлять определенные команды, останавливать или считывать содержимое своей памяти) и дистанционно перепрограммировать их с помощью определенной пользователем нагрузки. Образец вируса TRITON, обработанный компанией Mandiant, добавил в таблицу выполнения контроллера Triconex программу, предоставленную злоумышленником. Этот образец оставил программы на месте, ожидая, что управляющий объект продолжит работу без сбоя или ошибки. Если управление вышло из строя, TRITON попытается вернуть его в рабочее состояние. А если управление не восстановилось в течение определенного временного промежутка, этот образец заменит вредоносную программу недействительными данными, чтобы замести свои следы.

Рекомендации

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

  • В тех случаях, когда это технически осуществимо, изолируйте сети систем безопасности от сетей управления технологическими процессами и информационных систем. Инженерные рабочие станции, способные программировать управляющие объекты SIS, не должны иметь двойных подключений к любой другой системе управления или информационной системе DCS.
  • Используйте аппаратные функции, которые обеспечивают физическое управление возможностью программирования управляющих объектов безопасности. Обычно они принимают форму переключателя, управляемого физическим ключом. На управляющих объектах Triconex ключи не должны оставаться в режиме ПРОГРАММА, кроме как во время запланированных программных событий.
  • Внедрите процедуры управления изменениями для изменения позиции ключа. Регулярно проверяйте текущее состояние ключа.
  • Используйте однонаправленный шлюз, а не двунаправленные сетевые подключения для любых приложений, которые зависят от данных, предоставленных SIS.
  • Внедрите строгий контроль доступа и ведение списков разрешенных приложений на любых конечных точках сервера или рабочей станции, которые могут попасть в систему SIS через TCP / IP.
  • Отслеживайте сетевой трафик ICS для неожиданных потоков информации и других аномальных действий.

Рисунок 3: Переключатель ключа Triconex

Примечание: Технический анализ

Рисунок 4: Конфигурация вируса TRITON и вариант моделирования атаки.

TRITON был развернут на APM разработчика SIS, работающей под управлением операционной системы Microsoft Windows. Вредоносная программа была названа маскировкой под законное приложение Triconex Trilog. Это приложение используется для просмотра журналов и является частью пакета приложений TriStation. Вредоносная программа была поставлена ​​как скомпилированный скрипт Py2EXE, зависящий от zip-файла, который содержал стандартный перевод строки Python, перевод строки с открытым исходным кодом, а также разработанную хакерами атакующую платформу Triconex для взаимодействия с управляющими объектами Triconex. Наряду с исполняемым файлом в качестве полезной нагрузки управления были задействованы два двоичных файла, inject.bin (код вредоносной функции) и imain.bin (логика вредоносного управления) . Эти имена файлов были жестко закодированы в скомпилированном скрипте python Py2EXE.

Trilog.exe взял один вариант из командной строки, который был единственным IP-адресом целевого устройства Triconex. Он не использовал возможности перевода строки TRITON для обнаружения устройств Triconex, вместо этого работающая копия программы trilog.exe должна была задействоваться отдельно для каждого целевого управляющего объекта в среде. После запуска trilog.exe проверил состояние управляющего объекта, затем считал информацию о конфигурации, предоставленную протоколом TriStation. Если управляющий объект находился в запущенном состоянии, trilog.exe закодировал два файла полезной нагрузки inject.bin и imain.bin и передал их в базы, которые будут добавлены в память программы управляющего объекта и таблицу выполнения.

После того как файлы полезной нагрузки были добавлены в память контроллера Triconex, сценарий инициировал обратный отсчет, периодически проверяя состояние управляющего объекта. Если ошибка была обнаружена, метод  перевода строки SafeAppendProgramMod попытался вернуть управление в предыдущее состояние с помощью команды протокола TriStation. Если это не удалось, trilog.exe попытался записать небольшую «фиктивную» программу в память. Мы полагаем, что это был метод анти-криминалистики, чтобы скрыть код злоумышленника на контроллере Triconex.

Работая с агентом, компания Mandiant запустила  trilog.exe в лабораторной среде с действующим контроллером Triconex и обнаружила условную проверку вредоносного ПО, которое предотвращало сохранение бинарного файла полезной нагрузки в среде. Мандиант подтвердила, что после исправления скрипт атаки  удалит эту проверку, двоичный код полезной нагрузки сохранится в памяти контроллера, и управляющий объект продолжит работу.

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

TsHi – это высокоуровневый интерфейс, созданный разработчиками вредоносных программ, который позволяет злоумышленникам применять сценарии атаки с использованием инфраструктуры TRITON. Он предоставляет функции как для предварительного изучения, так и для атаки. Функции обычно принимают двоичные данные от пользователя, обрабатывают код ‘signing’ и проверяют суммы перед тем, как передать данные в базы нижнего уровня для идентификации в сети.

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

TsLow – дополнительный модуль злоумышленника, который внедряет проводной протокол UDP TriStation. Перевод строки TsBase в основном зависит от метода ts_exec . Этот метод принимает код функции и ожидаемый код ответа и упорядочивает полезную нагрузку команд по UDP. Он проверяет ответ от контроллера на ожидаемое значение и возвращает структуру результирующей информации, указывающую на успех, или объект False, отображающий ошибку.

TsLow также предоставляет метод подключения, используемый для проверки соединения с целевым управляющим объектом. Если он задействован без каких-либо целевых объектов, тогда запускается функция обнаружения устройства detect_ip. Файл выдает сообщение «ping» по протоколу TriStation с использованием широковещательной передачи IP, для того, чтобы найти управляющие объекты, которые доступны через маршрутизатор, откуда вызывается сценарий.

Индикаторы

 

Имя файла

 

Хэш

 

trilog.exe

MD5: 6c39c3f4a08d3d78f2eb973a94bd7718

SHA-256:

e8542c07b2af63ee7e72ce5d97d91036c5da56e2b091aa2afe737b224305d230

 

imain.bin

MD5: 437f135ba179959a580412e564d3107f

SHA-256:

08c34c6ac9186b61d9f29a77ef5e618067e0bc9fe85cab1ad25dc6049c376949

 

inject.bin

MD5: 0544d425c7555dc4e9d76b571f31f500

SHA-256:

5fc4b0076eac7aa7815302b0c3158076e3569086c4c6aa2f71cd258238440d14

library.zip MD5: 0face841f7b2953e7c29c064d6886523

SHA-256:

bef59b9a3e00a14956e0cd4a1f3e7524448cbe5d3cc1295d95a15b83a3579c59

 

TS_cnames.рус

MD5: e98f4f3505f05bf90e17554fbc97bba9

SHA-256:

2c1d3d0a9c6f76726994b88589219cb8d9c39dd9924bc8d2d02bf41d955fe326

 

TsBase.рус

MD5: 288166952f934146be172f6353e9a1f5

SHA-256:

1a2ab4df156ccd685f795baee7df49f8e701f271d3e5676b507112e30ce03c42

 

TsHi.рус

MD5: 27c69aa39024d21ea109cc9c9d944a04

SHA-256:

758598370c3b84c6fbb452e3d7119f700f970ed566171e879d3cb41102154272

 

TsLow.рус

MD5: f6b3a73c8c87506acda430671360ce15

SHA-256:

5c776a33568f4c16fee7140c249c0d2b1e0798a96c7a01bfd2d5684e58c9bb32

 

sh.рус

MD5: 8b675db417cc8b23f4c43f3de5c83438

SHA-256:

c96ed56bf7ee85a4398cc43a98b4db86d3da311c619f17c8540ae424ca6546e1

 Обнаружение

 

rule TRITON_ICS_FRAMEWORK
{
meta:
author = “nicholas.carr @itsreallynick”
md5 = “0face841f7b2953e7c29c064d6886523”
description = “TRITON framework recovered during Mandiant ICS incident response”
strings:
$python_compiled = “.pyc” nocase ascii wide
$python_module_01 = “__module__” nocase ascii wide
$python_module_02 = “<module>” nocase ascii wide
$python_script_01 = “import Ts” nocase ascii wide
$python_script_02 = “def ts_” nocase ascii wide

$py_cnames_01 = “TS_cnames.py” nocase ascii wide
$py_cnames_02 = “TRICON” nocase ascii wide
$py_cnames_03 = “TriStation ” nocase ascii wide
$py_cnames_04 = ” chassis ” nocase ascii wide

$py_tslibs_01 = “GetCpStatus” nocase ascii wide
$py_tslibs_02 = “ts_” ascii wide
$py_tslibs_03 = ” sequence” nocase ascii wide
$py_tslibs_04 = /import Ts(Hi|Low|Base)[^:alpha:]/ nocase ascii wide
$py_tslibs_05 = /module\s?version/ nocase ascii wide
$py_tslibs_06 = “bad ” nocase ascii wide
$py_tslibs_07 = “prog_cnt” nocase ascii wide

$py_tsbase_01 = “TsBase.py” nocase ascii wide
$py_tsbase_02 = “.TsBase(” nocase ascii wide

$py_tshi_01 = “TsHi.py” nocase ascii wide
$py_tshi_02 = “keystate” nocase ascii wide
$py_tshi_03 = “GetProjectInfo” nocase ascii wide
$py_tshi_04 = “GetProgramTable” nocase ascii wide
$py_tshi_05 = “SafeAppendProgramMod” nocase ascii wide
$py_tshi_06 = “.TsHi(” ascii nocase wide

$py_tslow_01 = “TsLow.py” nocase ascii wide
$py_tslow_02 = “print_last_error” ascii nocase wide
$py_tslow_03 = “.TsLow(” ascii nocase wide
$py_tslow_04 = “tcm_” ascii wide
$py_tslow_05 = ” TCM found” nocase ascii wide

$py_crc_01 = “crc.pyc” nocase ascii wide
$py_crc_02 = “CRC16_MODBUS” ascii wide
$py_crc_03 = “Kotov Alaxander” nocase ascii wide
$py_crc_04 = “CRC_CCITT_XMODEM” ascii wide
$py_crc_05 = “crc16ret” ascii wide
$py_crc_06 = “CRC16_CCITT_x1D0F” ascii wide
$py_crc_07 = /CRC16_CCITT[^_]/ ascii wide

$py_sh_01 = “sh.pyc” nocase ascii wide

$py_keyword_01 = ” FAILURE” ascii wide
$py_keyword_02 = “symbol table” nocase ascii wide

$py_TRIDENT_01 = “inject.bin” ascii nocase wide
$py_TRIDENT_02 = “imain.bin” ascii nocase wide

condition:
2 of ($python_*) and 7 of ($py_*) and filesize < 3MB
}

 

Бесплатная PDF-брошюра

"Программы-вымогатели или как не стать заложником хакера"

Подробная инструкция, как обезопасить компанию от кибер-атаки

картинка программы-вымогатели

В брошюре вас ждут ответы на такие вопросы, как:

  • Что такое программа вымогатель
  • Как определить, что в сети поселился зловред
  • Какие последствия ждут компанию в случае игнорирования угрозы
  • Как работает Check-Point анти-вымогатель

Получите PDF-отчет немедленно, оставив свой email ниже

consalting

Специалисты компании «Амика» всегда готовы проконсультировать вас по сервисам, услугам и устройствам защиты ваших ресурсов. Мы занимаемся следующими направлениями:

  • Защита от утечки конфиденциальной информации за пределы компании (DLP).
  • Защита от целенаправленных хакерских атак (APT).
  • Защита от DDOS.
  • Защита мобильных устройств (BYOD и MDM)
  • Аудит и проверка на уязвимость
  • Тесты на проникновение.

Бесплатную консультацию вы можете получить, обратившись к нам по телефону +38 044 355-07-70 или по адресу security@amica.ua.

Остались вопросы? Обращайтесь к нашим специалистам.

Заполните форму справа и наши менеджеры свяжутся с вами в течении 10 минут.