14 March 2017

Построение демилитаризованной зоны DMZ в системах АСУ ТП с помощью протоколов Modbus и МЭК-60870-5-104

Information SecurityIndustrial ProgrammingSCADA
Всем здравствуйте! Статься предназначена для специалистов в области АСУ ТП. Остальным она может оказаться непонятной из-за обилия специфических терминов.

Как правило в АСУ ТП реализация демилитаризованной зоны выглядит следующим образом:

image

В сети №1 есть OPC-сервер от которого должен получать данные OPC-клиент в сети №2. Есть сервер DMZ. Firewall 1 разрешает только соединения из сети 1, остальные соединения запрещает. Firewall 2 разрешает только соединения из сети 2, остальные соединения запрещает. Передача по стандарту OPC DA в таких условиях невозможна.

Какие стандартные протоколы обмена есть в АСУ ТП? Конечно же первым на ум приходит Modbus. Для TCP/IP есть Modbus TCP. Ещё есть режим Modbus-RTU поверх TCP/IP: те же самые пакеты, которые проходят по RS-485 передаются по TCP/IP. Режим Modbus-RTU поверх TCP/IP стал стандартом де-факто, но остался нестандартным де-юре.

Определимся с терминами:

  • Modbus-Slave – программа, которая отдаёт данные по протоколу Modbus
  • Modbus-Master — программа, которая принимает данные от Slave по протоколу Modbus

Итак, рассмотрим такую схему:

image

В сети №1 «преобразователь ОРС в Modbus TCP» является Modbus-slave, он получает данные от ОРС-сервера. «Преобразователь ОРС в Modbus TCP» сам устанавливает ТСР соединение с ОРС-сервером Modbus TCP (Modbus-Master) в DMZ (в нем есть режим пассивного ожидания соединений), преобразователь ОРС в Modbus TCP (Modbus-slave) в демилитаризованной зоне получает данные от ОРС-сервера. ОРС-сервер Modbus TCP (Modbus-Master) в сети 2 устанавливает соединение с «Преобразователем ОРС в Modbus TCP» в DMZ и передает данные ОРС-клиенту.

В этой схеме нестандартно то, что «преобразователь ОРС в Modbus TCP», являясь Modbus-slave, сам устанавливает соединение с Modbus-Master. Именно для этого и потребовалось написать свой преобразователь.

Упростим схему:

image

Для сервера демилитаризованной зоны создадим простую программу с условным названием TCP connections Convertor. Она открывает 2 ТСР порта. Из сети №1 «преобразователь ОРС в Modbus TCP» устанавливает соединение с ней по порту 1000, ОРС-сервер Modbus TCP устанавливает соединение с ней по порту 1001. Пакет, приходящий на порт 1000, отсылается клиенту, подсоединенному к порту 1001. Пакет, приходящий на порт 1001, отсылается клиенту, подсоединенному к порту 1000.

Можно сказать, что потенциальный злоумышленник может взломать «преобразователь ОРС в Modbus TCP», посылая ему нехорошие пакеты. Тогда в TCP connections Convertor можно ввести запрет в подключении к нему с неизвестных IP-адресов, ввести контроль длины пакетов и проверять пакеты на соответствие стандарту Modbus TCP.

Теперь перейдем к МЭК-60870-5-104. Этот протокол более совершенен по сравнению с Modbus. С помощью него можно пересылать достоверности сигналов и метки времени. Так же стандарт МЭК-60870-5-104 поддерживает режим, когда Slave устанавливает соединение с Master.

Master по стандарту называется контролирующей станцией, Slave называется контролируемой станцией.

Перерисуем схему:

image

Повторим описание: В сети №1 «преобразователь ОРС в МЭК-104» является slave, он получает данные от ОРС-сервера. «Преобразователь ОРС в МЭК-104» сам устанавливает ТСР соединение с ОРС-сервером МЭК-104 (Master) в DMZ, преобразователь ОРС в МЭК-104 (slave) в демилитаризованной зоне получает данные от ОРС-сервера МЭК-104. ОРС-сервер МЭК-104 (Master) в сети 2 устанавливает соединение с «Преобразователем ОРС в МЭК-104» в DMZ и передает данные ОРС-клиенту.

Опять же эту схему можно упростить с помощью программы TCP connections Convertor. Ещё одна идея!

image

С появлением беспроводных GSM/GPRS-модемов, обеспечивающих передачу данных в сети по стеку протоколов TCP/IP стало удобно организовывать каналы связи с удаленными объектами. Однако не всегда удаётся получить статический IP-адрес для GSM/GPRS-модема. В таком случае статический IP-адрес присваивается серверу. GSM/GPRS-модем устанавливает соединение с сервером, на сервер устанавливается программа TCP connections Convertor. ОРС-сервер отправляет запрос к серверу на порт 1000, GSM/GPRS-модем, подключенный к порту 1001 принимает этот пакет, передает его счетчику, счетчик отвечает, GSM/GPRS-модем передает ответ серверу на порт 1001, сервер через порт 1000 отдает ответ ОРС-серверу. ОРС-сервер «думает», что общается со счетчиком напрямую, компьютер с ОРС-сервером оказывается изолированным от внешней сети (интернета).
Tags:SCADAдемилитаризованная зонаDMZModbusМЭК-60870-5-104асу тп
Hubs: Information Security Industrial Programming SCADA
+5
9.3k 54
Comments 16
Top of the last 24 hours