Similar presentations:
СОА-10 (Ключевые слова в правилах Suricata)
1. Системы обнаружения атак
Сорокин Александр ВладимировичСистемы обнаружения атак, 2025
1
2. Написание правил в IDS Suricata
Системы обнаружения атак, 20252
3. Терминология
В рамках данной лекции:правило = сигнатура
Системы обнаружения атак, 2025
3
4.
1Формат правил в Suricata
Системы обнаружения атак, 2025
4
5. Правила в Suricata
Правило в Suricata состоит:<действие><заголовок><опции правила>
● Действие – определяющее, что происходит при выполнении
правила.
● Заголовок – определяющий протокол, IP-адреса, порты и
направление правила.
● Опции правила – определяющие особенности правила.
Системы обнаружения атак, 2025
5
6. Действия в Suricata
● alert - сделать предупреждение.● pass - прекратить дальнейшую проверку пакета.
● drop - отбросить пакет и сделать предупреждение.
● reject - отправить ошибку RST/ICMP unreach отправителю
соответствующего пакета.
● rejectsrc - то же, что и просто reject.
● rejectdst - отправить пакет с ошибкой RST/ICMP получателю
соответствующего пакета.
● rejectboth - отправить пакеты ошибок RST/ICMP обеим сторонам
разговора.
Системы обнаружения атак, 2025
6
7. Протоколы в Suricata
Протокол – ключевое слово, которое указывает Suricata, к какомупротоколу относится правило.
● tcp (для tcp-трафика)
● udp
● icmp
● ip (ip означает "все" или "любой")
Системы обнаружения атак, 2025
7
8. Протоколы в Suricata
Системы обнаружения атак, 20258
9. Протоколы в Suricata
Есть несколько дополнительных опций, связанных с протоколомTCP:
● tcp-pkt (для поиска содержимого в отдельных tcp-пакетах)
● tcp-stream (для поиска содержимого только в собранном потоке
tcp)
Системы обнаружения атак, 2025
9
10. Протоколы в Suricata
Существует также несколько протоколов прикладного уровня илипротоколов 7-го уровня. К ним относятся:
● http (либо HTTP1, либо HTTP2), http1, http2
● ftp
● tls (включает ssl)
● smb
● dns
● dcerpc
● dhcp
● ssh
Системы обнаружения атак, 2025
10
11. Протоколы в Suricata
Существует также несколько протоколов прикладного уровня илипротоколов 7-го уровня. К ним относятся:
● smtp
● imap
● modbus (отключен по умолчанию)
● dnp3 (отключено по умолчанию)
● enip (отключено по умолчанию)
● nfs
● ike
● krb5
Системы обнаружения атак, 2025
11
12. Протоколы в Suricata
Существует также несколько протоколов прикладного уровня илипротоколов 7-го уровня. К ним относятся:
● bittorrent-dht
● ntp
● dhcp
● rfb
● rdp
● snmp
● tftp
● sip
Системы обнаружения атак, 2025
12
13. Источник и пункт назначения в Suricata
● Первая выделенная часть - источник трафика;● Вторая - пункт назначения трафика;
● Направление указывается оператором направления (стрелкой).
Системы обнаружения атак, 2025
13
14. Источник и пункт назначения в Suricata
● Можно назначать IP-адреса;● Поддерживаются IPv4 и IPv6;
● Можно назначать диапазоны IP-адресов.
● Их можно использовать операторы:
○ ../.. – IP-диапазоны
○ ! – исключение или отрицание
○ [...,...] – списки
Системы обнаружения атак, 2025
14
15. Источник и пункт назначения в Suricata
ПримерЗначение
!1.1.1.1
Все IP-адреса, кроме 1.1.1.1
![1.1.1.1,1.1.1.2]
Все IP-адреса, кроме 1.1.1.1 и 1.1.1.2
$HOME_NET
Значение HOME_NET, заданное в yaml
[10.0.0.0/24,!10.0.0.5]
10.0.0.0/24, кроме 10.0.0.5
[$EXTERNAL_NET,!$HOME_NET]
Значение EXTERNAL_NET с
исключением HOME_NET
Системы обнаружения атак, 2025
15
16. Порт источника и порт назначения в Suricata
● Первый – порт источника;● Второй – порт назначения;
Системы обнаружения атак, 2025
16
17. Порт источника и порт назначения в Suricata
● В заголовках пакетов помимо адресов указываются порты;● Разные протоколы имеют разные номера портов;
○ Порт по умолчанию для HTTP – 80;
○ Порт по умолчанию для HTTPS – 443.
● Порт не определяет, какой протокол используется при обмене
данными.
Системы обнаружения атак, 2025
17
18. Порт источника и порт назначения в Suricata
При настройке портов можно использовать и специальныеоператоры:
Оператор
Значение
:
Диапазон портов
!
Отрицание или исключение
[..,...]
Список
Системы обнаружения атак, 2025
18
19. Порт источника и порт назначения в Suricata
Примеры использования правил с портами:Пример
Значение
[80,81,82]
Порты 80, 81 и 82
[80:82]
Диапазон портов 80-82
[1024:]
От 1024 до наибольшего номера порта
!80
Любой порт кроме 80
[80:100,!99]
Диапазон портов 80-100, кроме 99
[1:80,![2,4]]
Диапазон портов 1-80, кроме 2 и 4
Системы обнаружения атак, 2025
19
20. Направление в Suricata
Оператор направления указывает, соответствующие какомунаправлению между отправителем и получаетелем пакеты будут
просматриваться.
Системы обнаружения атак, 2025
20
21. Направление в Suricata
Системы обнаружения атак, 202521
22. Направление в Suricata
В большинстве правил используется стрелка вправо «->»;Рассматриваются пакеты с указанным направлением;
Правило может работать в обоих направлениях «<>».
○ source -> destination
○ source <> destination
Значение оператора «<-» не предусмотрено
Системы обнаружения атак, 2025
22
23. Опции правила в Suricata
Остальная часть правила состоит из опций;Опции заключаются в круглые скобки и разделяются точками с
запятой.
● Некоторые имеют настройки (например, msg):
○ Задаются ключевым словом опции,
○ Двоеточие;
○ Настройки.
● Другие опции не имеют настроек;
○ Ключевое слово (например, nocase):
Системы обнаружения атак, 2025
23
24. Опции правила в Suricata
Символы «;» и «"» должны быть экранированы при использованиив значении опции правила.
msg: "Message with semicolon\;";
Системы обнаружения атак, 2025
24
25. Нормализованные буферы в Suricata
● Пакет состоит изнеобработанных
данных.
● HTTP и пересборка
делают копию
данных из таких
пакетов.
● Остается так
называемый
"нормализованный
буфер":
Системы обнаружения атак, 2025
25
26.
2Ключевые слова в Suricata
Системы обнаружения атак, 2025
26
27. Категории опций (ключевых слов) Suricata
• Meta• Payload
• Категории, относящиеся к
конкретным протоколам,
поведению правил и др.
Системы обнаружения атак, 2025
27
28.
2Ключевые слова категории Meta
Системы обнаружения атак, 2025
28
29. Ключевое слово msg
Ключевое слово msg позволяет задать текст, выводимый присрабатывании правила
msg:"ET MALWARE Win32/RecordBreaker CnC Checkin";
msg:"ET EXPLOIT SMB-DS DCERPC PnP bind attempt";
Системы обнаружения атак, 2025
29
30. Ключевое слово sid
Ключевое слово sid присваивает каждой сигнатуресобственный идентификатор.
Этот идентификатор указывается числом, большим нуля.
○ sid:123;
Системы обнаружения атак, 2025
свой
30
31. Ключевое слово rev
Ключевое слово sid обычно сопровождается ключевым словом rev.Rev представляет собой версию сигнатуры.
Если сигнатура изменяется, то число rev будет увеличено.
○ rev:123;
Системы обнаружения атак, 2025
31
32. Ключевое слово gid
● Ключевое слово gid можно использовать для присвоенияразличным группам сигнатур отдельного идентификатора (как
в sid).
● По умолчанию gid 1.
● Значение по умолчанию можно изменить.
● Значение отмечается в данных оповещений.
Системы обнаружения атак, 2025
32
33. Ключевое слово gid
● Пример значения gid в записи предупреждения в файле fast.log.● В части [1:123] первая 1 - это gid (123 - это sid, а 1 - rev).
Системы обнаружения атак, 2025
33
34. Ключевое слово classtype
● Ключевое слово classtype предоставляет информациюклассификации правил и оповещений.
● Cостоит из:
○ Короткое имя;
○ Длинное имя;
○ Приоритет.
● Определяет, информационное ли или относится к CVE.
● Для каждого classtype в classification.config указан приоритет.
Системы обнаружения атак, 2025
о
34
35. Ключевое слово classtype
Примеры classtype:● web-application-attack, приоритет 1
● not-suspicious, приоритет 3
Системы обнаружения атак, 2025
35
36. Ключевое слово priority
● Ключевое слово priority имеет обязательное числовое значение;● Может варьироваться от 1 до 255.
● Обычно используются значения от 1 до 4.
● Наивысший приоритет:1.
○ priority:1;
Системы обнаружения атак, 2025
36
37. Ключевое слово metadata
● Ключевое слово metadata позволяет добавить к сигнатуредополнительную информацию.
● Формат может быть произвольным, однако рекомендуется
придерживаться пар [ключ, значение].
○ metadata: key value;
○ metadata: key value, key value;
Системы обнаружения атак, 2025
37
38. Ключевое слово target
● Ключевое слово target позволяет указать, какая сторонаоповещения является целью атаки.
● Если оно указано, событие оповещения будет содержать
информацию об источнике и цели.
○ target:[src_ ip|dest_ ip]
Системы обнаружения атак, 2025
38
39. Ключевое слово reference
● Ключевое слово reference используется для того, чтобы указать,где можно найти информацию о сигнатуре.
● Ключевое слово reference может встречаться в сигнатуре
несколько раз.
○ reference:type,reference
○ reference:url,www.info.com
○ reference:cve,CVE-2014-1234
Системы обнаружения атак, 2025
39
40. Ключевое слово requires
● Ключевое слово requires позволяет правилу требовать:○ Определенные функции Suricata были включены
○ Версия Suricata соответствовала выражению.
● Правила,
не
игнорироваться.
соответствующие
Системы обнаружения атак, 2025
требованиям,
будут
40
41.
3Ключевые слова категории Payload
Системы обнаружения атак, 2025
41
42. Ключевое слово content
● Ключевое слово content позволяет правилу позволяет искать впакетах вхождения строки или последовательности байт
● content: "............";
● Можно задавать текст в виде печатных символов (256
символов, соответствующих значениям байт) или значения
байт в шестнадцатеричном виде
Системы обнаружения атак, 2025
42
43. Ключевое слово content
Пример:Зарезервированные символы можно
задавать только в шестнадцатеричном
виде:
|61| a
|61 61| aa
|41| A
|21| !
"
;
:
|
|22|
|3B|
|3A|
|7C|
Системы обнаружения атак, 2025
43
44. Ключевое слово content
По умолчанию поиск учитывает регистр. Например:Системы обнаружения атак, 2025
44
45. Ключевое слово content
Может использоваться с отрицанием – правило сработает дляпакетов, в которых совпадения не произойдет.
Пример:
content:!"Firefox/3.6.13";
Правило не будет срабатывать для пакетов с указанной версией
браузера
Системы обнаружения атак, 2025
45
46. Ключевое слово pcre
Используется для задания регулярногоиспользуется аналогично опции content
выражения,
которое
pcre:"/<regex>/opts";
Пример: pcre:"/[0-9]{6}/";
Системы обнаружения атак, 2025
46
47. Модификаторы для опции content
Suricata поддерживает механизмы модификации опций, доступные в Snort:● пост-модификаторы* (для опции content):
content:“текст, который ищется в пакете”; nocase
● “sticky buffers”
http_response_line; content:"текст, который ищется в пакете“
*обозначены так в лекции из-за того, что влияют на предшествующую
опцию, то есть пишутся после опции, на которую влияют
Системы обнаружения атак, 2025
47
48. Ключевое слово pcre
Системы обнаружения атак, 202548
49. Модификаторы опции content
Nocase – content не учитывает регистр заданного текстаcontent: "abc"; nocase;
Системы обнаружения атак, 2025
49
50. Модификаторы опции content
startswith – опция content применяется только к началу содержимого пакетаcontent:"GET|20|"; startswith;
Endswith – опция content применяется только к концу содержимого пакета
content:".php"; endswith;
Системы обнаружения атак, 2025
50
51. Модификаторы опции content
depth – определяет, какое число байт от начала содержимого (payload) пакета проверяетсяопцией content
content: "abc"; depth:12;
Системы обнаружения атак, 2025
51
52. Модификаторы опции content
offset – определяет, какое число байт от начала содержимого (payload) пакета игнорируетсяперед проверкой опцией content
content: "abc"; depth:12;
Системы обнаружения атак, 2025
52
53. Модификаторы опции content
offset + depthcontent:"def"; offset:3; depth:3;
Системы обнаружения атак, 2025
53
54.
4Протокол HTTP. Ключевые слова
Системы обнаружения атак, 2025
54
55. Протокол HTTP
● Использование sticky buffer, специфичных для HTTP, позволяетэффективно проверять специфические поля сообщений протокола
HTTP.
● После указания sticky buffer в правиле за ним должны следовать
один или несколько Payload Keywords или использование pcre (Perl
Compatible Regular Expressions).
Системы обнаружения атак, 2025
55
56. Протокол HTTP
● HTTP считается клиент-серверным протоколом или протоколом"запрос-ответ". Клиент запрашивает ресурсы у сервера, а сервер
отвечает на запрос.
● В версиях HTTP, предшествующих версии 2, запрос клиента мог
выглядеть следующим образом:
● Пример HTTP-запроса:
GET /index.html HTTP/1.1
User-Agent: Mozilla/5.0
Host: suricata.io
Системы обнаружения атак, 2025
56
57. Протокол HTTP
Пример сигнатуры, которая оповещает о вышеуказанном запросе.Системы обнаружения атак, 2025
57
58. Протокол HTTP
● В версиях HTTP, предшествующих версии 2, ответ сервера могвыглядеть следующим образом:
● Пример HTTP-ответа:
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 258
Date: Thu, 14 Dec 2023
20:22:41 GMT
Server: nginx/0.8.54
Connection: Close
Системы обнаружения атак, 2025
58
59. Протокол HTTP
Пример сигнатуры, предупреждающей о приведенном выше ответе.Системы обнаружения атак, 2025
59
60. Протокол HTTP
Ключевые слова запросов:● file.name
● http.accept
● http.accept_ enc
● http.accept_ lang
● http.host
● http.host.raw
● http.method
● http.referer
● http.request_ body
● http.request_ header
● http.request_ line
● http.uri
● http.uri.raw
● http.user_ agent
● urilen
Системы обнаружения атак, 2025
60
61. Протокол HTTP
Ключевые слова ответов:● http.location
● http.response_ body
● http.response_ header
● http.response_ line
● http.server
● http.stat_ code
● http.stat_ msg
Ключевые слова запросов или
ответов:
● file.data
● http.content_ len
● http.content_ type
● http.cookie
● http.header
● http.header.raw
● http.header_ names
● http.protocol
● http.start
Системы обнаружения атак, 2025
61
62. Протокол HTTP. file.name
● Ключевое слово file.name может использоваться в HTTP-запросах.● С ключевым словом file.name можно использовать любое из
ключевых слов полезной нагрузки.
● Пример правила:
Системы обнаружения атак, 2025
62
63. Протокол HTTP. http.accept
● Ключевое слово http.accept используется для соответствия полюAccept, которое может присутствовать в заголовках HTTPзапросов.
● С ключевым словом http.accept можно использовать любое из
ключевых слов полезной нагрузки.
GET /index.html HTTP/1.1
User-Agent: Mozilla/5.0
Accept: */*
Host: suricata.io
Системы обнаружения атак, 2025
63
64. Протокол HTTP. http.accept_enc
● Ключевое слово http.accept_enc используется для соответствияполю Accept-Encoding, которое может присутствовать в заголовках
HTTP-запросов.
● С ключевым словом http.accept_enc можно использовать любое из
ключевых слов полезной нагрузки.
GET /index.html HTTP/1.1
User-Agent: Mozilla/5.0
● Пример HTTP-запроса:
Accept-Encoding: gzip, deflate
Host: suricata.io
Системы обнаружения атак, 2025
64
65. Протокол HTTP. http.connection
● Ключевое слово http.connection используется для соответствияполю Connection, которое может присутствовать в заголовках
HTTP-запросов.
● С ключевым словом http.connection можно использовать любое из
ключевых слов полезной нагрузки.
GET /index.html HTTP/1.1
User-Agent: Mozilla/5.0
● Пример HTTP-запроса:
Accept-Language: en-US
Host: suricata.io
Connection: Keep-Alive
Системы обнаружения атак, 2025
65
66. Протокол HTTP. http.host
● В Suricata есть два варианта сопоставления по имени хоста HTTP:http.host и http.host.raw sticky buffers.
● Можно использовать любое из ключевых слов полезной нагрузки
с обоими ключевыми словами http.host.
Системы обнаружения атак, 2025
66
67. Протокол HTTP. http.host.raw
● Буфер http.host.raw соответствует содержимому HTTP-хоста, но неимеет никакой нормализации содержимого буфера (см. http.host).
● Пример HTTP-запроса:
GET /index.html HTTP/1.1
User-Agent: Mozilla/5.0
Host: SuRiCaTa.Io:8445
Системы обнаружения атак, 2025
67
68. Протокол HTTP. http.method
● Ключевое слово http.method указывает на метод/глагол,используемый в HTTP-запросе. Методы HTTP-запросов могут быть
любыми из следующих:
● GET, POST
GET /index.html HTTP/1.1
● HEAD, OPTIONS
User-Agent: Mozilla/5.0
Host: suricata.io
● PUT, DELETE
● TRACE, CONNECT
● PATCH
● С ключевым словом http.method можно использовать любой из
ключевых слов Payload.
Системы обнаружения атак, 2025
68
69. Протокол HTTP. http.referer
● Ключевое слово http.referer используется для соответствия полюReferer, которое может присутствовать в заголовках HTTPзапросов.
● С ключевым словом http.referer можно использовать любое из
ключевых слов полезной нагрузки.
GET / HTTP/1.1
Host: suricata.io
● Пример HTTP-запроса:
Referer: https://suricata.io
Системы обнаружения атак, 2025
69
70. Протокол HTTP. http.request_body
● Ключевое слово http.request_body используется для соответствиятелу HTTP-запроса, которое может присутствовать в HTTP-запросе.
● С ключевым словом http.request_body можно использовать любое
из ключевых слов полезной нагрузки.
● Пример HTTP-запроса:
POST /suricata.php HTTP/1.1
Content-Type: application/x-wwwform-urlencoded
Host: suricata.io
Content-Length: 23
Connection: Keep-Alive
Suricata request body
Системы обнаружения атак, 2025
70
71. Протокол HTTP. Примеры
Системы обнаружения атак, 202571
72. Протокол HTTP. http.request_body
● Ключевое слово http.connection используется для соответствияполю Connection, которое может присутствовать в заголовках
HTTP-запросов.
● С ключевым словом http.connection можно использовать любое из
ключевых слов полезной нагрузки.
GET /index.html HTTP/1.1
User-Agent: Mozilla/5.0
● Пример HTTP-запроса:
Accept-Encoding: gzip, deflate
Host: suricata.io
Системы обнаружения атак, 2025
72
73.
5Протоколы IP и ICMP. Ключевые слова
Системы обнаружения атак, 2025
73
74. Протокол IP. ttl
● Ключевое слово ttl используется для проверки наличияопределенного значения времени жизни IP в заголовке пакета.
● Формат следующий:
ttl:<число>;
ttl:10;
● ttl использует беззнаковое 8-битное целое число.
Системы обнаружения атак, 2025
74
75. Протокол IP. ipopts
● С помощью ключевого слова ipoptsпроверяется,
установлен
ли
определенный IP-параметр.
● Ipopts необходимо использовать в начале
правила.
● В одном правиле можно проверять
только одну опцию.
● Существует несколько опций, которые
можно сопоставить. К ним относятся:
ipopts: <name>;
Системы обнаружения атак, 2025
75
76. Протокол IP. sameip
● Каждый пакет имеет IP-адрес источника и IP-адрес назначения.● С помощью ключевого слова sameip можно проверить, совпадает
ли IP-адрес источника с IP-адресом назначения.
● Ключевое слово sameip имеет следующий формат:
sameip;
Системы обнаружения атак, 2025
76
77. Протокол IP. ip_proto
● С помощью ключевого слова ip_proto можно выполнить поиск поIP-протоколу в заголовке пакета.
ip_ proto:ICMP;
1
6
17
47
50
51
58
ICMP
Internet Control Message
TCP
Transmission Control Protocol
UDP
User Datagram
GRE
General Routing Encapsulation
ESP
Encap Security Payload for IPv6
AH
Authentication Header for Ipv6
IPv6-ICMP ICMP for Ipv6
Системы обнаружения атак, 2025
77
78. Протокол IP. ipv4.hdr
● Sticky buffer для соответствия содержимому, содержащемуся взаголовке IPv4.
● Пример правила:
Системы обнаружения атак, 2025
78
79. Протокол IP. ipv6.hdr
● Sticky buffer для соответствия содержимому, содержащемуся взаголовке IPv6.
● Пример правила:
Системы обнаружения атак, 2025
79
80. Протокол IP. id
● С помощью ключевого слова id можно выполнить поиск поопределенному значению IP Id.
● Id идентифицирует каждый пакет, отправляемый хостом, и
обычно увеличивается на единицу с каждым отправляемым
пакетом.
● IP Id используется в качестве идентификационного номера
фрагмента.
● Формат идентификатора:
id:<число>;
Системы обнаружения атак, 2025
80
81. Протокол IP. geoip
● Ключевое слово geoip позволяет сопоставить IPv4-адресаисточника, назначения или источника и назначения сетевого
трафика, а также узнать, к какой стране он относится.
● Для этого Suricata использует GeoIP2 API от MaxMind.
● Синтаксис geoip:
geoip: src,RU;
geoip: both,CN,RU;
geoip: dst,CN,RU,IR;
geoip: both,US,CA,UK;
geoip: any,CN,IR;
Системы обнаружения атак, 2025
81
82. Протокол ICMP
● Протокол ICMP (Internet Control Message Protocol) является частьюIP.
● IP сам по себе ненадежен, когда речь идет о доставке данных
(дейтаграмм).
● ICMP обеспечивает обратную связь в случае возникновения
проблем.
● Не предотвращает возникновение проблем, но помогает понять,
что и где пошло не так.
Системы обнаружения атак, 2025
82
83. Протокол ICMP. itype
● Ключевое слово itype предназначено для поиска определенноготипа (номера) ICMP.
● itype использует беззнаковое 8-битное целое число.
● Формат ключевого слова itype:
itype:min<>max;
itype:[<|>]<число>;
● Пример:
itype:>10;
Системы обнаружения атак, 2025
83
84. Протокол ICMP. icode
● С помощью ключевого слова icode можно выполнить поиск поопределенному коду ICMP.
● Для каждого ICMP-типа код имеет свое назначение.
● icode использует беззнаковое 8-битное целое число.
● Формат ключевого слова icode:
icode:min<>max;
icode:[<|>]<число>;
icode:>5;
Системы обнаружения атак, 2025
84
85. Протокол ICMP. icmp_id
● С помощью ключевого слова icmp_id вы можете выполнять поискпо определенным значениям ICMP id.
● Формат ключевого слова icmp_ id:
icmp_id:<число>;
● Пример: В этом примере ICMP-идентификатор равен 0:
icmp_ id:0;
Системы обнаружения атак, 2025
85
86. Протокол ICMP. Примеры
Системы обнаружения атак, 202586
87. Протокол ICMP. icmp_seq
● Используется ключевое слово icmp_seq для проверки номерапоследовательности ICMP.
● Все ICMP-сообщения имеют порядковый номер.
● Формат ключевого слова icmp_ seq:
icmp_seq:<число>;
● Пример: Этот пример ищет ICMP-последовательность 0:
icmp_ seq:0;
Системы обнаружения атак, 2025
87
88. Протокол ICMP. icmpv4.hdr и icmpv6.hdr
● icmpv4.hdrSticky buffer для соответствия всему заголовку ICMPv4.
● icmpv6.hdr
Sticky buffer для соответствия всему заголовку ICMPv6.
Системы обнаружения атак, 2025
88
89. Протокол ICMP. icmpv6.mtu
● Соответствие необязательному значению ICMPv6 MTU.● icmpv6.mtu использует беззнаковое 32-битное целое число.
● Формат ключевого слова:
icmpv6.mtu:<min>-<max>;
icmpv6.mtu:[<|>]<число>;
icmpv6.mtu:<значение>;
Системы обнаружения атак, 2025
89
90.
6Протоколы TCP и UDP. Ключевые слова
Системы обнаружения атак, 2025
90
91. Протокол TCP. tcp.flags
● Ключевое слово tcp.flagsпроверяет наличие
определенных битов
флага TCP.
● Могут проверяться
следующие биты флагов:
Системы обнаружения атак, 2025
91
92. Протокол TCP.
● Формат tcp.flags:tcp.flags:[modifier]<test flags>[,<ignore flags>];
tcp.flags:[!|*|+]<FSRPAUCE0>[,<FSRPAUCE>];
● Пример правила:
alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"Example tcp.flags sig"; \
:example-rule-emphasis:`tcp.flags:FPU,CE;` classtype:misc-activity; sid:1; rev:1;)
Системы обнаружения атак, 2025
92
93. Протокол TCP. seq
● Ключевое слово seq может быть использовано в сигнатуре дляпроверки наличия определенного номера последовательности
TCP.
● Порядковый номер - это число, которое генерируется
практически случайным образом обеими конечными точками
TCP-соединения.
● Пример:
seq:0;
Системы обнаружения атак, 2025
93
94. Протокол TCP. ack
● Ack - это подтверждение получения всех предыдущих байтов(данных), отправленных другой стороной TCP-соединения.
● В большинстве случаев каждый пакет TCP-соединения имеет флаг
ACK после первого SYN и ACK-номер, который увеличивается с
получением каждого нового байта данных.
● Ключевое слово ack может быть использовано в сигнатуре для
проверки определенного номера подтверждения TCP.
● Формат ack:
ack:1;
Системы обнаружения атак, 2025
94
95. Протокол TCP. window
● Ключевоеслово
window
используется
для
проверки
определенного размера окна TCP.
● Размер окна TCP - это механизм, который контролирует поток
данных.
● Этот механизм используется для предотвращения переполнения
приемника данными.
● Размер окна ограничен и может составлять от 2 до 65,535 байт.
● Формат ключевого слова window:
window:[!]<number>;
Системы обнаружения атак, 2025
95
96. Протокол TCP. Примеры
Системы обнаружения атак, 202596
97. Протокол TCP. tcp.mss
● Соответствие значению опции TCP MSS.● В tcp.mss используется 16-битное целое число без знака.
● Формат ключевого слова:
tcp.mss:<min>-<max>;
tcp.mss:[<|>]<число>;
tcp.mss:<значение>;
Системы обнаружения атак, 2025
97
98. Протокол TCP. tcp.hdr
● Sticky buffer для сопоставления со всем заголовком TCP.● Этот пример начинает поиск после фиксированной части
заголовка, а затем переходит к опциям переменного размера.
● Опция tcp.mss будет более эффективной, поэтому это ключевое
слово следует использовать в тех случаях, когда нет специального
ключевого слова.
Системы обнаружения атак, 2025
98
99. Протокол UDP. udp.addr
● Sticky buffer для соответствия всему заголовку UDP.● Пример правила:
● В данном случае длина 8 означает, что полезная нагрузка
отсутствует. Это также можно проверить с помощью dsize:0;.
Системы обнаружения атак, 2025
99
100.
7Протокол SSH. Ключевые слова
Системы обнаружения атак, 2025
100
101. Протокол SSH. ssh.proto
● Определяет версию используемого протокола SSH.● ssh.proto - это sticky buffer, который можно использовать
в качестве быстрого шаблона.
● ssh.proto заменяет предыдущее имя буфера: ssh_ proto.
● Формат:
ssh.proto;
Системы обнаружения атак, 2025
101
102. Протокол SSH. ssh.software
● Определяет строку программного обеспечения избаннера SSH.
● ssh.software является sticky buffer и может быть
использован как быстрый шаблон.
● ssh.software заменяет предыдущие названия ключевых
слов: ssh_software и ssh.softwareversion.
● Формат:
ssh.software;
Системы обнаружения атак, 2025
102
103. Протокол SSH. ssh.hassh
● Соответствие по hassh (md5 алгоритмов hassh клиента).● Пример:
alert ssh any any -> any any (msg:"match hassh"; \
ssh.hassh; content:"ec7378c1a92f5a8dde7e8b7a1ddf33d1";\
sid:1000010;)
Системы обнаружения атак, 2025
103
104. Протокол SSH. ssh.hassh.string
● Соответствиеклиента).
● Пример:
по
Hassh-строке
(hassh-алгоритмы
alert ssh any any -> any any (msg:"match hassh-string"; \
ssh.hassh.string; content:"none,zlib@openssh.com,zlib"; \
sid:1000030;)
Системы обнаружения атак, 2025
104
105. Протокол SSH. ssh.hassh.server
● Соответствие по hassh (md5 алгоритмов hassh сервера).● Пример:
alert ssh any any -> any any (msg:"match SSH hash-server"; \
ssh.hassh.server; content:"b12d2871a1189eff20364cf5333619ee"; \
sid:1000020;)
Системы обнаружения атак, 2025
105
106. Протокол SSH. ssh.protoversion
● Сопоставляет по версии используемого протокола SSH.Значение 2_compat включает версию SSH 1.99.
● Формат:
ssh.protoversion:[0-9](\ .[0-9])?|2_ compat;
Системы обнаружения атак, 2025
106
107. Спасибо за внимание!
Сорокин Александр ВладимировичСтарший преподаватель кафедры «Компьютерная безопасность»
МИЭМ НИУ ВШЭ
asorokin@hse.ru
Присутственные часы указаны на персональной странице:
Системы обнаружения атак, 2025
107
internet