Безопасность как искусство
92,65
рейтинг
24 августа 2015 в 03:54

Разработка → SCADA и мобильники: оценка безопасности приложений, превращающих смартфон в пульт управления заводом

image

Сегодня мобильные технологии – неотъемлемая часть нашей жизни, и иногда проникают туда, где их не следовало бы использовать. Удобство часто оказывается важнее безопасности. Сейчас можно отслеживать состояние АСУ ТП (автоматизированной системы управления технологическим процессом) или даже управлять ей с новенького смартфона на Android или iOS. Поищите “HMI” (человеко-машинный интерфейс), “SCADA” (система диспетчерского контроля и сбора данных) или “PLC” (программируемый логический контроллер) в магазине Google Play, и вы удивитесь количеству результатов. Более того, многие из этих приложений разработаны серьезными производителями: Siemens, GE, Omron и т. д., и обеспечивают доступ, контроль и управление HMI, PLC, DCS (распределенная система управления) и SCADA-системами в инфраструктуре АСУ ТП. Безопасны ли они? Может ли злоумышленник нанести вред, получив доступ к планшету инженера-технолога? Какие уязвимости существуют в этих приложениях? Какие векторы атак возможны?

Цель – не только найти ошибки безопасности в мобильных приложениях для АСУ ТП, но и попытаться экстраполировать риски компрометации этих приложений на риски компрометации всей инфраструктуры АСУ ТП. Этот подход отличается от привычного взгляда на оценку безопасности мобильных приложений: уязвимости с традиционно низким уровнем опасности могут подвергнуть АСУ ТП огромному риску, а уязвимости, которые обычно считаются критичными угрозами, наоборот, бывают опасны для АСУ ТП с очень низкой вероятностью.

Немного об АСУ ТП


Современные инфраструктуры АСУ ТП имеют сложную архитектуру, состоящую из таких общеизвестных элементов, как серверы, ПК, сетевые коммутаторы, технологии программного обеспечения (.Net, DCOM, XML и т. д.), и более сложных компонентов: программируемых контроллеров, передатчиков, силовых приводов, аналоговых контрольных сигналов и т. д.

Нижний уровень (1)


image

Здесь расположены полевые устройства. Как уже упоминалось выше, они подходят для «грязной» работы: например, они могут контролировать температуру и давление в реакторе, управлять такими операциями, как открытие и закрытие клапанов, включение и выключение насосов и пр. На этом уровне часто используется множество устройств. Это могут быть низкоуровневые программируемые логические контроллеры.
Кроме того, на этом уровне могут находиться передатчики и приводы, управляемые удаленным терминальным устройством (RTU, электронное устройство под управлением микропроцессора, которое переводит физические объекты в сигналы, понятные распределенной системе управления или SCADA-системе, путем передачи телеметрических данных на ведущую систему и сообщений от ведущей диспетчерской системы к контролируемым объектам). Этот уровень – царство низкоуровневых промышленных протоколов, таких как Modbus, Modbus TCP, HART, Wireless HART, Profibus DP или PA, Foundation Fieldbus H1. Инженеры нижнего уровня АСУ ТП, электрики, техники и другие специалисты работают на этом уровне АСУ ТП.

Средний уровень (2)


image

На этом уровне можно встретить высокоуровневые PLC, распределенные системы управления (DCS, система управления технологическим процессом, отличающаяся построением распределенной системы ввода-вывода и децентрализацией обработки данных), системы диспетчерского контроля и сбора данных (Supervisory Control and Data Acquisition (SCADA), программный пакет, предназначенный для разработки или обеспечения работы в реальном времени систем сбора, обработки, отображения и архивирования информации об объекте мониторинга или управления) и человеко-машинные интерфейсы (Human-Machine Interface (HMI)), а также такие серверы, как OPC (Open Platform Communications, ранее OLE for Process Control – OLE для управления процессами). Здесь осуществляется вся интеллектуальная деятельность. На основе данных с низших уровней операторы и автоматизированные системы принимают решения и отправляют команды на полевые устройства. Здесь проходит весь процесс автоматизации производства. Операторы, инженеры-технологи, инженеры АСУ ТП, программисты PLC и ПО работают с системами на этом уровне.

Верхний уровень (3)


image

На нем осуществляется интеграция бизнеса и промышленных процессов. Этот слой обеспечивает привязку к корпоративной сети и системам планирования ресурсов предприятия (ERP). На данном уровне расположены различные системы управления активами производства (PAS) и системы управления производственными процессами (MES, предоставляющие нужную информацию в нужное время и показывающие лицам, принимающим решения на производстве, как условия работы цеха могут быть оптимизированы для повышения производительности). Здесь с АСУ ТП работают управленцы и инженерно-технический персонал высшего уровня.

Типы мобильных приложений АСУ ТП и связанные с ними риски


Пульт управления (1): непосредственно конфигурация/мониторинг/контроль производственного процесса и/или его компонентов. Роли в инфраструктуре АСУ ТП:
  • Конфигурация PLC. Настройка и/или контроль компонентов АСУ ТП: PLC, HMI, подключенных к PLC, RTU и прочего. Мобильное приложение подключается к компоненту АСУ ТП по промышленной сети (нижний и средний уровни инфраструктуры). Оно осуществляет контроль над состоянием компонента или его (пере)настройку. Можно считать его аналогом стандартного переносного терминала, спрятанным внутри Nexus или Xperia.
  • Клиент для SCADA. Контроль над промышленным процессом с помощью SCADA-клиента или виртуального интерфейса для подключения к SCADA. Эти приложения позволяют инженерам-технологам подключаться с телефона или планшета к SCADA-приложению и при необходимости контролировать производственный процесс.
  • Мобильная HMI-панель. HMI-панель внутри мобильного устройства для контроля или управления несколькими промышленными компонентами. Позволяет инженеру формировать (и даже программировать!) HMI-панель и подключать ее компоненты собственно к PLC или другим устройствам через Modbus/TCP, OPC или иные протоколы и интерфейсы.

У всех этих приложений есть одна важная особенность — соединение между приложением и промышленным компонентом происходит в предположительно безопасной среде, где-то на нижних и средних уровнях АСУ ТП.

Клиент для OPC/MES или система архивации (2): приложения-архиваторы позволяют инженеру или владельцу процесса читать и интерпретировать некоторые сведения из среднего и высшего уровня компонентов АСУ ТП. Данные доступны только для чтения, причем у пользователя даже нет прямого доступа к PLC, HMI или SCADA – только возможность просмотра определенных переменных. В эту же категорию мы включили мобильные клиенты для MES-приложений. Они, как правило, используются, чтобы читать данные с сервера архивации или агрегированные данные от MES-системы. Типичное приложение из этой категории – клиент (браузер) для OPC. Он подключается не непосредственно к компонентам АСУ ТП, а к серверу OPC. Соединение обычно происходит на высших уровнях инфраструктуры. Кроме того, подключение может быть выполнено дистанционно. Это значит, что в таком приложении должны быть внедрены механизмы шифрования и аутентификации. Хотя чтение агрегированных данных само по себе не представляет угрозы, эта информация может быть использована злоумышленником для понимания (обратной разработки) промышленного процесса и создания специализированного сценария атаки. Кроме того, если приложение применяется вне заводской сети, появляются новые угрозы: например, компрометация телефона инженера или руководителя через уязвимость в приложении.

Удаленное управление SCADA (3): приложения, позволяющие удаленно (из-за пределов заводской сети) отслеживать/контролировать производственный процесс. Хотя для этого пригодны и решения первой категории, разработчики не продвигают и даже не афишируют эту возможность. Для всех приложений этой группы мы нашли снимки/схемы/архитектурные чертежи/документы от разработчика, где мобильный клиент используется для удаленного управления снаружи промышленной сети (высшего и низшего уровней). Поэтому мы предполагаем, что потенциальные пользователи будут иногда (или всегда) подключаться к промышленному процессу из общедоступных сетей, ненадежных домашних сетей или с помощью сотовой связи. Также неясно, в какой среде такое приложение будет работать на Android и не будет ли там вредоносного ПО, рутованной системы и других факторов риска. Требования к безопасности и надежности для таких приложений самые строгие.

image
Типичные места расположения мобильных приложений для АСУ ТП

Угрозы для разных типов приложений


image

Пульт управления


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

Компрометация данных, хранящихся на SD-карте – многие приложения хранят данные на SD-карте: логи, проекты HMI и другие данные. Соответственно, все они имеют доступ к общей информации. Приложение, установленное из сторонних источников (или поддельное из официального магазина), может читать или модифицировать данную информацию – например, изменить интерфейс или функционал мобильного HMI-приложения.

Клиент для OPC/MES или система архивации


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

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

Отказ в обслуживании клиента и сервера системы может привести к задержкам в информировании.

Удаленное управление SCADA


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

Список приложений: в таблице ниже перечислены все протестированные мобильные приложения (отсортированы по типу).
image

Уязвимости и пример атаки


В целом, было найдено 50 уязвимостей, среди которых: незащищенные или недостаточно защищенные методы передачи и хранения данных (включая некорректное использование SSL или “самодельные” криптоалгоритмы), удаленная атака на отказ в доступе на клиент и сервер, SQL-инъекции, использование недоверенных входных данных в качестве параметров настройки техпроцесса и др. Эксплуатация этих проблем безопасности потенциально позволяет реализовать ряд опасных атак как на приложение, так и на оператора. В последнем случае, реально создать ложное представление о текущем состоянии техпроцесса, что может привести к принятию неверных решений с тяжелыми последствиями для предприятия.

image

Компрометация базы данных HMI


К данным, которые хранятся на SD-карте, можно получить доступ следующим образом:

  • Через физический доступ к SD-карте;
  • Благодаря вирусу на устройстве;
  • Любая уязвимость платформы или стороннего приложения. То есть, скомпрометировав стороннее приложение, которое не имеет отношения к целевому мобильному приложению, можно также получить доступ к SD-карте и модифицировать данные.

В ходе тестирования было выявлено, что ряд приложений сохраняет базу данных HMI (электрические цепи, интерфейсы, параметры соединения, HMI-проекты) на SD-карте.На рисунке показано, как это может выглядеть на смартфоне.

image
Хранилище HMI-проектов

В качестве примера возьмем вполне реальный HMI-проект. Это приложение перемещает некоторую жидкость из одной емкости в другую. Для контроля процесса предназначены кнопки Start/Stop и датчик потока. Если данные HMI-проекта скомпрометированы (вирус, другая уязвимость приложения, прямой доступ к памяти SD-карты с ПК и т. д.), злоумышленник способен слегка изменить его конфигурацию или интерфейс.

image
Датчик потока HMI

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

image
Измененный интерфейс

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

Хранение и передача данных в открытом виде


Даже если все данные, которые хранит и передает приложение, шифруются, ключи шифрования зачастую хранятся в коде самого приложения и являются статичными.
image
Ключи шифрования «зашитые» в коде приложений

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

Выводы


В ходе исследования мы рассмотрели 20 приложений для Android, так или иначе взаимодействующих с инфраструктурой АСУ ТП. Мы изучили решения для управления PLC, OPC- и MES-клиенты, клиенты для удаленного управления SCADA. Следует отметить, что мы не смогли найти ни одного приложения без недостатков и/или уязвимостей. Большинство из них продемонстрировали проблемы с аутентификацией и целостностью данных на локальном или сетевом уровне. Наиболее опасное последствие эксплуатации этих уязвимостей – «компрометация» оператора, которому внушается ложное понимание текущего состояния технологического процесса.

С полным текстом исследования можно ознакомиться по следующей ссылке:
http://dsec.ru/ipm-research-center/research/scada_and_mobile_phones_the_security
Автор: @zt3f
Digital Security
рейтинг 92,65
Безопасность как искусство

Комментарии (12)

  • +1
    Современные SCADA системы в целом решето. И если кто-то захочет их взломать, при наличии подключения производственной ЛС к интернету — её взломают. И даже без подключения — взломают, если заказчик достаточно обеспечен, пример — тот же stuxnet.

    Вообще, ИМХО, сейчас всем производителям занятым в этом бизнесе, нужно крепко подумать не над внедрением всяческих фич, типа связь со SCADA через мобильник или веб-страницу, а о том как усилить безопасность собственных систем на всех уровнях.
    • 0
      Да что там ломать-то… большинство популярных «промышленных» протоколов даже не подразумевают никакой защиты и аутентификации. Тот же ModBus TCP например.
      • 0
        А если какой протокол и предусматривает авторизацию, то пароль передаётся в открытом виде. О чем и речь.
        • +1
          За что платят, то и получают! Обычно заказчики присылают не тз, а уг, сами не зная чего хотят. Ценники жмут, а сроку просто убивают. И кровь из носа надо уложится и сделать. Поэтому такие и казусы.
          • +1
            Да не в ТЗ дело. А в зоопарке устройств. Каждый производитель устройств думает, что он самый умный и хитрый, и делает свой собственный протокол обмена со своим чудо-устройством. А если так на вскидку посмотреть, то становится понятным, почему такое происходит: нет у нас единого, открытого, универсального, защищенного и безопасного промышленного протокола обмена, разве что OPC-UA, но производители как-то не спешат с его внедрением.
            • 0
              Ага, одних только «клонов» Modbus на десятки идет. Меня порадовал один терминал, который вроде как по документации использовал модбас, но в реале между адресом устройства и кодом функции был еще один байт =)

              Каждая новая железка даже того же производителя, что уж там — новые сюрпризы. ABB, разобрались как читаются по SpaBUS осциллограммы? вот вам 600 серия, теперь все по-другому =) пользуйтесь, пожалуйста, только «Нашим ПО».

              Поэтому они и делают «хитрые и свои» протоколы, потому что хотят чтобы завязывались на их продукты, чтобы нельзя было легко интегрироваться с решениями от конкуртентов, чтобы поддержка новых устройств и протоколов была НЕВЫГОДНА.

              " единого защищенного и безопасного промышленного протокола обмена" а что с 61850 — MMS? защита есть, единый, поддерживается многими, но не всеми.
          • 0
            Позвольте заметить, что задача выполняется обычно на том ПО которое предоставляют поставщики оборудования. С их проприетарными протоколами, их ПО, их же методах в разработке. Конечный пользователь, создавая уг ТЗ, по умолчанию считает что ему поставят надёжное ПО от производителя с мировым именем, которое используется в том числе на АЭС. Поэтому всесильно доверяет бумажкам, сертификатам, и походами в сауну с менеджерами поставщиков за их счет. А в итоге оказывается, что самый-самый первое звено было ржавым решетом. И единственный выход хоть как-то обезопасить производственную ЛС, это отрубить её от связи с внешним миром. Исполнитель, которые разрабатывает SCADA по ТЗ заказчика уже ничего толком поделать не может. Разве что поменять стандартные пароли везде где можно, правда, это практически бессмысленно против тех кто замыслил ужасное.
  • 0
    +надо к нарисованной картине добавить обещание майкрософт затягивать все пароли и клавиатурный ввод пользователя в своё облако. Скоро у них на серверах накопится достаточно парольчиков, для того, чтобы порулить заводами…

    При этом некоторые западные специалисты называют русских и китацев параноиками, потому что существуют документы, запрещающие соединение сетей некоторых заводов с глобальной сетью в любом виде…
    • 0
      Вы просканируте местный диапазон ип-адресов и увидите очень много интересных и совершенно открытых ресурсов — аля сеть «ОАО МОЛОЧНЫЙ ЗАВОД», в которой будет сервак 1С, все доки, вся отчётность, и это хорошо если на какой -нибудь папке будет хоть один пароль!

      Поэтому нашим верзилам, только и надо запрещать соединения с нетом в любом виде!
      • 0
        Правильно, ли я вас понял, что вы не видите угрозы в подключении промышленных сетей к глобальной сети и обработке паролей и клавиатурного ввода в облаках производителей ОС?
        • 0
          Нет, я же написал, что единственное, что может обеспечить хоть какую-нибудь безопасность, это отключение пром. сетей от глобальной сети. И даже не потому, что кто-то там мониторит, а просто из-за беспечности тех, кто эту сеть поднимал.

          За себя скажу, что писать что-то на проприетарном по, и свято веря, что разработчик этого по ничего туда не засунул — это детская наивность. Промышленный шпионаж существовал всегда. И если уже затейник поручил разработку, то либо на своих костылях это делать, пусть и криво, но по-доброму, либо брать отрытые исходники и тщательно все колупать. Благо, опенсорса сейчас хватает…
  • +1
    Удивительное исследование :) Вы сами не поняли, что вы исследовали и как оно устроено. Вы не поняли что нашли и как оно может (может ли?) повредить. Ну а так да, тема модная, почему бы не написать статейку)

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

Самое читаемое Разработка