Сегментация OT-сети с использованием зон и каналов ISA-99: практическое руководство по Schneider M580 и Bachmann M1

Настоящая проблема плоских OT-сетей
Большинство промышленных предприятий, построенных до 2015 года, используют плоскую Ethernet-сеть, где ПЛК Schneider Electric Modicon M580, контроллер автоматизации Bachmann M1, SCADA-историк и корпоративная ERP находятся в одной и той же доменной зоне второго уровня (Layer 2). Во-первых, это означает, что атака с программой-вымогателем, проникшая через корпоративную сеть, достигает процессора M580 без прохождения через какие-либо точки контроля доступа. Во-вторых, неправильно настроенная рабочая станция, создающая ARP-шторма, может перегрузить Ethernet-порт процессора M580 BM•P 58•2020 — Ethernet-порт процессора M580 обрабатывает ARP на программном уровне с потолком в 500 пакетов в секунду. В-третьих, эксплойты протоколов, нацеленные на Modbus TCP порт 502 или EtherNet/IP порт 44818, свободно распространяются по плоской сети. Поэтому архитектура зон и каналов ISA-99 / IEC 62443 не является опцией — это единственная проверенная структура, которая обеспечивает защиту на уровне сети без нарушения стратегии управления.
Архитектура зон и каналов ISA-99: определение структуры
ISA-99 (IEC 62443-3-3) делит промышленную сеть на уровни безопасности (SL) и назначает активы в зоны в зависимости от последствий компрометации. Сначала определите свои зоны до настройки любого коммутатора. Затем идентифицируйте каждое устройство в сети предприятия и назначьте его одной из четырёх зон:
- Зона 1 — Безопасность (SIL): Только ПЛК безопасности. Для большинства предприятий это системы ICS Triplex или Triconex TMR. В эту зону не поступает трафик общего назначения. Канал в Зону 2 разрешает только Modbus TCP с правами только для чтения для отображения SCADA.
- Зона 2 — Управление (SL-2): Процессоры Schneider M580, контроллеры Bachmann M1, сети ввода-вывода, управление полевыми устройствами. Трафик EtherNet/IP и Modbus TCP остаётся внутри этой зоны. Внешний доступ возможен только через канал IDMZ.
- Зона 3 — Надзор (SL-1): Серверы SCADA, историк DCS, рабочие станции операторов. Эта зона получает доступ к Зоне 2 через определённый канал через stateful firewall — не через плоское соединение.
- Зона 4 — Предприятие (SL-0): Корпоративная ERP, Active Directory, почтовые серверы. Никакого прямого доступа к Зоне 2 или Зоне 1. Весь обмен данными происходит только через IDMZ.
Кроме того, промышленная DMZ (IDMZ) расположена между Зоной 3 и Зоной 4. IDMZ содержит серверы репликации данных — OSIsoft PI, Wonderware Historian или OPC DA/UA шлюз. Трафик не проходит через IDMZ напрямую — и Зона 3, и Зона 4 подключаются к серверам IDMZ, но не напрямую друг к другу. Это основной принцип контроля границ ISA-99.
Настройка VLAN и firewall для сетей Schneider M580
Schneider Modicon M580 использует EtherNet/IP на Ethernet-порту процессорной платы (серия BMEP58•020) и выделенный Ethernet-порт для сети ввода-вывода Ethernet RIO. Сначала назначьте порт управления процессора в VLAN 20 (Зона управления) на вашем управляемом коммутаторе. Затем назначьте все удалённые I/O (BMECRA31210 RIO drops) в VLAN 21 (подзона I/O). Третье, создайте ACL (список контроля доступа) на коммутаторе, чтобы блокировать весь трафик между VLAN 21 и любой зоной выше уровня 2.
На управляемом коммутаторе Cisco IE4000 или Cisco IE3400 настройте маршрутизацию между VLAN с такими правилами firewall:
- Шаг 1: Создайте VLAN 20 (Управление) и VLAN 21 (RIO). Назначьте порт процессора M580 в режим доступа VLAN 20. Назначьте все порты BMECRA31210 RIO в режим доступа VLAN 21.
- Шаг 2: Примените ACL на SVI VLAN 20: разрешите TCP любой 192.168.20.0/24 порт 44818 (EtherNet/IP CIP). Разрешите TCP любой 192.168.20.0/24 порт 502 (Modbus TCP). Запретите ip любой любой с логированием. Это позволяет только необходимым протоколам достигать M580.
- Шаг 3: Заблокируйте весь внешний доступ к VLAN 21 на уровне Layer 3 — запретите ip любой 192.168.21.0/24. Трафик RIO никогда не должен быть доступен из Зоны 3 или Зоны 4.
- Шаг 4: Настройте stateful firewall между Зоной 2 и Зоной 3, чтобы разрешить только порт OPC UA 4840 от сервера SCADA к OPC UA шлюзу Зоны 3. Заблокируйте Modbus TCP порт 502 между Зоной 3 и Зоной 2 — SCADA читает OPC UA шлюз, а не M580 напрямую.
- Шаг 5: Включите защиту портов на всех портах коммутатора M580 и BMECRA — закрепите по MAC-адресу передатчика. Установите режим нарушения безопасности порта в "restrict" (не "shutdown"), чтобы генерировать предупреждение без отключения сети ввода-вывода.
Однако Ethernet-порт процессора M580 не поддерживает нативно тегирование VLAN 802.1Q — он работает только как порт доступа VLAN. Поэтому все тегирование VLAN должен выполнять коммутатор. Это распространённое ограничение при проектировании сетей M580, которое инженеры часто упускают при проектировании сегментации.
Сегментация контроллера Bachmann M1 и контроль границ OPC UA
Контроллеры Bachmann M1 используют собственную Ethernet-сеть MIO (Modular I/O) на выделенном интерфейсе, отдельном от порта программирования. Сначала назначьте сеть MIO Bachmann M1 в VLAN 22 — отдельно от VLAN 20 управления Schneider M580. Это предотвращает межпротокольные ARP-шторма. Во-вторых, Bachmann M1 поддерживает сервер OPC UA нативно в своей среде программирования SolutionCenter. Настройте сервер OPC UA так, чтобы он раскрывал только необходимые теги в Зону 3 — не раскрывайте полный namespace переменных M1.
В Bachmann SolutionCenter установите режим безопасности OPC UA "SignAndEncrypt" и политику безопасности "Basic256Sha256". Отклоняйте все анонимные подключения — требуйте аутентификацию на основе сертификатов. Это соответствует требованиям уровня безопасности 2 IEC 62443-3-3 для Зоны управления. Кроме того, настройте адресное пространство сервера OPC UA M1 так, чтобы публиковались только теги из утверждённого списка тегов SCADA — используйте конфигурацию Bachmann OPC UA NodeManager для белого списка конкретных узлов переменных. Блокируйте все остальные узлы на уровне сервера OPC UA, а не только на уровне firewall.
- Шаг 1: В Bachmann SolutionCenter перейдите к конфигурации сервера OPC UA в модуле "Communication".
- Шаг 2: Установите режим безопасности "SignAndEncrypt". Установите политику безопасности "Basic256Sha256". Отключите политики "None" и "Sign".
- Шаг 3: Импортируйте сертификат сервера SCADA в хранилище доверенных сертификатов Bachmann M1. Подключаются только SCADA-клиенты с сертификатами.
- Шаг 4: Включите функцию firewall Bachmann M1 — разрешите TCP 4840 (OPC UA) только с IP-адреса сервера SCADA 192.168.30.10. Заблокируйте все остальные входящие подключения на порт OPC UA.
- Шаг 5: Настройте тайм-аут сессии на 30 секунд. Любая сессия SCADA, неактивная 30 секунд, автоматически закрывается — предотвращает накопление устаревших сессий в таблице сессий M1.
- Шаг 6: Логируйте все события подключения OPC UA в syslog Bachmann M1 — настройте пересылку syslog на SIEM-сервер в IDMZ для мониторинга безопасности.
Проектирование IDMZ: репликация данных без прямого пересечения зон
IDMZ содержит ровно два типа серверов: сервер репликации исторических данных и jump-сервер удалённого доступа. Во-первых, в IDMZ работает OSIsoft PI Relay или Honeywell Uniformance PHD. Историк в Зоне 3 отправляет данные на IDMZ relay через TCP порт 5450 (интерфейс PI-to-PI). Корпоративный историк в Зоне 4 получает данные с IDMZ relay через тот же порт. Процессные данные никогда не передаются напрямую между Зоной 3 и Зоной 4. Во-вторых, jump-сервер удалённого доступа в IDMZ предоставляет RDP-доступ для инженеров по обслуживанию. Настройте jump-сервер так, чтобы разрешать RDP-подключения только с одобренных VPN-точек с многофакторной аутентификацией — никогда не разрешайте прямой RDP из Зоны 4 в Зону 2 или Зону 1.
Кроме того, примените следующие правила firewall между Зоной 4 и IDMZ: разрешите TCP 5450 (PI) только от историка Зоны 4 к IDMZ relay. Запретите весь остальной трафик от Зоны 4 к IDMZ. Между IDMZ и Зоной 3: разрешите TCP 5450 от IDMZ relay к историку Зоны 3. Разрешите RDP (TCP 3389) только от jump-сервера IDMZ к рабочим станциям SCADA Зоны 3 — с обязательной MFA на шлюзе jump-сервера.
Заключение и рекомендации к действию
Сегментация зон и каналов ISA-99 для сетей Schneider M580 и Bachmann M1 — это инженерная задача, а не проект по ИТ-безопасности. Во-первых, определите четыре зоны и нарисуйте схему каналов до настройки любого коммутатора. Во-вторых, назначьте сети процессора M580 и MIO M1 в выделенные VLAN с ACL, блокирующими все ненужные протоколы. В-третьих, с первого дня обеспечьте OPC UA SignAndEncrypt на Bachmann M1 и используйте аутентификацию на основе сертификатов. В-четвёртых, постройте IDMZ как настоящий ретранслятор данных — без прямых путей между Зоной 3 и Зоной 4. В-пятых, включите защиту портов на всех портах коммутаторов VLAN управления, чтобы предотвратить подключение неавторизованных устройств. Наконец, протестируйте сегментацию, пытаясь просканировать порты с рабочей станции Зоны 4 в адреса Зоны 2 — если вы видите открытые порты на M580 или M1 из Зоны 4, значит правила каналов неполные. Исправьте все открытые порты до объявления сегментации завершённой.
