background image

Snort – tworzenie reguł 

background image

Podstawy tworzenia reguł 

jedna reguła powinna zajmować jeden 

wiersz 

jeżeli reguła jest zbyt duża, można ją 

podzielić na kilka wierszy poprzez użycie 

znaku „\” 

background image

Podstawy tworzenia reguł 

podział reguły na wiersze 

background image

Podstawy tworzenia reguł 

nagłówek: 

akcja 

protokół 

adresy IP 

numery portów 

parametry: 

sygnatury 

parametry protokołów 

wiele innych 

reguły składają się z dwóch logicznych 

części: 

background image

Podstawy tworzenia reguł 

nagłówek 

reguły 

parametry 

reguły 

background image

Nagłówek reguły 

background image

Nagłówek reguły 

akcja protokół adres_IP port kierunek adres_IP port 

background image

Nagłówek reguły 

Akcja: 

log 

- zapisz pakiet 

alert 

- podnieś alarm i zapisz pakiet 

pass 

- zignoruj pakiet 

activate 

- podnieś alarm i uruchom inną regułę dynamiczną 

dynamic 

- reguła dynamiczna, aktywowana przez inne reguły 

background image

Nagłówek reguły 

Przykłady: 

background image

Nagłówek reguły 

Przykłady: 

background image

Nagłówek reguły 

Protokół: 

tcp 

udp 

icmp 

ip 

background image

Nagłówek reguły 

Przykłady 

background image

Nagłówek reguły 

Adres_IP: 

any 

- dowolny adres sieciowy 

x.x.x.x/y 

- adres sieci lub hosta 

[x.x.x.x/y,x.x.x.x/y,...] 

- kilka adresów sieci lub hostów 

!

adresy

 

- wszystkie adresy z wyjątkiem wskazanych 

 

background image

Nagłówek reguły 

Przykłady 

background image

Nagłówek reguły 

Port: 

any 

- dowolny adres sieciowy 

port

 

- określony numer portu, np. 80 

port

:

port 

- zakres portów, („1:1024”, „:1024”, „600:”) 

!port 

lub 

!zakres

 

- wszystkie porty spoza zakresu 

background image

Nagłówek reguły 

Przykłady 

background image

Nagłówek reguły 

Kierunek: 

-> 

pakiety wysyłane z hosta źródłowego na 

docelowy 

<> 

wszystkie pakiety 

background image

Nagłówek reguły 

Przykłady 

background image

Parametry reguły 

background image

Parametry reguły 

Składnia: 

(parametr[: "wartość"]; ...) 

background image

Parametry reguły 

Rodzaje parametrów: 

ogólne 

sprawdzające zawartość pakietów 

sprawdzające parametry protokołu IP 

sprawdzające parametry protokołu TCP 

sprawdzające parametry protokołu ICMP 

reagujące na próby naruszeń bezpieczeństwa 

inne, specyficzne dla preprocesorów i protokołów 
 

background image

Parametry reguły 

Wybrane parametry 

msg: "tekst alarmu" 

komunikat zapisywany razem z pakietem lub 

alarmem 

content: [!] "tekst" 

zawartość pakietu; tekst można wprowadzać w 

formie ASCII lub w formie HEX: "|0d0a c8af|" 

nocase 

przeszukiwanie bez względu na wielkość liter 

background image

Parametry reguły 

Przykłady 

background image

Parametry reguły 

Przykłady 

background image

Parametry reguły 

Wybrane parametry c.d.: 

flags: wartość 

flagi pakietu TCP: 

S - SYN 
A - ACK 
R - RST 
P - PSH 
U - URG 
F - FIN 

 

1 - Reserver bit 1 
2 - Reserver bit 2 
0 - żadnych flag 
+ ALL - wszystkie 
* ANY - dowolna flaga 
! NOT flaga - brak flagi 

background image

Parametry reguły 

Przykłady 

background image

Parametry reguły 

Przykłady 

background image

Parametry reguły 

Wybrane parametry: 

resp: wartość[, wartość ...] 

zezwala na przerywanie połączeń (opcja 

FlexResponse musi być włączona podczas 

kompilacji): 

rst_send - wysyła pakiet TCP-RST do hosta źródł. 

rst_rcv - wysyła pakiet TCP-RST do hosta docel. 

rst_all - wysyła pakiet TCP-RST do obu hostów 

icmp_net - wysyła pakiet ICMP-NET-UNREACH 

icmp_host - wysyła pakiet ICMP-HOST-UNREACH 

icmp_port - wysyła pakiet ICMP-PORT-UNREACH 

icmp_all - wysyła wszystkie powyższe pakiety 

 

 

background image

Parametry reguły 

Przykłady 

background image

Parametry reguły 

Wybrane opcje c.d.: 

tag: typ, licznik, tryb, [kierunek] 

zezwala na logowanie większej ilości pakietów w 

przypadku wykrycia naruszenia bezpieczeństwa  

Wartości pola typ: 

session - loguj tylko pakiety z danej sesji  

host - loguj wszystkie pakiety od danego hosta 

Wartości pola tryb: 

packets - pole licznik wskazuje liczbę pakietów  

seconds - pole licznik wskazuje czas 

background image

Parametry reguły 

Przykłady 

background image

Parametry reguły 

Przykłady 

background image

Parametry reguły 

Wybrane opcje c.d.: 

reference: id_system, id 

pozwala na umieszczenie odnośników URL w logu 

alarmów 

classtype: wartość 

pozwala sklasyfikować typ ataku 

(classification.config) 

priority: liczba 

pozwala określić poziom zagrożenia 

background image

Parametry reguły 

Przykłady 

background image

Dodatkowe dyrektywy 

background image

Dodatkowe dyrektywy 

include 

nazwa_pliku

 

pozwala na włączanie plików 

zawierających reguły SNORT  

background image

Dodatkowe dyrektywy 

var 

zmienna wartość

 

stosowanie zmiennych upraszcza 

tworzenie reguł: 

background image

Dodatkowe dyrektywy 

config 

dyrektywa[: wartość]

 

dyrektywy konfiguracyjne 

 

background image

Dodatkowe dyrektywy 

Pełna lista dyrektyw oraz parametrów 

reguł znajduje się w dołączonej do 

SNORT dokumentacji 

 

http://www.snort.org/docs/

 

 

background image

Tworzenie własnych reguł: 

UNIX/Linux/*BSD 

background image

Tworzenie własnych reguł 

Przygotowanie środowiska 

background image

Tworzenie własnych reguł 

snort.conf 

my.rules 

background image

Tworzenie własnych reguł 

Uruchamianie snort 

background image

Tworzenie własnych reguł: 

MS Windows 

background image

Tworzenie własnych reguł 

Przygotowanie środowiska 

background image

Tworzenie własnych reguł 

snort.conf 

my.rules 

background image

Tworzenie własnych reguł 

Uruchamianie snort 

background image

Tworzenie własnych reguł: 

przykłady 

background image

Tworzenie własnych reguł 

Przykład 1: 

Odnotowanie użycia programu finger 

background image

Tworzenie własnych reguł 

Przykład 2: 

Wykrywanie prób dostępu do serwera 

WWW na port inny niż 80/tcp 

background image

Tworzenie własnych reguł 

Przykład 3: 

Wykrywanie prób dostępu do powłoki 

(cmd.exe, /bin/sh) 

background image

Pytania?