СОВ (IDS/IPS)

Функциональность системы обнаружения и предотвращения вторжений (СОВ) в ARMA Стена реализуется посредством ПО с открытым исходным кодом «Suricata» и использованием метода захвата пакетов «NetMap» для повышения производительности и минимизации загрузки ЦП.

Система обнаружения и предотвращения вторжений в ARMA Стена позволяет решать следующие задачи:

  • обнаружение и предотвращение использования эксплойтов и уязвимостей сетевых приложений;

  • обнаружение и предотвращение эксплуатации уязвимостей в поддерживаемых протоколах;

  • обнаружение и предотвращение сетевого сканирования;

  • обнаружение и фильтрация трафика от скомпрометированных хостов;

  • обнаружение и фильтрация трафика от хостов, заражённых троянским ПО и сетевыми червями;

  • обнаружение и предотвращение DOS-атак.

Для перехода в раздел «СОВ» необходимо выполнить следующие действия:

  1. В списке источников открыть карточку необходимого источника «NGFW».

  2. В карточке источника выбрать модуль «СОВ» (см. Рисунок – СОВ (IDS/IPS)).

../../../../_images/ngfw.r.web.suricata_0.1.png

Рисунок – СОВ (IDS/IPS)

Применение и сохранение конфигурации СОВ (IDS/IPS)

После завершения настройки всех необходимых параметров в подразделах раздела «СОВ» необходимо сохранить внесённые изменения. Для этого следует нажать кнопку «Сохранить», расположенную в правом верхнем углу заголовка раздела «СОВ».

После нажатия кнопки откроется окно подтверждения «Сохранить изменения конфигурации». Для продолжения и применения настроек необходимо подтвердить действие, нажав кнопку «Сохранить» в данном окне (см. Рисунок – Применение и сохранение настроек).

Только после успешного подтверждения все изменения будут сохранены и активированы в текущей конфигурации системы ARMA Стена.

../../../../_images/ngfw.r.web.suricata_0.2.png

Рисунок – Применение и сохранение настроек

Примечание

Если доступ к веб-интерфейсу осуществляется через сетевой интерфейс, на котором Suricata включена в режиме IPS, сохранение конфигурации СОВ приводит к кратковременному разрыву активных сетевых сессий на этом интерфейсе. В результате текущая сессия пользователя в веб-интерфейсе может быть прервана, и в браузере отобразится сообщение об ошибке. При этом все внесённые настройки сохраняются корректно. Для отображения обновлённой конфигурации необходимо обновить страницу вручную.

Настройки СОВ

Настройка СОВ осуществляется в подразделе «Настройки» меню «СОВ». Данный раздел включает следующие блоки:

  1. общие настройки;

  2. настройки логирования;

  3. источники обновлений правил;

  4. настройки NetMap;

  5. создание дампов трафика.

Примечание

При работе Suricata в режиме IPS с использованием драйвера netmap перезагрузка конфигурации приводит к кратковременному разрыву активных сетевых сессий на интерфейсах, где включён IPS-режим.

Это обусловлено архитектурными особенностями IPS: Suricata располагается непосредственно на пути прохождения трафика на таких интерфейсах, обеспечивая его прямую обработку и пересылку. В ходе перезагрузки конфигурации сетевые интерфейсы с активированным IPS временно отключаются, передача трафика приостанавливается, а состояние активных соединений (connection tracking) сбрасывается. В результате TCP- и UDP-сессии, проходящие через эти интерфейсы, могут быть прерваны.

В режиме IDS (TAB) Suricata анализирует лишь копию трафика и не участвует в его пересылке. Следовательно, перезагрузка конфигурации не оказывает влияния на стабильность сетевых соединений на интерфейсах, работающих в этом режиме.

В системах, где на отдельных интерфейсах включён IPS-режим, рекомендуется избегать частых перезагрузок Suricata. Обновление конфигурации следует выполнять в периоды минимальной сетевой нагрузки с целью минимизации воздействия на пользовательские сессии и критически важные сервисы, трафик которых проходит через указанные интерфейсы.

Обновление правил СОВ не приводит к перезапуску службы Suricata, однако инициирует внутреннюю перезагрузку правил в рамках работающего процесса. В момент перезагрузки правил возможна кратковременная несогласованность между текущим состоянием фильтрации и новым набором правил, что может повлиять на корректность обработки активных сессий. Рекомендуется учитывать этот фактор при планировании обновлений правил в высоконагруженных или критически важных сегментах сети.

Общие настройки

  1. Режим захвата - выбрать режим захвата сетевого трафика для Suricata. Возможно указать следующие режимы:

    • NetMap - высокопроизводительный фреймворк для захвата и обработки сетевых пакетов, который минимизирует задержки и потери данных, обеспечивая максимальную эффективность на высокоскоростных сетях. Установлен по умолчанию.

    • af-packet - режим перехвата трафика в Suricata, который требует наличия нескольких сетевых интерфейсов и работает в режиме шлюза. Настройка данного режима недоступна через веб-интерфейс. Конфигурация режима осуществляется исключительно с использованием командной строки (CLI).

  2. Путь к файлам с правилами - указать новый каталог, используемый по умолчанию для хранения правил Suricata. По умолчанию используется каталог «/config/files/configuration/suricata/rule-files/».

  3. Файлы с правилами - выпадающий список, позволяющий выбрать файлы с правилами, которые будут использоваться системой Suricata для анализа сетевого трафика и выявления потенциальных угроз. Список отображает только те файлы с расширением «.rules», которые находятся непосредственно в каталоге, заданном в поле «Путь к файлам с правилами». Возможно установить значение «*.rules», при котором Suricata загружает все файлы с расширением «.rules» из каталога по умолчанию: «/config/files/configuration/suricata/rule-files/». Файлы, расположенные в подкаталогах указанного пути, не учитываются.

Примечание

При изменении каталога в поле «Путь к файлам с правилами» все ранее выбранные файлы, которые отсутствуют в новом указанном каталоге, будут выделены красным цветом. При этом отображается предупреждение о том, что данные файлы не будут использоваться системой Suricata (после её перезапуска), поскольку они не находятся в текущем каталоге.

В случае необходимости использования файла с правилами, находящегося в директории, отличной от текущей, возможно применить один из следующих методов:

  1. Перенести требуемый файл в текущий каталог, указанный в поле «Путь к файлам с правилами».

  2. Задать полный путь к файлу посредством командной строки (CLI). Например:

admin@ngfwos# set suricata rule-files file-name /config/files/configuration/rule-files/test.rules

Во втором случае система выделит имя файла красным цветом, сигнализируя о его нахождении вне текущего каталога, однако Suricata будет корректно использовать данный файл для анализа сетевого трафика, так как указан полный путь к ресурсу (см. Рисунок – Файлы с правилами).

../../../../_images/ngfw.r.web.suricata_1.1.1.png

Рисунок – Файлы с правилами

  1. Политика обработки ошибок прикладного уровня - выбрать политику обработки ошибок, возникающих на уровне приложений в Suricata. Возможно выбрать следующие политики:

    • Отбросить пакет (drop-packet) - отбрасывает только текущий пакет, вызвавший ошибку.

    • Отбросить поток (drop-flow) - отключает проверку для всего потока (flow), включая пакеты, полезную нагрузку и протоколы прикладного уровня. Отбрасывает текущий пакет и все последующие пакеты в этом потоке. Применяется в ситуациях, требующих обеспечения высокого уровня защиты и оперативного блокирования потенциально вредоносного трафика.

    • Отклонить (reject) - аналогично drop-flow, но также отправляет TCP-сброс (RST) или ICMP-сообщение об ошибке для завершения соединения. Уведомляет участников соединения о блокировке.

    • В обход (bypass) - обходит (игнорирует) весь поток, отключая дальнейшую проверку. Используется для минимизации влияния ошибок на производительность, но может снижать безопасность.

    • Пропустить пакет (pass-packet) - отключает детектирование для текущего пакета, но продолжает обновление потока и анализ прикладного уровня (в зависимости от того, какая политика была активирована). Позволяет изолировать ошибку, не затрагивая остальной трафик.

    • Пропустить пакет (pass-flow) - отключает проверку полезной нагрузки и пакетов, но продолжает выполнять сборку потока (stream reassembly), анализ прикладного уровня (app-layer parsing) и логирование.

    • Не применять (ignore) - игнорировать ошибку в приложении и продолжать обработку данных. Значение используется по умолчанию.

Настройки логирования

  1. Уровень журналирования системных событий - выбор уровня ведения журнала. Возможно выбрать следующие значения:

    • «Ошибка (error)» - уровень ошибок, которые могут оказать влияние на работу системы;

    • «Предупреждение (warning)» - уровень предупреждений о потенциальных проблемах;

    • «Уведомление (notice)» - уровень для общих уведомлений о важных событиях;

    • «Инфо (info)» - уровень для информационных сообщений;

    • «Производительность (perf)» - уровень для сообщений и событий, связанных с производительностью и работой системы Suricata;

    • «Конфигурирование (config)» - уровень конфигурации Suricata;

    • «Отладка (debug)» - уровень для отладочной информации.

    По умолчанию используется уровень «Уведомление (notice)».

  2. Syslog - включить логирование системных событий работы Suricata в глобальный журнал системы ARMA Стена. По умолчанию логирование включено.

  3. Логирование срабатываний правил (syslog) - включить логирование событий и предупреждений IDS/IPS в глобальный журнал системы ARMA Стена. По умолчанию запись событий и предупреждений IDS/IPS в глобальный журнал включена.

Настройки NetMap

В разделе «Настройки NetMap» осуществляется конфигурация параметров захвата сетевого трафика с использованием высокопроизводительного метода NetMap в системе Suricata. Доступны настройки драйвера, режимов работы (IDS/IPS), политик исключений, проверки контрольных сумм и параметров параллельной обработки (см. Рисунок – Настройки NetMap):

../../../../_images/ngfw.r.web.suricata_1.3.1.png

Рисунок – Настройки NetMap

  1. Настройки ресурсоемкости драйвера NetMap - позволяет задать параметры драйвера сетевой карты при использовании технологии NetMap. Определяет баланс между производительностью и потреблением аппаратных ресурсов. Возможно выбрать следующие значения:

    • экономичные - подходит для сетей с низкой нагрузкой или ограниченными ресурсами оборудования. Минимизирует использование оперативной памяти и CPU:

      • if_num = 100 - количество интерфейсов, которые могут быть обработаны одновременно;

      • buf_num = 163840 - общее количество буферов для хранения пакетов;

      • if_size = 1024 -размер кольцевого буфера (ring buffer) для каждого интерфейса.

    • средние (по умолчанию)- оптимальное решение для большинства сценариев, особенно при использовании сетей средней пропускной способности (до 10 Гбит/с):

      • if_num = 500 - увеличенное количество интерфейсов для обработки большего числа потоков данных;

      • buf_num = 491520 - увеличение объёма буферов для временного хранения пакетов;

      • if_size = 2048 -увеличенный размер кольцевого буфера для каждого интерфейса, снижая вероятность потери пакетов.

    • высокие - рекомендовано для использования в высокоскоростных сетях со скоростью передачи данных 10 Гбит/с и выше, где требуется максимальная пропускная способность и минимальные потери данных:

      • if_num = 1000 - максимальное количество интерфейсов, которые могут быть обработаны одновременно;

      • buf_num = 983040 - увеличение объёма буферов для минимизации потерь пакетов при высокой нагрузке;

      • if_size = 4096 -максимальный размер кольцевого буфера, обеспечивающий минимальные задержки и максимальную пропускную способность.

  2. Режим работы - позволяет выбрать режим захвата трафика по умолчанию для сетевых интерфейсов, на которых режим не задан в явном виде, но активирована служба Suricata. Возможно выбрать следующие режимы:

    • IDS - пассивный режим анализа трафика. Обнаруженные инциденты регистрируются без вмешательства в поток данных.

    • IPS - активный режим. Система может блокировать или модифицировать трафик в реальном времени для предотвращения атак.

  3. Политика исключений - глобальная конфигурация действий с пакетами и потоками, возникающими в процессе работы Suricata (нехватка памяти, неподдерживаемый протокол, разрыв соединения и т.д.). Может быть переопределена локальными настройками политики. Параметр доступен для редактирования только после выбора режима работы NetMap. Возможно выбрать следующие политики:

    • Авто (auto);

    • Отбросить пакет (drop-packet);

    • Отбросить поток (drop-flow);

    • Отклонить (reject);

    • В обход (bypass);

    • Пропустить пакет (pass-packet);

    • Пропустить пакет (pass-flow);

    • Не применять (ignore).

    По умолчанию для режима NetMap «IDS» применяется политика исключений «Не применять (ignore)», а для режима NetMap «IPS»«Авто (auto)».

  4. Проверка контрольных сумм - определяет необходимость проверки контрольных сумм TCP/IP-пакетов при обработке трафика. Возможно указать следующие значения:

    • Включена - включает проверку контрольных сумм (надёжность, но ниже производительность). Проверка контрольных сумм TCP-пакетов оказывает значительное влияние на производительность системы;

    • Выключена - отключает проверку (высокая производительность, но возможны ошибки);

    • Авто - автоматический выбор, основанный на конфигурации системы и аппаратного обеспечения. Используется по умолчанию.

  5. Потоки - указать количество потоков, используемых Suricata для обработки трафика. Возможно выбрать значение «auto» или «Число». По умолчанию используется значение «auto». При выборе значения «Число», появится дополнительное поле «Число потоков». В это поле возможно ввести количество потоков в диапазоне от «1» до «9999». Рекомендуется устанавливать значение, равное числу RSS-очередей на интерфейсе. Несоответствие указанного числа фактическому может привести к нестабильной работе Suricata.

Таблица «NetMap» содержит список сетевых интерфейсов, на которых активирован захват пакетов с использованием NetMap, а также указан режим захвата для каждого из интерфейсов.

Для включения захват пакетов с помощью NetMap на определённом интерфейсе необходимо выполнить следующие действия:

  1. Нажать кнопку «+ Добавить» на панели инструментов таблицы «NetMap».

  2. В открывшемся окне «Добавить Netmap» указать следующие параметры:

    • Интерфейс - выбрать из выпадающего списка необходимый сетевой интерфейс системы ARMA Стена, на котором будет осуществляться фильтрация трафика с помощью Suricata.

    • Режим работы - укажите режим работы Suricata для данного интерфейса.

    Примечание

    Если поле «Режим работы» оставлено незаполненным, система автоматически применит режим, заданный по умолчанию в общих настройках СОВ.

    Необходимо явно указывать режим захвата трафика либо глобально (в общих настройках), либо для каждого конкретного интерфейса, на котором активирована Suricata.

  3. Нажать кнопку «Добавить» для сохранения параметров (см. Рисунок – Добавление сетевого интерфейса в СОВ).

../../../../_images/ngfw.r.web.suricata_1.3.2.png

Рисунок – Добавление сетевого интерфейса в СОВ

После добавления интерфейс отобразится в таблице «NetMap» с указанием назначенного режима работы. Захват трафика начнётся немедленно при условии, что служба СОВ активна.

Для применения настроек NetMap необходимо нажать кнопку «Сохранить» в верхнем правом углу заголовка раздела «IPS/IDS», а затем подтвердите действие в открывшемся окне «Сохранить изменения конфигурации», нажав кнопку «Сохранить».

Создание дампов трафика

Создание дампа трафика в Suricata необходимо для анализа инцидентов, отладки правил и расследования угроз. Трафик записывается в файл формата pcap.

Для включения записи дампов трафика в файл формата pcap необходимо перевести переключатель «Статус» в активное состояние и нажать кнопку «Сохранить» (см. Рисунок – Включение записи дампов трафика в файл).

../../../../_images/ngfw.r.web.suricata_1.4.1.png

Рисунок – Включение записи дампов трафика в файл

Примечание

Дамп сетевого трафика будет записываться в файл «log.pcap», который создаётся при включении функции записи в каталоге /var/log/suricata/.

Блок настроек «Максимальный размер дампа (Мб)» предназначен для ограничения объёма записываемых дампов трафика с целью предотвращения переполнения накопителей данных. Блок включает следующие параметры:

  1. Единица измерения - позволяет задать единицу измерения размера одного файла pcap. Возможно выбрать следующие значения:

    • байты;

    • килобайты;

    • мегабайты - используется по умолчанию;

    • гигабайты.

  2. Размер - определяет максимальный объём одного файла pcap в указанной единице измерения. Возможно указать следующие значения в зависимости от единицы измерения:

    • от «0» до «18446744073709553664» - в байтах;

    • от «0» до «18014398509481986» - в килобайтах;

    • от «0» до «17592186044416» - в мегабайтах;

    • от «0» до «17179869184» - в гигабайтах.

    По умолчанию размер одного файла pcap установлен равным 1000 мегабайтах.

  3. Количество - указывает максимальное количество файлов pcap, которые могут быть созданы для одного потока. Возможно указать значение в диапазоне от «1» до «4294967295». По умолчанию используется значение «2000».

Для сохранения внесённых изменений необходимо нажать кнопку «Сохранить», расположенную в верхнем правом углу заголовка раздела «IPS/IDS» (см. Рисунок – Включение записи дампов трафика в файл).

Примечание

Блок настроек «Максимальный размер дампа (Мб)» применяются на каждый отдельный поток. Таким образом, ограничение объёма для восьми потоков с 2000 файлами с размером 1000 мегабайт каждый составит 16 терабайт.

Включение СОВ

Для обеспечения корректной работы СОВ необходимо выполнить следующие минимальные настройки Suricata:

  1. указать интерфейс, на котором будет включён захват пакетов;

  2. определить режим захвата, который будет применяться по умолчанию для всех интерфейсов системы ARMA Стена;

  3. указать файл с правилами Suricata.

Для включения СОВ после выполнения минимальных настроек Suricata, необходимо перевести переключатель «Статус СОВ» в активное состояние и нажать кнопку «Сохранить» (см. Рисунок – Включение СОВ).

../../../../_images/ngfw.r.web.suricata_3.1.png

Рисунок – Включение СОВ

Правила СОВ

Создание пользовательских правил СОВ

Для создание пользовательского правила СОВ необходимо перейти в раздел «Управление» меню «СОВ» и нажать кнопку «Добавить правило». В появившейся форме требуется заполнить следующие поля:

  • Путь к файлу - указывается полное имя файла, в который будет сохранено правило. По умолчанию предлагается размещение в каталоге /config/files/configuration/suricata/rule-files/. Изменение пути не рекомендуется, поскольку при обновлении программного обеспечения файлы, находящиеся вне директории config, будут утеряны. Если указанный файл отсутствует в целевом каталоге, он будет создан автоматически при сохранении правила. При наличии файла с таким именем новое правило добавляется в конец существующего содержимого.

Примечание

Файл, содержащий пользовательские правила, должен быть прописан в настройках Suricata в параметре «Файлы с правилами» раздела «Настройки» меню «СОВ». В случае отсутствия этой конфигурации, несмотря на успешное сохранение правил в системе, они не будут применяться при анализе сетевого трафика.

  • SID - уникальный идентификатор правила. Для оптимизации процесса рекомендуется оставить данное поле незаполненным, что позволит системе автоматически назначить свободный SID. В случае ручного ввода SID необходимо обеспечить его уникальность в пределах текущего файла правил. Несоблюдение данного требования приведет к возникновению ошибки при сохранении: «Error: Rules added with some conflicts. DUPLICATED_SIDS: [1]» — правило не будет добавлено. Также следует избегать использования SID, которые уже применяются в других файлах правил, поскольку это может привести к некорректной работе системы. При загрузке правил Suricata игнорирует дублирующиеся SID, что может привести к тому, что правило будет сохранено, но не будет участвовать в фильтрации трафика.

  • Сигнатура - текст правила, соответствующий синтаксису Suricata. Требуется строгое соблюдение формата. Любое отклонение от синтаксиса (например, пропущенная точка с запятой, неверная последовательность опций или некорректные ссылки на переменные) приводит к ошибке валидации, и правило не будет сохранено.

После заполнения всех обязательных полей необходимо подтвердить ввод, нажав кнопку «Сохранить» (см. Рисунок – Создание пользовательских правил СОВ).

../../../../_images/ngfw.r.web.suricata_4.1.1.png

Рисунок – Создание пользовательских правил СОВ

При активированной службе СОВ после сохранения правила выполняется перезагрузка правил Suricata без полного перезапуска службы. Новое правило становится доступным для анализа трафика немедленно.

Примечание

Cуществует вероятность неполного применения правил системы Suricata к процессу активной фильтрации сетевого трафика в момент перезапуска правил.

Если служба СОВ отключена, правило сохраняется в файловой системе, но применяется только после включения службы.

Переменные в правилах СОВ

В системе ARMA Стена предусмотрена возможность использования переменных при работе с правилами СОВ, на основе Suricata. Эта функциональность позволяет гибко задавать диапазоны IP-адресов, на которые распространяются правила, исключая необходимость вручную указывать адреса в каждом правиле. Это способствует повышению эффективности фильтрации сетевого трафика и оптимизации процесса управления безопасностью.

Переменные используются в правилах Suricata для указания источников, назначений и зон анализа (например, внутренние сети, внешние хосты). Это обеспечивает масштабируемость конфигурации и снижает нагрузку на систему за счёт ограничения области действия правил только релевантными сетевыми сегментами.

На текущий момент в ARMA Стена поддерживаются две основные переменные:

  • HOME_NET - определяет доверенную внутреннюю сеть организации. Правила, ссылающиеся на HOME_NET, будут применяться только к трафику, проходящему через указанные подсети. Допустимые значения: IPv4-адреса и сети в формате CIDR, перечисленные через запятую; допускается использование специальных символов. Для задания значений переменных разрешены: цифры (0–9), буквы латинского алфавита (a–z, A–Z), специальные символы «/», «$», «!», «,», «.». Значение по умолчанию «192.168.0.0/16,10.0.0.0/8,172.16.0.0/12».

  • EXTERNAL_NET - задаёт внешние сети, находящиеся за пределами доверенной зоны. Для задания значений переменных разрешены: цифры (0–9), буквы латинского алфавита (a–z, A–Z), специальные символы «/», «$», «!», «,», «.». Значение по умолчанию «!$HOME_NET» - все IP-адреса, кроме тех, что входят в HOME_NET.

Для изменения значений переменных необходимо перейти в раздел «Настройки» меню «СОВ», где в блоке «Переменные» следует указать требуемые параметры (см. Рисунок – Переменные группы адресов). После ввода значений конфигурация сохраняется нажатием кнопки «Сохранить», расположенной в правом верхнем углу заголовка раздела «СОВ».

../../../../_images/ngfw.r.web.suricata_4.1.2.png

Рисунок – Переменные группы адресов

Изменения в переменных затрагивают все правила — как стандартные, так и пользовательские, — в которых используются ссылки на HOME_NET и EXTERNAL_NET.

Обновление правил СОВ

Для обеспечения высокой степени защиты сети система ARMA Стена поддерживает обновление правил Suricata. Обновления правил могут осуществляться из локальных и внешних источников, что обеспечивает гибкость настройки в зависимости от условий эксплуатации — как в изолированных сетях, так и в средах с выходом во внешние сети.

Источники обновлений правил

Система ARMA Стена позволяет использовать два источника обновления правил Suricata:

  • локальный источник - файлы с правилами, размещённые непосредственно на устройстве;

  • внешний источник - удалённый ресурс, предоставляющий актуальные версии правил.

Локальный источник

Для добавления локального источника обновлений правил Suricata необходимо выполнить следующие действия (см. Рисунок – Добавление локального источника обновления правил):

  1. Перейти в подраздел «Настройки» раздела «IPS/IDS».

  2. В таблице «Источники обновлений правил» нажать кнопку «+ Добавить» в панели инструментов.

  3. В открывшемся боковом окне «Источник обновлений правил» выбрать создаваемую сущность «Локальный» и указать следующие параметры:

    • Наименование - пользовательское имя создаваемого локального источника обновлений правил. Значение не может содержать двойные («"») или одинарные («'») кавычки и знак вопроса («?»).

    • Путь - полный путь к файлу обновления с правилами Suricata, который расположен в системе ARMA Стена.

    Для переноса файла обновления в систему ARMA Стена возможно использовать программное обеспечение, поддерживающее передачу файлов по протоколам SFTP или SCP (например, WinSCP для операционной системы Windows), либо воспользоваться командой «scp» через интерфейс командной строки. Возможны также альтернативные способы передачи данных.

    Пример использования команды «scp»:

    «C:\Users\test>scp c:\Users\test\Desktop\user.rules admin@172.16.20.76:/config/files/configuration/suricata/rule-files/»

    Команда выполнит копирование файла обновления правил СОВ «user.rules» в каталог «/config/files/configuration/suricata/rule-files/» на системе ARMA Стена, доступной по IP-адресу 172.16.20.105.

../../../../_images/ngfw.r.web.suricata_4.2.1.1.png

Рисунок – Добавление локального источника обновления правил

Внешний источник

Для добавления внешнего источника обновлений правил Suricata необходимо выполнить следующие действия (см. Рисунок – Добавление внешнего источника обновления правил):

  1. Перейти в подраздел «Настройки» раздела «IPS/IDS».

  2. В таблице «Источники обновлений правил» нажать кнопку «+ Добавить» в панели инструментов.

  3. В открывшемся боковом окне «Источник обновлений правил» выбрать создаваемую сущность «Внешний» и указать следующие параметры:

    • Наименование - пользовательское имя создаваемого источника обновлений правил. Значение не может содержать двойные («"») или одинарные («'») кавычки и знак вопроса («?»).

    • URL - URL-адрес внешнего источника обновлений правил. Значение не может содержать двойные («"») или одинарные («'») кавычки и знак вопроса («?»). По умолчанию поле содержит URL-адрес сервера обновлений правил Suricata компании ООО «ИнфоВотч АРМА» - «https://update.iwarma.ru/ngfw/ids_ips».

    • Логин - имя УЗ, имеющей доступ к внешнему источнику обновлений правил. Значение не может содержать двойные («"») или одинарные («'») кавычки и знак вопроса («?»).

    • Пароль - пароль УЗ. Значение не может содержать двойные («"») или одинарные («'») кавычки и знак вопроса («?»).

../../../../_images/ngfw.r.web.suricata_4.2.1.2.png

Рисунок – Добавление внешнего источника обновления правил

Для модификации источника обновлений правил следует осуществить выбор соответствующей записи в таблице «Источники обновлений правил» посредством нажатия ЛКМ. В открывшемся окне необходимо произвести требуемые изменения. Поле «Наименование» не подлежит редактированию. По завершении процесса модификации следует нажать кнопку «Сохранить».

Для удаления источника обновлений правил необходимо выбрать одну или несколько соответствующих записей в таблице «Источники обновлений правил», установив флажок в чек-боксе слева от наименования источника, и нажать кнопку «Удалить»* на панели инструментов. В открывшемся окне, подтвердить удаление нажатием кнопки «Удалить».

Порядок выполнения обновления

  1. Настроить источник обновления правил (см. Источники обновлений правил).

  2. В разделе «IPS/IDS» перейти в подраздел «Управление».

  3. В поле «Тип источника» выбрать тип источника обновления внешний или локальный.

  4. В поле «Источник обновления» выбрать из списка ранее настроенный источник, соответствующий указанному типу. При выборе значения «все» обновление будет выполнено со всех доступных источников данного типа.

  5. Нажать кнопку «Обновить» (см. Рисунок – Обновление правил Suricata).

    ../../../../_images/ngfw.r.web.suricata_4.2.2.1.png

    Рисунок – Обновление правил Suricata

Примечание

Верхняя область окна, показанного на рисунке, отображает статус службы СОВ, количество загруженных правил, а так же наличие ошибок и пропущенных правил. Эти данные автоматически обновятся после обновления правил.

  1. По завершении процесса система отобразит информационное сообщение о результате выполненного обновления (см. Рисунок – Результат обновления правил Suricata).

    ../../../../_images/ngfw.r.web.suricata_4.2.2.2.png

    Рисунок – Результат обновления правил Suricata

Контроль протоколов

Функция контроля протоколов реализована на основе технологии глубокой инспекции трафика на уровне прикладных протоколов, включая специализированные протоколы.

Механизм анализа и идентификации протоколов основан на сигнатурном методе обнаружения, обеспечивая интеллектуальное распознавание протоколов в реальном времени. Обнаружение и классификация трафика осуществляются с использованием правил системы сетевой инспекции Suricata, что позволяет эффективно выявлять и контролировать нештатное использование протоколов, а также потенциально вредоносную активность, связанную с ними.

Данная функциональность позволяет обеспечить видимость и контроль использования протоколов в сетях предприятия, предотвратить несанкционированный доступ к критическим системам и повысить уровень безопасности в средах ICS/SCADA.

Система ARMA Стена поддерживает следующие протоколы:

  • ADS;

  • Alpha.Link;

  • AoE;

  • DNP3;

  • Ehternet IP/CIP;

  • EtherCAT;

  • Fanuc FOCAS;

  • GOOSE;

  • IEC 60870-5-104 (IEC-104);

  • KRUG;

  • MMS;

  • Modbus TCP;

  • OPC DA (IP);

  • OPC UA;

  • S7 Communication;

  • S7 Communication Plus;

  • UMAS.

Примечание

Для применения созданных правил фильтрации протоколов необходимо настроить и активировать службу «СОВ» (см. Включение СОВ).

Сформированные правила сохраняются в файл /config/files/configuration/protocols/rule-files/protocols.rules.

При добавлении новых правил или внесении изменений в существующие, применение обновлённой конфигурации к фильтрации трафика осуществляется после нажатия кнопки «Сохранить» на панели инструментов раздела «СОВ» (см. Рисунок – Применение и сохранение настроек). Указанное действие инициирует процедуру перезагрузки правил службы СОВ без полного перезапуска процесса Suricata.

Следует учитывать, что в момент перезагрузки правил существует вероятность неполного применения правил системы Suricata к процессу активной фильтрации сетевого.

Основные настройки контроля протоколов

Для включения функциональности контроля протоколов необходимо выполнить следующие действия (см. Рисунок – Включение контроля протоколов):

  1. Перевести переключатель «Контроль протоколов» в положение включено.

  2. Установить флажки в чек-боксах необходимых протоколов.

  3. Нажать кнопку «Сохранить» (см. Рисунок – Применение и сохранение настроек).

    ../../../../_images/ngfw.r.web.suricata_5.1.1.png

    Рисунок – Включение контроля протоколов

Примечание

Снятие флажков со всех чек-боксов протоколов автоматически переводит переключатель «Контроль протоколов» в положение выключено.

Создание правил СОВ на основе шаблонов

Для упрощения настройки правил фильтрации протоколов в системе «ARMA Стена» реализован механизм создания правил СОВ с использованием шаблонов.

Для создания правила на основе шаблона необходимо перейти в подраздел «Контроль протоколов» раздела «СОВ» и выполнить следующие действия (см. Рисунок – Создание правил СОВ на основе шаблонов протоколов):

  1. Нажать кнопку «Добавить» на панели инструментов таблицы «Контроль приложений».

  2. В открывшемся окне «Добавление правила» заполнить следующие общие параметры:

  • Статус - определяет активность правила. При значении «Включено» правило участвует в фильтрации трафика. По умолчанию правило создаётся с состоянием «Выключено».

  • Наименование - уникальное имя правила, используемое для идентификации в таблице. Максимальная длина — «255» символов.

  • Группа - название группы, к которой относится правило. Позволяет организовать правила в логические группы. Допускается выбор из существующего списка или ввод нового имени. Максимальная длина — «255» символов.

  • Тип протокола - выбор протокола из доступного списка.

  • Действие - действие, применяемое к пакету при срабатывании правила. Доступны следующие значения:

    • «Предупредить (Alert)» – генерация оповещения без блокировки пакета (значение по умолчанию);

    • «Отклонить (Reject)» – блокировка пакета с отправкой уведомления источнику;

    • «Отбросить (Drop)» – блокировка пакета без уведомления источника;

    • «Разрешить (Pass)» – пропуск пакета без ограничений.

  • Адреса отправителя - указываются IPv4-адреса или подсети. Если поле не заполнено, правило применяется ко всем адресам источника. Примеры корректного формата:

    • 10.10.10.10 - конкретный IP-адрес;

    • !1.1.1.1 - все адреса, кроме 1.1.1.1;

    • [10.0.0.0/24, !10.0.0.5] - все адреса из подсети 10.0.0.0/24, за исключением 10.0.0.5.

  • Порты отправителя - указывается один или несколько портов в диапазоне от «1» до «65535». При отсутствии значения правило применяется ко всем портам источника. Поддерживаются следующие форматы:

    • [80, 81, 82] - порты 80, 81 и 82;

    • 80-90 - в диапазоне от 80 до 90;

    • !80 - все порты, кроме 80;

    • [80:100,!99] - диапазон от 80 до 100, исключая 99;

    • [1:80,![2,4]] - диапазон от 1 до 80, исключая порты 2 и 4.

  • Направление - определяет направление трафика, к которому применяется правило:

    • Прямое - трафик от источника к получателю;

    • Прямое и обратное - трафик в обоих направлениях (источник ↔ получатель).

  • Адреса получателя - аналогично полю «Адреса отправителя». Используются те же форматы указания IPv4-адресов и подсетей. При пустом значении правило применяется ко всем адресам назначения.

  • Порты получателя - аналогично полю «Порты отправителя». Форматы задания идентичны.

    Для протоколов используются следующие порты получателя по умолчанию:

    • «Ethernet IP / CIP» - 2222, 44818;

    • «Modbus» - 502;

    • «OPC UA» - 4840, 48020.

  • Фильтрация на основе протокола - позволяет задать специфичные для выбранного протокола параметры фильтрации.

Примечание

В ряде параметров фильтрации, относящихся к отдельным протоколам (например, Modbus), допускается указание как отдельного значения, так и диапазона значений. Однако при использовании единичного значения правило может не пройти валидацию в службе СОВ. В этом случае в журнале событий фиксируется сообщение об ошибке, например:

«10.10.2025 13:13:21 1761225201570979 ngfwos idps-rule[2424585]: [2424585] <Error> – error parsing signature «alert tcp any any -> any [502] (msg:»test»; modbus2: UNIT_ID1, FUNC1, ADDR ONE_BASED1, VAL1; classtype:protocol-command-decode; sid:429496727; rev:1;)» from file /config/files/configuration/protocols/rule-files/protocols.rules at line 3»

Подтверждение факта незагрузки правила возможно посредством анализа счётчиков в разделе «Управление» меню «СОВ»: значение счётчика «Загружено правил» будет ниже ожидаемого, одновременно увеличится счётчик «Ошибки загрузки правил».

Во избежание ошибок валидации рекомендуется вместо единичного значения указывать диапазон, включающий это значение. Например, для параметра «Идентификатор устройств» в протоколе Modbus со значением «1» следует использовать диапазон «1:2».

В случае необходимости строгого ограничения параметра одним значением (например, только «1») следует создавать правило вручную через механизм пользовательских правил, задавая диапазон в формате «1:1». Такой подход гарантирует корректный синтаксис правила и его успешную загрузку в Suricata без ошибок разбора.

  • Сетевой уровень - позволяет задать сетевой уровень фильтрации:

    • уровень приложения;

    • уровень IP.

Примечание

Поле доступно только при выборе протокола «Alpha.Link».

  • Счетчик - позволяет задать числа для декодирования пакетов. Принимает значения целых чисел в диапазоне от «0» до «9223372036854775807».

Примечание

Поле доступно только при выборе протокола «Alpha.Link».

  • Сообщение - текстовое описание события, которое будет записано в журнал при срабатывании правила. Максимальная длина — «512» символов.

../../../../_images/ngfw.r.web.suricata_5.2.1.png

Рисунок – Создание правил СОВ на основе шаблонов протоколов

На текущий момент в веб-интерфейсе доступны шаблоны для настройки правил фильтрации следующих протоколов:

  • «Alpha.Link»;

  • «Ethernet IP / CIP»;

  • «Modbus»;

  • «OPC UA».

Поддержка других протоколов реализована исключительно через CLI-интерфейс. В последующих версиях системы планируется расширение функционала веб-интерфейса за счёт добавления шаблонов для других протоколов.

Шаблон протокола Ethernet IP / CIP

Для создания пользовательского правила на основе шаблона протокола «Ethernet IP / CIP» необходимо в поле «Тип протокола» выбрать значение «Ethernet IP / CIP», а в поле «Фильтрация на основе протокола» - установить параметр «Указать дополнительные параметры».

После этого становится доступным поле «Совпадение по», в котором можно выбрать один из следующих вариантов:

  • «Протокол ENIP» - правило применяется к трафику, содержащему заголовки протокола Ethernet/IP (ENIP), используемого для инкапсуляции CIP-команд в IP-пакеты;

  • «Протокол CIP» - правило применяется к трафику, содержащему данные протокола Common Industrial Protocol (CIP), используемого для обмена информацией между промышленными устройствами;

  • «Протокол ENIP, Протокол CIP» - правило срабатывает при наличии как ENIP-заголовков, так и CIP-данных в пакете. Условие считается выполненным при совпадении по обоим уровням протокола.

Параметры при выборе «Протокол ENIP»

  • Команда ENIP — указывает тип команды в заголовке ENIP. Каждая команда соответствует определённому типу запроса или ответа (например, List Identity, Send RR Data, Register Session и др.). Допустимые значения — целые числа в диапазоне от «1» до «65535».

    Пример: Значение 111 соответствует команде Send RR Data (0x006F), использующейся для обмена запросами и ответами между клиентом и сервером.

Параметры при выборе «Протокол CIP»

  • Сервис — определяет тип операции в CIP-запросе или ответе. Значение указывается как числовой код сервиса в диапазоне от «0» до «127».

    Примеры: 78 - Get Attribute Single (0x4E) — чтение значения атрибута объекта.

    Указание сервиса позволяет фильтровать конкретные типы операций, например, блокировать попытки записи данных.

  • Использовать класс — активация параметра позволяет задать фильтрацию по классу CIP-объекта. Фильтрация по классам доступно только для сервисов: «3» - Get Attribute List (0x03), «4» - Set Attribute List (0x04), «14» - Get Attribute Single (0x0E), «16» - Set Attribute Single (0x10).

    • Класс — числовое значение в диапазоне от «1» до «65535», определяющее тип объекта (например, «4» - Assembly (0x04), «6» - Connection Manager (0x06)).

    При активации вложенного параметра «Использовать атрибут» становится доступным:

    • Атрибут — числовое значение от «0» до «65535», указывающее конкретный атрибут внутри класса. Например, атрибут «3» в классе Assembly может содержать данные конфигурации.

  • Часть адреса — определяет тип адресной информации, используемой в CIP-маршруте. Допустимые значения:

    • Отсутствует — маршрут не содержит дополнительных адресных сегментов;

    • ANSI сегмент — маршрут включает сегмент, совместимый с ANSI/ISA-88. Указывается в поле «ANSI сегмент» в виде строки длиной до «50» символов;

    • Порт — маршрут включает сетевой порт. При выборе данного значения доступны следующие параметры:

      • Порт — конкретный порт в диапазоне от «0» до «65535». При активации чекбокса «Все, кроме указанного порта» правило применяется ко всем портам, кроме указанного (инверсия условия);

      • Диапазон — позволяет задать интервал портов:

        • Начальный порт — минимальное значение порта в диапазоне от «0» до «65535»;

        • Конечный порт — максимальное значение порта в диапазоне от «0» до «65535».

        Начальный порт должен быть меньше конечного.

Шаблон протокола Modbus

Для создания пользовательского правила на основе шаблона протокола «Modbus» необходимо в поле «Тип протокола» выбрать значение «Modbus», а в поле «Фильтрация на основе протокола» - установить параметр «Указать дополнительные параметры».

После этого становится доступным поле «Совпадение по», в котором можно выбрать один из следующих вариантов:

  • «Функции»;

  • «Данные».

Параметры при выборе совпадения по «Функции»

При выборе опции «Функции» появится параметр «Код функции» — указывает код или категорию функции, по которым будет происходить фильтрация.

В поле параметра «Код функции» возможен выбор следующих значений:

  • «01:Read Coils»;

  • «02:Read Discrete Inputs»;

  • «03:Read Holding Register»;

  • «04:Read Input Register»;

  • «05:Write Single Coil»;

  • «07:Read Exception Status»;

  • «08:Diagnostic»;

  • «0B:Get Com event counter»;

  • «0C:Get Com Event Log»;

  • «0F:Write Multiple Coils»;

  • «10:Write Multiple Registers»;

  • «11:Report Server ID»;

  • «14:Read File record»;

  • «15:Write File record»;

  • «16:Mask Write Register»;

  • «17:Read/Write Multiple Registers»;

  • «18:Read FIFO queue».

Параметры при выборе совпадения по «Данные»

При выборе опции «Данные» появятся параметры «Идентификатор устройства», «Код функции», «Отсчёт адреса», «Адрес» и «Значение», доступные для указания значения или диапазона значений:

  • «Идентификатор устройства» – от «0» до «255»;

  • «Код функции» – от «0» до «255»;

  • «Отсчёт адреса» – «С единицы» или «С нуля»;

  • «Адрес» – от «0» до «65535»;

  • «Значение» – от «0» до «65535».

Шаблон протокола OPC UA

Для создания пользовательского правила на основе шаблона протокола «OPC UA» необходимо в поле «Тип протокола» выбрать значение «OPC UA», а в поле «Фильтрация на основе протокола» - установить параметр «Указать дополнительные параметры».

После этого становится доступным поле «Тип сообщения», в котором можно выбрать один из следующих вариантов:

  • «HELLO» - маркер начала передачи данных между клиентом и сервером;

  • «ACKNOWLEDGE» - ответ на сообщение типа HELLO;

  • «OPEN» - открытие канала передачи данных с предложенным методом шифрования данных;

  • «MESSAGE» - передаваемое сообщение;

  • «CLOSE» - конец сессии.

Параметры при выборе «OPEN»

При выборе типа сообщения «OPEN» появится параметр «Политика безопасности», в котором доступны следующие политики безопасности:

  • «NONE»;

  • «BASIC128RSA15»;

  • «BASIC256»;

  • «BASIC256SHA256»;

  • «AES128_SHA256_RSAOAEP»;

  • «PUBSUB_AES128_CTR»;

  • «PUBSUB_AES256_CTR».

Параметры при выборе «MESSAGE»

При выборе типа сообщения «MESSAGE» появится параметр «Тип запроса», в котором доступны типы запросов:

  • «FINDSERVERS» - запрос известных серверов;

  • «FINDSERVERSONNETWORK» - запрос известных работающих серверов;

  • «GETENDPOINTS» - запрос на поддерживаемые сервером конечные точки;

  • «REGISTERSERVER» - запрос на регистрацию сервера;

  • «REGISTERSERVER2» - запрос на регистрацию сервера с дополнительной информацией для FINDSERVERSONNETWORK;

  • «CREATESESSION» - запрос на создание сессии;

  • «ACTIVATESESSION» - запрос на создание сессии (передача идентификационных данных клиента);

  • «CLOSESESSION» - запрос на завершение сессии;

  • «CANCEL» - запрос отмены невыполненных запросов на обслуживание;

  • «ADDNODES» - запрос на добавление узла как дочерний в адресное пространство;

  • «ADDREFERENCES» - запрос на добавление ссылки на узел;

  • «DELETENODES» - запрос на удаление узла из адресного пространства;

  • «DELETEREFERENCES» - запрос на удаление ссылки узла;

  • «BROWSE» - запрос на просмотр узлов;

  • «BROWSENEXT» - запрос на продолжение просмотра результата запроса BROWSE, если результат этого запроса превышает максимальное значение;

  • «TRANSLATEBROWSEPATHSTONODEIDS» - запрос на преобразование пути узла в идентификатор узла;

  • «REGISTERNODES» - запрос на регистрацию узла, например, узла, информация о котором пользователю известна;

  • «UNREGISTERNODES» - запрос на отмену регистрации узла;

  • «QUERYFIRST» - запрос просмотр данных из определённого экземпляра;

  • «QUERYNEXT» - запрос на продолжение просмотра результата запроса QUERYFIRST, если результат этого запроса превышает максимальное значение;

  • «READ» - запрос на чтение данных;

  • «HISTORYREAD» - запрос на просмотр значений или событий узлов;

  • «WRITE» - запрос на изменение узла;

  • «HISTORYUPDATE» - запрос на обновление значений или событий узлов;

  • «CALLMETHOD» - запрос на получение результатов вызова удалённой процедуры;

  • «CALL» - запрос на вызов удалённой процедуры;

  • «MONITOREDITEMCREATE» - запрос на начало подписки на событие;

  • «CREATEMONITOREDITEMS» - запрос на подписку на событие;

  • «MONITOREDITEMMODIFY» - запрос на изменение параметров подписки на события;

  • «MODIFYMONITOREDITEMS» - запрос на изменение подписки;

  • «SETMONITORINGMODE» - запрос на установку режима подписки;

  • «SETTRIGGERING» - запрос на создание связи между событием и узлом;

  • «DELETEMONITOREDITEMS» - запрос на завершение подписки;

  • «CREATESUBSCRIPTION» - запрос на создание подписки на событие;

  • «MODIFYSUBSCRIPTION» - запрос на изменение подписки на событие;

  • «SETPUBLISHINGMODE» - запрос на включение отправки уведомлений по подпискам на событие;

  • «PUBLISH» - запрос на подтверждение получения уведомлений по подпискам на события;

  • «REPUBLISH» - запрос на повторную отправку уведомлений по подпискам на события;

  • «TRANSFERSUBSCRIPTIONS» - запрос на передачу подписки на событие из одной сессии в другую;

  • «DELETESUBSCRIPTIONS» - запрос на удаление подписки на событие.

При выборе типа запросов «BROWSE» и «READ» появятся параметры:

  • «Идентификатор пространства имен»;

  • «Тип идентификатора узла».

При выборе типа запросов «WRITE» появятся параметры:

  • «Идентификатор пространства имен»;

  • «Тип идентификатора узла»;

  • «Тип значений».

При выборе типа запроса «CALL» появятся параметры:

  • «Тип идентификатора узла вызываемого объекта»;

  • «Тип идентификатора узла вызываемого метода».

Поиск и фильтрация

Блок фильтрации предоставляет возможность сортировки и фильтрации данных в таблице подраздела «Контроль протоколов» по всем столбцам в списке (см. Рисунок – Панель поиск и фильтрации). Он включает в себя следующие поля:

  • «Поиск»;

  • «Группа»;

  • «Состояние»;

  • «Тип протокола»;

  • «Действие»;

  • кнопка «Сбросить фильтры».

../../../../_images/ngfw.r.web.suricata_5.3.1.png

Рисунок – Панель поиск и фильтрации

Фильтрация по полю «Группа» позволяет осуществлять отбор данных на основе группы. В данном поле представлен раскрывающийся список с наименованиями групп, к которым относятся правила.

Фильтрация по полю «Состояние» позволяет отфильтровать список по статусу правила: «Включен», «Выключен».

Фильтрация по полю «Тип протокола» позволяет отфильтровать список по типу протокола. Поле содержит выпадающий список и предоставляет выбор из протоколов, которые доступны на текущий момент.

Фильтрация по полю «Действие» позволяет отфильтровать список по действию, которое задано в правиле. Поле содержит выпадающий список и предоставляет выбор из следующих вариантов значений: «Предупредить (Alert)», «Отклонить (Reject)», «Отбросить (Drop)», «Разрешить (Pass)».

Сброс всех установленных фильтров осуществляется нажатием кнопки «Сбросить фильтры».

Сквозной поиск по таблице подраздела «Контроль протоколов» осуществляется с помощью ввода искомого значения или его фрагмента в поле «Поиск», расположенное в левом углу заголовка таблицы.