РАЗБОР Статья

Пентест ICS/OT систем: векторы, инструменты, обучение

Сергей Попов
Сергей Попов Red Team · 6,7 тыс. сообщений
Подписаться
388
[ обложка статьи ]
Режим чтения
Промышленный ПЛК Siemens на антистатическом коврике рядом со свёрнутым кабелем Profinet, на дисплее индикация задержки патчей CVE. На заднем плане экран ноутбука с анализом трафика Modbus в Wiresha...


По данным IBM X-Force, 70% инцидентов, расследованных в 2024 году, затронули критическую инфраструктуру. Среднее время от публикации CVE до установки патча в OT-среде - 29 месяцев. Двадцать девять. В IT такой разрыв - повод для увольнения, а в промышленных сетях это рабочая реальность: обновление прошивки контроллера требует остановки линии и окна обслуживания, которое заказчик согласовывает неделями. Для пентестера вывод прямой - уязвимости, закрытые в IT два года назад, в OT всё ещё эксплуатируемы. Но тестировать промышленные системы так же, как корпоративный AD, нельзя: один неаккуратный SYN-скан способен остановить реактор. Не метафора - буквально. Эта статья - конкретные векторы атак на ICS, арсенал OT-пентестера и пошаговый путь для тех, кто хочет войти в пентест ICS/OT систем или копнуть глубже.

Чем пентест SCADA отличается от классического IT-пентеста​

В IT главная ценность - данные, приоритет - конфиденциальность. В OT приоритеты перевёрнуты: availability стоит на первом месте, потому что остановка технологического процесса - не "неудобство", а физический ущерб. Разлив реагентов, перегрев оборудования, срабатывание аварийных систем - в корпоративном пентесте таких последствий просто не бывает. Подробнее - в нашем подробном разборе кибербезопасность критической инфраструктуры.

Модель Purdue (ISA-95 / IEC 62443) формализует эту разницу, разделяя промышленную сеть на уровни:

УровеньНазначениеТипичные устройства
Level 0-1Физический процесс и контроллерыPLC, RTU, датчики, актуаторы
Level 2Управление процессомHMI, SCADA-серверы
Level 3Управление производствомHistorian, MES, engineering workstations
Level 3.5 (DMZ)Буферная зона IT/OTJump hosts, data diodes
Level 4-5Корпоративная IT-сетьAD, почта, ERP

Пентестер промышленных систем работает преимущественно на Level 3 и выше. Прямое тестирование Level 0-1 в production - табу. SYN-скан Siemens S7-300 без ограничения --max-rate в Nmap может привести к тому, что контроллер перестанет отвечать на запросы HMI, оператор нажмёт аварийную остановку - и простой в 20+ минут обеспечен. На одном assessment'е видел, как инженер-новичок запустил дефолтный Nmap по OT-подсети "просто посмотреть". PLC завис через 40 секунд. Линию останавливали вручную.

Dragos в своей методологии пентеста ICS описывает концепцию "defanged" (обезвреженных) эксплойтов: сначала проверяется сам факт эксплуатируемости уязвимости без полного выполнения payload, и только потом принимается решение о применении полного эксплойта. В IT-пентесте такой подход - редкость. В тестировании на проникновение промышленных систем он обязателен, потому что "fanged" эксплойт на контроллере может вызвать реальную аварию.

Assumed breach как стандарт тестирования промышленных систем​

В IT чёрный ящик - стандартная стартовая позиция. В OT - нет. Формат assumed breach (серый ящик) стал нормой по практическим причинам:
  • Сканирование production-контроллеров "вслепую" может вывести оборудование из строя
  • Заказчик выдаёт учётную запись уровня инженера АСУ ТП, точка старта - Level 3 по Purdue
  • Цель - показать глубину проникновения с позиции, которую реальный атакующий достигает после компрометации IT-сегмента
По данным Dragos, penetration test - это late-stage maturity activity: прежде чем заказывать пентест, организация должна иметь базовые строительные блоки - architecture review, site assessment, incident response plan. Без этого assessment найдёт десятки критических проблем, которые можно было обнаружить простым аудитом конфигурации, а ресурсы пентестера уйдут на очевидные находки вместо проверки реальной глубины защиты.

Векторы атак на ICS: три пути из корпоративной сети в OT-сегмент​

1793864224034.webp

Зачем атакующему вообще лезть в OT? Мотивация проста - остановка производственной линии стоит десятки тысяч долларов в час. По данным Verizon DBIR 2025, медианный выкуп ransomware - $46 000, но для промышленного объекта с непрерывным циклом эта сумма покрывается за часы простоя. CrowdStrike подтверждает скорость: среднее время lateral movement - 62 минуты после initial access. Рекорд - 51 секунда.

Kill chain практически всегда начинается в IT-сегменте. По данным Mandiant M-Trends 2025, exploits - вектор номер один: 38% расследований начинались с Exploit Public-Facing Application (T1190, Initial Access). Дальше атакующий двигается к OT через одну из трёх типовых точек перехода.

Historian: мост между IT и OT​

Historian (OSIsoft PI, Wonderware, AVEVA) - сервер, собирающий данные с контроллеров и передающий их в корпоративную сеть для отчётности. По Purdue - Level 3: зона, которая общается и с IT (Level 4-5), и с OT (Level 1-2). Для атакующего historian - самая удобная точка поворота из корпоративной сети в производственный сегмент.

Historian почти всегда работает на Windows Server с SQL-бэкендом. Типичные уязвимости SCADA систем на этом уровне:
  • SQL Server с учёткой sa без пароля - Default Accounts (T1078.001). По отраслевым данным, каждый четвёртый OT-пентест обнаруживает дефолтные credentials
  • RDP без Network Level Authentication - прямой путь к Exploitation of Remote Services (T1210)
  • Отсутствие LAPS - локальный администратор с одинаковым паролем на всех серверах сегмента
  • SMB-шары с read/write доступом для всех пользователей домена
Защитная мера по D3FEND: D3-CDP (Change Default Password) - замена дефолтных паролей при вводе в эксплуатацию. Звучит элементарно. Но в промышленных средах, где каждое изменение конфигурации проходит через change management, дефолтные учётки живут годами. Я видел sa без пароля на historian'е, который работал в production с 2017 года.

Engineering workstation с dual-homing​

Engineering workstation (EWS) - компьютер с TIA Portal (Siemens) или Studio 5000 (Allen-Bradley). EWS часто имеет два сетевых интерфейса: один в корпоративной сети для обновлений, второй - прямое подключение к OT-сегменту для загрузки проектов в контроллеры. Скомпрометированная EWS - прямой маршрут в OT без прохождения firewall.

Lateral movement к EWS идёт через стандартные TTPs. Промышленные протоколы Modbus и DNP3 передают данные в открытом виде - Network Sniffing (T1040) позволяет перехватить credentials из plaintext-трафика за минуты. Дальше - RDP с перехваченными учётными данными или SMB relay.

Если EWS изолирована в выделенном VLAN с доступом только через jump host с MFA - lateral movement останавливается. На практике dual-homing встречается значительно чаще полной изоляции.

Забытый VPN подрядчика​

Vendor remote access - одна из самых распространённых уязвимостей в безопасности АСУ ТП. Подрядчик Siemens или Schneider получает VPN-доступ для удалённой диагностики, и этот доступ остаётся активным месяцами после окончания работ. Если VPN-шлюз не обновлён - Exploit Public-Facing Application (T1190) позволяет атакующему попасть в OT-сегмент без учётных данных.

По данным CrowdStrike, 75% вторжений в 2024 году использовали действительные учётные данные. Забытый VPN-аккаунт подрядчика с паролем, который не менялся с момента ввода в эксплуатацию, - подарок для атакующего, который даже не надо заворачивать.

Рекомендации D3FEND: D3-ITF (Inbound Traffic Filtering) на уровне DMZ, D3-PMAD (Protocol Metadata Anomaly Detection) для обнаружения аномалий в метаданных протоколов, D3-CAA (Connection Attempt Analysis) для анализа попыток подключения в OT-сегменте.

Инструменты для пентеста ICS: практический арсенал​

1793864525576.webp

Пассивная разведка OT-сети​

На production-объекте первый этап - исключительно пассивный. Wireshark на зеркалированном порту (SPAN) коммутатора OT-сегмента показывает полную картину трафика без отправки единого пакета:
Код:
modbus                    # Modbus TCP (порт 502)
modbus.func_code == 6     # Write Single Register - команда управления
s7comm                    # Siemens S7 (порт 102)
dnp3                      # DNP3 (порт 20000)
enip                      # EtherNet/IP - CIP (порт 44818)
Что фиксируем: какие устройства общаются между собой, какие function codes летят по сети (read vs write), есть ли write-команды от неизвестных IP. Read Holding Registers (FC 3) - штатный опрос. Write Single Register (FC 6) или Write Multiple Registers (FC 16) из нештатного источника - либо компрометация, либо ошибка конфигурации. И то, и другое - в отчёт.

Для внешней разведки - Shodan и Censys. Запрос port:502 country:RU покажет Modbus-устройства, доступные из интернета. port:102 product:"Siemens" - контроллеры S7 с открытым портом. Каждая такая находка - потенциальная точка входа, которая должна быть в отчёте ещё до начала активного тестирования.

Активное сканирование с учётом ограничений​

Nmap с NSE-скриптами для ICS используется строго после согласования с инженерами АСУ ТП:
Bash:
nmap -sT -p 502 --script modbus-discover --max-rate 10 -oA modbus_scan 192.168.100.0/24
Ключевые NSE-скрипты: modbus-discover для обнаружения Modbus-устройств, s7-info для fingerprinting Siemens S7, enip-info для EtherNet/IP. Параметр --max-rate 10 - не рекомендация, а жёсткое требование. Без него Nmap отправит сотни пакетов в секунду и может перегрузить контроллер, вызвав каскадный отказ на линии.

Scapy позволяет формировать кастомные пакеты для протоколов, которые Nmap не покрывает. Modbus-запрос Write Single Register (FC 6) на тестовом стенде формируется через sr1(IP(dst=target)/TCP(dport=502)/Raw(load=modbus_payload)) - но применять это можно исключительно на изолированном стенде. На production такой пакет запускать - всё равно что тыкать отвёрткой в работающий реактор.

Полный арсенал инструментов для пентеста ICS​

ИнструментНазначениеКогда НЕ подходит
WiresharkПассивный анализ OT-протоколов на SPANНе подходит для активного тестирования
Nmap + NSE (ICS scripts)Обнаружение и fingerprinting OT-устройствОпасен без --max-rate на production
Scapy (Python)Кастомные пакеты Modbus/S7/DNP3Требует понимания протокола на уровне байтов
Metasploit (ICS modules)Эксплуатация известных CVE в PLC/SCADAНе использовать на production без стенда
Shodan / CensysВнешняя разведка ICS-активов в интернетеНе заменяет внутреннюю разведку сегмента
GRFICSВиртуальный стенд с PLC и химическим процессомНе воспроизводит все реальные OT-условия
ConpotICS/SCADA-ханипот для обученияТолько для тренировки разведки
OpenPLCОткрытый PLC на Raspberry Pi / DockerОграниченная поддержка промышленных протоколов

Дорожная карта обучения ICS security: от базы до первого assessment'а​

Три этапа входа в пентест промышленных систем​

Этап 1: фундамент (0-6 месяцев). Без базы в сетевых технологиях и Windows/AD-пентесте переходить к ICS бессмысленно. Минимальный набор:
  • Анализ pcap-файлов с Modbus/DNP3/S7-трафиком в Wireshark - начните с публичных дампов ICS-трафика
  • Базовый AD-пентест: kerberoasting, pass-the-hash, SMB relay - historian и EWS работают на Windows, без этого в OT делать нечего
  • Понимание модели Purdue и стандартов IEC 62443, NIST SP 800-82
  • Работа со Scapy для создания кастомных сетевых пакетов
Бесплатные ресурсы: серия Mike Holcomb по OT/ICS cybersecurity (YouTube), документация CISA по защите критической инфраструктуры.

Этап 2: лабораторная практика (3-12 месяцев). Ключевой этап - получить среду, где можно ломать контроллеры без последствий:

GRFICS - виртуальная среда с имитацией химического процесса: PLC, HMI, Modbus/S7-трафик в VM. Позволяет практиковать полный цикл от разведки до модификации регистров. OpenPLC - открытый программируемый контроллер. Ставится на Raspberry Pi или в Docker, поддерживает Modbus TCP, программируется в Ladder Logic - идеален для первых экспериментов с протоколами. Conpot - ICS/SCADA-ханипот, имитирующий поведение реальных контроллеров. Полезен для понимания разведки со стороны атакующего и отработки техник детектирования.

Физический стенд - следующий уровень. Б/у Siemens S7-1200 на вторичном рынке доступен от 15 000 рублей, базовая HMI-панель - от 20 000. Для старта хватит одного PLC и ноутбука с TIA Portal. Разница между чтением holding registers в GRFICS и на живом S7 ощущается сразу - реальный контроллер реагирует на ошибки по-другому. Иногда зависает. Иногда молча сбрасывает соединение. Иногда делает вид, что всё нормально, а через минуту уходит в STOP.

Этап 3: сертификация (12-24 месяца).

ICS/OT сертификация: что выбрать пентестеру​

СертификацияФокусФорматПредусловия
GICSP (GIAC)ICS security для IT-специалистовЭкзамен, open bookРекомендуется SANS ICS410
SANS ICS613OT penetration testing и assessments6 дней + лабы + CTFБазовые знания ICS/OT
GRID (GIAC)ICS/OT defence in depthЭкзамен, open bookРекомендуется SANS ICS515
OSCP + OT-опытОбщий пентест + ICS-специализацияПрактический экзамен 24 часаСамоподготовка или PWK

SANS ICS613 - наиболее целевой курс для OT-пентестера. Покрывает типы OT-assessments, bench testing methodology, лабораторные кейсы и подготовку инструментов. Включает комплементарный доступ к ICS310 (ICS Cybersecurity Foundations) для заполнения пробелов в базе. Для тех, у кого уже есть OSCP, ICS613 - логичный следующий шаг. Стоит дорого (курс SANS - это $8 000+), но альтернатив с таким уровнем лабораторной практики на рынке нет.

Для российских специалистов критически важно знание 187-ФЗ "О безопасности критической информационной инфраструктуры" и приказов ФСТЭК. Субъекты КИИ обязаны проводить категорирование объектов (категории 1, 2, 3 по критериям значимости), направлять сведения о ЗОКИИ в ФСТЭК в течение 10 дней, взаимодействовать с ГосСОПКА - уведомление об инцидентах в срок от 3 до 24 часов в зависимости от категории. Приказ ФСТЭК №239 задаёт требования к защите ЗОКИИ, и пентест фактически является частью оценки эффективности принятых мер.

Деталь, которую новички упускают: промышленный межсетевой экран между Level 3 и Level 1 должен соответствовать профилю МЭ-Г (промышленный) по классификации ФСТЭК, а не быть обычным IT-firewall. Проверка наличия и класса сертификации МЭ - обязательный пункт отчёта для заказчиков из КИИ.

Типичные ошибки новичков в OT-пентесте​

  • Агрессивное сканирование production. Nmap с дефолтными параметрами способен вывести PLC из строя. Всегда --max-rate, всегда предварительное согласование с инженерами АСУ ТП
  • Игнорирование Safety Instrumented Systems. SIS - отдельная зона, которую нельзя трогать ни при каких обстоятельствах. Даже пассивная разведка SIS требует отдельного письменного разрешения
  • IT-эксплойты на OT-устройствах. Kernel exploit на Windows Server historian'а - допустимо, это стандартный Windows. Buffer overflow на PLC firmware без изолированного стенда - категорически нет
  • Отсутствие rollback-плана. Как вернуть PLC в рабочее состояние, если что-то пошло не так? Ответ должен быть согласован с инженерами до начала тестирования, а не придумываться в процессе

Пошаговый сценарий: тестирование на проникновение промышленной сети​

1793864737396.webp

📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

Этап 5 - отчёт. Каждая находка - с PoC, оценкой критичности по CVSS и привязкой к MITRE ATT&CK. Для российских заказчиков - маппинг на требования 187-ФЗ и приказов ФСТЭК (№239, №235). Отчёт должен быть пригоден для предоставления регулятору без переделки - это отдельный навык, который стоит освоить на старте карьеры.

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

Работая с промышленными объектами последние три года, ни разу не встретил среду, где модель Purdue была бы реализована полностью. По документам - сегментация, DMZ, промышленные firewall с whitelist. В реальности - flat network между Level 3 и Level 1, historian с дефолтным sa и VPN-туннель подрядчика, который "забыли" отключить восемь месяцев назад. При 70% атак на критическую инфраструктуру и 29 месяцах на патч - разрыв между документированной и реальной архитектурой будет только расти.

Прогноз: спрос на пентестеров промышленных систем в ближайшие два года вырастет кратно. 187-ФЗ ужесточает требования к субъектам КИИ, ransomware-группы наращивают давление на manufacturing, а специалистов, которые одновременно владеют AD-пентестом и понимают Modbus на уровне байтов, на рынке - единицы. Порог входа выше, чем в веб-пентесте, но конкуренция принципиально ниже. Кто освоит GRFICS и OpenPLC сегодня, через год будет одним из тех немногих, кого заказчики из КИИ приглашают по имени. На WAPT в Codeby эту связку IT->OT разбирают на конкретных лабах - если хотите попробовать, не дожидаясь живого production.
Полезно

Комментарии

0