Одним из самых зрелищных элементов конкурсной программы форума PHDays V, прошедшего в конце мая в Москве, стал конкурс , представленный компанией Адвантех .
Участникам предстояло захватить контроль над промышленной системой управления, связанной с ракетной установкой, и произвести выстрел по «секретному объекту».
Что нужно было сделать
Стенд состоял из ракетной установки, размещенной на вращающейся по двум осям турели, и мишени.Участники должны были получить доступ к системе управления, развернуть установку в сторону цели и поразить ее (в этом случае выведение из строя аппаратуры не привело бы к выполнению задачи).
В ходе конкурса была смоделирована ситуация, при которой злоумышленник уже проник за внешний периметр организации и имел полный доступ к офисному сегменту сети.
Подключавшимся выдавались логин и пароль операторского уровня, чтобы они могли контролировать работу системы.
Также на стенде была табличка со всеми IP-адресами установленных устройств.
В этом году в рамках CTF прошли индивидуальные соревнования (подробнее в нашем статья на Хабрахабре ).
Более 40 посетителей PHDays и несколько команд CTF попробовали свои силы в этом соревновании.
Технические детали
Станция SCADA была реализована аппаратно на промышленном панельном компьютере Advantech TPC-1840WP и работала под управлением операционной системы Windows 7 Ultimate без дополнительных средств безопасности.В операционной системе были все стандартные обновления, доступные на момент начала соревнований; Брандмауэр Windows был включен.
SCADA была реализована с использованием программного обеспечения Advantech WebAccess 8.0. Поскольку это программное обеспечение могло содержать неисправленные уязвимости, для которых существуют эксплойты, оператору был предоставлен доступ лишь для визуализации процессов в контроллере.
Теги контроллера имели статус «только для чтения», поэтому их перезапись не влияла на работу оборудования.
Получение прав администратора открыло злоумышленнику страницу с описанием структуры и внутренней адресации системы.
Связь между системой SCADA и ПЛК осуществлялась по протоколу Modbus TCP с использованием псевдорегистров (чтение осуществлялось не из модулей ввода-вывода, а из ячеек памяти программы контроллера).
Обычно как клиентский, так и администраторский доступ к SCADA-системе WebAccess осуществляется через браузер Internet Explorer по протоколу HTML4 с использованием IIS, входящего в стандартный дистрибутив Windows. По умолчанию аутентификация пользователя осуществляется самой системой SCADA. Физически соединение станции SCADA с ПЛК осуществлялось через управляемый коммутатор L2 Advantech EKI-7659C с использованием обычного Fast Ethernet. Конкурсанты подключались через один и тот же коммутатор — по проводу через ЭКИ-4654Р или по Wi-Fi через ЭКИ-6351. Коммутатор не использовался для реализации VLAN или в качестве фильтра MAC-адресов, хотя у него была такая возможность.
Кроме того, к подсети был подключен ноутбук для администрирования стенда.
Функции ПЛК были реализованы на контроллере Advantech APAX-5620KW PAC, который представляет собой устройство на базе ARM-процессора под управлением операционной системы WinCE5. Контроллер реализовал рабочий цикл поворота ракетной установки по таймеру (относительно технологической программы управляемого технологического процесса).
Для этого мы использовали программное логическое ядро ProConOs, написанное KW Software и выполняемое как задача уровня ядра.
Реальная программа движения была реализована автором стенда на языке лестничной логики с использованием пакета KW Multiprog. Цикл программы составляет 50 мс.
Этот контроллер имеет три стандартных метода подключения.
Один — через локальные разъемы VGA и USB — был недоступен конкурентам.
Второй, через удаленный рабочий стол, был заблокирован паролем.
Третий — из системы разработки на языках IEC 61131 — позволяет управлять подсистемой softlogic и отлаживать ее.
Физически контроллер имел два LAN-порта, один из которых подключался к системе SCADA (офисная подсеть), а второй — к модулям ввода-вывода (полевая подсеть).
Сетевые порты обращались из разных подсетей.
Таким образом были решены проблемы балансировки нагрузки и разделения доступа.
Для ввода-вывода использовались модули ADAM-6050 (для дискретного ввода от датчиков конечного положения осей) и ADAM-6260 (для релейного управления).
Эти модули имеют возможность распределенного программирования на GCL и используются для реализации функций аварийной защиты.
В частности, при нажатии на концевой выключатель модуль DI сообщает об этом модулю DO, и модуль DO реверсирует соответствующий двигатель на 3 секунды.
На случай прерывания связи был установлен сторожевой таймер, отключавший все выходы.
В блоке управления приводом пуска ракет специально удалось обойти блокировку, записав логическую «1» в выделенную внутреннюю переменную (для этого нужно было выполнить функцию записи в регистр Modbus внутри внутренней подсети).
Физическая связь между модулями осуществлялась без использования внешнего коммутатора, используя возможности технологии шлейфового подключения в ADAM-6260. Сама турель ракетной установки питалась от отдельного блока постоянного тока на 5 В и оснащалась тремя двигателями (вращение вокруг вертикальной и горизонтальной осей, а также запуск ракет).
Для выполнения реверса роторных двигателей, а также нулевого уровня защиты от короткого замыкания источника питания была использована релейная схема.
Кроме того, ракетная установка была оснащена пятью датчиками конечного положения нажима (влево, вправо, вверх, вниз, залповый выстрел).
На всех компонентах системы, где это возможно, устанавливались несловарные (генерируемые) пароли длиной 8-10 символов, включающие латинские прописные и строчные буквы, цифры и знаки препинания.
Ход битвы
Соревнования проходили в течение двух дней форума Positive Hack Days.Первый день
В первый день конкуренты в основном разбирались в структуре внешней подсети и пытались влиять на систему через SCADA. Хакеры отключили службы операционной системы, в том числе брандмауэр, смогли «добавить» нового пользователя (правда, не на уровне администратора) и дважды перезагрузили компьютер.
Несколько человек, используя эксплойты Windows и SCADA-систем, смогли получить административный доступ к WebAccess, прочитать описание тегов и смогли остановить ядро системы.
Однако система не отреагировала на попытку перезаписать теги; ядро было перезапущено автоматически с помощью планировщика Windows. Вечером измученные хакеры оставили автограф на одной из страниц системы и отложили попытки до утра.
Второй день
Половина второго дня ушла на поиск источника сигналов управления.Один из конкурентов обнаружил неисправленный эксплойт в WinCE5, но не смог его использовать.
В 14:00 участникам была подсказана, что внешний сегмент контроллера имеет статус «только чтение» и им следует попытаться «пройти» контроллер.
В этот момент к работе на стенде подключилась команда RDot CTF. В течение полутора часов члены команды смогли получить доступ к удаленному рабочему столу APAX-5620, смогли «убить» и запустить задачу softlogic, а также манипулировать параметрами сетевого адаптера.
Также один из конкурентов утверждал, что он может однонаправленно пересылать пакеты из LAN1 в LAN2, не получая обратных пакетов.
Однако идеология Modbus не позволяла использовать эту возможность для деструктивных действий.
В 15:00 на стенде появились механические неполадки.
Конкурсантам была предоставлена возможность прослушать пакеты о том, как KW Multiprog работает с контроллером – остановка, перезапуск контроллера, включение режима отладки, использование силовых функций по отношению к ячейкам памяти контроллера.
Однако конкурсанты не продемонстрировали использования полученной информации.
В 16:00 участникам были розданы исходные коды программ модулей APAX и ADAM для поиска возможностей работы со стандартными программами.
Команда RDot отметилась успешной попыткой считывания программы с контроллера (KW Software по неосторожности не защитила эту функцию паролями), включением режима отладки и контролем работы регистров контроллера.
В 17:00 пользователей допустили во внутреннюю подсеть.
Фактически началась DDoS-атака на систему аварийной защиты с попытками ее отключения.
К моменту завершения соревнований в 18:00 никто не смог ни остановить программу GCL, ни проконтролировать выходы для указанных целей, хотя следы вмешательства в прошивку модулей были.
Восстановление функционирования модулей проводилось вне стенда, а не в ремонтном центре.
Призы распределялись «по баллам»:
- I место – Артуру Г.
из команды Rdot за открытие удаленного рабочего стола контроллера APAX, успешную работу с исходным кодом на языке IEC61131;
- 2 место – Павел Игоревич за то, что первым получил административный доступ к интерфейсу системы SCADA и элегантно с ним справился;
- III место – Александр Юрьевич за пересылку пакетов между портами контроллера APAX и общее количество затраченных усилий.
за использование методов социальной инженерии (за обнаружение резервной копии проекта SCADA на ноутбуке администратора и получение оттуда пароля администратора).
Заключение
По итогам конкурса организаторы сделали следующие важные выводы:- Системы промышленного контроля в целом являются новинкой для большинства правонарушителей.
Используемые методы были в основном силовыми (атаки на порты) или не учитывали специфику системы (мониторинг трафика Modbus с помощью Wireshark).
Однако при достаточной мотивации можно понять структуру системы и способы ее регулярного использования.
- Наиболее уязвимыми являются элементы, близкие к интерфейсу оператора – вход клиента SCADA, удаленные рабочие столы.
Для систем на базе Windows требуется дополнительная программная защита как самих компьютеров (брандмауэры), так и каналов связи (шифрование).
- Заводская шина и полевая шина должны быть физически изолированы друг от друга, по крайней мере, с помощью устройства с двумя сетевыми картами.
Использование VLAN не всегда эффективно из-за уязвимостей веб-интерфейсов коммутаторов.
-
Vogue Как Системный Монитор
19 Oct, 24 -
Верни Мне Мой Монолит
19 Oct, 24 -
Виджеты И Сворачивание Окон
19 Oct, 24 -
Как Мы Живем Год Без Звездочек И С Реакцией
19 Oct, 24