Snort_inline.pdf

(941 KB) Pobierz
222432169 UNPDF
Snort_inline jako
rozwiązanie
sposoby na utworzenie
dedykowanego urządzenia
najlepiej odpowiadającego
środowisku, które chcemy
chronić.
Obrona
Pierpaolo Palazzoli, Matteo Valenza
stopień trudności
Wykorzystanie Snort_inline okazało się skuteczną strategią na
zabezpieczenie sieci wewnętrznych, DMZ oraz domowych, w
przypadku wielu różnych środowisk i scenariuszy. Aby narzędzie
to działało poprawnie w trybie drop powinno ono adaptować
się do właściwości środowiska, które chroni. Z tego względu
przedstawimy tutaj nie tylko techniki koniguracji, ale także
mań (ang. Intrusion Detection System ,
IDS), jego natywny tryb działania opiera
się więc na wykorzystaniu karty sieciowej nasłu-
chującej ruchu w danym segmencie sieci.
Aby Snort_inline był w stanie przetwarzać
ruch w segmencie sieci musi on zostać niewi-
dzialnie weń włączony, za pomocą dwóch kart
sieciowych w trybie mostka (ang. bridge ) oraz
funkcjonalności inline . Funkcjonalność tę za-
pewnia nam kolejkowanie ruchu poprzez ipta-
bles ( ip _ queue ); nie jest to jednak wszystko,
musimy bowiem wiedzieć także, na poziomie ip-
tables, który ruch kolejkować. Dzięki temu trybo-
wi pracy Snort_inline może on zachowywać się
jak każdy inny system zapobiegania włamaniom
(ang. Intrusion Prevention System , IPS) i bloko-
wać nawiązywane połączenia. Aby Snort mógł
działać jako system zapobiegania włamaniom
musi on zostać skompilowany z opcją pobiera-
nia lex-response, co pozwala mu na resetowa-
nie ruchu, który ma być blokowany.
Podsumowując, możemy stwierdzić że
Snort_inline to zdecydowanie najefektywniej-
szy i najdokładniejszy tryb, jako że odrzuca
on ruch w sieci na podstawie załadowanych
uprzednio reguł.
Snort_inline w sieci lokalnej
Pierwsza część niniejszego artykułu poświę-
cona będzie krótkiemu wprowadzeniu do za-
gadnienia Snort_inline w sieci lokalnej . Zakła-
damy, że ruch w LANie zorientowany jest głów-
nie na klientów. Na tej podstawie zdeiniować
można następujące klasy ruchu w sieci:
• poczta, klienci WWW, p2p, komunikatory,
spyware, malware, wirusy, trojany, vpn.
Wspólną cechą wszystkich tych typów z punk-
tu widzenia IDS / IPS jest, że nie możemy prze-
twarzać ruchu zaszyfrowanego; oznacza to
brak na liście usług vpns oraz ssl.
Z artykułu dowiesz się...
• jak działa Snort_inline,
• podstaw systemów zapobiegania włamaniom,
• jak dostrajać konigurację Snort_inline.
Powinieneś wiedzieć...
• podstawy TCP/IP w środowisku Linux,
• podstawowe zasady działania IDSów.
2
hakin9 Nr 1/2007
www.hakin9.org
S nort to w zasadzie system detekcji wła-
222432169.358.png 222432169.369.png 222432169.380.png
Tu wpisujemy top, zawsze, w kazdym artykule
Rysunek 1 pokazuje poprawne
rozwiązanie dla ochrony tego rodza-
ju, w którym IPS umieszczony po-
między routerem, a resztą sieci po-
zwala nam analizować ruch, który
chcemy monitorować bądź ochra-
niać.
Po poprawnym przygotowaniu
urządzenia musimy dowiedzieć się,
jakie reguły i preprocesory Snorta
będziemy wykorzystywać.
Załóżmy, że koniguracja Snorta
znajduje się w pliku snort_inline.conf
– na przykład taka, jak dostępna
pod adresem www.snortattack.org/
mambo/script/snort_inline.conf
– i że dla sieci lokalnej zawiera ona
preprocesory jak pokazano na Li-
stingu 1.
nie wydajnie blokuje e-maile zainfe-
kowane na potrzeby phishingu. Wy-
korzystuje on następujące funkcje:
Preprocesory dla sieci
lokalnych
Preprocesory te przedstawia Li-
sting 1. Poniżej znajdziecie krótki
opis poszczególnych wymienionych
w nim komponentów i funkcji.
Clamav – procesor ten insta-
lowany jest jedynie wtedy, gdy
został wybrany podczas instalacji ( --
enable-clamav ). Dokonuje on skano-
wania w poszukiwaniu wirusów z ba-
zy danych Clamava i upewnia się, że
nie są one zaszyfrowane bądź spa-
kowane. Preprocesor ten niezmier-
ports – lista portów do skanowa-
nia (all, !22 – oprócz 22, 110 – tyl-
ko 110)
toclientonly – określa kierunek
skanowanego ruchu
action-drop – informuje urządze-
nie, jak reagować na wirusy
dbdir – katalog zawierający bazę
danych deinicji Clamava
dbreloadtime – co ile czasu baza
powinna zostać przeładowana
Perfmonitor – preprocesor ten po-
zwala nam na zapisywanie w postaci
tekstowej wszelkich statystyk zwią-
zanych z wydajnością oraz przepły-
wem danych w sieci. Jest on krytycz-
ny dla poprawnego funkcjonowania
narzędzia pmgraph, o którym powie-
my więcej później. Również i ten pre-
procesor należy uruchomić podczas
instalacji ( --enable-perfmon ). Posia-
da następujące funkcje:
Scenariusze dla Snort_inline
Należy zauważyć, że system zorientowany na blokowanie włamań powinien być odpo-
wiednio skonigurowany i gotowy do adaptacji do dowolnych scenariuszy sieciowych
i rodzajów ruchu. Korzystanie z IPS w trybie inline nie rozwiązuje wszystkich proble-
mów z bezpieczeństwem, pozwala za to na stworzenie scentralizowanego, dynamicz-
nego i wydajnego systemu bezpieczeństwa. IPS powinien wykrywać ruch do i z chro-
nionego źródła. Dzięki interfejsom sieciowym działającym w trybie mostka możemy
niezauważalnie włączyć urządzenie w sieć i w ten sposób zebrać wszelkie niezbędne
dane. Do stworzenia urządzenia inline potrzebna jest nam wiedza o wszelkich właści-
wościach chronionej sieci – od warstwy sieci po warstwę aplikacji.
Poniżej opiszemy kilka przykładów rodzajów segmentów sieciowych, w których
implementacja IPS w trybie inline mogłaby przynieść korzyści zwiększając bezpie-
czeństwo całego systemu:
time – czas niezbędny do prób-
kowania odczytu danych
• sieć wewnętrzna; grupa klientów obsługujących WWW, pocztę, komunikatory, p2p
itd. (Rysunek 1),
• DMZ; grupa serwerów zapewniających usługi powiązane z Internetem (smtp, web,
ftp, pop3, imap, mysql itd.) (Rysunek 2),
• LAN + DMZ (Rysunek 3).
Przede wszystkim powinniśmy na jakiś czas uruchomić Snort_inline w trybie IDS (Alert),
który to czas proporcjonalny jest do rozmiaru sieci (innymi słowy, im większa liczba sys-
temów w niej, tym więcej potrzeba czasu). W okresie tym powinniśmy:
• wychwycić awarie (problemy z wydajnością bądź składowaniem danych, spowol-
nienia itd.),
• przeanalizować ruch w sieci pod kątem fałszywych alarmów.
W ten sposób obserwując zebrane dane możemy dokonać zmian w koniguracji i zop-
tymalizować działanie urządzenia. Warto zauważyć, że w porównaniu z rozwiązania-
mi komercyjnymi implementacja otwartego IPS może nie być tak prosta, jak się to mo-
że wydawać, możesz mieć zatem pewne problemy z usuwaniem wielu fałszywych alar-
mów na pierwszym etapie procedury dostrajania.
Sugerujemy instalację Snort_inline na dedykowanym komputerze i odpowiednią
organizację jego zasobów sprzętowych (CPU, RAM), według następujących, prostych
zasad: większa liczba reguł wymaga więcej RAMu, zaś duża intensywność ruchu w
sieci zwiększa obciążenie procesora.
Niedawne testy sieciowe pokazały, że do zabezpieczenia połączenia ADSL
(1280/256) potrzebny jest system Geode o częstotliwości zegara 266 MHz i z 128 MB
RAMu (w przypadku tysiąca reguł). Dla pasm o szerokości większej niż 1 Mbps zale-
camy Pentium 4 1 GHz z 512 MB RAM (w przypadku trzech tysięcy reguł).
Rysunek 1. Ustawiamy urządzenie
w sieci lokalnej
www.hakin9.org
hakin9 Nr 1/2007
3
 
222432169.001.png 222432169.012.png 222432169.023.png 222432169.034.png 222432169.045.png 222432169.056.png 222432169.067.png 222432169.078.png 222432169.089.png 222432169.098.png 222432169.105.png 222432169.116.png 222432169.127.png 222432169.138.png 222432169.149.png 222432169.160.png 222432169.171.png 222432169.182.png 222432169.193.png 222432169.204.png 222432169.215.png 222432169.226.png 222432169.237.png 222432169.248.png 222432169.259.png 222432169.270.png 222432169.281.png 222432169.292.png 222432169.303.png 222432169.314.png 222432169.325.png 222432169.334.png 222432169.340.png 222432169.341.png 222432169.342.png 222432169.343.png 222432169.344.png 222432169.345.png 222432169.346.png 222432169.347.png 222432169.348.png 222432169.349.png 222432169.350.png 222432169.351.png 222432169.352.png 222432169.353.png 222432169.354.png 222432169.355.png 222432169.356.png 222432169.357.png 222432169.359.png 222432169.360.png 222432169.361.png 222432169.362.png 222432169.363.png 222432169.364.png 222432169.365.png 222432169.366.png 222432169.367.png 222432169.368.png 222432169.370.png 222432169.371.png 222432169.372.png 222432169.373.png 222432169.374.png 222432169.375.png 222432169.376.png 222432169.377.png 222432169.378.png 222432169.379.png 222432169.381.png 222432169.382.png 222432169.383.png 222432169.384.png 222432169.385.png 222432169.386.png 222432169.387.png 222432169.388.png 222432169.389.png 222432169.390.png 222432169.391.png 222432169.392.png 222432169.393.png 222432169.394.png 222432169.395.png 222432169.396.png 222432169.397.png 222432169.398.png 222432169.399.png 222432169.400.png 222432169.002.png 222432169.003.png 222432169.004.png 222432169.005.png 222432169.006.png 222432169.007.png 222432169.008.png 222432169.009.png 222432169.010.png 222432169.011.png 222432169.013.png 222432169.014.png 222432169.015.png 222432169.016.png 222432169.017.png 222432169.018.png 222432169.019.png 222432169.020.png 222432169.021.png 222432169.022.png 222432169.024.png 222432169.025.png 222432169.026.png 222432169.027.png 222432169.028.png 222432169.029.png 222432169.030.png 222432169.031.png 222432169.032.png 222432169.033.png 222432169.035.png 222432169.036.png 222432169.037.png 222432169.038.png 222432169.039.png 222432169.040.png 222432169.041.png 222432169.042.png 222432169.043.png 222432169.044.png 222432169.046.png 222432169.047.png 222432169.048.png 222432169.049.png 222432169.050.png 222432169.051.png 222432169.052.png 222432169.053.png 222432169.054.png 222432169.055.png 222432169.057.png 222432169.058.png 222432169.059.png 222432169.060.png 222432169.061.png 222432169.062.png 222432169.063.png 222432169.064.png 222432169.065.png 222432169.066.png 222432169.068.png 222432169.069.png 222432169.070.png 222432169.071.png 222432169.072.png 222432169.073.png 222432169.074.png 222432169.075.png 222432169.076.png 222432169.077.png 222432169.079.png 222432169.080.png 222432169.081.png 222432169.082.png 222432169.083.png 222432169.084.png 222432169.085.png 222432169.086.png 222432169.087.png 222432169.088.png 222432169.090.png 222432169.091.png 222432169.092.png 222432169.093.png 222432169.094.png 222432169.095.png
Technika
File – ścieżka do pliku z danymi
pkcnt – maksymalna liczba re-
kordów, jaka może znaleźć się w
jednym pliku
Tryb mostka
Ustawienie dwóch kart w tryb mostka oznacza połączenie ich funkcjonalności w
warstwie drugiej, co czyni je przezroczystymi dla ruchu w sieci. W trybie tym pa-
kiety przekazywane są z jednej karty do drugiej, co pozwala na poprawne przeka-
zywanie ruchu. Aby uruchomić ten tryb pod Linuksem należy wykonać następują-
ce operacje:
Instalujemy pakiet bridge-utils - apt-get install bridge-utils ; potrzebne
będzie jądro w wersji 2.6, w przeciwnym razie należy ponownie skompilować jądro
wersji 2.4 włączywszy uprzednio moduł mostka. Mostek pomiędzy dwoma kartami
sieciowymi można zestawić następująco:
Flow – preprocesor ten potrzebny
jest do działania innych preproce-
sorów, takich jak lowbits detection
plug-in czy low-portscan . W skrócie,
preprocesor Flow pozwala Snortowi
przechowywać mechanizmy akwi-
zycji danych. Ma następujące funk-
cje:
/usr/sbin/brctl addbr br0
/usr/sbin/brctl addif br0 eth0
/usr/sbin/brctl addif br0 eth1
/sbin/ifconig br0 up
stats _ interval – parametr ten
określa przedziały czasu, w se-
kundach, w których Snort będzie
zrzucać statystyki na standardo-
we wyjście.
Hash – parametr ten określa me-
todę mieszania. Wartość 1 dei-
niuje mieszanie po bajcie, war-
tość 4 – mieszanie po liczbie cał-
kowitej.
Adres MAC przypisany br0 będzie taki sam, jak adres pierwszego interfejsu, który zo-
stał z nim skojarzony.
Rpc decode – preprocesor ten po-
nownie składa strumienie rpc z po-
jedynczych pakietów celem ułatwie-
nia ich analizy, jeżeli obecny jest pre-
procesor stream4 możliwe jest prze-
twarzanie tylko ruchu wychodzące-
go od klientów.
Telnet decode – preprocesor
ten normalizuje przepływ znaków
w sesjach protokołu telnet. Nale-
ży podać mu porty, które ma prze-
twarzać.
pass – ignoruje wybrany przez
siebie ruch.
drop – za pomocą iptables odrzu-
ca pakiet, a następnie odnotowu-
je go w pliku bądź bazie danych
reject – w przypadku TCP; połą-
czenie jest resetowane z pomocą
iptables, w przypadku UDP wy-
syłany jest komunikat icmp host
unreachable ; następnie zdarze-
nie odnotowywane jest w pliku
bądź bazie danych
sdrop odrzuca pakiet za pomo-
cą iptables nie logując go.
Stream 4 – preprocesor ten daje
Snortowi umiejętność widzenia pod-
stawowych właściwości pakietów
oraz to, gdzie został wygenerowany
(klient czy serwer). Cytując Marty-
'ego Roescha: Zaimplementowałem
stream4 na skutek chęci uzyskania
potężniejszych mechanizmów po-
nownego składania strumieni i obro-
ny przed najnowszymi 'atakami bez-
stanowymi . Wykorzystuje następują-
ce funkcje:
Reguły dla sieci lokalnych
Kiedy już zdeiniowaliśmy preproce-
sory, Snort potrzebuje określenia w
koniguracji odpowiednich reguł. Ist-
nieje wiele różnych rodzajów reguł:
W przedstawionym tutaj przykła-
dzie zadaniem reguły jest blokowa-
nie miosito.com; jest to część zbio-
ru reguł służącego blokowaniu ru-
chu kierowanego do sieciowych ka-
syn nieprzestrzegających reguł wło-
skiego prawa. Funkcja drop określa
działanie, które iptables musi wyko-
nać jak tylko reguła zostanie zasto-
sowana.
disable _ evasion _ alerts – wy-
łącza alarmy zapisywane przez
stream4
midstream _ drop _ alerts – na-
kazuje preprocesorowi blokowa-
nie połączeń generowanych bez
tworzenia danego strumienia.
alert – generuje komunikat alar-
mowy, a następnie odnotowu-
je go go w pliku bądź bazie da-
nych.
log – zapisuje do pliku bądź bazy
danych.
Listing 1. Zalecane preprocesory dla sieci lokalnej
preprocessor perfmonitor: time 60 ile/var/log/snort/perfmon.txt pktcnt 500
preprocessor low:stats_interval 0 hash 2
preprocessor stream4_reassemble: both
preprocessor stream4: disable_evasion_alerts
midstream_drop_alerts
preprocessor clamav:ports all !22 !443,toclientonly, action-drop,dbdir /var/lib/clamav,dbreload-time 43200
preprocessor rpc_decode: 111 32771
preprocessor bo
preprocessor telnet_decode
4
hakin9 Nr 1/2007
www.hakin9.org
222432169.096.png
 
222432169.097.png
 
222432169.099.png
 
222432169.100.png 222432169.101.png
 
222432169.102.png
 
Tu wpisujemy top, zawsze, w kazdym artykule
drop tcp $home_net any ->
any $http ports (
msg:"snortattack-italian-law";
low:established;content: "miosito.com";
classtype:policy-violation;
reference:url,
www.snortattack.net;
)
Listing 2. Lista przydatnych reguł do ochrony sieci lokalnej
# Ogólne
include / etc / snort_inline / rules / bleeding . rules
# Głównie spyware
include $ RULE_PATH / bleeding - malware . rules
include $ RULE_PATH / malware . rules
include $ RULE_PATH / spyware - put . rules
# Eksploity i ataki bezpośrednie
include $ RULE_PATH / exploit . rules
include $ RULE_PATH / bleeding - exploit . rules
include $ RULE_PATH / community - exploit . rules
# DOS
include $ RULE_PATH / dos . rules
include $ RULE_PATH / ddos . rules
include $ RULE_PATH / bleeding - dos . rules
# Dotyczące WWW
include $ RULE_PATH / web - client . rules
include $ RULE_PATH / community - web - client . rules
# Sygnatury poczty
include $ RULE_PATH / community - mail - client . rules
# Trojany, wirusy oraz spyware
include $ RULE_PATH / virus . rules
include $ RULE_PATH / bleeding - virus . rules
include $ RULE_PATH / community - virus . rules
# Peer to peer
include $ RULE_PATH / p2p . rules
include $ RULE_PATH / bleeding - p2p . rules
Przeznaczeniem koniguracji przed-
stawionej na Listingu 2 jest kontro-
la aplikacji p2p, ochrona przed ata-
kami z wewnątrz (które to ataki sta-
nowią niemal 70% wszystkich ata-
ków), a przede wszystkim selekcja
treści oglądanych przez wewnętrz-
ne hosty.
Snort_inline w DMZ
Drugą część artykułu poświęcimy
krótkiemu wprowadzeniu do zagad-
nienia Snort_inline w DMZ .
Jak wspomnieliśmy wcześniej,
ruch sieciowy w DMZ z założenia
dotyczyć będzie głównie serwe-
rów. Na tej podstawie zdeiniować
możemy następujące klasy ruchu
w DMZ:
Jednym z możliwych rozwiązań
dla tego rodzaju segmentów sie-
ciowych jest umieszczenie weń
IPS. Tym razem system umiesz-
czony będzie pomiędzy routerem,
a DMZ.
Preprocesory dla sieci DMZ
Jedynym preprocesorem, którego
koniguracja uległa zmianie jest Cla-
mav – ważne jest zdeiniowanie dlań
parametru toserveronly aby wybrać
jedynie ruch skierowany do serwe-
rów. Patrz Listing 3.
Frag3 – preprocesor ten zastę-
puje frag2 i jest niezbędny do re-
konstrukcji strumienia danych roz-
członkowanego wskutek fragmenta-
cji transmisji.
• serwer poczty, serwer WWW,
serwer bazodanowy, serwer apli-
kacji, wirus, vpn.
Reguły dla sieci DMZ
Po zdeiniowaniu wszystkich pre-
procesorów musimy podać Snortowi
trochę reguł. Poniżej znajdziesz kilka
ich zastosowań:
max _ frags – maksymalna liczba
śledzonych fragmentów
policy – wybiera sposób frag-
mentacji, dostępne metody to
irst, ast, bsd, bsd-right, linux.
Domyślnym ustawieniem jest
bsd.
detect _ anomalies – wykrywa
błędy fragmentacji.
Rysunek 2. Przykład sieci DMZ
Reguły zalecane do użytku w sieci
DMZ przedstawia Listing 4.
www.hakin9.org
hakin9 Nr 1/2007
5
 
222432169.103.png 222432169.104.png 222432169.106.png 222432169.107.png 222432169.108.png 222432169.109.png 222432169.110.png 222432169.111.png 222432169.112.png 222432169.113.png 222432169.114.png 222432169.115.png 222432169.117.png 222432169.118.png 222432169.119.png 222432169.120.png 222432169.121.png 222432169.122.png 222432169.123.png 222432169.124.png 222432169.125.png 222432169.126.png 222432169.128.png 222432169.129.png 222432169.130.png 222432169.131.png 222432169.132.png 222432169.133.png 222432169.134.png 222432169.135.png 222432169.136.png 222432169.137.png 222432169.139.png 222432169.140.png 222432169.141.png 222432169.142.png 222432169.143.png 222432169.144.png 222432169.145.png 222432169.146.png 222432169.147.png 222432169.148.png 222432169.150.png 222432169.151.png 222432169.152.png 222432169.153.png 222432169.154.png 222432169.155.png 222432169.156.png 222432169.157.png 222432169.158.png 222432169.159.png 222432169.161.png 222432169.162.png 222432169.163.png 222432169.164.png 222432169.165.png 222432169.166.png 222432169.167.png 222432169.168.png 222432169.169.png 222432169.170.png 222432169.172.png 222432169.173.png 222432169.174.png 222432169.175.png 222432169.176.png 222432169.177.png 222432169.178.png 222432169.179.png 222432169.180.png 222432169.181.png 222432169.183.png 222432169.184.png 222432169.185.png 222432169.186.png 222432169.187.png 222432169.188.png 222432169.189.png 222432169.190.png 222432169.191.png 222432169.192.png 222432169.194.png 222432169.195.png 222432169.196.png 222432169.197.png 222432169.198.png 222432169.199.png 222432169.200.png 222432169.201.png 222432169.202.png 222432169.203.png 222432169.205.png 222432169.206.png 222432169.207.png 222432169.208.png 222432169.209.png 222432169.210.png 222432169.211.png 222432169.212.png 222432169.213.png 222432169.214.png 222432169.216.png 222432169.217.png 222432169.218.png 222432169.219.png 222432169.220.png 222432169.221.png 222432169.222.png 222432169.223.png 222432169.224.png 222432169.225.png 222432169.227.png 222432169.228.png 222432169.229.png 222432169.230.png 222432169.231.png 222432169.232.png 222432169.233.png 222432169.234.png 222432169.235.png 222432169.236.png 222432169.238.png 222432169.239.png 222432169.240.png 222432169.241.png 222432169.242.png 222432169.243.png 222432169.244.png 222432169.245.png 222432169.246.png 222432169.247.png 222432169.249.png 222432169.250.png 222432169.251.png 222432169.252.png 222432169.253.png 222432169.254.png 222432169.255.png 222432169.256.png 222432169.257.png 222432169.258.png 222432169.260.png 222432169.261.png 222432169.262.png 222432169.263.png 222432169.264.png 222432169.265.png 222432169.266.png 222432169.267.png 222432169.268.png 222432169.269.png 222432169.271.png 222432169.272.png 222432169.273.png 222432169.274.png 222432169.275.png 222432169.276.png 222432169.277.png 222432169.278.png 222432169.279.png 222432169.280.png 222432169.282.png 222432169.283.png 222432169.284.png 222432169.285.png 222432169.286.png 222432169.287.png 222432169.288.png 222432169.289.png 222432169.290.png 222432169.291.png 222432169.293.png 222432169.294.png 222432169.295.png 222432169.296.png 222432169.297.png 222432169.298.png 222432169.299.png 222432169.300.png 222432169.301.png 222432169.302.png 222432169.304.png 222432169.305.png 222432169.306.png 222432169.307.png 222432169.308.png 222432169.309.png 222432169.310.png 222432169.311.png 222432169.312.png 222432169.313.png 222432169.315.png 222432169.316.png 222432169.317.png 222432169.318.png 222432169.319.png 222432169.320.png 222432169.321.png 222432169.322.png 222432169.323.png 222432169.324.png 222432169.326.png 222432169.327.png 222432169.328.png 222432169.329.png 222432169.330.png 222432169.331.png
Technika
Snort w sieci mieszanej
Jeżeli chodzi o urządzenie w sie-
ci mieszanej (pokazanej na Rysun-
ku 3), zalecamy następujące urzą-
dzenia.
Preprocesory dla sieci miesza-
nej znaleźć można na Listingu 5, od-
powiednie reguły zaś przedstawia
Listing 6. Przeznaczeniem opisanej
w nich koniguracji jest kontrola wi-
rusów oraz ochrona maszyn przed
atakami z zewnątrz w oparciu o blo-
kowanie eksploitów wymierzonych
w usługi. Kilka różnych technik ata-
ku przedstawimy później, na bazie
praktycznych przykładów.
Listing 3. Lista preprocesorów dla sieci DMZ
Preprocesory dla DMZ
preprocessor perfmonitor: time 60 ile /var/log/snort/perfmon.txt pktcnt 500
preprocessor low: stats_interval 0 hash 2
preprocessor frag3_global: max_frags 65536
preprocessor frag3_engine: policy irst detect_anomalies
preprocessor stream4: disable_evasion_alerts detect_scans inline_state
preprocessor stream4_reassemble: both
preprocessor rpc_decode: 111 32771
preprocessor bo
preprocessor telnet_decode
preprocessor clamav: ports 25 80, toserveronly, action-drop, dbdir /var/lib/
clamav, dbreload-time 43200
Narzędzia te, napisane w PHP
bądź Pythonie, mają krytyczne zna-
czenie dla dobrego IPS / IDS – kry-
tyczną jest bowiem wiedza o tym, co
dzieje się z naszym urządzeniem
i naszą siecią. Interfejsy te bardzo
prosto się instaluje, wystarczy roz-
pakować archiwa i wyedytować od-
powiednie pliki koniguracyjne tak,
by narzędzia łączyły się z bazą da-
nych Snorta.
Tutaj zdecydowaliśmy się przyj-
rzeć dwóm z nich: BASE oraz PLA-
CID.
Pierwsze z nich jest pochodną
ACID (Analysis Console for Intru-
sion Database); BASE to skrót od
Basic Analysis and Security En-
gine (patrz Rysunek 4). Narzę-
dzie to pozwala na przeglądanie i
przetwarzania bazy danych Snor-
ta i jest napisane w PHP. Jego siłą
jest wiele opcji badawczych oraz
możliwość grupowania alarmów
na podstawie ich adresów IP, jak
również innych parametrów, takich
jak czas bądź rodzaj reguły. Pod-
stawowa implementacja jest pół-
automatyczna, wystarczy rozpako-
wać archiwum tar.gz w domyślnym
katalogu Apache'a ( /var/www/ ),
zmienić właściciela utworzone-
go weń folderu oraz przejść do je-
go pierwszego poziomu za pomo-
cą przeglądarki. Zautomatyzowa-
na procedura przeprowadza nas
przez tworzenie niezbędnych ta-
bel i pozwala rozpocząć korzysta-
nie z aplikacji.
Monitorowanie ataków i
zarządzanie regułami
Interfejsy, które przeanalizujemy i
opiszemy, opierają się na bazach
danych. W zasadzie, wszystkie wy-
niki ze Snorta składowane będą w
różnego rodzaju bazach danych: my-
sql, postgres itp. Narzędzia te różnią
się między sobą i są napisane w róż-
nych językach, jednak ogólnie rzecz
biorąc wszystkie robią to samo. Są
to: ACID, BASE, PLACID, SNORT
REPORT, SGUIL itd.
Listing 4. Lista reguł zalecanych dla DMZ
include $ RULE_PATH / bad - trafic . rules
include $ RULE_PATH / exploit . rules
include $ RULE_PATH / scan . rules
include $ RULE_PATH / dos . rules
include $ RULE_PATH / ddos . rules
include $ RULE_PATH / dns . rules
include $ RULE_PATH / web - cgi . rules
include $ RULE_PATH / web - iis . rules
include $ RULE_PATH / web - misc . rules
include $ RULE_PATH / web - php . rules
include $ RULE_PATH / community - web - php . rules
include $ RULE_PATH / netbios . rules
include $ RULE_PATH / attack - responses . rules
include $ RULE_PATH / mysql . rules
include $ RULE_PATH / virus . rules
include $ RULE_PATH / web - attacks . rules
include $ RULE_PATH / backdoor . rules
include $ RULE_PATH / bleeding - virus . rules
include $ RULE_PATH / bleeding - attack_response . rules
include $ RULE_PATH / bleeding - dos . rules
include $ RULE_PATH / bleeding - exploit . rules
include $ RULE_PATH / bleeding - malware . rules
include $ RULE_PATH / bleeding - scan . rules
include $ RULE_PATH / bleeding - web . rules
include $ RULE_PATH / community - exploit . rules
include $ RULE_PATH / community - ftp . rules
include $ RULE_PATH / community - web - misc . rules
include $ RULE_PATH / community - smtp . rules
tar -zxvf base-1.2.4.tar.gz
mv base-1.2.4 base
mv base /var/www
chown apache. /var/www/base
PLACID
PLACID napisany został w Py-
thonie i jest, podobnie jak BA-
SE, przeglądarką zdarzeń w ba-
zie danych. Zapewnia taką samą
funkcjonalność jak BASE, jednak
stwierdzono, że działa szybciej
w przypadku większych baz da-
nych. Instalacja PLACID nie jest
taka prosta, trzeba zainstalować
Pythona 2.3 oraz określić w pli-
ku konfiguracyjnym Apache'a kilka
niezbędnych do poprawnego dzia-
łania parametrów:
6
hakin9 Nr 1/2007
www.hakin9.org
222432169.332.png
 
222432169.333.png
 
222432169.335.png
 
222432169.336.png 222432169.337.png
 
222432169.338.png 222432169.339.png
 
Zgłoś jeśli naruszono regulamin