Основні відомості

Нещодавно американська компанія із інформаційної безпеки Мандіант відгукнулася на інцидент в інфраструктурній організації, де зловмисник розгорнув шкідливе ПЗ, призначене для керування системами промислової безпеки. Цільові системи забезпечували можливості аварійного відключення для виробничих процесів. Ми з впевненістю оцінюємо події – зловмисник розвивав здатність завдавати фізичну шкоду та мимовільно зупиняв операції. Це шкідливе ПЗ, під назвою 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

Фахівці компанії «АMICA» завжди готові проконсультувати вас по сервісах, послугах та пристроях захисту ваших ресурсів. Ми займаємося наступними напрямками

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

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

Залишилися запитання? Звертайтеся до наших фахівців.

Заповніть форму праворуч і наші менеджери зв’яжуться з вами протягом 10 хвилин.