Распечатанная схема модели Purdue на плотной бумаге с пятью горизонтальными зонами и выделенной полосой DMZ, с рукописными пометками чернилами. Латунное пресс-папье в углу, мягкий боковой свет.


На аудите нефтехимического завода в прошлом году мы нашли Modbus/TCP-трафик от ПЛК Siemens S7-1200 и HMI-панелей в одном VLAN с корпоративным файловым сервером. От скомпрометированного ноутбука подрядчика в IT-сегменте до записи значений в holding-регистры контроллера - 47 минут, два дырявых ACE-правила на транзитном файрволе и ни одного алерта в SIEM. Это не аномалия. Это типичное состояние OT-инфраструктуры, где сегментация промышленных сетей нарисована в Visio, а на практике Level 2 и Level 3 Purdue Model слиты в одну плоскую подсеть.

Purdue Model промышленные сети: зоны доверия и где они рушатся​

Purdue Enterprise Reference Architecture (PERA) делит инфраструктуру промышленного предприятия на уровни от 0 до 5. По данным Palo Alto Networks, уровни 0–3 - OT-сторона (физические процессы, контроллеры, SCADA), 4–5 - IT-сторона (ERP, почта, интернет). Между ними - DMZ на уровне 3.5, добавленная позже как буферная зона.

Модель определяет зоны и conduits - каналы связи между зонами. Conduit должен быть защищён на уровне наиболее критичной зоны, которую он соединяет. По IEC 62443 каждая зона получает собственную политику безопасности, а conduit - набор правил фильтрации. На бумаге всё красиво. На площадке - иначе.

Уровни 0–3: OT-территория​

Level 0 - физический процесс: датчики температуры, давления, расхода, исполнительные механизмы (клапаны, насосы). Работают по аналоговому сигналу 4–20 мА или цифровым шинам (HART, Foundation Fieldbus). Прямого IP-подключения обычно нет, но атакующий с доступом к Level 1 управляет ими через контроллер.

Level 1 - контроллеры: ПЛК (Siemens S7, Rockwell ControlLogix, Schneider Modicon), RTU. Большинство ПЛК работают на прошивках десятилетней давности, не поддерживают шифрование и не имеют механизма аутентификации. Modbus/TCP на порту 502 принимает команды от любого IP-адреса без проверки. Просто принимает - и выполняет.

Level 2 - SCADA/HMI: операторские станции, локальные SCADA-серверы. Оператор видит мнемосхему процесса и вносит уставки. На реальных объектах Level 2 и Level 3 регулярно оказываются в одной подсети - инженерам проще, когда historian стоит рядом с HMI без дополнительного файрвола между ними. «Временно» - на три года.

Level 3 - управление площадкой: MES, plant-wide historians (OSIsoft PI, Wonderware Historian), серверы алертов. По данным Dragos, historian-сервер на Level 3 - самый частый вектор обхода границы между IT и OT. Корпоративные пользователи подключаются к нему для выгрузки отчётов через SMB, OPC DA/UA или проприетарные протоколы, создавая прямой conduit в обход DMZ.

Уровень 3.5: DMZ для ICS систем​

Level 3.5 не был частью оригинальной Purdue Model, но по данным Palo Alto Networks сейчас считается обязательным. DMZ работает как буфер: данные перетекают между IT и OT, но с фильтрацией и мониторингом.

Правильная реализация DMZ для ICS систем:
  • В DMZ размещается зеркало historian-сервера (replica), а не оригинал
  • Трафик из IT идёт только к replica в DMZ, не к OT-историану напрямую
  • Однонаправленные шлюзы (data diodes) - Waterfall Security, Owl Cyber Defense - передают данные из OT в DMZ на аппаратном уровне без возможности обратного канала
  • Файрвол между Level 3 и Level 3.5 разрешает исходящие от historian к replica, но блокирует входящие в OT
На практике вижу другое: historian стоит в одном сегменте с HMI, аналитики ходят к нему по RDP из корпоративной сети, а «DMZ» - VLAN-тег на общем коммутаторе без ACL. Формально DMZ есть. Фактически - нет.

Уровни 4–5: IT-территория и точки входа​

Level 4 - бизнес-системы: ERP, CRM, AD, корпоративная почта. Стандартные IT-угрозы: фишинг, credential stuffing, AD-атаки.

Level 5 - интернет, облачные сервисы, VPN-шлюзы для подрядчиков.

Ошибка, которую встречаю регулярно: VPN подрядчика приземляется сразу на Level 2 - к инженерной станции, минуя DMZ. По MITRE ATT&CK это Trusted Relationship (T1199, Initial Access): атакующий компрометирует подрядчика и получает прямой маршрут в OT-сегмент. Тот же путь используют External Remote Services (T1133, Initial Access/Persistence) - RDP или SSH к промышленным хостам через туннелированный VPN.

Чем OT-угрозы отличаются от IT на уровне защитных мер​

Стандартный IT-стек - EDR на эндпоинтах, SIEM для корреляции, NGFW на периметре - в OT-среде либо неприменим, либо создаёт новые риски. Разница не в масштабе угроз, а в фундаментальных свойствах среды.

Протоколы без аутентификации и шифрования​

Modbus/TCP - протокол 1979 года. Нет аутентификации, нет шифрования, нет проверки целостности. Команда записи в регистр - FC6 (Write Single Register), FC16 (Write Multiple Registers) - выполняется контроллером без вопросов. Любой хост в одном сегменте с ПЛК отправляет FC5 (Write Single Coil) и переключает дискретный выход - открывает клапан, включает насос. FC3 (Read Holding Registers) - чтение, для процесса безобидно, но даёт атакующему полную карту уставок.

DNP3 - протокол для энергетики и водоснабжения. Поддерживает Secure Authentication начиная с версии SA v5, но подавляющее большинство установок работают без неё. Потому что «и так работает».

IEC 60870-5-104 - протокол телемеханики, стандарт в европейской и российской энергетике, работает поверх TCP/IP. Именно этот протокол использовала малварь Industroyer/CrashOverride для отключения электроподстанций - атакующие отправляли легитимные команды управления, и оборудование исполняло их, потому что протокол не различает оператора и злоумышленника. Команда есть команда.

TRITON (TRISIS) - единственный публично известный малварь, нацеленный на Safety Instrumented Systems (SIS). Целью были контроллеры Schneider Electric Triconex. Атакующий добрался до SIS-контроллера через сеть, потому что SIS-сегмент не был изолирован от DCS. Урок жёсткий: сегментация между safety-системами и DCS - отдельное требование, а не «приятное дополнение».

Почему стандартные EDR и SIEM слепнут в SCADA-сети​

Мера защитыIT-средаOT-средаПричина
EDR-агентУстанавливается на эндпоинтНевозможен на ПЛК (VxWorks, QNX); вендор запрещает на HMI (Windows XP/7 Embedded)Нет ОС для агента; потеря гарантии
SIEM-парсингHTTP, DNS, Kerberos - разобранные протоколыModbus, OPC DA, EtherNet/IP - для SIEM это «TCP на порту X»Нет парсеров промышленных протоколов
Активное сканированиеNmap -T4 по корпоративной сети - стандартная процедураNmap с агрессивным timing может перезагрузить legacy-ПЛКСтек TCP/IP у старых контроллеров нестабилен
Патч-менеджментРегулярные обновления ОСОбновление прошивки ПЛК - остановка производстваDowntime стоит миллионы; нет окон обслуживания

Для мониторинга OT-сетей нужны специализированные решения: Claroty, Nozomi Networks, Dragos. Они работают пассивно - слушают SPAN-порт или TAP, разбирают промышленные протоколы до уровня отдельных function codes и тегов, не генерируя трафик в сеть. Строят baseline нормального поведения и алертят на отклонения: новый IP отправил Modbus-команды, появился FC16 с хоста, который раньше использовал только FC3.

Lateral movement из IT в OT: атака через historian-сервер​

1780640443780.webp

Сценарий, который повторяется на каждом втором OT-аудите. Цепочка атаки - от корпоративной почты до записи в регистры ПЛК.

Kill chain с привязкой к MITRE ATT&CK​

[Применимо: внутренний пентест, grey box с доступом к IT-сегменту]

Шаг 1. Initial access. Фишинговое письмо или украденный VPN-аккаунт подрядчика - Valid Accounts (T1078, Initial Access). Атакующий получает RDP к рабочей станции на Level 4/5.

Шаг 2. Discovery. Из IT-сегмента обнаруживается historian - виден через DNS или AD, часто с характерным hostname (PI-HISTORIAN, HIST-01). Network Service Discovery (T1046, Discovery). Если historian использует OPC UA на порту 4840 или PI Web API на 443 - находится за секунды.

Шаг 3. Lateral movement через historian. Historian на Level 3 / Level 3.5 доступен из IT для выгрузки отчётов. Атакующий подключается по SMB, OPC UA или RDP - Exploitation of Remote Services (T1210, Lateral Movement). Сервисные аккаунты историана с паролями, не менявшимися годами, - стандартная находка. На одном объекте пароль от PI-сервера был pi_admin2016. 2016 год. Аудит - 2024.

Шаг 4. Pivot в OT. С historian-сервера видны HMI и SCADA на Level 2. Если Level 2 и Level 3 не разделены файрволом (типичная ситуация - уровни «слиплись»), lateral movement тривиален. Часто достаточно ARP-запроса, чтобы увидеть всю сеть. Adversary-in-the-Middle (T1557, Credential Access) позволяет перехватить OPC-сессии.

Шаг 5. Воздействие на процесс. С HMI или напрямую из сети Level 1–2 атакующий отправляет Modbus-команды к ПЛК. Одного TCP-пакета с FC6 достаточно для изменения уставки.

Fingerprinting OT-активов из IT-сегмента​

Требования к окружению:
  • ОС: Kali Linux или любая ОС с nmap ≥7.80 и установленными NSE-скриптами
  • RAM: минимум 2 ГБ
  • Сеть: доступ к OT-сегменту через jump host в DMZ или прямой маршрут (если DMZ отсутствует)
  • Согласование: письменное разрешение от владельца АСУ ТП, присутствие инженера на площадке, готовность к ручной перезагрузке ПЛК
Ключевое ограничение: активный скан может вывести из строя legacy-ПЛК. На одном проекте сканирование порта 102 (S7comm) на Siemens S7-300 привело к зависанию CPU - контроллер перезагружали вручную, 20 минут простоя участка. Инженер АСУ ТП был, мягко говоря, недоволен.
Bash:
# Обнаружение OT-сервисов (timing=2 polite)
nmap -sT -T2 -p 502,102,2404,20000,44818 --open 10.10.0.0/24
# 502  - Modbus/TCP
# 102  - S7comm (Siemens)
# 2404 - IEC 60870-5-104
# 20000 - DNP3
# 44818 - EtherNet/IP (Rockwell)
Когда техника НЕ работает: даже polite-скан рискован для контроллеров Siemens S7-300, Schneider Quantum серий до 2010 года. На боевом пентесте OT-сети каждый скан согласуется с инженером АСУ ТП заранее. Без согласования - не запускать.

После обнаружения Modbus-устройств - идентификация без модификации состояния:
Bash:
# Read Device Identification (FC43/14) - безопасная для процесса
nmap -sT -p 502 --script modbus-discover 13.37.19.17
FC43 подфункция 14 (Read Device Identification) - стандартная диагностическая функция Modbus, не изменяет регистры и не влияет на управляющую логику. Это чтение, не запись.

Zero Trust в ICS среде: адаптация под legacy-реалии​

1.webp

По данным ON2IT, классическая Purdue Model опирается на широкие горизонтальные уровни - все ПЛК в Level 1, все HMI в Level 2. Внутри одного уровня изоляции нет. Атакующий, попавший на Level 2, видит все HMI и SCADA-серверы этого уровня. Zero Trust предлагает сегментацию по protect surfaces - вертикальным колонкам, привязанным к конкретным бизнес-процессам.

Protect surfaces вместо горизонтальных слоёв​

Вместо того чтобы группировать все ПЛК в один Level 1, выделяем protect surface для каждого критичного процесса:
  • Контур реактора: датчики температуры + ПЛК + HMI реактора - отдельный микросегмент
  • Контур водоподготовки: свои датчики, контроллер, HMI - изолированный сегмент
  • BAS (Building Automation): HVAC, освещение, энергоменеджмент - физически отдельно от производственной сети
По ON2IT, HMI для мониторинга температуры не должен иметь сетевой связности с ПЛК, управляющим роботизированной линией. При Purdue-подходе оба устройства на Level 2 - в одном сегменте. При Zero Trust - в разных protect surfaces с раздельными политиками.

По Zscaler, именно гранулярность на уровне отдельных активов, а не сетевых сегментов, отличает Zero Trust от классической Purdue-сегментации.

Где Zero Trust ломается в OT​

Принцип Zero TrustРеализация в ITПроблема в OT
MFA для каждого доступаOkta, Duo на каждом сервисеПЛК принимает Modbus без аутентификации; замена контроллеров - миллионы
Endpoint-агентCrowdStrike Falcon, SentinelOneНа ПЛК с VxWorks агент не установится; на HMI (Win XP Embedded) - потеря гарантии вендора
Identity-based accessOAuth2, SAML, mTLSModbus, DNP3, OPC DA не имеют концепции «пользователь»; контроль - только по IP на файрволе
Continuous verificationПостоянная проверка состоянияКонтур управления с циклом 10–50 мс; proxy/broker на пути пакета = недопустимая latency
Encrypt everythingTLS/mTLS повсеместноModbus/TCP не поддерживает шифрование; контроллеры не имеют ресурсов для TLS

По GuidePoint Security, Purdue 2.0 не заменяет Purdue Model на Zero Trust, а дополняет: горизонтальные уровни сохраняются как каркас, внутри них - гранулярная микросегментация и continuous monitoring.

Компенсирующие меры для legacy-среды​

Когда Zero Trust в чистом виде невозможен (а в OT он невозможен почти всегда), работает набор мер, компенсирующих отсутствие аутентификации и шифрования на уровне протоколов.

Микросегментация на уровне сети. Каждый ПЛК или группа ПЛК одного процесса - в отдельном VLAN с промышленным файрволом. Fortinet FortiGate с OT-профилями и Cisco ISA 3000 умеют инспектировать Modbus/TCP до уровня function codes: разрешить FC3 (Read) от SCADA, блокировать FC5/FC6/FC16 (Write) от любого хоста кроме авторизованной инженерной станции. Настройка не быстрая, но работает.

Однонаправленные шлюзы. Waterfall Security, Owl Cyber Defense - аппаратная гарантия одностороннего потока данных из OT в IT. Обратный трафик физически невозможен. Закрывает вектор lateral movement через historian-replica.

Пассивный мониторинг. Claroty, Nozomi, Dragos на SPAN/TAP: baseline нормального поведения + алерты на отклонения (новый Modbus-клиент, FC16 от нетипичного источника, загрузка прошивки в ПЛК). Не генерирует трафик в промышленную сеть - и это принципиально.

Контроль инженерных станций. Engineering workstations - единственные хосты для загрузки прошивки в ПЛК. Физическая изоляция, подключение к OT только на время работ, заблокированные USB-порты, мониторинг сессий. Disable or Modify System Firewall (T1686, Defense Evasion) на инженерной станции - красный флаг, алерт уровня P1. Если кто-то выключил файрвол на engineering workstation, это либо инженер-раздолбай, либо атакующий. В обоих случаях - разбираться немедленно.

Чеклист сегментации промышленных сетей​

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

Главная проблема защиты OT-сетей - не технологии и не бюджет. Проблема - организационный разрыв между IT Security и инженерами АСУ ТП. За десять лет работы с промышленными объектами вижу один паттерн: ИБ-отдел проектирует сегментацию по Purdue Model, рисует схемы с DMZ и data diodes, а через полгода инженеры АСУ ТП прокидывают прямой маршрут из IT в OT «чтобы historian нормально обновлялся» - и никто не узнаёт до следующего аудита. Zero Trust не спасёт, если человек с правами на коммутатор за пять минут создаёт trunk-порт, разрушающий всю архитектуру.

Purdue 2.0 и микросегментация - движение в правильную сторону. Но реальный прогресс начнётся, когда OT Security перестанет быть «проектом IT-отдела с привлечением АСУ ТП» и станет совместной ответственностью с единой системой контроля изменений. На одном из аудитов водоканала мы нашли 14 несогласованных изменений сетевой конфигурации за квартал - каждое потенциально открывало путь из Level 4 в Level 2. Промышленный файрвол и Nozomi на SPAN без change management - иллюзия безопасности с красивым дашбордом. Если хочется руками пощупать, как выглядит recon промышленной сети и чем пассивный анализ отличается от активного скана, который роняет контроллер, - задачи в категории network на HackerLab.pro (https://hackerlab.pro) строятся вокруг похожих сценариев с разбором протоколов без риска для реального оборудования.
 
Последнее редактирование модератором:
  • Нравится
Реакции: AndreyB
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab