704.33K

Snort. Система обнаружения атак

1.

SNORT
СИСТЕМА ОБНАРУЖЕНИЯ АТАК
INTRUSION DETECTION SYSTEM
http://www.snort.org

2.

SNORT IDS
Бесплатная система обнаружения
атак с открытым исходным кодом
(free open source IDS)
Разработчик — Мартин Рош
(developed by Martin Roesch)
Существуют готовые версии для ОС
(binary versions exist for):
OpenSuSE, OpenBSD, FreeBSD, CentOS,
Ubuntu, Windows, etc.
Сетевая СОА (network-based IDS)

3.

ОСНОВНЫЕ КОМПОНЕНТЫ
(COMPONENTS)
Декодер пакетов (packet decoder)
Проверяет данные на соответствие
заявленному протоколу
(checks if data match declared protocol)
Препроцессоры (preprocessors)
Подключаемые модули, позволяющие СОА
проводить более детальный анализ пакетов
(plug-in modules that allow more detailed
packet analysis)

4.

ОСНОВНЫЕ КОМПОНЕНТЫ
(COMPONENTS)
Модуль обнаружения (detection engine)
Основной компонент СОА, отвечающий
за обнаружение атак. Сопоставляет сетевой
трафик с набором правил.
Basic IDS component than is responsible for
attack detection. Checks network traffic against
the set of rules.

5.

ОСНОВНЫЕ КОМПОНЕНТЫ
(COMPONENTS)
Модуль вывода (output module)
Управляет выводом информации об
обнаруженных атаках в файлы и базы данных
Records information about detected attacks to
files and databases

6.

ВЫВОД ИНФОРМАЦИИ
(OUTPUT TARGETS)
Text file (default)
MySQL
PosgreSQL
Oracle
Microsoft SQL Server
Additional output modules (Barnyard)

7.

КОНФИГУРАЦИОННЫЙ ФАЙЛ
(CONFIGURATION FILE)
Windows
%SNORT%\etc\snort.conf
UNIX
/etc/snort/snort.conf

8.

ПЕРЕМЕННЫЕ
(VARIABLES)
var
var RULES_PATH c:\snort\rules
portvar
portvar MY_PORTS [22,80,1024:1050]
ipvar
ipvar HOME_NET 192.168.1.0/24
ipvar EXTERNAL_NET any

9.

ПРАВИЛА SNORT
(SNORT RULES)
alert icmp $EXTERNAL_NET any -> $HOME_NET any
(msg:"ICMP PING Microsoft Windows"; itype:8;
content:"0123456789abcdefghijklmnop"; depth:32;
reference:arachnids,159; classtype:misc-activity;
sid:376; rev:7;)

10.

ПРАВИЛА SNORT
(SNORT RULES)
alert icmp $EXTERNAL_NET any -> $HOME_NET any
(msg:"ICMP PING Microsoft Windows"; itype:8;
content:"0123456789abcdefghijklmnop"; depth:32;
reference:arachnids,159; classtype:misc-activity;
sid:376; rev:7;)
Rule header:
Action:
Protocol:
IP-addresses:
Ports:
Direction:
alert (log, pass, drop, etc.)
icmp (ip, tcp, udp)
$EXTERNAL_NET, $HOME_NET
any (139, 445, 139:445, etc.)
-> (<>)

11.

ПРАВИЛА SNORT
(SNORT RULES)
alert icmp $EXTERNAL_NET any -> $HOME_NET any
(msg:"ICMP PING Microsoft Windows"; itype:8;
content:"0123456789abcdefghijklmnop"; depth:32;
reference:arachnids,159; classtype:misc-activity;
sid:376; rev:7;)
IP-address notation:
any
$EXTERNAL_NET, $HOME_NET, $VAR_1, etc.
192.168.0.1, !194.157.7.45
192.168.10.0/24, 10.2.0.0/16
Port notation:
any
$HTTP_PORTS, $ORACLE_PORTS, $PORTVAR_1, etc.
21, 80, !8080, 445, etc.
1:1000, 1024:, :6000, !100:200

12.

ПРАВИЛА SNORT
(SNORT RULES)
alert icmp $EXTERNAL_NET any -> $HOME_NET any
(msg:"ICMP PING Microsoft Windows"; itype:8;
content:"0123456789abcdefghijklmnop"; depth:32;
reference:arachnids,159; classtype:misc-activity;
sid:376; rev:7;)
Rule body:
Message:
msg:"ICMP PING Microsoft Windows"
ICMP type:
itype:8
Packet content: content:"0123456789abcdefghijklmnop"
Search depth: depth:32
Vulnerability: reference:arachnids,159
Attack type:
classtype:misc-activity
Rule ID:
sid:376
Revision:
rev:7

13.

ПРАВИЛА SNORT
(SNORT RULES)
alert icmp $EXTERNAL_NET any -> $HOME_NET any
(msg:"ICMP PING Microsoft Windows"; itype:8;
content:"0123456789abcdefghijklmnop"; depth:32;
reference:arachnids,159; classtype:misc-activity;
sid:376; rev:7;)
Content option notation:
ASCII:
"ASCII data string"
!"Data string except this one"
Binary:
"|01 02 A1 A2|"
"|FFFF 0001|"
"|00000000|"
Mixed:
"Text|FFFF|Textagain"
"|5C00|I|00|P|00|C|00|$|00"

14.

ПРАВИЛА SNORT
(SNORT RULES)
Content option modifiers:
nocase;
content:"USER root"; nocase;
depth:<number>;
content:"root"; depth:16;
offset:<number>;
content:"root"; offset:64;
distance:<number>;
content:"ABC"; content:"GHI"; distance:3;
(ABC???GHI)
within:<number>;
content:"ABC"; content:"XYZ"; within:23;
(ABC??..?XYZ)

15.

ПРАВИЛА SNORT
(SNORT RULES)
Content option modifiers:
http_client_body;
content:"../../passwd"; http_client_body;
Search data in HTTP POST request payload,
uses Stream5 and HTTP Inspect preprocessors
http_cookie;
content:"value=123"; http_cookie;
Search data in HTTP cookie,
uses Stream5 and HTTP Inspect preprocessors
http_header;
content:"User-Agent: Mozilla"; http_header;
Search data in HTTP header,
uses Stream5 and HTTP Inspect preprocessors

16.

ПРАВИЛА SNORT
(SNORT RULES)
Content option modifiers:
http_method;
content:"GET"; http_method;
Search data in HTTP method field,
uses Stream5 and HTTP Inspect preprocessors
http_uri;
content:"/request.php?data=123"; http_uri;
Search data in HTTP URI field,
uses Stream5 and HTTP Inspect preprocessors

17.

ПРАВИЛА SNORT
(SNORT RULES)
Other payload options:
uricontent:"<data>";
uricontent:"/request.php?data=123";
Works the same way as content + http_uri
urilen:<length>;
urilen:>256;
Search URI by length,
uses Stream5 and HTTP Inspect preprocessors
pcre:"<expression>";
pcre:"/\/request.php?id=[0-9]{1,10}/i";
Search data using Perl-compatible regular expressions
(see snort_manual.pdf for details)

18.

ПРАВИЛА SNORT
(SNORT RULES)
Non-payload options:
flags:[!|*|+]<FSRPAUCE0>[,<FSRPAUCE>];
flags:*AR;
ACK+RST+…
flow:[(established|stateless)]
[,(to_client|to_server|from_client|from_server)]
[,(no_stream|only_stream)];
flow:established,from_server;
Search for packets transmitted from server to client within
the TCP connection, uses Stream5 preprocessor

19.

ПРЕПРОЦЕССОРЫ
(PREPROCESSORS)
Наименование
Описание (description)
Frag3
Предназначен для дефрагментации IP-пакетов
(IP-packet defragmentation)
Stream5
Отслеживает состояние TCP-соединений и потоки
данных транспортного уровня (TCP-connection state
and stream tracking)
HTTP Inspect
Предназначен для поиска, декодирования
и нормализации полей HTTP-заголовков.
Для полноценной работы требует включения
препроцессора Stream5.
Detects, decodes and normalizes of HTTP header fields.
Needs Stream5 preprocessor for normal functioning.

20.

ПРЕПРОЦЕССОРЫ
(PREPROCESSORS)
Наименование
Описание (description)
RPC Decode
Осуществляет дефрагментацию записей RPC.
По умолчанию отслеживает трафик на портах 111
и 32771 (могут переопределяться). Если включен
препроцессор Stream5, RPC Decode обрабатывает
только клиентский трафик.
Defragments RPC records. Tracks only ports 111
and 32771 by default (may be redefined). When
Stream5 preprocessor is active RPC Decode handles
only client traffic.
DNS
Декодирует DNS-ответы и обнаруживает ряд
специфичных для протокола DNS атак (detects
DNS-specific attacks by analyzing DNS responses)

21.

ПРЕПРОЦЕССОРЫ
(PREPROCESSORS)
Наименование
Описание (description)
SSH
Обнаруживает ряд атак, специфичных для
протокола SSH, с использованием принципа
обнаружения аномалий (detects SSH-specific
attacks using anomaly detection methods)
FTP/Telnet
Анализирует потоков данных по протоколам FTP
и Telnet, отслеживанием состояния соединений.
Идентифицирует и нормализует FTP-команды,
FTP-ответы и escape-последовательности Telnet.
Analyzes FTP and Telnet data stream and tracks
connection status. Detects and normalizes
FTP commands, FTP responses and Telnet escape
sequences.

22.

ПРЕПРОЦЕССОРЫ
(PREPROCESSORS)
Наименование
Описание (description)
SMTP
Декодирует SMTP-команды и SMTP-ответы.
Может удалять лишние пробелы из SMTP-команд.
Для полноценной работы требует включения
препроцессора Stream5.
Decodes SMTP commands and responses. Deletes
unnecessary spaces from SMTP commands.
Needs Stream5 preprocessor for normal functioning.
SSL/TLS
Обнаруживает зашифрованный трафик и позволяет
СОА Snort пропускать его, не анализируя (detects
encrypted traffic and let Snort pass it through without
analyzing)

23.

ПРЕПРОЦЕССОРЫ
(PREPROCESSORS)
Наименование
Описание (description)
DCE/RPC2
Предназначен для поиска и декодирования трафика
протоколов SMB и DCE/RPC. Позволяет осуществлять
десегментацию потоков данных на уровнях TCP и
SMB, а также дефрагментацию на уровне DCE/RPC.
Требует включения препроцессора Stream5.
Detects and decodes SMB and DCE/RPC traffic.
Allows desegmentation of TCP and SMB data streams
and defragmentation of DCE/RPC. Needs Stream5
preprocessor for normal functioning.

24.

The End
For more information see Snort Manual
and README.<preprocessor> files…
English     Русский Правила