SlideShare ist ein Scribd-Unternehmen logo
1 von 39
© AMT Group, 2013
Индустриальная IPS своими руками
Дмитрий Дудов,
Ведущий инженер по защите систем SCADA ddudov@amt.ru
Почему IPS?
• Количество публикуемых ежегодно уязвимостей в SCADA с 2010
по 2012 год увеличилось в 6 раз - с 20 в 2010 до 124 в 2012.
• Поставить патч на АСУ ТП – очень тяжело.
• IPS позволяет отражать атаки, использующие эти уязвимости.
2
Источник:
NSS Labs
Проблематика
• Используемые протоколы специфичны, уязвимы (нет
аутентификации, авторизации, шифрования)
• Особые требования к безопасности, с особыми требованиями к
доступности и невмешательству в имеющиеся сети
• До последнего времени – отсутствие предложений по защите АСУ
ТП от популярных производителей
3
Содержание
• Введение: об АСУ ТП, Modbus/TCP и их защите
• Обзор тестового стенда
• Разбор сигнатур
• Сравнение созданных сигнатур с сигнатурами ведущих
вендоров
4
Цели
• Продемонстрировать принципиальную возможность
создания собственного пакета сигнатур для защиты АСУ ТП
• Показать эффективность подхода, оценив полноту
собственного пакета сигнатур по сравнению с
предложениями ведущих производителей
• Дать навыки и наработки для повышения эффективности
ваших IPS в условиях АСУ ТП
5
Ликбез
• IPS: Intrusion Prevention System – система предотвращения
вторжений
6
• Сигнатура атаки: характерные признаки атаки - содержимое
пакета, количественные или качественные аномалии трафика.
ABCVIRUSXYZ
Sig: match “*VIRUS*”
АСУ ТП
Ликбез 7
• АСУ ТП (ICS, SCADA): Автоматизированная Система Управления
Технологическим Процессом. Для связи использует промышленную сеть.
• Применяются повсюду: заводы, электростанции, нефте/водо/газопроводы…
• Состоят из станций и серверов управления, контроллеров, станков,
роботов...
Станции
операторов
и
серверы
Станки
Контроллеры
Роботы
Технологическая
сеть
Ещѐ об АСУ ТП
• АСУ ТП отслеживают и управляют технологическими процессами,
включая критически важные
• Ранее использовали проприетарные протоколы и отдельные сети
8
АСУ ТП сегодня
• В настоящее время АСУ ТП переходят на TCP/IP и Ethernet,
появляются связи с Интернет, что создает новые угрозы
• Например:
• 1. Ищем открытые устройства:
• 2. Подключаемся по протоколу Modbus/TCP (порт TCP502) и
запрашиваем информацию об устройстве:
• 3. Цель известна, уязвимости известны - можно атаковать.
9
000-Tx:00 14 00 00 00 05 01 2B 0E 01 01
001-Rx:00 14 00 00 00 2D 01 2B 0E 01 01
00 00 03 00 0D 54 45 4C 45 4D 45 43 41
4E 49 51 55 45 01 0E 54 53 58 20 50 35
37 20 32 36 33 34 4D 00 02 04 56 30 2E
32
Модель контроллера (ASCII):
Telemecanique
TSX P57 2634M, V0.2
(Schneider Electric
Modicon Premium)
Запрос
Ответ
Покупка спокойствия
• Производитель Х – 175 сигнатур для промышленных сетей
(считая дубликаты)
• Сколько применимо к вашей сети? 20, 25?
• Дорогая подписка на обновления
• Время реакции на уязвимость – до 18 МЕСЯЦЕВ!!!
10
Своими руками
• Свобода выбора платформы
• Низкая стоимость
• Оперативная реакция на уязвимости
• Экспертиза и уверенность в сигнатурах
11
О Modbus/TCP
• Реализация Modbus под TCP/IP; порт TCP502
• Один из наиболее популярных протоколов в АСУ ТП
• Передает данные с контроллеров на серверы и/или рабочие станции
операторов и обратно
• Модель работы – клиент/сервер (master/slave)
• DISCLAIMER: Здесь и далее обсуждается стандартная реализация
Modbus/TCP
• Пользователи Modbus:
12
О Modbus/TCP: регистры 13
Название
Размер
ячейки
Тип Адресация
Output Coils 1 bit RW, Discrete 1-9999
Input Coils 1 bit RO, Discrete 10001-19999
Input Registers 16 bit RO, Numerical 30001-39999
Holding Registers 16 bit RW, Numerical 40001-49999
40 000 ячеек четырёх типов:
О Modbus/TCP: команды
• Коды чтения/записи каждой из таблиц:
– 01-04: чтение.
– 05-06: запись одной ячейки
– 15-16: запись последовательных ячеек
– 17: одновременное чтение и запись
– 22: побитовая запись в ячейку (запись с маской)
• Диагностические (код 08, код 17, код 43/14)
• Подтверждения или ошибки в ответ на каждую из команд
• DISCLAIMER: это не полный список команд!
14
Тестовый стенд: схема, ПО
• Cisco 2851: IOS 15.1(4)M
• Modbus-Master VM:
• MS Windows 7
• ModbusTools Modbus Poll
• Wireshark
15
• Modbus-Slave VM:
• MS Windows 7
• Ananas Modbus/TCP Server
• Wireshark
Тестовый стенд: система DPI
• Простейшая технология DPI
• Stateless
• Поиск по регулярным выражениям
• Не использует проприетарных технологий
• По функционалу несравнимо беднее современных IPS…
• …но еѐ достаточно. 
16
Cisco FPM
Атака 1: Получение информации об устройстве
(вариант 1)
Эффект: злоумышленник получает информацию об
устройстве (серийный номер устройства, производитель,
модель и др. в зависимости от устройства и производителя)
17
match “.{47}x11”
• Function Code 17: Report Slave ID
Атака 2: Получение информации об устройстве
(вариант 2)
Эффект: злоумышленник получает информацию об
устройстве (серийный номер устройства, производитель,
модель и др. в зависимости от устройства и производителя)
18
match “.{47}x2Bx0E”
• Function Code 43: Encapsulated Interface Transport
• MEI Type 14: Read Device ID
Атака 3: Удаленная перезагрузка интерфейса
контроллера
Эффект: интерфейс контроллера перезагружается;
непрерывные запросы приводят к недоступности
контроллера.
19
match “.{47}x08x00x01”
• Function Code 08: Diagnostics
• Function Sub-Code 01 (00 01): Restart Communications
Атаки 4-7: Некорректные запросы на чтение
Эффект: некорректный запрос может вызвать отказ в
обслуживании на контроллере.
20
• match “.{47}x01” AND NOT “.{2}x00x34.{46}(x00[x01-xFF]|[x01-x06]|x07[x00-xD0])”
• match “.{47}x02” AND NOT “.{2}x00x34.{46}(x00[x01-xFF]|[x01-x06]|x07[x00-xD0])”
• match “.{47}x03” AND NOT “.{2}x00x34.{46}x00[x01-x7D]”
• match “.{47}x04” AND NOT “.{2}x00x34.{46}x00[x01-x7D]”
• Function Code 01: Read Output Coils
• Function Code 02: Read Input Coils
• Function Code 03: Read Holding Registers
• Function Code 04: Read Input Registers
Эффект: некорректный ответ может вызвать отказ в
обслуживании на клиенте Modbus (сервере SCADA/консоли
оператора).
21
• match “.{47}x01” AND NOT “.{2}(x00[x32-xFF]|x01[x00-x2C])”
• match “.{47}x02” AND NOT “.{2}(x00[x32-xFF]|x01[x00-x2C])”
• match “.{47}x03” AND NOT “.{2}(x00[x33-xFF]|x01[x00-x2C])”
• match “.{47}x04” AND NOT “.{2}(x00[x33-xFF]|x01[x00-x2C])”
• Function Code 01: Read Output Coils
• Function Code 02: Read Input Coils
• Function Code 03: Read Holding Registers
• Function Code 04: Read Input Registers
Атаки 8-11: Некорректные ответы на запросы чтения
Атаки 12-13: Некорректные запросы на запись
(часть 1 из 3 - запись по одной ячейке)
Эффект: некорректный запрос может вызвать переполнение
буфера и отказ в обслуживании на контроллере.
22
• match “.{47}x05” AND NOT “.{2}x00x34.{46}(x00|xFF)x00”
• match “.{47}x06” AND NOT “.{2}x00x34”
• Function Code 05: Write Single Coil
• Function Code 06: Write Single Register
Атака 14: Некорректные запросы на запись
(часть 2 из 3 – запись ячейки с маской)
Эффект: некорректный запрос может вызвать отказ в
обслуживании на контроллере.
23
match “.{47}x16” AND NOT “.{2}x00x36”
• Function Code 22: Mask Write Register
Атаки 15-16: Некорректные запросы на запись
(часть 3 из 3 – запись ряда ячеек)
Эффект: некорректный запрос может вызвать отказ в
обслуживании на контроллере.
24
• match “.{47}x0F” AND NOT
“.{2}(x00[x36-xFF]|x01[x00-x2C]).{46}(x00[x01-xFF]|[x01-x06]|x07[x00-xB0]”
• match “.{47}x10” AND NOT
“.{2} (x00[x36-xFF]|x01[x00-x2C]).{46}x00[x01-x7B]”
• Function Code 15: Write Multiple Coils
• Function Code 16: Write Multiple Registers
Атаки 17-20: Некорректные ответы на запросы
записи (часть 1 из 2 – запись без маски)
Эффект: некорректный ответ может вызвать отказ в обслуживании на
клиенте Modbus (сервере SCADA/консоли оператора).
25
• match “.{47}x05” AND NOT “.{2}x00x34.{46}(x00|xFF)x00”
• match “.{47}x06” AND NOT “.{2}x00x34”
• match “.{47}x0F” AND NOT “.{2}x00x34.{46}(x00[x01-xFF]|[x01-x06]|x07[x00-xB0]”
• match “.{47}x10” AND NOT “.{2}x00x34.{46}x00[x01-x7B]”
• Function Code 05: Write Single Coil
• Function Code 06: Write Single Register
• Function Code 15: Write Multiple Coils
• Function Code 16: Write Multiple Registers
Атака 21: Некорректный ответ на запрос записи
(часть 2 из 2 – запись с маской)
26
Эффект: некорректный ответ может вызвать отказ в
обслуживании на клиенте Modbus (сервере SCADA/консоли
оператора).
match “.{47}x16” AND NOT “.{2}x00x36”
• Function Code 22: Mask Write Register
Атака 22: Некорректный запрос чтения/записи
Эффект: некорректный запрос может вызвать отказ в
обслуживании на контроллере.
27
match “.{47}x17” AND NOT
“.{2}(x00[x3B-xFF]|x01[x00-x2C]).{46}x00[x01-x7D].{2}x00[x01-x79]”
• Function Code 23: Read/Write Multiple Registers
Атака 23: Некорректный ответ на запрос
чтения/записи
28
match “.{47}x17” AND NOT
“.{2}(x00[x33-xFF]|x01[x00-x2C])
Эффект: некорректный ответ может вызвать отказ в
обслуживании на клиенте Modbus (сервере SCADA/консоли
оператора).
• Function Code 23: Read/Write Multiple Registers
Атака 24: Выключение контроллера из системы
Эффект: контроллер не отвечает на запросы, не высылает
информацию о состоянии подключенных систем. Требуется
перезагрузка интерфейса контроллера.
29
match “.{47}0x08x00x04”
• Function Code 08: Diagnostics
• Function Sub-Code 04 (00 04): Force Listen-Only mode
Атака 25: Превышение макс. размера пакета
Эффект: слишком большой пакет может привести к отказу в
обслуживании контроллера.
30
match “.{2}x01[x2D-xFF]|[x02-xFF])”
• Размер пакета более 300 байт
Атака 26 (25+): Не-Modbus трафик 31
Эффект: не-Modbus трафик может привести к отказу в
обслуживании либо быть признаком несанкционированного
доступа к АСУ ТП.
match “.{2}x01[x2D-xFF]|[x02-xFF])” OR NOT
“.{32}[x50-x5F]” OR NOT
“.{42}x00x00”
• Размер пакета более 300 байт ИЛИ
• Заголовок TCP не равен 20 байт ИЛИ
• Поле Protocol ID не равно 0х0000
Атака 27: Сброс счетчиков диагностики
Эффект: сбрасываются счетчики и диагностический регистр,
что удаляет данные о проведенных действиях над
контроллером.
32
match “.{47}x08x00x0A”
• Function Code 08: Diagnostics
• Function Sub-Code 10 (00 0A): Clear Counters and the Diagnostic
Register
Сравнение с продуктами ведущих производителей
(часть 1 из 5)
33
Вендор 1 Вендор 2 Наш IPS
TCP MODBUS - Report
Server Information
Modbus TCP - Report Server
Information
Атака 1: Получение
информации об устройстве
(вариант 1)
TCP MODBUS - Read
Device Identification
Modbus TCP - Read Device
Identification
Атака 2: Получение
информации об устройстве
(вариант 2)
TCP MODBUS - Restart
Communications Opt.
Modbus TCP - Restart
Communications Option
Атака 3: Удаленная
перезагрузка контроллера
TCP MODBUS - Force Listen
Only Mode
Modbus TCP - Force Listen
Only Mode
Атака 24: Выключение
контроллера из системы
TCP MODBUS - Illegal
Packet Size
Modbus TCP - Illegal Packet
Size
Атака 25: Превышение
макс. размера пакета
----- Modbus TCP - Non-Modbus
Communication
Атака 26: Не-Modbus
трафик
TCP MODBUS - Clear Ctrs
and Diag Registers
Modbus TCP - Clear
Counters and Diagnostic
Registers
Атака 27: Сброс счетчиков
диагностики
Сравнение с продуктами ведущих производителей
(часть 2 из 5)
34
Вендор 1 Вендор 2 Наш IPS
TCP MODBUS -
Unauthorized Read
Request
MODBUS Invalid Read Coils
Request Parameters
MODBUS Invalid Read Discrete
Inputs Request Parameters
MODBUS Invalid Read Input
Registers Request Parameters
MODBUS Invalid Read Holding
Registers Request Parameters
Атаки 4-7:
Некорректные запросы
на чтение
TCP MODBUS -
Unauthorized Write
Request
Modbus TCP - (0x06) Write
Single Register Invalid Request
Modbus TCP - (0x16) Mask Write
Register Invalid Request
MODBUS Invalid Write Single
Coil Request Parameters
MODBUS Invalid Write Multiple
Registers Request Parameters
MODBUS Invalid Write Multiple
Coils Request Parameters
Атаки 12-16:
Некорректные запросы
на запись
----- MODBUS Illegal Read-Write
Multiple Registers Request
Parameters
Атака 22: Некорректный
запрос чтения/записи
Сравнение с продуктами ведущих производителей
(часть 3 из 5)
35
Вендор 1 Вендор 2 Наш IPS
------- MODBUS Invalid Read Coils
Response Parameters
MODBUS Invalid Read Discrete
Inputs Response Parameters
MODBUS Invalid Read Input
Registers Response Parameters
MODBUS Invalid Read Holding
Registers Response Parameters
Атаки 8-11:
Некорректные ответы
на запросы чтения
------- Modbus TCP - (0x05) Write
Single Coil Invalid Response
Modbus TCP - (0x0F) Write
Multiple Coils Invalid Response
Modbus TCP - (0x10) Write
Multiple Registers Invalid
Response
Modbus TCP - (0x16) Mask Write
Register Invalid Response
Атаки 17-21:
Некорректные ответы
на запросы записи
------ MODBUS Illegal Read-Write
Multiple Registers Response
Parameters
Атака 23: Некорректный
ответ на запрос
чтения/записи
Сравнение с продуктами ведущих производителей
(часть 4 из 5)
36
Вендор 1 Вендор 2 Наш IPS
------- MODBUS Serial Commands over TCP
Modbus TCP - Invalid Function Code Is
Used
Modbus TCP - Reserved Function Code
Used
Реализуемо
------- Large MODBUS/TCP Data Overflow Реализуемо
------ Modbus Slave Device Busy Exception
Code Delay
Modbus Acknowledge Exception Code
Delay
Реализуемо
MODBUS Invalid Read File Record
Request Parameters
MODBUS Invalid Write File Record
Request Parameters
MODBUS Illegal Read File Record
Response Parameters
MODBUS Invalid Read FIFO Queue
Response Parameters
MODBUS Invalid Write File Record
Response Parameters
Реализуемо всѐ плюс
«Invalid Read FIFO
Queue Request
Parameters»
Сравнение с продуктами ведущих производителей
(часть 5 из 5)
37
Вендор 1 Вендор 2 Наш IPS
------- MODBUS Response Header Length
TCP Segment Size Mismatch
Замещается сигнатурой
26 (Не-Modbus трафик)
------- Modbus TCP - Value Scan
MODBUS Function Code Scan
MODBUS Point List Scan
Не реализуемо;
реализуемо на любом
stateful IPS
Выводы
• Современные АСУ ТП по природе своей уязвимы и нуждаются в
защите
• Доступную и эффективную защиту можно реализовать
собственноручно
• Сигнатуры, сделанные лично, могут быть выпущены оперативнее,
а действовать – точнее и эффективнее готовых решений,
предлагаемых рынком
• Следует строго оценивать пригодность коробочных решений для
применимости их в своей сети
38
СПАСИБО ЗА ВНИМАНИЕ!
39
Дмитрий Дудов
Ведущий инженер по защите систем SCADA
ddudov@amt.ru
+7 (495) 725-7660

Weitere ähnliche Inhalte

Andere mochten auch

Рекомеднуемая архитектура по внедрению межсетевых экранов и систем защиты от ...
Рекомеднуемая архитектура по внедрению межсетевых экранов и систем защиты от ...Рекомеднуемая архитектура по внедрению межсетевых экранов и систем защиты от ...
Рекомеднуемая архитектура по внедрению межсетевых экранов и систем защиты от ...Cisco Russia
 
Безопасность Cisco: как зарабатывать 120 000 рублей?
Безопасность Cisco: как зарабатывать 120 000 рублей?Безопасность Cisco: как зарабатывать 120 000 рублей?
Безопасность Cisco: как зарабатывать 120 000 рублей?SkillFactory
 
Рекомеднуемая архитектура по внедрению межсетевых экранов и систем защиты от ...
Рекомеднуемая архитектура по внедрению межсетевых экранов и систем защиты от ...Рекомеднуемая архитектура по внедрению межсетевых экранов и систем защиты от ...
Рекомеднуемая архитектура по внедрению межсетевых экранов и систем защиты от ...Cisco Russia
 
Как превратить маршрутизатор Cisco в межсетевой экран?
Как превратить маршрутизатор Cisco в межсетевой экран?Как превратить маршрутизатор Cisco в межсетевой экран?
Как превратить маршрутизатор Cisco в межсетевой экран?SkillFactory
 
Функции обеспечения безопасности в Cisco ISR G2
Функции обеспечения безопасности в Cisco ISR G2Функции обеспечения безопасности в Cisco ISR G2
Функции обеспечения безопасности в Cisco ISR G2Cisco Russia
 
Как маршрутизатор Cisco ISR помогает выполнить требования PCI DSS
Как маршрутизатор Cisco ISR помогает выполнить требования PCI DSSКак маршрутизатор Cisco ISR помогает выполнить требования PCI DSS
Как маршрутизатор Cisco ISR помогает выполнить требования PCI DSSCisco Russia
 

Andere mochten auch (6)

Рекомеднуемая архитектура по внедрению межсетевых экранов и систем защиты от ...
Рекомеднуемая архитектура по внедрению межсетевых экранов и систем защиты от ...Рекомеднуемая архитектура по внедрению межсетевых экранов и систем защиты от ...
Рекомеднуемая архитектура по внедрению межсетевых экранов и систем защиты от ...
 
Безопасность Cisco: как зарабатывать 120 000 рублей?
Безопасность Cisco: как зарабатывать 120 000 рублей?Безопасность Cisco: как зарабатывать 120 000 рублей?
Безопасность Cisco: как зарабатывать 120 000 рублей?
 
Рекомеднуемая архитектура по внедрению межсетевых экранов и систем защиты от ...
Рекомеднуемая архитектура по внедрению межсетевых экранов и систем защиты от ...Рекомеднуемая архитектура по внедрению межсетевых экранов и систем защиты от ...
Рекомеднуемая архитектура по внедрению межсетевых экранов и систем защиты от ...
 
Как превратить маршрутизатор Cisco в межсетевой экран?
Как превратить маршрутизатор Cisco в межсетевой экран?Как превратить маршрутизатор Cisco в межсетевой экран?
Как превратить маршрутизатор Cisco в межсетевой экран?
 
Функции обеспечения безопасности в Cisco ISR G2
Функции обеспечения безопасности в Cisco ISR G2Функции обеспечения безопасности в Cisco ISR G2
Функции обеспечения безопасности в Cisco ISR G2
 
Как маршрутизатор Cisco ISR помогает выполнить требования PCI DSS
Как маршрутизатор Cisco ISR помогает выполнить требования PCI DSSКак маршрутизатор Cisco ISR помогает выполнить требования PCI DSS
Как маршрутизатор Cisco ISR помогает выполнить требования PCI DSS
 

Ähnlich wie Дмитрий Дудов. Индустриальная IPS своими руками

SAST и Application Security: как бороться с уязвимостями в коде
SAST и Application Security: как бороться с уязвимостями в кодеSAST и Application Security: как бороться с уязвимостями в коде
SAST и Application Security: как бороться с уязвимостями в кодеAndrey Karpov
 
SOC в большой корпоративной сети. Challenge accepted
SOC в большой корпоративной сети. Challenge acceptedSOC в большой корпоративной сети. Challenge accepted
SOC в большой корпоративной сети. Challenge acceptedPositive Hack Days
 
From ERP to SCADA and back
From ERP to SCADA and backFrom ERP to SCADA and back
From ERP to SCADA and backqqlan
 
Как команда PVS-Studio может улучшить код операционной системы Tizen
Как команда PVS-Studio может улучшить код операционной системы TizenКак команда PVS-Studio может улучшить код операционной системы Tizen
Как команда PVS-Studio может улучшить код операционной системы TizenAndrey Karpov
 
Статический анализ и написание качественного кода на C/C++ для встраиваемых с...
Статический анализ и написание качественного кода на C/C++ для встраиваемых с...Статический анализ и написание качественного кода на C/C++ для встраиваемых с...
Статический анализ и написание качественного кода на C/C++ для встраиваемых с...Andrey Karpov
 
Доклад в Mail.ru 01.11.12
Доклад в Mail.ru 01.11.12Доклад в Mail.ru 01.11.12
Доклад в Mail.ru 01.11.12Alex Tutubalin
 
MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik
MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik
MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik Naim Shafiev
 
Новые возможности Cisco ISE 1.2 для защиты корпоративной сети и мобильных уст...
Новые возможности Cisco ISE 1.2 для защиты корпоративной сети и мобильных уст...Новые возможности Cisco ISE 1.2 для защиты корпоративной сети и мобильных уст...
Новые возможности Cisco ISE 1.2 для защиты корпоративной сети и мобильных уст...Cisco Russia
 
Преимущества серверного оборудования DEPO Сomputers и ПО Windows Server
Преимущества серверного оборудования DEPO Сomputers и ПО Windows ServerПреимущества серверного оборудования DEPO Сomputers и ПО Windows Server
Преимущества серверного оборудования DEPO Сomputers и ПО Windows ServerDEPO Computers
 
Как развернуть и настроить DFA фабрику – основные шаги
Как развернуть и настроить DFA фабрику – основные шагиКак развернуть и настроить DFA фабрику – основные шаги
Как развернуть и настроить DFA фабрику – основные шагиCisco Russia
 
Безопасность ЦОД-часть 1
Безопасность ЦОД-часть 1Безопасность ЦОД-часть 1
Безопасность ЦОД-часть 1Cisco Russia
 
Анонс новых моделей серверов ДЕПО Шторм российского производства
Анонс новых моделей серверов ДЕПО Шторм российского производстваАнонс новых моделей серверов ДЕПО Шторм российского производства
Анонс новых моделей серверов ДЕПО Шторм российского производстваDEPO Computers
 
Андрей Суворов, Максим Карпухин. Сенсация под микроскопом. Вивисекция первого...
Андрей Суворов, Максим Карпухин. Сенсация под микроскопом. Вивисекция первого...Андрей Суворов, Максим Карпухин. Сенсация под микроскопом. Вивисекция первого...
Андрей Суворов, Максим Карпухин. Сенсация под микроскопом. Вивисекция первого...Kaspersky
 
Стек протоколов для IoT. Пример использования SNMP
Стек протоколов для IoT. Пример использования SNMPСтек протоколов для IoT. Пример использования SNMP
Стек протоколов для IoT. Пример использования SNMPIntersog
 
Олимпиада IT-Планета: как стать чемпионом Cisco?
Олимпиада IT-Планета: как стать чемпионом Cisco?Олимпиада IT-Планета: как стать чемпионом Cisco?
Олимпиада IT-Планета: как стать чемпионом Cisco?SkillFactory
 
Нюансы функционирования и эксплуатации Cisco SOC
Нюансы функционирования и эксплуатации Cisco SOCНюансы функционирования и эксплуатации Cisco SOC
Нюансы функционирования и эксплуатации Cisco SOCAleksey Lukatskiy
 
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow Vadim Nesterov
 
IoT Protocols #iotconfua
IoT Protocols #iotconfuaIoT Protocols #iotconfua
IoT Protocols #iotconfuaAndy Shutka
 
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдераАвтономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдераCisco Russia
 

Ähnlich wie Дмитрий Дудов. Индустриальная IPS своими руками (20)

SAST и Application Security: как бороться с уязвимостями в коде
SAST и Application Security: как бороться с уязвимостями в кодеSAST и Application Security: как бороться с уязвимостями в коде
SAST и Application Security: как бороться с уязвимостями в коде
 
SOC в большой корпоративной сети. Challenge accepted
SOC в большой корпоративной сети. Challenge acceptedSOC в большой корпоративной сети. Challenge accepted
SOC в большой корпоративной сети. Challenge accepted
 
From ERP to SCADA and back
From ERP to SCADA and backFrom ERP to SCADA and back
From ERP to SCADA and back
 
Как команда PVS-Studio может улучшить код операционной системы Tizen
Как команда PVS-Studio может улучшить код операционной системы TizenКак команда PVS-Studio может улучшить код операционной системы Tizen
Как команда PVS-Studio может улучшить код операционной системы Tizen
 
Статический анализ и написание качественного кода на C/C++ для встраиваемых с...
Статический анализ и написание качественного кода на C/C++ для встраиваемых с...Статический анализ и написание качественного кода на C/C++ для встраиваемых с...
Статический анализ и написание качественного кода на C/C++ для встраиваемых с...
 
Доклад в Mail.ru 01.11.12
Доклад в Mail.ru 01.11.12Доклад в Mail.ru 01.11.12
Доклад в Mail.ru 01.11.12
 
MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik
MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik
MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik
 
Новые возможности Cisco ISE 1.2 для защиты корпоративной сети и мобильных уст...
Новые возможности Cisco ISE 1.2 для защиты корпоративной сети и мобильных уст...Новые возможности Cisco ISE 1.2 для защиты корпоративной сети и мобильных уст...
Новые возможности Cisco ISE 1.2 для защиты корпоративной сети и мобильных уст...
 
Преимущества серверного оборудования DEPO Сomputers и ПО Windows Server
Преимущества серверного оборудования DEPO Сomputers и ПО Windows ServerПреимущества серверного оборудования DEPO Сomputers и ПО Windows Server
Преимущества серверного оборудования DEPO Сomputers и ПО Windows Server
 
Как развернуть и настроить DFA фабрику – основные шаги
Как развернуть и настроить DFA фабрику – основные шагиКак развернуть и настроить DFA фабрику – основные шаги
Как развернуть и настроить DFA фабрику – основные шаги
 
Безопасность ЦОД-часть 1
Безопасность ЦОД-часть 1Безопасность ЦОД-часть 1
Безопасность ЦОД-часть 1
 
Анонс новых моделей серверов ДЕПО Шторм российского производства
Анонс новых моделей серверов ДЕПО Шторм российского производстваАнонс новых моделей серверов ДЕПО Шторм российского производства
Анонс новых моделей серверов ДЕПО Шторм российского производства
 
Андрей Суворов, Максим Карпухин. Сенсация под микроскопом. Вивисекция первого...
Андрей Суворов, Максим Карпухин. Сенсация под микроскопом. Вивисекция первого...Андрей Суворов, Максим Карпухин. Сенсация под микроскопом. Вивисекция первого...
Андрей Суворов, Максим Карпухин. Сенсация под микроскопом. Вивисекция первого...
 
Стек протоколов для IoT. Пример использования SNMP
Стек протоколов для IoT. Пример использования SNMPСтек протоколов для IoT. Пример использования SNMP
Стек протоколов для IoT. Пример использования SNMP
 
Олимпиада IT-Планета: как стать чемпионом Cisco?
Олимпиада IT-Планета: как стать чемпионом Cisco?Олимпиада IT-Планета: как стать чемпионом Cisco?
Олимпиада IT-Планета: как стать чемпионом Cisco?
 
Нюансы функционирования и эксплуатации Cisco SOC
Нюансы функционирования и эксплуатации Cisco SOCНюансы функционирования и эксплуатации Cisco SOC
Нюансы функционирования и эксплуатации Cisco SOC
 
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
 
IoT Protocols #iotconfua
IoT Protocols #iotconfuaIoT Protocols #iotconfua
IoT Protocols #iotconfua
 
IoT Conf UA 2016
IoT Conf UA 2016IoT Conf UA 2016
IoT Conf UA 2016
 
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдераАвтономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
 

Mehr von Positive Hack Days

Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesИнструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesPositive Hack Days
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerPositive Hack Days
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesPositive Hack Days
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikPositive Hack Days
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQubePositive Hack Days
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityPositive Hack Days
 
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Positive Hack Days
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для ApproofPositive Hack Days
 
Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Positive Hack Days
 
Формальные методы защиты приложений
Формальные методы защиты приложенийФормальные методы защиты приложений
Формальные методы защиты приложенийPositive Hack Days
 
Эвристические методы защиты приложений
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложенийPositive Hack Days
 
Теоретические основы Application Security
Теоретические основы Application SecurityТеоретические основы Application Security
Теоретические основы Application SecurityPositive Hack Days
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летPositive Hack Days
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиPositive Hack Days
 
Требования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОТребования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОPositive Hack Days
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке СиPositive Hack Days
 
Механизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CorePositive Hack Days
 
SOC для КИИ: израильский опыт
SOC для КИИ: израильский опытSOC для КИИ: израильский опыт
SOC для КИИ: израильский опытPositive Hack Days
 
Honeywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterHoneywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterPositive Hack Days
 
Credential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиCredential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиPositive Hack Days
 

Mehr von Positive Hack Days (20)

Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesИнструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release Notes
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive Technologies
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + Qlik
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQube
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps Community
 
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для Approof
 
Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»
 
Формальные методы защиты приложений
Формальные методы защиты приложенийФормальные методы защиты приложений
Формальные методы защиты приложений
 
Эвристические методы защиты приложений
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложений
 
Теоретические основы Application Security
Теоретические основы Application SecurityТеоретические основы Application Security
Теоретические основы Application Security
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 лет
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на грабли
 
Требования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОТребования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПО
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке Си
 
Механизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET Core
 
SOC для КИИ: израильский опыт
SOC для КИИ: израильский опытSOC для КИИ: израильский опыт
SOC для КИИ: израильский опыт
 
Honeywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterHoneywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services Center
 
Credential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиCredential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атаки
 

Дмитрий Дудов. Индустриальная IPS своими руками

  • 1. © AMT Group, 2013 Индустриальная IPS своими руками Дмитрий Дудов, Ведущий инженер по защите систем SCADA ddudov@amt.ru
  • 2. Почему IPS? • Количество публикуемых ежегодно уязвимостей в SCADA с 2010 по 2012 год увеличилось в 6 раз - с 20 в 2010 до 124 в 2012. • Поставить патч на АСУ ТП – очень тяжело. • IPS позволяет отражать атаки, использующие эти уязвимости. 2 Источник: NSS Labs
  • 3. Проблематика • Используемые протоколы специфичны, уязвимы (нет аутентификации, авторизации, шифрования) • Особые требования к безопасности, с особыми требованиями к доступности и невмешательству в имеющиеся сети • До последнего времени – отсутствие предложений по защите АСУ ТП от популярных производителей 3
  • 4. Содержание • Введение: об АСУ ТП, Modbus/TCP и их защите • Обзор тестового стенда • Разбор сигнатур • Сравнение созданных сигнатур с сигнатурами ведущих вендоров 4
  • 5. Цели • Продемонстрировать принципиальную возможность создания собственного пакета сигнатур для защиты АСУ ТП • Показать эффективность подхода, оценив полноту собственного пакета сигнатур по сравнению с предложениями ведущих производителей • Дать навыки и наработки для повышения эффективности ваших IPS в условиях АСУ ТП 5
  • 6. Ликбез • IPS: Intrusion Prevention System – система предотвращения вторжений 6 • Сигнатура атаки: характерные признаки атаки - содержимое пакета, количественные или качественные аномалии трафика. ABCVIRUSXYZ Sig: match “*VIRUS*”
  • 7. АСУ ТП Ликбез 7 • АСУ ТП (ICS, SCADA): Автоматизированная Система Управления Технологическим Процессом. Для связи использует промышленную сеть. • Применяются повсюду: заводы, электростанции, нефте/водо/газопроводы… • Состоят из станций и серверов управления, контроллеров, станков, роботов... Станции операторов и серверы Станки Контроллеры Роботы Технологическая сеть
  • 8. Ещѐ об АСУ ТП • АСУ ТП отслеживают и управляют технологическими процессами, включая критически важные • Ранее использовали проприетарные протоколы и отдельные сети 8
  • 9. АСУ ТП сегодня • В настоящее время АСУ ТП переходят на TCP/IP и Ethernet, появляются связи с Интернет, что создает новые угрозы • Например: • 1. Ищем открытые устройства: • 2. Подключаемся по протоколу Modbus/TCP (порт TCP502) и запрашиваем информацию об устройстве: • 3. Цель известна, уязвимости известны - можно атаковать. 9 000-Tx:00 14 00 00 00 05 01 2B 0E 01 01 001-Rx:00 14 00 00 00 2D 01 2B 0E 01 01 00 00 03 00 0D 54 45 4C 45 4D 45 43 41 4E 49 51 55 45 01 0E 54 53 58 20 50 35 37 20 32 36 33 34 4D 00 02 04 56 30 2E 32 Модель контроллера (ASCII): Telemecanique TSX P57 2634M, V0.2 (Schneider Electric Modicon Premium) Запрос Ответ
  • 10. Покупка спокойствия • Производитель Х – 175 сигнатур для промышленных сетей (считая дубликаты) • Сколько применимо к вашей сети? 20, 25? • Дорогая подписка на обновления • Время реакции на уязвимость – до 18 МЕСЯЦЕВ!!! 10
  • 11. Своими руками • Свобода выбора платформы • Низкая стоимость • Оперативная реакция на уязвимости • Экспертиза и уверенность в сигнатурах 11
  • 12. О Modbus/TCP • Реализация Modbus под TCP/IP; порт TCP502 • Один из наиболее популярных протоколов в АСУ ТП • Передает данные с контроллеров на серверы и/или рабочие станции операторов и обратно • Модель работы – клиент/сервер (master/slave) • DISCLAIMER: Здесь и далее обсуждается стандартная реализация Modbus/TCP • Пользователи Modbus: 12
  • 13. О Modbus/TCP: регистры 13 Название Размер ячейки Тип Адресация Output Coils 1 bit RW, Discrete 1-9999 Input Coils 1 bit RO, Discrete 10001-19999 Input Registers 16 bit RO, Numerical 30001-39999 Holding Registers 16 bit RW, Numerical 40001-49999 40 000 ячеек четырёх типов:
  • 14. О Modbus/TCP: команды • Коды чтения/записи каждой из таблиц: – 01-04: чтение. – 05-06: запись одной ячейки – 15-16: запись последовательных ячеек – 17: одновременное чтение и запись – 22: побитовая запись в ячейку (запись с маской) • Диагностические (код 08, код 17, код 43/14) • Подтверждения или ошибки в ответ на каждую из команд • DISCLAIMER: это не полный список команд! 14
  • 15. Тестовый стенд: схема, ПО • Cisco 2851: IOS 15.1(4)M • Modbus-Master VM: • MS Windows 7 • ModbusTools Modbus Poll • Wireshark 15 • Modbus-Slave VM: • MS Windows 7 • Ananas Modbus/TCP Server • Wireshark
  • 16. Тестовый стенд: система DPI • Простейшая технология DPI • Stateless • Поиск по регулярным выражениям • Не использует проприетарных технологий • По функционалу несравнимо беднее современных IPS… • …но еѐ достаточно.  16 Cisco FPM
  • 17. Атака 1: Получение информации об устройстве (вариант 1) Эффект: злоумышленник получает информацию об устройстве (серийный номер устройства, производитель, модель и др. в зависимости от устройства и производителя) 17 match “.{47}x11” • Function Code 17: Report Slave ID
  • 18. Атака 2: Получение информации об устройстве (вариант 2) Эффект: злоумышленник получает информацию об устройстве (серийный номер устройства, производитель, модель и др. в зависимости от устройства и производителя) 18 match “.{47}x2Bx0E” • Function Code 43: Encapsulated Interface Transport • MEI Type 14: Read Device ID
  • 19. Атака 3: Удаленная перезагрузка интерфейса контроллера Эффект: интерфейс контроллера перезагружается; непрерывные запросы приводят к недоступности контроллера. 19 match “.{47}x08x00x01” • Function Code 08: Diagnostics • Function Sub-Code 01 (00 01): Restart Communications
  • 20. Атаки 4-7: Некорректные запросы на чтение Эффект: некорректный запрос может вызвать отказ в обслуживании на контроллере. 20 • match “.{47}x01” AND NOT “.{2}x00x34.{46}(x00[x01-xFF]|[x01-x06]|x07[x00-xD0])” • match “.{47}x02” AND NOT “.{2}x00x34.{46}(x00[x01-xFF]|[x01-x06]|x07[x00-xD0])” • match “.{47}x03” AND NOT “.{2}x00x34.{46}x00[x01-x7D]” • match “.{47}x04” AND NOT “.{2}x00x34.{46}x00[x01-x7D]” • Function Code 01: Read Output Coils • Function Code 02: Read Input Coils • Function Code 03: Read Holding Registers • Function Code 04: Read Input Registers
  • 21. Эффект: некорректный ответ может вызвать отказ в обслуживании на клиенте Modbus (сервере SCADA/консоли оператора). 21 • match “.{47}x01” AND NOT “.{2}(x00[x32-xFF]|x01[x00-x2C])” • match “.{47}x02” AND NOT “.{2}(x00[x32-xFF]|x01[x00-x2C])” • match “.{47}x03” AND NOT “.{2}(x00[x33-xFF]|x01[x00-x2C])” • match “.{47}x04” AND NOT “.{2}(x00[x33-xFF]|x01[x00-x2C])” • Function Code 01: Read Output Coils • Function Code 02: Read Input Coils • Function Code 03: Read Holding Registers • Function Code 04: Read Input Registers Атаки 8-11: Некорректные ответы на запросы чтения
  • 22. Атаки 12-13: Некорректные запросы на запись (часть 1 из 3 - запись по одной ячейке) Эффект: некорректный запрос может вызвать переполнение буфера и отказ в обслуживании на контроллере. 22 • match “.{47}x05” AND NOT “.{2}x00x34.{46}(x00|xFF)x00” • match “.{47}x06” AND NOT “.{2}x00x34” • Function Code 05: Write Single Coil • Function Code 06: Write Single Register
  • 23. Атака 14: Некорректные запросы на запись (часть 2 из 3 – запись ячейки с маской) Эффект: некорректный запрос может вызвать отказ в обслуживании на контроллере. 23 match “.{47}x16” AND NOT “.{2}x00x36” • Function Code 22: Mask Write Register
  • 24. Атаки 15-16: Некорректные запросы на запись (часть 3 из 3 – запись ряда ячеек) Эффект: некорректный запрос может вызвать отказ в обслуживании на контроллере. 24 • match “.{47}x0F” AND NOT “.{2}(x00[x36-xFF]|x01[x00-x2C]).{46}(x00[x01-xFF]|[x01-x06]|x07[x00-xB0]” • match “.{47}x10” AND NOT “.{2} (x00[x36-xFF]|x01[x00-x2C]).{46}x00[x01-x7B]” • Function Code 15: Write Multiple Coils • Function Code 16: Write Multiple Registers
  • 25. Атаки 17-20: Некорректные ответы на запросы записи (часть 1 из 2 – запись без маски) Эффект: некорректный ответ может вызвать отказ в обслуживании на клиенте Modbus (сервере SCADA/консоли оператора). 25 • match “.{47}x05” AND NOT “.{2}x00x34.{46}(x00|xFF)x00” • match “.{47}x06” AND NOT “.{2}x00x34” • match “.{47}x0F” AND NOT “.{2}x00x34.{46}(x00[x01-xFF]|[x01-x06]|x07[x00-xB0]” • match “.{47}x10” AND NOT “.{2}x00x34.{46}x00[x01-x7B]” • Function Code 05: Write Single Coil • Function Code 06: Write Single Register • Function Code 15: Write Multiple Coils • Function Code 16: Write Multiple Registers
  • 26. Атака 21: Некорректный ответ на запрос записи (часть 2 из 2 – запись с маской) 26 Эффект: некорректный ответ может вызвать отказ в обслуживании на клиенте Modbus (сервере SCADA/консоли оператора). match “.{47}x16” AND NOT “.{2}x00x36” • Function Code 22: Mask Write Register
  • 27. Атака 22: Некорректный запрос чтения/записи Эффект: некорректный запрос может вызвать отказ в обслуживании на контроллере. 27 match “.{47}x17” AND NOT “.{2}(x00[x3B-xFF]|x01[x00-x2C]).{46}x00[x01-x7D].{2}x00[x01-x79]” • Function Code 23: Read/Write Multiple Registers
  • 28. Атака 23: Некорректный ответ на запрос чтения/записи 28 match “.{47}x17” AND NOT “.{2}(x00[x33-xFF]|x01[x00-x2C]) Эффект: некорректный ответ может вызвать отказ в обслуживании на клиенте Modbus (сервере SCADA/консоли оператора). • Function Code 23: Read/Write Multiple Registers
  • 29. Атака 24: Выключение контроллера из системы Эффект: контроллер не отвечает на запросы, не высылает информацию о состоянии подключенных систем. Требуется перезагрузка интерфейса контроллера. 29 match “.{47}0x08x00x04” • Function Code 08: Diagnostics • Function Sub-Code 04 (00 04): Force Listen-Only mode
  • 30. Атака 25: Превышение макс. размера пакета Эффект: слишком большой пакет может привести к отказу в обслуживании контроллера. 30 match “.{2}x01[x2D-xFF]|[x02-xFF])” • Размер пакета более 300 байт
  • 31. Атака 26 (25+): Не-Modbus трафик 31 Эффект: не-Modbus трафик может привести к отказу в обслуживании либо быть признаком несанкционированного доступа к АСУ ТП. match “.{2}x01[x2D-xFF]|[x02-xFF])” OR NOT “.{32}[x50-x5F]” OR NOT “.{42}x00x00” • Размер пакета более 300 байт ИЛИ • Заголовок TCP не равен 20 байт ИЛИ • Поле Protocol ID не равно 0х0000
  • 32. Атака 27: Сброс счетчиков диагностики Эффект: сбрасываются счетчики и диагностический регистр, что удаляет данные о проведенных действиях над контроллером. 32 match “.{47}x08x00x0A” • Function Code 08: Diagnostics • Function Sub-Code 10 (00 0A): Clear Counters and the Diagnostic Register
  • 33. Сравнение с продуктами ведущих производителей (часть 1 из 5) 33 Вендор 1 Вендор 2 Наш IPS TCP MODBUS - Report Server Information Modbus TCP - Report Server Information Атака 1: Получение информации об устройстве (вариант 1) TCP MODBUS - Read Device Identification Modbus TCP - Read Device Identification Атака 2: Получение информации об устройстве (вариант 2) TCP MODBUS - Restart Communications Opt. Modbus TCP - Restart Communications Option Атака 3: Удаленная перезагрузка контроллера TCP MODBUS - Force Listen Only Mode Modbus TCP - Force Listen Only Mode Атака 24: Выключение контроллера из системы TCP MODBUS - Illegal Packet Size Modbus TCP - Illegal Packet Size Атака 25: Превышение макс. размера пакета ----- Modbus TCP - Non-Modbus Communication Атака 26: Не-Modbus трафик TCP MODBUS - Clear Ctrs and Diag Registers Modbus TCP - Clear Counters and Diagnostic Registers Атака 27: Сброс счетчиков диагностики
  • 34. Сравнение с продуктами ведущих производителей (часть 2 из 5) 34 Вендор 1 Вендор 2 Наш IPS TCP MODBUS - Unauthorized Read Request MODBUS Invalid Read Coils Request Parameters MODBUS Invalid Read Discrete Inputs Request Parameters MODBUS Invalid Read Input Registers Request Parameters MODBUS Invalid Read Holding Registers Request Parameters Атаки 4-7: Некорректные запросы на чтение TCP MODBUS - Unauthorized Write Request Modbus TCP - (0x06) Write Single Register Invalid Request Modbus TCP - (0x16) Mask Write Register Invalid Request MODBUS Invalid Write Single Coil Request Parameters MODBUS Invalid Write Multiple Registers Request Parameters MODBUS Invalid Write Multiple Coils Request Parameters Атаки 12-16: Некорректные запросы на запись ----- MODBUS Illegal Read-Write Multiple Registers Request Parameters Атака 22: Некорректный запрос чтения/записи
  • 35. Сравнение с продуктами ведущих производителей (часть 3 из 5) 35 Вендор 1 Вендор 2 Наш IPS ------- MODBUS Invalid Read Coils Response Parameters MODBUS Invalid Read Discrete Inputs Response Parameters MODBUS Invalid Read Input Registers Response Parameters MODBUS Invalid Read Holding Registers Response Parameters Атаки 8-11: Некорректные ответы на запросы чтения ------- Modbus TCP - (0x05) Write Single Coil Invalid Response Modbus TCP - (0x0F) Write Multiple Coils Invalid Response Modbus TCP - (0x10) Write Multiple Registers Invalid Response Modbus TCP - (0x16) Mask Write Register Invalid Response Атаки 17-21: Некорректные ответы на запросы записи ------ MODBUS Illegal Read-Write Multiple Registers Response Parameters Атака 23: Некорректный ответ на запрос чтения/записи
  • 36. Сравнение с продуктами ведущих производителей (часть 4 из 5) 36 Вендор 1 Вендор 2 Наш IPS ------- MODBUS Serial Commands over TCP Modbus TCP - Invalid Function Code Is Used Modbus TCP - Reserved Function Code Used Реализуемо ------- Large MODBUS/TCP Data Overflow Реализуемо ------ Modbus Slave Device Busy Exception Code Delay Modbus Acknowledge Exception Code Delay Реализуемо MODBUS Invalid Read File Record Request Parameters MODBUS Invalid Write File Record Request Parameters MODBUS Illegal Read File Record Response Parameters MODBUS Invalid Read FIFO Queue Response Parameters MODBUS Invalid Write File Record Response Parameters Реализуемо всѐ плюс «Invalid Read FIFO Queue Request Parameters»
  • 37. Сравнение с продуктами ведущих производителей (часть 5 из 5) 37 Вендор 1 Вендор 2 Наш IPS ------- MODBUS Response Header Length TCP Segment Size Mismatch Замещается сигнатурой 26 (Не-Modbus трафик) ------- Modbus TCP - Value Scan MODBUS Function Code Scan MODBUS Point List Scan Не реализуемо; реализуемо на любом stateful IPS
  • 38. Выводы • Современные АСУ ТП по природе своей уязвимы и нуждаются в защите • Доступную и эффективную защиту можно реализовать собственноручно • Сигнатуры, сделанные лично, могут быть выпущены оперативнее, а действовать – точнее и эффективнее готовых решений, предлагаемых рынком • Следует строго оценивать пригодность коробочных решений для применимости их в своей сети 38
  • 39. СПАСИБО ЗА ВНИМАНИЕ! 39 Дмитрий Дудов Ведущий инженер по защите систем SCADA ddudov@amt.ru +7 (495) 725-7660