Transcript Slide 1

Systemy detekcji intruzów
Maciej Miłostan
Agenda
• Trochę teorii
–
–
–
–
•
•
•
•
•
Co to jest IDS?
Włamania i ataki
Systemy IDS a IPS
Specyfikacja CIDF
i tym podobne
Analiza i korelacja danych
Snort – de facto standard
Wizualizacje i raporty
Aplikacje zarządzające
Podsumowanie
www.photography-museum.com
Co to jest IDS?
Hmm, tu się
dzieje coś
niedobrego!!
!
Idea a praktyka
• Włamanie, próba włamania,... czy
zwykła aktywność
• Metody włamań
• Luki w systemach
• Aktualność reguł
systemu IDS
• Rozciągnięcie sekwencji działań w
czasie, rozdzielenie na wiele sesji
• Ataki typu DRDoS
Włamania i ataki
• Włamanie:
– ciąg współzależnych
działań
– zagrożenie naruszenia
bezpieczeństwa
zasobów
– nieautoryzowany dostęp
do danej domeny
komputerowej lub
sieciowej
• Włamanie jest skutkiem
ataku
Model ataku
Metoda
Inicjator ataku
Cel
Cel
Rodzaje ataków (1)
Cel
Atakujący
Cel ataku
Atakujący
Cel
Atakujący
Węzeł
pośredniczący
Węzeł
pośredniczący
Cel ataku
Rodzaje ataków (2)
Atakujący
Atakujący
Atakujący
Atakujący
Cel ataku
Cel ataku
Atakujący
Cel ataku
Atakujący
Cel ataku
Rodzaje ataków (3)
ATAKUJĄCY
Węzeł
zarządzający
Węzeł
demona
Węzeł
demona
Węzeł
demona
Węzeł
zarządzający
Węzeł
demona
Węzeł
demona
Węzeł docelowy
(cel ataku)
Węzeł
demona
Węzeł
zarządzający
Węzeł
demona
Węzeł
demona
Węzeł
demona
Anatomia ataku
Czynności
przygotowawcze
Wykonanie
ataku
Zwieńczenie
ataku
Podział systemów IDS (1)
• Sieciowe (network based)
i stanowiskowe (host based)
• Według faz ataku
Podział systemów IDS (2)
Systemy wykrywające
naruszenie reguł
bezpieczeństwa
Sieciowe skanery
bezpieczeństwa
Klasyczne systemy
wykrywania włamań
Systemy wykrywające
ślady
przeprowadzonych
ataków
„Wabiki”, „pułapki
internetowe (honey
pots)
Analizatory plików
dzienników
Systemy kontroli
spójności
Systemy IDS a IPS
O, X się
włamał...
IDS
O X się próbuje
włamać...
Drop all src= X
IPS
Lokalizacja systemu IDS
• SPAN (switch port
analyzer)
• HUB
• Taps&TopLayer
switches
Router
IDS
Switch
Router
Hub
http://www.snort.org/docs/iss-placement.pdf
IDS
Switch
Taps
http://www.snort.org/docs/iss-placement.pdf
Wydajne architektury IDS
„Stateful Intrusion Detection for HighSpeed Networks”,
Kruegel Ch., Valeur F., Vigna G. Kemmerer R., 2002
Przegląd produktów
Systemy IDS w sieci
http://www-rnks.informatik.tu-cottbus.de/en/security/ids.html
http://pdphoto.org
Common Intrusion Detection
Framework
GIDOs
Event(E-)Box
ETHERNET
Sensor,
Storage,
Data (D-)box
Passive Protocol Analyzer
Analysis(A-)Box
Pattern matching,
Signature analysis
Countermeasures(C-)Box
(ie. close connection)
Przykład S-wyrażeń i GIDO
(Delete
(Context
(HostName 'first.example.com')
(Time '16:40:32 Jun 14 1998')
)
(Initiator
(UserName 'joe')
)
(Source
(FileName '/etc/passwd')
)
)
Agenda
• Trochę teorii
• Analiza i korelacja
danych
• Snort – de facto
standard
• Wizualizacje i raporty
• Aplikacje zarządzające
• Podsumowanie
http://www.nysaes.cornell.edu/comm/staff/zakour/cc/tt_dmin.gif
Analiza danych = problemy
• Jak korelować informacje?
• Jakich metod można użyć?
• Jak powiązać połączenia
inicjowane w wielu sesjach,
z różnych adresów,
źródłowych na rozmaite
adresy docelowe?
• Jak zidentyfikować intruza?
Eksploracja danych
• MINDS (Minesota)
http://www.cs.umn.edu/research/minds/
• PROJECT IDS (Columbia):
http://www1.cs.columbia.edu/ids/
• SilkRoad inc.
http://www.silkroad.com/papers/html/ids/
n1.html
Metody (1)
•
•
•
•
•
Grupowanie (Clustering)
Odkrywanie Asocjacji (Association)
Analiza statystyczna (Statistical Analysis)
Generacja reguł (Rule Abduction)
Odkrywanie powiązań lub generacja drzew
decyzyjnych (Link or Tree Abduction)
• Analiza odchyleń statystycznych (Deviation
Analysis)
• Uczenie sieci neuronowych (Neural
Abduction)
Metody (2)
• Anomaly detection algorithms (np.
MINDS)
• Models of normal behavior and intrusion
behavior (np. PROJECT IDS)
• Myriad heterogeneous distributed
network sensors
„ cyberspace situational awareness”
(patrz artykuł na stronach SilkRoad Inc.)
Agenda
• Trochę teorii
• Analiza i korelacja
danych
• Snort – standard de
facto
• Wizualizacje i raporty
• Aplikacje zarządzające
• Podsumowanie
Snort – de facto
standard...
• Martin Roesch
• Rok 1998
• „Lightweight” intrusion
detection system
• Najczęściej stosowany
system detekcji
intruzów na świecie
• „Heavyweight”
champion
Świat Snort-a
Sourcefire
• Firma komercyjna utworzona przez
Martin Roesch-a w 2001 roku
• Oferuje produkty komercyjne oparte o
Snort-a i pochodne
• Rozwiązania dla sieci Gbit-owych.
• Przejęta przez CheckPoint-a
Snort – wymagania i instalacja
•
Pentium, 64MB RAM,
1GB HDD, 10Mbps
Ethernet NIC
„That's about the bare
minimum..” M. Roesch-czerwiec
’05
•
•
Libpcap, tcpdump,
iptables (Snort inline),
libnet
GD, Perl, Adodb,
MySQL, PHP
Snort – instalacja
•
Podstawowa:
1) Pobieramy źródła:
wget http://www.snort.org/dl/snort-2.4.3.tar.gz
2) linux# tar –zxvf snort-2.4.3.tar.gz
3) cd snort-2.4.3
4) ./configure
5) make
6) make install
7) Pobieramy reguły (lub piszemy własne ) :
http://www.snort.org/pub-bin/downloads.cgi
•
Bardziej złożone instalacje:
http://www.snort.org/docs/#setup
Snort – tryby pracy
•
•
•
•
Sniffer Mode
Packet Logger Mode
Network Intrusion Detection Mode
Inline Mode
Sniffer Mode
• Nagłówki IP i TCP/UDP/ICMP
./snort –v
• Nagłówki i zawartość pakietów
./snort –vd
• Nagłówki IP, zawartość pakietów, nagłówki
łącza danych
./snort -vde
Packet Logger
• Logowanie pakietów
./snort -dev -l ./log
• Hierarchia katalogów a sieć lokalna
./snort -dev -l ./log -h 192.168.1.0/24
• Logowanie w formacie binarnym
./snort -l ./log -b
• „Playback”
./snort -dv -r packet.log
• Filtr BPF
./snort -dvr packet.log icmp
Barnyard
• Umożliwia efektywny zapis na dysku
– odciąża główny proces Snort-a
• Monitoruje binarne pliki logów
Snort-a i konwertuje je do
różnych formatów
• Trzy tryby przetwarzania:
– „one shot”
– Ciągły(continual)
– Ciągły z punktami kontrolnymi (continual
w/checkpoint)
http://www.ezthemes.com/previews/b/barnyardbuddies.jpg
Network Intrusion Detection
Mode
• Tryb detekcji prób włamań
./snort -dev -l ./log -h 192.168.1.0/24 -c snort.conf
• Przełącznik –v powinien zostać pominięty przy
zastosowaniach produkcyjnych (groźba utraty
pakietów)
• Logowanie nagłówków warstwy łącza danych też
jest zbędne
./snort -d -l ./log -h 192.168.1.0/24 -c snort.conf
• Alert: -A none|full|fast|unsock|cmg|console
Logowanie do syslog-a: -s
./snort -c snort.conf -A fast -h 192.168.1.0/24
• Kolejność reguł: -o najpierw Pass, a potem Alert
Inline Mode
• Iptables (libipq) zamiast
libpcap
• Wymaga LibNet
(http://www.packetfactory.net)
• Trzy typy reguł
http://www.av1611.org/othpubls/santa.html
– drop
– reject
– sdrop (bez logowania)
•Kolejność reguł
–->activation->dynamic->drop->sdrop->reject->alert->pass->log
–z opcją –o: ->activation->dynamic->pass->drop->sdrop->
reject->alert->log
•Zmiana zawartości pakietu, STREAM4
Konfiguracja Snort-a
• Snort.conf
– Adresy sieci
– Tryb uruchomienia
– Katalog z regułami
– Nazwy plików z regułami
– Katalog logowania
– Tryb logowania
Architektura Snort-a
Packet Decoder
Preprocessor
(Plug-ins)
Detection Engine
(Plug-ins)
Output Stage
(Plug-ins)
Data Flow
Packet Stream
Sniffing
Alerts/Logs
Moduł detekcji
alert
tcp
Sip: 1.1.1.1
Dip: 2.2.2.2
Dp: 80
(flags: A+; content: “”foo”;)
(flags: A+; content: “bar”;)
(flags: A+; content: “baz”;)
System reguł
alert tcp !10.1.1.0/24 any -> 10.1.1.0/24 any (flags: SF; msg: “SYN-FIN Scan”;)
• Dwie sekcje reguły
• nagłówek reguły (rule header):
alert tcp !10.1.1.0/24 any -> 10.1.1.0/24 any
• opcje reguły (rule options):
(flags: SF; msg: “SYN-FIN Scan”;)
• Nagłówki i opcje mogą być łączone w dowolnych
kombinacjach
Nagłówek reguły
•
•
•
•
•
Typ
Adres
Port
Kierunek
Aktywowanie/dynamiczne
Nagłówek reguły-typy
• alert – generuje alert przy
użyciu wybranej metody i
zapisuje pakiet w logu
• log – zapisuje pakiet w
pliku logu
• pass – ignoruje pakiet
• activate – wygenerowanie
alertu i aktywacja reguły
dynamicznej
• dynamic – reguła
pozostaje nieaktywna do
momentu aktywacji przez
inną regułę – po czym
działa jak reguła log
• drop powoduje
odrzucenie przez iptables
pakietu i zapisanie go w
logu
• reject – powoduje
odrzucenie (drop) przez
iptables pakietu i
zapisanie go w logu, a
następnie wysyła TCP
reset, albo ICMP „port
nieosiągalny” (port
unreachable)
• sdrop – powoduje, że
iptables odrzuca pakiet
(drop), ale go nie loguje
Opcje reguł (1)
• meta-data
– Opcje dostarczające informacji o regule, ale nie
mające znaczenia w trakcie detekcji
• payload
– Opcje powodujące sprawdzanie zawartości
pakietów - mogą być wewnętrznie powiązane
(inter-related)
• non-payload
– Opcje sprawdzające nagłówki pakietów i tym
podobne (non-payload data)
• post-detection
– „rule specific triggers” (uruchamiane po „odpaleniu”
reguły)
Opcje reguł(2)
•
•
•
•
•
•
•
IP TTL
IP ID
Fragment size
TCP Flags
TCP Ack number
TCP Seq number
Payload size
•
•
•
•
•
•
•
Content
Content offset
Content depth
Session recording
ICMP type
ICMP code
Alternate log files
Przykładowe reguły (1)
alert tcp ![192.168.1.0/24,10.1.1.0/24]
any -> \
[192.168.1.0/24,10.1.1.0/24] 111
(content: "|00 01 86 a5|"; \
msg: "external mountd access";)
log udp any any -> 192.168.1.0/24 1:1024 log udp
log tcp any any -> 192.168.1.0/24 :6000
log tcp any :1024 -> 192.168.1.0/24 500:
log tcp any any -> 192.168.1.0/24 !6000:6010
(loguje wszystko oprócz Xwindows)
Przykładowe reguły (2)
activate tcp !$HOME_NET any -> $HOME_NET 143 (flags:
PA; \
content: "|E8C0FFFFFF|/bin"; activates: 1; \
msg: "IMAP buffer overflow!";)
dynamic tcp !$HOME_NET any -> $HOME_NET 143 \
(activated_by: 1; count: 50;)
alert tcp any any <> 192.168.1.0/24 80 (content:
"bad.htm"; \
msg: "Not for children!"; react: block, msg;)
Opcja react:
block - close connection and send the visible notice
warn - send the visible, warning notice (will be available soon)
alert tcp any any -> any 23 (flags:s,12;
tag:session,10,seconds;)
Przykładowe reguły (3)
• Standalone Thresholds
– Limit logging to 1 event per 60 seconds:
threshold gen_id 1, sig_id 1851, type
limit, track by_src, \
count 1, seconds 60
– Limit logging to every 3rd event:
threshold gen_id 1, sig_id 1852, type
threshold, track by_src, \
count 3, seconds 60
– Limit logging to just 1 event per 60 seconds, but only if we
exceed 30 events in 60 seconds:
threshold gen_id 1, sig_id 1853, type
both, track by_src, \
Przykładowe reguły(4)
• Rule Thresholds
– This rule logs the rst event of this SID every 60 seconds.
alert tcp $external_net any -> $http_servers $http_ports \
(msg:"web-misc robots.txt access"; flow:to_server, established; \
uricontent:"/robots.txt"; nocase; reference:nessus,10302; \
classtype:web-application-activity; threshold: type limit, track \
by_src, count 1 , seconds 60 ; sid:1000852; rev:1;)
Przykładowe alerty (1)
[**] [1:2517:13] IMAP PCT Client_Hello overflow
attempt [**]
[Classification: Attempted Administrator
Privilege Gain] [Priority: 1]
11/17-13:48:06.347371 0:90:F5:29:32:3F ->
0:4:96:1B:BF:C0 type:0x800 len:0x76
150.254.130.196:32782 -> 150.254.30.30:993 TCP
TTL:64 TOS:0x0 ID:33172 IpLen:20 DgmLen:104 DF
***AP*** Seq: 0xBF224CAF Ack: 0x3952E434 Win:
0xF8E0 TcpLen: 32
TCP Options (3) => NOP NOP TS: 11153690 372279301
[Xref =>
http://www.microsoft.com/technet/security/bulle
tin/MS04-011.mspx][Xref =>
http://cve.mitre.org/cgibin/cvename.cgi?name=2003-0719][Xref =>
http://www.securityfocus.com/bid/10116]
Przykładowe alerty (2)
Agenda
• Trochę teorii
• Analiza i korelacja
danych
• Snort – standard de facto
• Wizualizacje i raporty
• Aplikacje zarządzające
• Podsumowanie
Narzędzia do wizualizacji
• SnortALog
http://jeremy.chartier.free.fr/snortalog/
• ACID
http://www.andrew.cmu.edu/user/rdanyliw/snort/snortac
id.html
• BASE
http://secureideas.sourceforge.net/
• SnortReport
http://www.symmetrixtech.com/download.html
• Inne
SnortALog (1)
• Tworzy raporty w plikach HTML, PDF i
tekstowych
• Generuje grafiki w formacie GIF, PNG
lub JPG w przypadku raportów w HTML
• CLI (Command Line Interface) i GUI
(Graphic User Interface)
• Współpracuje z logami Syslog-a,
obsługuje alerty Snort-a w trybach Fast i
Full
SnortALog (2)
• Works with all Snort preprocessor
(spp_stream4, spp_portscan, spp_decoder,
flow, flow-portscan ...)
• Has the possibility to link the Snort signature
to the web reference attack description
• Works with "-I" Snort option to specify an
interface and add report
• Works now with "-e" Snort option (Display the
second layer header info)
• Uses a specific plugin for generating your own
reference Snort rules
SnortALog (3)
• Can specify order (ascending or descending)
• Can specify the number of occurrences to
view
• Can resolve IP addresses and domains
• Add colors for the best visibility
• Possibility to do filtering (if you only want a
specific IP source or high severity snort logs)
SnortALog (4)
• Works with CheckPoint Fw-1 (4.1 and NG) in
syslog and fw logexport command
• Works now with CheckPoint Fw-1
SmartDefense
• Works with Netfilter and IPFilter syslog logs
• Works with Netfilter and PFilter syslog logs
• Works now with syslog CISCO PIX logs
(Thanks to Edwin)
• Works on Windows box (basic option: no
graph)
• Works with Lucent Brick Firewall logs
SnortALog instalacja
1) Sprawdzamy, czy mamy wymagane
biblioteki
–
grafika:
•
•
•
–
generacji raportów w PDF:
•
•
–
htmldoc-1.8.23-source.tar.gz
HTML-HTMLDoc-0.07.tar.gz
GUI :
•
•
•
–
GD-1.19.tar.gz do generacji wykresów w formacie Gif
GDGraph-1.39.tar.gz
GDTextUtil-0.85.tar.gz
Moduły i kod Tk dla Perl/Tk.
Tk-800.024.tar.gz
perl-Tk-800.024-2.i386.rpm
baza Whois:
•
Net-Whois-IP-0.50.tar.gz
SnortALog instalacja(1)
2) Pobieramy źródła:
wget http://jeremy.chartier.free.fr/
/snortalog/snortalog_v2.4.0.tgz
3) linux# tar –zxvf snortalog_v2.4.0.tgz
4) cd snortalog_v2.4.0
5) ./configure
6) make
7) make install
SnortALog (opcje)
• cat logs.file |
./snortalog.pl -r –c –o
raport.html –g jpg –
report
• Opcje:
-x Mode GUI
-r Resolve IP adresses
-w Consult Whois DataBase
(Slow down process)
-c Resolve domains (Very
slow process)
-i Inverse the result
-n Specify a number of line
in the result
-l Specify an output
language
-o Specify a HTML or PDF
file
-g Graph output format
-file Specify an input alert
log file
...
• Raporty:
-report
-src
-dport
-hour_attack
...
Przykłady wizualizacji (1)
• SnortALog raport
Agenda
• Trochę teorii
• Analiza i korelacja
danych
• Snort – standard de facto
• Wizualizacje i raporty
• Aplikacje zarządzające
• Podsumowanie
Aplikacje zarządzające
• SnortCenter
http://users.pandora.be/larc/index.html
• IDS Policy Manager (Windows)
http://www.activeworx.org/programs/idspm/
/onlinehelp/idspm.htm
• IDScenter (Windows)
http://www.engagesecurity.com/products/idscenter
• HenWen (Mac OS X)
http://sourceforge.net/projects/henwen/
SnortCenter
• System zarządzania
• Agent (sensor agent)
SnortCenter (1)
SnortCenter(2)
SnortCenter(3)
SnortCenter(4)
IDS Policy Manager (1)
IDS Policy Manager(2)
IDS Policy Manager(3)
IDS Policy Manager(4)
IDS Policy Manager(5)
IDS Policy Manager(6)
IDS Policy Manager(7)
IDS Policy Manager(8)
IDS Policy Manager(9)
IDS Policy Manager(10)
Podsumowanie
• IDS a IPS – wykrywanie i
zapobieganie...
• Analiza danych – czyli jak
wykryć, że się coś dzieje,
kiedy się dzieje...
• 3x Snort
• Maciej Miłostan, e-mail:
Maciej.Milostan@
cs.put.poznan.pl
– Snort=dobry i darmowy...
– Snort=wiele aplikacji...
– Snort=wciąż rozwijany...
• Wizualizacja=SnortALog
• Zarządzanie=IDS Policy
Manager| |[SnortCenter]
DZIĘKUJĘ ZA UWAGĘ
© Maciej Miłostan