IPS (Intrusion Prevention System) – система предотвращения вторжений. Анализирует сетевой трафик и обнаруживает попытки атак, вредоносные пакеты и эксплойты, затем блокирует их до того, как они достигнут целевой системы.
IPS работает на основе:
-сигнатур атак (signature-based);
-анализа поведения (anomaly-based);
-контекста сессии – понимает, какое приложение или сервис вызывает трафик.
Сигнатура – это уникальный шаблон, признак или набор характеристик, по которому система IPS/IDS идентифицирует конкретную известную атаку. Сигнатура может включать: фрагмент вредоносного кода, определённую последовательность пакетов, заголовки или поля в протоколах, известную аномалию поведения. Тоесть у каждой угрозы уникальная сигнатура, по которой её распознают. По аналогии так же как антивирус ищет вирусы по своим базам, IPS ищет атаки по сигнатурам.
Атака – это любое намеренное или вредоносное действие в сети, направленное на нарушение её нормального функционирования, компрометацию конфиденциальности, целостности или доступности ресурсов. В контексте IPS это например: попытка эксплуатации уязвимости (exploit), сканирование портов, перебор паролей (brute-force), инъекции (SQL, командные), DDoS и др.
Сигнатура – это инструмент обнаружения. Атака – это событие, которое пытаются обнаружить с помощью сигнатур.
Список сигнатур.
Это глобальный список всех сигнатур атак, которые доступны USG6510E.
Он включает сигнатуры из базы Huawei (предустановленные) и пользовательские (если добавить), показывает их текущее состояние: включена/выключена, Alert/Block и т.д.
Этот список – единый источник, откуда IPS-профили потом подтягивают нужные сигнатуры. Позволяет вручную управлять каждой сигнатурой, независимо от профилей.
Необходимые условия для работы IPS.
Hardware Fast Forwarding (HFF) – это аппаратное ускорение пересылки пакетов, которое позволяет значительно увеличить производительность устройства. IPS-модуль требует глубокого анализа пакетов (DPI), что зачастую несовместимо с аппаратным форвардингом, так как пакеты должны быть обработаны программно. Чтобы IPS мог полноценно анализировать и фильтровать трафик, Hardware Fast Forwarding нужно отключить.
Если HFF включен, пакеты обрабатываются аппаратно и обходят программные механизмы IPS, что приведет к тому, что IPS не сможет эффективно анализировать трафик.
Расшифровка трафика – не всегда обязательное, но часто очень желательное условие для эффективной работы IPS.
IPS может анализировать незашифрованный трафик (HTTP, FTP, DNS и т.д.) и искать в нем атаки. Для зашифрованного трафика без расшифровки IPS видит только метаданные (заголовки, IP-адреса, порты), но не может проверить полезную нагрузку. IPS с расшифровкой позволяет видеть и анализировать содержимое защищенного трафика. Значительно повышает уровень защиты, так как многие атаки могут скрываться именно внутри HTTPS. Настройка расшифровки трафика рассмотрена тут.
Лицензия.
Минимально необходима Intrusion Prevention License. Отдельная лицензия, которая включает модуль IPS и доступ к базе сигнатур атак. Без неё IPS работать не будет.
Принцип действия в USG.
Проходящий через USG трафик анализируется в реальном времени через активацию профиля IPS в политике безопасности. Модуль IPS осуществляет глубокий анализ пакетов и сравнивает их содержимое с базой известных сигнатур атак. Если трафик совпадает с сигнатурой атаки, IPS может заблокировать пакет (Block) или сформировать предупреждение в лог (Alert). Поэтому, для работы IPS нужно в политике безопасности использовать профиль. Именно это активирует работу IPS.
Профиль.
В USG уже есть 11 предустановленных профилей для разных назначений. Можно создать свой профиль на кнопку add.
Назначение предустановленных профилей:
default – общий профиль для использования в IPS (inline) режиме. Включает разные сигнатуры и действует умеренно. Хорошо подходит как базовый уровень защиты. Можно применять на шлюзе в Интернет.
ids – Intrusion Detection System – профиль, который выполняет только оповещения, без блокировки. Применяется для мониторинга трафика без вмешательства.
outside_firewall – фокусируется на внешних угрозах и входящем трафике. Содержит сигнатуры атак, наиболее актуальных для внешних угроз Может использоваться между провайдером и DMZ. Подходит для применения на интерфейсах, принимающих внешний трафик из Интернета.
dmz – предназначен для устройств в DMZ-зоне. Балансирует между защитой и допуском сервисов (веб, почта и т.п.).
inside_firewall – профиль для внутренней зоны. Защищает от угроз внутри сети.
mail_server – оптимизирован для защиты почтовых серверов. Акцент на SMTP, IMAP, POP и уязвимости почтовых приложений.
dns_server – защита для DNS-серверов. Анализирует DNS-трафик. Полезен при размещении публичных DNS.
file_server – защищает файловые серверы. Включает сигнатуры SMB, FTP, вирусов в передаваемых данных.
web_server – профиль для веб-серверов. Включает XSS, SQLi, Directory Traversal и др.
strict – самый жёсткий профиль: всё что срабатывает – блокирует. Его нужно использовать только после тщательного анализа логов так как возможны ложные срабатывания.
video_surveillance – оптимизирован для систем видеонаблюдения. Учитывает особенности видеотрафика (RTSP, HTTP, ONVIF).
Содержание профиля.
При входе в любой профиль в нем можно увидеть список применяемых сигнатур через фильтр.
View Filtering Results – просмотр результатов фильтра профиля. С помощью фильтра можно найти уязвимость по ее названию, чтобы увидеть, есть ли сигнатура для этой уязвимости и какие действия она выполняет. Тоесть чтоб отслеживать конкретные CVE и наличие защитных механизмов.
Назначение полей фильтра:
ID – уникальный идентификатор сигнатуры в базе Huawei.
Name – название/описание угрозы.
Vendor Vulnerability – уникальный номер уязвимости в базе данных конкретного вендора ПО или ОС.
CVE Number (Common Vulnerabilities and Exposures) – международный стандартный идентификатор уязвимостей (например, CVE-2024-12345).
CNNVD( Number China National Vulnerability Database) – государственная база уязвимостей Китая (Китайский аналог CVE).
Target – тип целевой системы (Client, Server, All).
Severity – уровень опасности: Low, Medium, High.
OS – операционные системы, на которые нацелена атака.
Application – приложение или протокол верхнего уровня, к которому относится данная сигнатура атаки.
Protocol – протокол, по которому идёт атака.
Action – действие, которое выполнит IPS.
Все эти параметры гибко настраиваются при создании профиля.
Содержание сигнатуры.
Если нажать на ссылку напротив ID, то можно почитать подробности о данной угрозе в базе знаний на сайте Huawei.
Перед созданием нужно определиться с назначением. В данном случае создается тестовый профиль для проверки работы IPS.
Name – любое понятное название. Используется при привязке профиля к политикам безопасности USG.
Description – описание.
Attack Evidence Collection – функция, которая собирает и сохраняет доказательства атаки (фрагменты пакетов, дампы сессий, подробные метаданные).
Сообщение «No hard disk is available on the device» означает, что на USG нет встроенного или подключенного диска для хранения этих данных, соответственно, сохранить их не получится, даже если опцию включить. Без этой функции IPS всё равно будет блокировать/логировать атаки, но не сможет сохранять данные в долговременную память.
Associated Detection – это доп. механизм обнаружения брутфорс-атак. Работает за счёт анализа количества запросов за определённый период. Пояснительное сообщение звучит примерно так. Если на трафике, который проходит через USG, настроен NAT, то реальный IP-адрес атакующего может быть подменён IP-адресом NAT, и система воспримет один хост как множество атак (ложные срабатывания). В этом случае Huawei рекомендует отключать эту функцию.
Domain Name Checking – проверка доменных имён в трафике на соответствие «чистому» списку или поиск доменов, связанных с вредоносной активностью (например, C2-сервера). Через кнопку [Exceptions] можно указать список доменов, которые нужно игнорировать (не проверять), чтобы избежать ложных срабатываний.
Добавляем в профиль сигнатуры на вкладке списка фильтрации сигнатур.
Signature Filter List – это список сигнатур, которые IPS будет использовать для обнаружения атак.
Фильтр по атрибутам, предназначен для того чтобы из огромной базы IPS вытащить только нужные сигнатуры.
Name – название фильтра. Нужно для того, чтобы потом понять, для чего он создан.
Target – указывает, на кого направлена атака, которую описывает сигнатура.
Server – атака идёт на сервер (пример: SQL Injection на веб-сервер, SMB exploit на файловый сервер).
Client – атака идёт на клиента (пример: вредоносный JavaScript в браузере пользователя, вредоносный PDF-файл, эксплойт в почтовом клиенте).
Выбрать нужно что-то одно, в зависимости от назначения фильтра.
Severity – критичность уязвимости.
High – критичная атака, почти всегда эксплойт.
Medium – значительная угроза, но может потребовать дополнительных условий для успеха.
Low – малозначительная или маловероятная атака.
Informational – в основном используется для мониторинга (сканеры, попытки выяснить версию ПО и т.д.).
OS – операционная система цели атаки. Позволяет отфильтровать сигнатуры, если в сети, например, нет Linux-серверов и атаки (сигнатуры) на Unix не нужны.
Application – конкретное приложение или сервис, на который направлена атака.
Это могут быть:
-веб-серверы (например, apache, ca, microsoft, hp);
-ОС или дистрибутивы (freebsd);
-конкретные разработчики или проекты, уязвимые в прошлых версиях (firefly, dave_carrigan)
-криптопровайдеры и библиотеки (rsa);
и тп.
Protocol – это фильтр по типу сетевого протокола, через который идёт атака. Можно выбрать не просто TCP/UDP номера портов, а группы прикладных протоколов.
Net File Protocol – протоколы обмена файлами и доступа к файловым системам по сети: SMB/CIFS (Windows File Sharing), NFS, FTP, TFTP, AFP. Актуально, если защищаем SMB-сервера, NAS или FTP-хранилища.
Net Service Protocol – общие сетевые сервисы, не относящиеся к почте, БД или IM: HTTP, HTTPS, DNS, LDAP, SNMP, Telnet, SSH, RDP, RPC. Это самая обширная категория, сюда входит много атак на веб-сервера и базовые сервисы.
Mail Protocol – почтовые протоколы передачи и получения почты: SMTP, POP3, IMAP, ESMTP, MAPI. Если есть корпоративный почтовый сервер, сюда относятся все атаки на него.
IM Protocol – протоколы мгновенного обмена сообщениями: IRC, XMPP/Jabber, MSN, Yahoo Messenger, Slack API, Telegram Bot API. Обычно актуально, если в организации есть публичные чат-сервисы, куда могут пытаться внедрить вредоносный трафик.
Database Protocol – протоколы работы с базами данных: MySQL, PostgreSQL, Microsoft SQL Server (TDS), Oracle SQL*Net, MongoDB, Redis. Фильтрация по ним полезна, если есть прямой доступ к БД из внешних сетей.
Other – всё, что не попадает в вышеперечисленные группы, но на что есть сигнатуры: проприетарные протоколы приложений, специфические промышленные протоколы (Modbus, DNP3), нестандартные API.
Category – выбор тематики атаки.
Virus – сигнатуры для обнаружения вирусов.
Trojan – троянские программы.
Botnet – ботнет-клиенты и управление ими.
Spyware – шпионское ПО.
Adware – рекламное ПО.
CGI – уязвимости в CGI-скриптах.
XSS – межсайтовые скриптовые атаки.
Injection – SQL/LDAP/OS-инъекции.
Dir-traversal – обход директорий (../).
Info-Disclosure – утечка информации (версии ПО, конфиги и пр.).
Remote-File-Inclusion – удалённое подключение файлов в код.
Overflow – переполнение буфера и стека.
Code-execution – удалённое выполнение кода.
Dos – атаки типа отказ в обслуживании.
Scanner – активное сканирование уязвимостей.
Worm – сетевые черви.
Other – прочее, не попавшее в категории.
User-defined – пользовательские сигнатуры.
Backdoor – бэкдоры.
DDos – распределённые DoS-атаки.
Webshell – веб-оболочки для удалённого управления сервером.
Action – действия выполняемые при обнаружении сигнатуры атаки.
Default – поведение, заданное в глобальной базе сигнатур (обычно Alert, реже Block).
Alert – зафиксировать событие в логах.
Block – блокировать трафик, соответствующий этой сигнатуре.
Если задача – проверить, что IPS реально работает, можно сделать такой выбор.
Target: Client.
Severity: All.
OS: Windows.
Application: All.
Protocol: All.
Category: All.
Action: Block или Alert.
Применить его нужно на политике для тестового IP-адреса (ПК админа например). В результате можно получить блокировку или оповещение о любой известной атаки.
Signature Exception List – это список сигнатур, которые нужно исключить из работы, даже если они входят в основной фильтр. Допустим в категории HTTP атак есть конкретная сигнатура, которая срабатывает на легитимный трафик. Добавляем её в этот список чтоб избежать ложных срабатываний.
Для заданных сигнатур можно определить особое действие, отличное от общего поведения. Вводим номер сигнатуры, нажимаем add и выбираем действие.
Поле Action определяет, как именно система будет реагировать при обнаружении выбранной сигнатуры, если она внесена в список исключений.
Возможные варианты действий:
Allow (default) – позволяет трафику проходить без блокировки и без создания предупреждения. По умолчанию сигнатура обрабатывается согласно базовому профилю IPS, но в исключениях – разрешается.
Alert – система фиксирует событие, создаёт предупреждение в журнале, но трафик не блокируется.
Block – блокирует трафик при срабатывании сигнатуры.
Block and Isolation Source IP – блокирует трафик и дополнительно изолирует исходный IP-адрес (например, помещает в карантин, ограничивает доступ).
Block and Isolation Destination IP – блокирует трафик и изолирует IP-адрес назначения.
Выбираем нужные сигнатуры, определяем действия и сохраняем на кнопку ОК.
Protocol Anomaly Detection – это обнаружение аномалий в поведении протоколов. В отличие от сигнатур, которые ищут конкретные атаки, аномалия – это отклонение от норм стандарта протокола (например, слишком длинный HTTP-заголовок, нестандартный порт для SMTP, необычная последовательность пакетов в TCP). Такие аномалии часто указывают на попытку эксплойта или сканирования.
Для теста профиля можно включить такие настройки или ничего не включать.
HTTP
SSH over HTTP – детектирует попытки туннелирования SSH-сессий внутри HTTP-трафика. Используется для выявления скрытых SSH-соединений, которые могут быть замаскированы под HTTP, что является признаком обхода политики безопасности.
Host – анализирует поле Host в HTTP-запросах. Позволяет выявить аномалии или подозрительные значения в поле Host, которые могут указывать на попытки атак (например, подмена или внедрение вредоносных доменов).
X-Online-Host – контролирует поле HTTP-заголовка X-Online-Host. Этот заголовок часто используется мобильными операторами и прокси-серверами. Аномалии здесь могут свидетельствовать о подмене адреса или несанкционированном доступе.
X-Forwarded-For – отвечает за проверку заголовка X-Forwarded-For, который содержит IP-адреса клиентов, проходящих через прокси. Аномалии в этом поле могут указывать на попытки подделки IP-адреса для сокрытия источника атаки.
DNS
Protocol Format Anomaly – обнаруживает общие нарушения формата протокола DNS, например, несоответствие стандартам RFC, что может свидетельствовать о попытках эксплуатации уязвимостей или атак.
DNS Request – анализирует сами DNS-запросы на предмет аномалий, таких как частота, размер, неправильные типы запросов, что помогает выявлять подозрительный DNS-трафик.
Abnormal DNS Domain Characters – отслеживает присутствие в доменных именах недопустимых или необычных символов, которые могут свидетельствовать о доменах с вредоносным назначением или попытках обфускации. Обфускация – это намеренное искажение или сокрытие содержания или структуры данных, чтобы затруднить их понимание, анализ или обнаружение.
DNS Domain Length – контролирует длину доменного имени в запросе. Чрезмерно длинные домены могут указывать на попытки обойти фильтры или эксплуатировать баги в обработке DNS.
DNS Request Sessions – отслеживает количество и длительность сессий DNS-запросов. Аномально высокая активность или необычные сессии могут сигнализировать о DDoS-атаках или использовании DNS для командного и контрольного трафика (C&C).
Сохраняем созданный профиль на кнопку ОК.
После создания профиль нужно применить к одной из политик безопасности.
Активация работы IPS.
Наличие IPS-профилей не означает, что система предотвращения вторжений работает. Это не глобальная настройка в данном USG. Чтоб IPS начала работать, её профиль нужно привязать к необходимой политике безопасности.
Политики безопасности создавались на этой странице.
Выбираем политику и активируем в ней профиль IPS.
Можно использовать предустановленные или созданные профили. Это зависит от назначения политики безопасности.
Включать IPS-профиль во все правила не всегда логично, особенно если нужно соблюдать баланс между охватом и нагрузкой на систему. Тут нужно подумать, где IPS действительно нужна. Для базового уровня защиты достаточно включить IPS в правилах доступа в Интернет.
Профиль IPS срабатывает только в разрешающих правилах.
Логирование активировано чтоб видеть результат срабатывания.
Проверка.
Проверка статистики IPS возможна только через CLI.
1 |
display ips statistics |
В выводе статистики видны 16 событий предупреждений. Это подтверждает то, что IPS срабатывает.
Далее в статистике можно увидеть проходящий через IPS-модуль трафик по его видам.
В статистике отсутствует отдельная категория HTTPS. Расшифрованный HTTPS-трафик после SSL/TLS инспекции зачастую классифицируется как HTTP, потому что после расшифровки это тот же самый HTTP-протокол. Если расшифровка не успешна или не настроена для определённых сессий, трафик идёт в категорию OTHER.
Просмотр логов IPS.
Наблюдать логи IPS можно в меню Service Log List.
Просмотр через CLI.
1 |
display logbuffer | include IPS |
Пояснение одного лога.
Policy=»FULL-INTERNET-ACCESS» – сработало на этой политике безопасности.
SrcIp=192.168.222.10 – источник (внутренний клиент).
DstIp=192.168.5.1 – назначение.
SrcPort=64011, DstPort=53 – трафик UDP на порт 53 (DNS-запрос).
Application=»DNS» – определено как DNS-протокол.
Profile=»IPS_TEST_PROFILE» – IPS-профиль, в котором включена эта сигнатура.
SignName=»DNS domain name check the configuration of the alert value» – название сигнатуры (проверка DNS-домена на определённое конфиг-значение).
SignId=4000009 – ID сигнатуры.
EventNum=2 – зафиксировано уже два события по этой сигнатуре за период учёта.
Severity=information – низкий уровень важности (информационное).
Category=Protocol-Abnormal – классификация: аномалия в работе протокола.
Action=Alert – IPS только зафиксировал событие, не блокировал.
Для сбора детальных логов и долгосрочного хранения в USG нужно подключить диск или microSD иначе на странице логов GUI отображается сообщение: «The device does not have a disk. After configuring a disk, you can view traffic and threat logs and reports».
Все видимые логи хранятся в ОЗУ и после перезагрузки пропадают.
Обновление IPS.
Обновление сигнатур критически важно для защиты. Новые угрозы появляются ежедневно. Проверить актуальность баз можно в GUI и CLI.
Просмотр версии сигнатур через CLI.
1 |
display version | include IPS |
Если обновление не происходит, нажимаем на кнопку-ссылку [Server Connectivity Test].
Далее, в случае неудачной попытки соединения с сервером USG предлагает подсказку, согласно которой нужно создать политику безопасности.
Нажимаем на ссылку, откроется форма создания разрешающей политики безопасности из local на указанный IP-адрес сервера обновлений. Указываем имя политики и сохраняем. Затем аналогичная ситуация с еще одним IP-адресом, необходимым для обновления. В итоге создадутся две политики, которые автоматически расположатся вверху списка.
Можно это всё скомпоновать в одну политику через списки (объекты).
После этих действий связь с серверами и обновления пройдут успешно.
Обновление нужно проводить по расписанию во время минимальных нагрузок на USG, например ночью.
Итог.
В результате, настроенная система IPS значительно повышает уровень безопасности локальной сети, сокращая вероятность успешных кибератак. Но безопасность – это процесс, а не разовое действие. Постоянное обновление, мониторинг и адаптация к новым угрозам – ключ к устойчивой защите ваших данных.