Гаряча кібервійна. Хакери і ракетні установки



Одним з найбільш видовищних елементів змагальної програми форуму PHDays V, який пройшов наприкінці травня у Москві, став конкурс, представлений компанією Advantech. Учасники повинні були захопити контроль над промисловою системою управління, пов'язаної з ракетною установкою, і зробити постріл з «секретного об'єкту».

Що потрібно було зробити

Стенд представляв собою ракетну установку, розміщену на турелі, що обертається по двох осях, і мішень. Конкурсанти повинні були отримати доступ до системи управління, розгорнути установку в сторону мішені і вразити її (при цьому виведення з ладу обладнання не привів би до виконання завдання).

В ході конкурсу имитировалась ситуація, при якій зломщик вже проник за зовнішній периметр організації і має повний доступ до офісного сегмента мережі. Підключились видавався логін і пароль операторського рівня, щоб вони могли спостерігати за функціонуванням системи. Також на стенді була табличка з усіма IP-адресами встановлених пристроїв.

В цьому році окремі конкурси були складовою частиною CTF (докладніше у нашій статті на Хабрахабре). Свої сили у цьому конкурсі спробували більш 40 відвідувачів PHDays і кілька CTF-команд.

Технічні деталі

Станція SCADA була апаратно виконана на промисловому панельному комп'ютері Advantech TPC-1840WP і працювала під управлінням операційної системи Windows 7 Ultimate без додаткових засобів захисту.

Операційна система мала всі штатні оновлення доступні до початку конкурсу; брандмауер Windows включений. SCADA була реалізована на програмному забезпеченні Advantech WebAccess 8.0.

Оскільки дане ЗА могло містити незакриті уразливості, для яких існують експлойти, оператору надавався тільки доступ до візуалізації процесів в контролері. Теги контролера мали статус read-only, тому їх перезапис не впливала на працездатність обладнання. Отримання привілеїв адміністратора відкривало зломщикові сторінку з описом структури та внутрішньої системи адресації.



Зв'язок між SCADA-системою і PLC здійснювалася за допомогою протоколу Modbus TCP c використанням псевдорегистров (зчитування проводилося не з модулів входів-виходів, а з комірок пам'яті програми контролера).

Штатно і клієнтський, і адміністраторський доступ до SCADA-системі WebAccess здійснюється через браузер Internet Explorer по протоколу HTML4 за допомогою IIS, є частиною стандартного дистрибутиву Windows. За замовчуванням аутентифікація користувача виконується самою SCADA-системою.

Фізично зв'язок між станцією SCADA і PLC здійснювалася через керований L2-комутатор Advantech EKI-7659C за допомогою звичайного Fast Ethernet. Через цей же комутатор здійснювалося підключення конкурсантів — по проводах через EKI-4654R або по Wi-Fi через EKI-6351. Комутатор не використовувався для реалізації VLAN або в якості фільтра MAC-адрес, хоча мав таку можливість. Крім того, в підмережа був підключений ноутбук для адміністрування стенду.



Функції PLC були реалізовані на PAC-контролері Advantech APAX-5620KW, який представляє собою пристрій на базі ARM-процесора під управлінням операційної системи WinCE5. Контролер реалізовував робочий цикл повороту ракетниці по таймеру (умовно — технологічну програму керованого технологічного процесу). Для цього використовувалося softlogic-ядро ProConOs, написане компанією KW Software і виконуване завдання рівня ядра. Програма власне переміщення була реалізована автором стенду мовою ladder logic за допомогою пакету KW Multiprog. Цикл програми — 50 мс.



Даний контролер має три штатних методу підключення. Один — через місцеві роз'єми VGA і USB — був недоступний конкурсантам. Другий — через віддалений робочий стіл — був закритий паролем. Третій — з системи розробки мовами IEC 61131 — дозволяє управляти softlogic-підсистемою і налагоджувати її.

Фізично контролер мав два LAN-порти, один з яких був підключений до SCADA-системі (офісна підмережа), а другий до модулів вводу-виводу (польова підмережа). Мережеві порти мали адресацію з різних підмереж. Таким чином вирішувалися завдання балансування навантаження і розділення доступу.

Для введення-виводу використовувалися модулі ADAM-6050 (для дискретного вводу c датчиків кінцевого положення по осях) і ADAM-6260 (для управління реле). Ці модулі мають можливість розподіленого програмування на мові GCL, і вона була використана для реалізації функцій аварійного захисту. Зокрема, при наїзді на кінцевик модуль DI повідомляє про цей факт модулю DO, і модуль DO виконує реверсування відповідного мотора на 3 сек. На випадок переривання зв'язку був встановлений watchdog, отключавший всі виходи. У блоці керування приводом запуску ракет спеціально була залишена можливість обходу блокування шляхом запису логічної «1» у виділену внутрішню змінну (для цього необхідно було в рамках внутрішньої підмережі виконати функцію запису в регістр Modbus).

Фізично зв'язок між модулями виконувалася без використання зовнішнього комутатора, з використанням можливостей технології daisy chain в ADAM-6260.

Сама турель ракетниці харчувалася від окремого блоку на 5 VDC і була оснащена трьома моторами (повороти навколо вертикальної і горизонтальної осей, а також запуск ракет). Для виконання реверсування поворотних моторів, а також в якості нульового рівня захисту від короткого замикання блоку живлення використовувалася релейна схема. Крім того, ракетниця була оснащена п'ятьма натискними датчиками кінцевого положення (вліво, вправо, вгору, вниз, проведений залп).

На всіх компонентах системи, де це було можливо, були встановлені несловарные (генеровані) паролі довжиною 8-10 символів, що включали великі і малі латинські букви, цифри, знаки пунктуації.

Хід битви

Змагання проходило протягом двох днів форуму Positive Hack Days.

День перший
Протягом першого дня конкурсанти в основному розбиралися в структурі зовнішньої підмережі і намагалися впливати на систему SCADA. Хакери відключали служби операційної системи, в тому числі брандмауер, змогли «підселити» нового користувача (правда, не адміністраторського рівня), два рази перезавантажували комп'ютер.



Кілька людей, використовуючи експлойти Windows і SCADA-системи, змогли отримати адміністраторський доступ до WebAccess, ознайомилися з описом тегів і мали можливість зупинити ядро системи. Однак, система не відгукувалася на спробу переписування тегів, ядро перезапускалось в автоматичному режимі за допомогою Windows Scheduler. Увечері знесилені хакери залишили автограф на одній з сторінок системи — і відклали свої спроби до ранку.

День другий
Половина другого дня пройшла в пошуках джерела керуючих сигналів. Один з конкурсантів виявив незакритий експлойт в WinCE5, але використовувати його не зміг.

У 14 годин конкурсантам була видана підказка про те, що зовнішній сегмент контролера має статус тільки для читання і необхідно постаратися «пройти» контролер.



В цей момент до роботи над стендом підключилася CTF-команда RDot. Протягом півтори години члени команди змогли отримати доступ до віддаленого робочого столу APAX-5620, отримали можливість «вбивати» і запускати завдання softlogic і маніпулювати параметрами мережевих адаптерів.

Також один з конкурсантів стверджував, що отримав можливість одностороннього пересилання пакетів з LAN1 в LAN2 без отримання зворотних пакетів. Однак ідеологія Modbus не дозволила використовувати цю можливість для деструктивних дій.

В 15 годин на стенді проявилися проблеми механічного характеру. Конкурсанти отримали можливість прослуховування пакетів роботи KW Multiprog з контролером — зупинка, перезапуск контролера, включення режиму відладки, використання функцій force по відношенню до комірок пам'яті контролера. Однак використання отриманої інформації конкурсанти не продемонстрували.

У 16 годин учасникам були видані вихідні коди програм модулів APAX і ADAM для пошуку можливостей експлуатації штатних програм. Команда RDot відзначилася успішною спробою зворотного читання програми з контролера (цю функцію в KW Software непередбачливо не захистили паролями), включенням режиму налагодження та наглядом за роботою регістрів контролера.

О 17 годині користувачі були допущені під внутрішню підмережа. Фактично почалася DDoS-атака на систему протиаварійного захисту з спробами її відключити.



До моменту завершення конкурсу в 18 годин ніхто не зміг зупинити роботу GCL-програми або керувати виходами в заданих цілях, хоча були сліди впливу на прошивку модулів. Відновлення функціонування модулів виконувалося вже поза стенду, хоча і не в умовах ремонтного центру.

Призові місця були розподілені «по очках»:

  • I місце — Артуру Р. з команди Rdot за розтин віддаленого робочого столу контролера APAX, успішну роботу з попередником мовою IEC61131,;
  • II місце — Павлу В. за те, що він першим отримав адміністраторський доступ до інтерфейсу SCADA-системи і елегантно з ним обійшовся;
  • III місце — Олександра Я. за пересилку пакетів між портами контролера APAX і загальний обсяг витрачених зусиль.
Втішний приз — Олексію П. за використання методів соціальної інженерії (за виявлення бекапу проекту SCADA на ноутбуці адміністратора та отримання адміністраторського пароля звідти).

Висновок

За підсумками змагання організатори зробили наступні важливі висновки:

  • Системи промислового управління загалом погано знайомі більшості порушників. Методи застосовувалися в основному силові (атаки портів) або не враховують специфіки системи (моніторинг Modbus-трафіку за допомогою Wireshark). Утім, при достатній мотивації можна розібратися в структурі системи і методи її штатного використання.
  • Найбільш вразливими є елементи, наближені до операторського інтерфейсу — вхід клієнтів SCADA, віддалені робочі столи. Для систем, заснованих на Windows, обов'язкова додаткова програмна захист як самих комп'ютерів (фаєрволи), так і каналів зв'язку (шифрування).
  • Шина підприємства та польова шина повинні бути фізично ізольовані один від одного, як мінімум пристроєм з двома мережевими картами. Використання VLAN далеко не завжди ефективно через наявність уразливостей у веб-інтерфейси комутаторів.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.