Snort – tworzenie reguł
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 „\”
Podstawy tworzenia reguł
podział reguły na wiersze
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:
Podstawy tworzenia reguł
nagłówek
reguły
parametry
reguły
Nagłówek reguły
Nagłówek reguły
akcja protokół adres_IP port kierunek adres_IP port
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
Nagłówek reguły
Przykłady:
Nagłówek reguły
Przykłady:
Nagłówek reguły
Protokół:
tcp
udp
icmp
ip
Nagłówek reguły
Przykłady
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
Nagłówek reguły
Przykłady
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
Nagłówek reguły
Przykłady
Nagłówek reguły
Kierunek:
->
pakiety wysyłane z hosta źródłowego na
docelowy
<>
wszystkie pakiety
Nagłówek reguły
Przykłady
Parametry reguły
Parametry reguły
Składnia:
(parametr[: "wartość"]; ...)
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
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
Parametry reguły
Przykłady
Parametry reguły
Przykłady
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
Parametry reguły
Przykłady
Parametry reguły
Przykłady
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
Parametry reguły
Przykłady
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
Parametry reguły
Przykłady
Parametry reguły
Przykłady
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
Parametry reguły
Przykłady
Dodatkowe dyrektywy
Dodatkowe dyrektywy
include
nazwa_pliku
pozwala na włączanie plików
zawierających reguły SNORT
Dodatkowe dyrektywy
var
zmienna wartość
stosowanie zmiennych upraszcza
tworzenie reguł:
Dodatkowe dyrektywy
config
dyrektywa[: wartość]
dyrektywy konfiguracyjne
Dodatkowe dyrektywy
Pełna lista dyrektyw oraz parametrów
reguł znajduje się w dołączonej do
SNORT dokumentacji
Tworzenie własnych reguł:
UNIX/Linux/*BSD
Tworzenie własnych reguł
Przygotowanie środowiska
Tworzenie własnych reguł
snort.conf
my.rules
Tworzenie własnych reguł
Uruchamianie snort
Tworzenie własnych reguł:
MS Windows
Tworzenie własnych reguł
Przygotowanie środowiska
Tworzenie własnych reguł
snort.conf
my.rules
Tworzenie własnych reguł
Uruchamianie snort
Tworzenie własnych reguł:
przykłady
Tworzenie własnych reguł
Przykład 1:
Odnotowanie użycia programu finger
Tworzenie własnych reguł
Przykład 2:
Wykrywanie prób dostępu do serwera
WWW na port inny niż 80/tcp
Tworzenie własnych reguł
Przykład 3:
Wykrywanie prób dostępu do powłoki
(cmd.exe, /bin/sh)
Pytania?