РАЗБОР
Статья
Пентест ICS/OT систем: векторы, инструменты, обучение
[ обложка статьи ]
Режим чтения
По данным 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/OT | Jump 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-сегмента
Векторы атак на ICS: три пути из корпоративной сети в OT-сегмент
Зачем атакующему вообще лезть в 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 доступом для всех пользователей домена
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: практический арсенал
Пассивная разведка 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)
Для внешней разведки - 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
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-условия |
| Conpot | ICS/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 для создания кастомных сетевых пакетов
Этап 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 ICS613 | OT penetration testing и assessments | 6 дней + лабы + 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 в рабочее состояние, если что-то пошло не так? Ответ должен быть согласован с инженерами до начала тестирования, а не придумываться в процессе
Пошаговый сценарий: тестирование на проникновение промышленной сети
Этап 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.
AI-выжимка
по разделам
Тезисы статьи скоро
Статья читается полностью. Тезисы со ссылками на разделы появятся позже.
Содержание
Codeby Academy
Практика и мастерство
От основ до продвинутого — программы для практиков Codeby.
Перейти к курсу →
Продолжить чтение
Следующий разбор
DNS-туннелирование. Как обнаружить скрытую передачу данных в сетевом трафике.
Комментарии
0