Похожие презентации:
Системы обнаружения атак (NFQueue и AF_PACKET в Suricata)
1. Системы обнаружения атак
Сорокин Александр ВладимировичСистемы обнаружения атак, 2025
1
2. Suricata IDS
Системы обнаружения атак, 20252
3. Работа №2
Системы обнаружения атак, 20253
4. NFQueue
Системы обнаружения атак, 20254
5. Общие сведения
Пакет приходит в iptables и проходит через правила, пока не встречаетNFQUEUE правило. Можно промаркировать пакет перед этим.
Далее пакет обрабатывается правилами Suricata и в зависимости от
режима отбрасывается, принимается (для accept) или маркируется (для
repeat).
После отработки NFQUEUE пакет уходит в iptables, где может быть опять
промаркирован, отброшен, принят, отправлен на пересмотр в NFQUEUE
или отправлен в начало правил iptables
Системы обнаружения атак, 2025
5
6. Общие сведения. Режим работы Repeat
- repeat - Suricata помечаетпакет, а правила iptables
выносят
дальнейший
вердикт
Системы обнаружения атак, 2025
6
7. Общие сведения. Режим работы accept
accept - Suricata самарешает, что делать с
пакетом, дальше в iptables
пакет не попадает
Системы обнаружения атак, 2025
7
8. Общие сведения. Режим работы route
- route - передаем пакет вдругие
очереди,
например,
для
взаимодействия c другими
движками
обработки
событий
Системы обнаружения атак, 2025
8
9. Общие сведения
Чтобы проверить, включен ли NFQ в вашей сборке Suricata, введитеследующую команду:
suricata --build-info
Чтобы запустить Suricata в режиме NFQ, вы должны использовать ключ -q.
Строки конфигурационного файла, задающие настройку маски для
обрабатываемых пакетов:
nfq:
repeat-mark: 1
repeat-mask: 1
Системы обнаружения атак, 2025
9
10. IPTables
Прежде всего, важно знать, какой трафик вы хотели бы отслеживать. Есть два варианта:1.
Трафик, который проходит через ваш компьютер
2.
Трафик, генерируемый вашим компьютером
Если Suricata работает на шлюзе и предназначен для защиты компьютеров за этим шлюзом, вы имеете дело с первым
сценарием: forward_ing.
Если Suricata должна защитить компьютер, на котором он работает, вы имеете дело со вторым сценарием.
Эти два способа использования Suricata также можно объединять.
Раздел руководства:
https://docs.suricata.io/en/latest/setting-up-ipsinline-for-linux.html
Системы обнаружения атак, 2025
10
11. IPTables
Если Suricata работает на шлюзе и предназначен для защиты компьютеров за этим шлюзом, вы имеете дело с первымсценарием.
Для того чтобы анализировать весь входящий трафик необходимо прописать следующую команду (для сценария шлюза):
sudo iptables -I FORWARD -j NFQUEUE
Системы обнаружения атак, 2025
11
12. IPTables
Если Suricata должна защитить компьютер, на котором он работает, вы имеете дело со вторым сценарием.Для анализа всего входящего и исходящего трафика(можно указать номер в очереди, по умолчанию будет 0):
sudo iptables -I INPUT -j NFQUEUE
sudo iptables -I OUTPUT -j NFQUEUE
Системы обнаружения атак, 2025
12
13. IPTables
Чтобы узнать, правильно ли вы установили правила iptables, убедитесь, что Suricata запущен, и введите:sudo iptables -vnL
Если вы остановите Suricata и воспользуетесь интернетом, трафик не пройдет. Чтобы интернет работал правильно,
сначала удалите все правила iptables.
Чтобы стереть все правила iptables, введите:
sudo iptables -F
Системы обнаружения атак, 2025
13
14. IPTables
Также IPTables позволяет указать протоколы ключ -p:sudo iptables -I INPUT -p tcp -j NFQUEUE
sudo iptables -I OUTPUT -p tcp -j NFQUEUE
И порты ключами --sport и --dport
sudo iptables -I INPUT -p tcp --sport 80 -j NFQUEUE
sudo iptables -I OUTPUT -p tcp --dport 80 -j NFQUEUE
Системы обнаружения атак, 2025
14
15. NFTables
Конфигурация NFtables проста и позволяет смешивать правила брандмауэра с IPS. Концепциязаключается в создании специальной цепочки для IPS, которая будет оцениваться после правила
брандмауэра. Если ваша основная таблица называется filter, ее можно создать следующим образом:
nft> add chain filter IPS { type filter hook forward priority 10;}
Чтобы отправить все перенаправленные пакеты в Suricata, можно использовать
nft> add rule filter IPS queue
Делать это только для пакетов, которыми обмениваются eth0 и eth1
nft> add rule filter IPS iif eth0 oif eth1 queue
nft> add rule filter IPS iif eth1 oif eth0 queue
Системы обнаружения атак, 2025
15
16. Дополнительные возможности
NFQueue механизм поддерживает некоторые интересные варианты. Там будет показана конфигурацияnftables, но функции также доступны в iptables.
Полный синтаксис механизма очереди выглядит следующим образом:
nft add rule filter IPS queue num 3-5 options fanout,bypass
Это правило отправляет совпадающие пакеты в 3 очереди с балансировкой нагрузки, начиная с 3 и
заканчивая 5. Чтобы получить пакеты в Suricata с помощью этой настройки, вам нужно указать несколько
очередей в командной строке:
suricata -q 3 -q 4 -q 5
Системы обнаружения атак, 2025
16
17. Дополнительные возможности
fanout и bypass- это два доступных варианта:fanout: При использовании вместе с балансировкой нагрузки это будет использовать идентификатор процессора (CPU) вместо
хэша соединения в качестве индекса для сопоставления пакетов с очередями. Идея заключается в том, что вы можете
повысить производительность, если на процессор есть одна очередь. Для этого требуется указать общее количество
очередей, превосходящих 1.
bypass: По умолчанию, если ни одна программа пользовательского пространства не прослушивает очередь Netfilter, то все
пакеты, которые должны быть поставлены в очередь, отбрасываются. При использовании этой опции правило очереди ведет
себя как ACCEPT, если программа не прослушивается, и пакет перейдет к следующей таблице.
Опция обхода может быть использована, чтобы избежать простоя канала, когда Suricata не запущена, но это также означает, что
функция блокировки не будет присутствовать.
Системы обнаружения атак, 2025
17
18. AF_PACKET
Системы обнаружения атак, 202518
19. AF_PACKET режим IPS
Начиная с версии 1.4, Suricata умеет работать вкачестве IPS, используя zero-copy режим системы
AF_PACKET, но с некоторыми ограничениями.
Системы обнаружения атак, 2025
19
20. AF_PACKET режим IPS
Метод захвата через AF_PACKET поддерживаетработу в режиме IPS, все что нужно для его
использования - подключенные интерфейсы,
SURICATA позаботится о копировании пакетов с
одного интерфейса на другой. Не нужно настраивать
ни iptables, ни nftables.
Для работы в этом режиме необходимо задать два
интерфейса через переменные внутри конфигурации
AF_PACKET, пример между eth0 и eth1 справа
(пишем в файл конфигурации). Интерфейс eth0 в
таком случае будет копировать все полученные
пакеты в eth1 из-за переменных конфигурации
copy-*, аналогичные действия будет выполнять
eth1, имея ту же конфигурацию.
Системы обнаружения атак, 2025
af-packet:
- interface: eth0
threads: 1
defrag: no
cluster-type: cluster_flow
cluster-id: 98
copy-mode: ips
copy-iface: eth1
buffer-size: 64535
use-mmap: yes
- interface: eth1
threads: 1
cluster-id: 97
defrag: no
cluster-type: cluster_flow
copy-mode: ips
copy-iface: eth0
buffer-size: 64535
use-mmap: yes
20
21. AF_PACKET режим IPS
Важные моменты при использовании данного режима:• Реализация режима зависит от режим zero-copy. Таким образом,
обязательно установить значение use-mmap: yes для обоих
интерфейсов.
• Максимальная единица передачи (MTU) должна быть одинакова для
обоих интерфейсов: копирование между интерфейсами прямое, если
размер пакета оказывается больше, чем MTU получателя, то такой
пакет сбрасывается ядром.
• Дефрагментация пакетов должна осуществляться (или нет) на обоих
интерфейсах (defrag: yes|no).
Дополнительный источник:
https://home.regit.org/2012/09/newaf_packet-ips-mode-in-suricata/
Системы обнаружения атак, 2025
21
22. AF_PACKET режим IPS
Важные моменты при использовании данного режима:• Задать значения переменных copy-iface, cluster-id,
interface различными для двух интерфейсов во избежание
конфликта.
• Чтобы перевести SURICATA в режим блокировки (пакетов),
достаточно установить значение stream.inline: auto или
stream.inline: yes.
• Переменная copy-mode может принимать значения ips (ключевое
слово drop учитывается, и соответствующие пакеты отбрасываются) и
tap (отбрасываний не происходит, SURICATA работает в режиме
моста) - значения могут быть различными для используемых
интерфейсов.
Дополнительный источник:
https://home.regit.org/2012/09/newaf_packet-ips-mode-in-suricata/
Системы обнаружения атак, 2025
22
23. AF_PACKET режим IPS
Данный режим поддерживает использование нескольких потоков,однако значение переменной threads должно совпадать на
интерфейсах: это ограничение связано с тем, что соединение
осуществляется на уровне сокетов - каждый пакет полученный
сокетом пересылается на соединенный сокет, слушающий
подключенный интерфейс.
Системы обнаружения атак, 2025
23
24. AF_PACKET режим IPS
Чтобы добиться максимальной производительности, SURICATAдолжна работать в режиме –runmode=workers. Фактически это
означает, что существует несколько потоков, каждый из которых
запускает полный конвейер пакетов и каждый получает пакеты из
выбранного метода захвата. То есть, мы полагаемся на метод захвата
для распределения пакетов по различным потокам. Одним из
важнейших аспектов этого является то, что SURICATA должна
получить обе стороны потока в одном потоке в правильном порядке.
Метод захват AF_PACKET использует для этих целей перенную
cluster-type. Значение по умолчанию cluster_flow,
указывает методу захвата хешировать по потоку. Этот хэш
симметричен.
Системы обнаружения атак, 2025
24
25. AF_PACKET запуск
suricata -c /etc/suricata/suricata.yaml --af-packetДля работы в режиме
AF_PACKET в опциях запуска
необходимо указать --afpacket[=<device>], что
включит захват трафика с
использованием AF_PACKET
на Linux. Если устройство
(интерфейс) не задано,
используется список
устройств из секции af-packet
в файле suricata.yaml.
Системы обнаружения атак, 2025
25
26. AF_PACKET запуск
Одновременно можно использовать обычный IDSинтерфейс, например, eth3 может быть добавлен в
секцию af-packet конфигурационного файла и
использоваться как простой интерфейс (use-mmap: no).
Системы обнаружения атак, 2025
26
27. AF_PACKET дополнительно
Файл stats.log содержит полезную информацию вcapture.kernel_packets и capture.kernel_drops. Их
значение разнится в зависимости от режима захвата, в случае
AF_PACKET kernel_packets это число корректно отправленных
пакетов, kernel_drops - число отброшенных пакетов.
IPS с примерами на русском:
https://habr.com/ru/post/192884/
stats.log
Системы обнаружения атак, 2025
27
28. Задание к работе – практическая часть (допуск)
● Настроить Suricata для работы в режиме NFQueue● Настроить Suricata для работы в режиме AF_PACKET
● Продемонстрировать манипуляции с наборами правил
● Продемонстрировать запуск Suricata в режиме NFQueue с различными опциями
● Продемонстрировать запуск Suricata в режиме AF_PACKET с различными
опциями
Системы обнаружения атак, 2025
28
29. Задание к работе – теоретическая часть (защита)
● Принципы работы режимов NFQueue и AF_PACKET● Особенности настройки Suricata для работы в указанных режимах
● Параметры запуска (ключи) Suricata в указанных режимах
Системы обнаружения атак, 2025
29
30. Спасибо за внимание!
Системы обнаружения атак, 202530
Программное обеспечение