Nowoczesne systemy
wykrywania włamań
komputerowych
Krzysztof Zaraska
< kzaraska @ student . uci . agh . edu . pl >
Prelude Core Team
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 2
Plan
●
Co to jest IDS i do czego służy
●
Podział
●
Wybrane problemy i rozwiązania techniczne
–
Snort
–
Prelude IDS
●
Prelude IDS jako zintegrowany system zarządzania
bezpieczeństwem
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 3
Przyczyny problemów z bezpieczeństwem
●
Błędy w...
–
sprzęcie
–
systemach operacyjnych
–
bibliotekach
–
aplikacjach
–
konfiguracji
●
Rosnący stopień złożoności i ,,usieciowienia''
systemów informatycznych
●
Nieadekwatne (błędne, brak...) potraktowanie
zagadnień bezpieczeństwa w protokołach
sieciowych
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 4
Troszkę terminologii...
●
luka (vulnerability)
●
sytuacja (błąd programistyczny lub konfiguracji), który ma
potencjalne implikacje dla bezpieczeństwa systemu
●
exploitable vulnerability
●
luka, o której wiadomo, że może być wykorzystana do
przełamania zabezpieczeń systemu
●
eksploit (exploit)
●
sposób wykorzystania luki do przełamania zabezpieczeń
●
incydent (incident)
●
akt przełamania zabezpieczeń
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 5
Co z tym zrobić?
●
Ochrona systemów informatycznych może być
podzielona na 4 główne obszary:
–
Wyszukiwanie luk (vulnerability assessment)
●
...oraz ich łatanie
–
Wykrywanie włamań (intrusion detection)
–
Zapobieganie włamaniom (intrusion prevention)
–
Obsługa incydentów (incident handling)
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 6
Skoro wiemy, gdzie są luki, to po co
wykrywanie włamań?
●
Może nie być możliwości załatania luki z powodu:
–
braku łatki
–
braku możliwości nałożenia łatki
●
z powodów technicznych
●
z powodów organizacyjnych (maszyna poza naszą kontrolą)
●
Możemy nie wiedzieć, gdzie są luki:
–
brak narzędzia do wyszukiwania luk
–
posiadane narzędzie może być niedokładne
●
np. nie znajdzie serwera WWW na porcie 8765
–
posiadane narzędzie może nie wykrywać danego typu luki
–
mogliśmy zapomnieć o przeskanowaniu fragmentu sieci
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 7
Co to dokładnie jest IDS?
●
Intrusion Detection System
●
IDS jest narzędziem pomocniczym dla
administratora.
●
Jego zadaniem jest kontrola działania systemu
celem wykrycia prób przełamania zabezpieczeń
●
Może posiadać możliwość zapobiegania wykrytym
atakom
–
ewolucja IDS -> IPS (Intrusion Prevention System)
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 8
Czy IDS/IPS zapewnia bezpieczeństwo?
●
NIE!
–
...chociaż producenci mogą twierdzić co innego
–
...bo IDS-y też są zawodne!
●
Można zaobserwować ciekawą ewolucję
terminologii:
Bezpieczeństwo informatyczne
(information security, computer security)
Zarządzanie ryzykiem informatycznym
(threat management, risk management)
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 9
Jak można wykryć włamanie?
●
O! jakiś 1337k1d zrobił nam nową stronę WWW!
●
Czemu jest jest 178 wpisów ,,authentication failure''
w /var/log/security ?
●
Hm, MD5 z /bin/ls jest inne niż wczoraj
●
Czemu serwer Ani wysyła 100Mbit/s pakietów UDP
na port 1434?
●
Czemu bind chce uruchomić /bin/sh?
●
Czemu jakiś klient HTTP żąda uruchomienia
cmd.exe ?
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 10
Fałszywe alarmy
●
W IDS-ach występują dwa niepożądane zjawiska:
–
fałszywe alarmy (false positives): IDS generuje alert w
wyniku zdarzenia niewinnego, ale przypominającego
włamanie
–
false negatives: podejrzane zdarzenie miało miejsce, ale
nie zostało wykryte
●
Zjawiska te stanowią poważny problem w
praktycznej eksploatacji systemów IDS
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 11
No dobrze, zróbmy jakiś podział
●
Detekcja w modelu hosta (host-based IDS, HIDS)
–
analiza logów systemowych (log watching, log analysis)
–
sprawdzanie integralności systemu plików (file system
integrity checking)
–
monitorowanie i filtrowanie wywołań funkcji systemowych
(syscalls monitoring and filtering)
●
filtrowanie -> bardzo dobre rozwiązanie IPS!
●
Detekcja w modelu sieciowym (network-based IDS,
NIDS)
–
kto z kim rozmawia...
–
co mówi...
–
jak często
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 12
Systemy hybrydowe
host-based IDS
network-based IDS
}
hybrid IDS
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 13
System hybrydowy w praktyce
●
Prelude IDS (http:// www. prelude-ids. org/ )
●
Oddzielne moduły (sensory) realizujące detekcję w
modelu hosta lub sieciowym, przesyłające dane we
wspólnym formacie do modułu nadrzędnego
HIDS Sensor
NIDS Sensor
HIDS Sensor
Manager
Dalsza
analiza
●
Wygoda: wszystkie dane w jednym miejscu i takim
samym formacie
●
Trudności związane z definicją i implementacją
wspólnego formatu danych dla sensorów NIDS i HIDS
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 14
Podział ze względu na metodę detekcji
●
Sygnatury (Signature-based NIDS, HIDS)
–
najpopularniejsze
–
relatywnie proste w implementacji
–
nie wykrywają nieznanych ataków
●
Wykrywanie anomalii (Anomaly detection)
–
Analiza protokołów (NIDS)
●
trudna implementacja
●
dobre rezultaty
–
Metody statystyczne (NIDS, HIDS)
●
alarm po wykryciu zdarzenia mało prawdopodobnego
●
konieczność uczenia
●
Inne techniki
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 15
Sprawdzanie integralności systemu plików
●
Jeżeli ktoś się włamał, to pewnie pozmieniał jakieś
pliki...
●
Tworzymy bazę danych z rozmiarami, wartościami
MD5, SHA1, ... interestujących plików w systemie
●
Weryfikacja:
–
porównujemy pliki na dysku z informacjami w bazie
–
jeżeli jest różnica, to znaczy że plik został zmieniony
●
Problemy praktyczne:
–
bazę danych trzeba trzymać w bezpiecznym miejscu
–
weryfikacja jest wiarygodna jeśli mamy dobry kernel,
biblioteki i samo narzędzie (najlepiej bootować z CD)
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 16
Co to właściwie jest sygnatura?
●
sygnatura (signature) – cecha charakterystyczna
eksploita umożliwiająca rozpoznanie jego działania
–
GET ../../../../../winnt/system32/
cmd.exe
HTTP/1.0
●
reguła (rule) – informacja konfiguracyjna dla
systemu IDS, złożona z
sygnatury
i
informacji
sterujących
(np. jaki atak zgłosić w momencie
rozpoznania sygnatury)
●
alert
tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80
(msg:"WEB-IIS cmd.exe access";
flags: A+; content:"cmd.exe";
nocase;
classtype:web-application-attack; sid:1002; rev:2;)
●
w języku potocznym pojęcia te bywają utożsamiane
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 17
Tworzenie regułek na podstawie sygnatur
●
Prelude LML – moduł Prelude IDS monitorujący logi
systemowe
–
zdarzenie:
Mar 18 15:00:01 lhotse sshd[6833]: Failed
password
for root from
192.168.11.2
port
49246
ssh2
–
reguła (sygnatura w polu regex):
regex=sshd.+: Failed
(\S+)
for root from
([\d\.]+)
port
(\d+)
\s*
(ssh2)?
;
class.name=
SSH Remote root logging failed
;
impact.description=
Someone tried to login as root from
$2
:
$3
using the
$1
method;
source.node.address.category=
ipv4-addr
;
source.node.address.address=
$2
; source.service.port=
$3
;
source.service.protocol=
tcp
; target.service.port=
22
;
target.service.protocol=
tcp
;
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 18
Alert wygenerowany na podstawe reguły z
poprzedniego slajdu
* Alert:
ident=121
* Classification type:
unknown
* Classification:
SSH Remote root logging failed
[...]
* Analyzer model:
Prelude Log Monitoring Lackey
* Analyzer version:
0.8.2
* Analyzer class:
Host based Intrusion Detection System
[...]
* Impact description:
Someone tried to login as root from
192.168.11.2
:
32775
using the
password
method
*** Source information ********************************************************
* Source spoofed:
unknown
* Node[
unknown
]:
* Addr[
ipv4-addr
]:
192.168.11.2
* Service: port=
32775
protocol=
tcp
*** Target information ********************************************************
* Target decoy:
unknown
* Service: port=
22
protocol=
tcp
* Target decoy:
unknown
* Node[
unknown
]: name:
lhotse
* Process: pid=
0
name=
sshd
**** Additional data within the alert ******************************************
*
Log received from: /var/log/auth
*
Original Log:
Mar 18 16:05:52 lhotse sshd[7012]: Failed password for root from 192.168.11.2
port 32775 ssh2
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 19
Troszkę o monitorowaniu logów
●
Logi systemowe są bardzo cennym źródłem
informacji o pracy systemu
–
informacje od procesów użytkownika
–
informacje od kernela
●
jeżeli kernel chce poinformować o próbie włamania, najprościej
może to zrobić poprzez mechanizm logowania!
–
praktycznie każdy program można zmusić do logowania
do pliku bądź do sysloga
●
PROBLEM:
–
jeżeli napastnik zdobędzie odpowiednio wysoki poziom
uprawnień, może skasować lub ,,wyczyścić'' logi
–
konieczność jak najszyszego odczytania danych i
przesłania alertów w bezpieczne miejsce
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 20
Troszkę o monitorowaniu logów (2)
●
Zasadniczym problemem jest określenie kiedy w
monitorowanym pliku (plikach) pojawią się nowe
dane:
–
metoda najprostsza (i najgorsza):
while (1)
{
if ( new_data_in_file )
process_data();
sleep(1);
}
–
powiadamianie przez jądro:
●
dnotify(), epoll(), kqueue()
●
FAM
–
napisać własny serwer syslog
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 21
Troszkę o monitorowaniu logów (3)
●
Zapobieganie modyfikacji logów:
–
plik z atrybutem append-only
–
logowanie na inny komputer
●
Wykrywanie modyfikacji logów:
–
sprawdzenie daty i rozmiaru, ... - bardzo niedoskonałe!
–
algorytm PEO
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 22
Algorytm PEO (msyslog)
●
PEO = Primer Estado Oculto
●
Start:
–
Generujemy losowe K
0
i usuwamy z systemu
●
Po otrzymaniu i-tego wpisu do logu (D
i
) liczymy:
–
K
i
= H(K
i-1
, D
i
)
●
Weryfikacja:
–
V
0
=K
0
–
V
j
=H(V
j-1
, D
j
)
–
czy V
n
== K
n
?
Na podst.: E. Kargieman, A. Futoransky ''VCR and PEO revisited''
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 23
Prelude LML – architektura
Źródło: Y.Vandoorselaere, L.Oudot ''Prelude – un Systeme de Detection d'Intrusion hybride opensource''
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 24
Sygnatury w systemach NIDS
●
Ogólna koncepcja jest analogiczna:
–
poszukujemy pakietów zawierających określone ciągi
znaków, i/lub mających określone właściwości (adres
nadawcy, odbiorcy, TTL, flagi, ...)
●
Implementacja jest o wiele trudniejsza:
–
wymagana duża wydajność rozwiązania
–
istnieją techniki ''ukrywania'' danych w pakietach przed
systemami IDS
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 25
Snort
Src ANY
Dst HOME_NET
Proto TCP
Src_P ANY
Dst_P 21
Src ANY
Dst HOME_NET
Proto TCP
Src_P ANY
Dst_P 23
Src ANY
Dst HOME_NET
Proto TCP
Src_P ANY
Dst_P 80
flags: A+
content:
''.forward''
flags: A+
content:
''cwd ~root''
flags: A+
content:
''_RLD''
flags: A+
content:
''to su root''
flags: A+
uricontent:
''.ida''
flags: A+
uricontent:
''ps%20'
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 (msg:"WEB-IIS
cmd.exe access"; flags: A+; content:"cmd.exe"; nocase; classtype:web-
application-attack; sid:1002; rev:2;)
RTN
OTN
Na podst.: N.Desai, Increasing performance in high speed NIDS
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 26
Prelude NIDS
IPD=IP1
IPD=IP2
PortD
=1..1024
PortD
=80
TTL>1
R1
R3
PortD
=23
TTL>1
PortD
=1..1000
PortD=
1000..1024
R2
R3
R3
R4
Jeśli test ma wartość...
●
PRAWDA - przejdź do syna
●
FAŁSZ – przejdź do brata
Priorytety testów są stałe
Każdy test jest wykonywany tylko raz
Algorytm nie zatrzymuje się po
pierwszym dopasowaniu
Na podst.: J. Brebec, Detection d'Intrusion – Prelude: Detection et Signatures
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 27
Prelude NIDS i Snort – porównanie
●
J. Brebec (twórca silnika sygnatur w Prelde ), UAB,
2001 r., przy 1080 regułach:
–
Średnia ilość testów na pakiet:
●
Snort = 350
●
Prelude = 55
–
Zajętość pamięci
●
Snort = 6 MB
●
Prelude = min. 13 MB
–
Wykorzystanie CPU (Prelude = 100%)
●
ok. 1 Mbit/s: Snort = 133%
●
9Mbit/s: Snort = ok. 400%
●
''Wyniki te mogą nie być reprezentatywne [...] oba produkty mają
różne architektury.”
Na podst.: J. Brebec, Detection d'Intrusion – Prelude: Detection et Signatures
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 28
Snort-NG: drzewa z optymalizacją
Zródło: C.Kruegel, T.Toth, Automatic Rule Clustering for improved, signature-based Intrusion Detection
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 29
Snort i Snort-NG – porównanie
Zródło: http://www.infosys.tuwien.ac.at/snort-ng/
Zródło: http://www.infosys.tuwien.ac.at/snort-ng/
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 30
Snort 2.0 – inne podejście do optymalizacji
Zródło: Sourcefire Inc., ''Snort 2.0 – Detection Revisited”
●
Reguły dzielone są na podzbiory
–
np. dla serwerów HTTP i klientów HTTP
–
na podstawie określenia, czy dane przesyłane są do
klienta czy do serwera i typu protokołu wybierany jest
odpowiedni podzbiór reguł do analizy
●
Ulepszony algorytm dopasowywania wzorca
●
Pojawiły się możliwości ukierunkowane na analizę
protokołu
●
10 – 20 krotne przyspieszenie działania w stosunku
do wersji 1.9 (zgodnie z literaturą firmową)
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 31
Fragmentacja – problemy
ALA_MA_KOTA
AL
MA_ KOTA
G A_
AL
MA_
A_DO_
KOTA
AL A_MA_ KOTA
Zmiana kolejności:
Reverse overlap
Forward overlap
Czy zamienić LA_ na GA_?
Czy zamienić MA_ na DO_?
Fragmentacja (segmentacja)
A_
AL
KOTA
A_ MA_
AL
KOTA
MA_ A_
Patrz też: T. H. Ptacek, T. N. Newsham, Insertion, Evasion and Denial of Service: Eluding Network
Intrusion Detection
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 32
HTTP – ukrywanie danych
●
Protokół HTTP pozwala na zakodowanie znaków
wewnątrz URI jako:
–
%XX, gdzie XX jest kodem ASCII znaku w hex
●
GET dir
%2f
index.html HTTP/1.0
–
(MS IIS) %XX%XX..., (XX to znaki sekwencji UTF-8,
również overlong(!!!))
●
GET dir
%c0%af
index.html HTTP/1.0
–
(MS IIS) %uXXXX, gdzie XXXX jest kodem Unicode
znaku
●
GET dir
%u002f
index.html HTTP/1.0
●
IDS musi zdekodować tego typu sekwencje przed
rozpoczęciem dopasowywania sygnatur (HTTP
decoding, HTTP normalization)
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 33
HTTP – ukrywanie danych (2)
●
Niektóre wersje MS IIS mają błąd pozwalający na
przejście do katalogu macierzystego w wyniku
dwukrotnego dekodowania URI:
●
http://example.com/Scripts/..
%25
5c..
%
25
5cwinnt/system32/cmd.exe?/c+dir+\
–
Rozwiązanie: wychwytywanie sekwencji kodującej znak
'%' (%25, %u0025, ...)
–
PROBLEM:
●
http
://
example1
.
com/index
.
html
●
http
://
example2
.
com
/
jump
.
cgi
?
link
=
http
%3a%2f%
2f
example1
%2e
com
%2f
index
%2e
html
●
http://example3.com/jump.cgi?link=http
%3a%2f%
2f
example2
%2e
com
%2f
jump
%2e
cgi
%3f
link
%3d
http
%25
3a
%
25
2f
%25
2f
example1
%25
2e
com
%25
2f
index
%25
2e
html
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 34
Analiza protokołu – przykład
●
Sygnatura ISS Real Secure:
SQL_SSRP_StackBo is (
udp.dst == 1434
ssrp.type == 4
ssrp.name.length > ssrp.threshold)
where ssrp.type is first-byte of packet
where ssrp.name is nul-terminated string starting at second byte
where ssrp.threshold defaults to 97
●
ISS dekoduje protokół i sprawdza czy zaszedł
powyższy warunek
●
Sygnatura zareaguje na overflow bez względu na
typ eksploita!
Zródło:http://www.securityfocus.com/archive/96/321185
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 35
Intrusion Prevention System
●
Kolejny etap ewolucji
●
Umiemy wykrywać, to spróbujmy też
przeciwdziałać...
–
w HIDS działających w jądze jest to proste
–
w NIDS jest to troszkę bardziej skomplikowane
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 36
Ewolucja NIDS -> (N)IPS
NIDS
NIDS + active response
(N)IPS
NIDS
NIDS
ALARM!
TCP RST
ALARM!
IPS
ALARM!
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 37
NIDS z odpowiedzią aktywną
●
Wysyłanie TCP RST lub ICMP Unreachable
–
Snort + flexresp
–
niska skuteczność
●
Rekonfiguracja firewalla w celu odcięcia napastnika
–
PortSentry, SnortSam, Prelude + CM
–
Problemy:
●
czas!
●
możliwość zDoS-owania siebie (self-inflicted DoS)
–
białe listy (whitelists)
–
usuwanie blokady po pewnym czasie
–
''inteligentne'' wyzwalanie
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 38
Wyzwalanie w Prelude IDS
D\S
0
1
2
3
4
0
1
3
6
9
13
1
2
4
7
10
14
2
4
7
10
13
17
Słaby atak
na bardzo
podatny cel
Silny atak na mało
podatny cel
f(D,S,C)
=
a
1
*exp(a
2
*
D
)+b
1
*exp
(b
2
*
S
)
C
*(
+k
)
●
Każdemu atakowi przypisujemy ilość punktów w
oparciu o
siłę (severity) D
ataku,
podatność
(vulnerability) S
celu i
pewność detekcji C
Źródło: V. Glaume, B. Malguy Reassemblage TCP et Contre-Mesure au sein de l'IDS Prelude
a
1
= 1
a
2
= 0.8
b
1
= 15
b
2
= 0.15
k = 15
C = 1
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 39
Prelude: CM w działaniu
Intranet
Internet
IP: 192.168.0.5
Wu-ftp exploit
Firewall daje dostęp
do serwera FTP
NIDS
Wykrycie ataku.
Wygenerowanie
alarmu.
Alert
Ocena alarmu.
Decyzja o
zablokowaniu
napastnika.
Action
request
Eksploit działa,
daje shell.
''TAKIEGO [...]!!!''
Zmiana regułek, zablokowanie
dostępu z 192.168.0.5.
Źródło: V. Glaume, B. Malguy Reassemblage TCP et Contre-Mesure au sein de l'IDS Prelude
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 40
(N)IPS
●
''Firewall oparty o system wykrywania włamań''
–
bramka między dwoma sieciami
–
każdy pakiet przepuszczamy przez wbudowany NIDS
–
jeżeli NIDS wykryje atak, kasujemy pakiet
●
Wysoka skuteczność
●
Brak ryzyka self-inflicted DoS
●
Hogwash, Snort-inline
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 41
IPS w modelu hosta
●
Właściwa implementacja w przestrzeni jądra,
sterowanie i logowanie w przestrzeni użytkownika
●
Przechwytywanie wywołań funkcji systemowych,
porównywanie z ACL i decyzja o zezwoleniu na
wykonanie funkcji lub zgłoszenie błędu
●
Może być również łączony z rozwiązaniami
przeciwdziałającymi eksploitom (PaX)
●
grsecurity, systrace
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 42
Honeypots
●
Dajmy napastnikowi coś, na co może się włamywać
i obserwujmy co robi
●
Z definicji każdy ruch sieciowy skierowany na
honeypot jest podejrzany!
●
Realizacja praktyczna:
–
wydzielona sieć
–
demon honeyd
●
Więcej informacji: http:// project. honeynet. org/
●
Bait'n'Switch:
–
kiedy IDS wykryje atak, w sposób przeźroczysty dla
klienta przekierowywujemy go na honeypot
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 43
Korelacja
●
IDS-y mają kobiecą naturę...
–
tzn. bardzo dużo gadają^W logują
●
Problemem staje się:
–
wyłowienie zdarzeń istotnych
–
znalezienie związków pomiędzy zdarzeniami
–
znalezienie związków pomiędzy zdarzeniami a
konfiguracją systemu
●
PIWI – korelacja alertów z raportem z Nessusa
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 44
Stan obecny
●
W chwili obecnej dysponujemy niezłymi
narzędziami IDS / IPS Open Source
–
...co nie znaczy, że nie może być lepiej!
●
Istotnym problemem w dużych instalacjach staje się
zmuszenie różnych narzędzi do współpracy ze
sobą:
–
różne formaty danych wyjściowych
–
brak zunifikowanych (z punktu widzenia użytkownika)
narzędzi do analizy i korelacji zdarzeń
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 45
Libprelude
Prelude IDS: obszary zainteresowania
Przesyłanie
Składowanie
Analiza
Gromadzenie
Korelacja
Nagios
Detekcja i
generowanie alertów
Libsafe
Prelude LML
Prelude NIDS
LibpreludeDB*
Prelude
Manager
Frontends
Correlation agent**
* w trakcie implementacji
** niezaimplementowane
Bro
Snort
honeyd
systrace
P
rz
ep
ływ
da
nyc
h
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 46
Prelude IDS – struktura
HIDS Sensor
NIDS Sensor
HIDS Sensor
Manager
Database
Frontend
Operator*
NIDS Sensor
Manager
* Brak w zestawie
logowanie
odpytywanie
przekazywanie
alertów
alarmowanie
centralizacja alertów/
grupowanie sensorów
IDMEF (libprelude)
SQL
np. HTTP
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 47
Prelude: sieć wielopoziomowa
Manager for Net#1
HIDS Sensor
NIDS Sensor
HIDS Sensor
NIDS Sensor
Top Manager
Manager for Net#2
Database for Net#1
Database for Net#2
Top Database
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 48
Prelude: ''Load balancing''
Switch
192.168.2.1 192.168.2.2 192.168.2.3
192.168.1.1 192.168.1.2 192.168.1.3
NIDS
NIDS
Manager
BPF:
net 192.168.1.0/24
BPF:
net 192.168.2.0/24
WAN router
Database
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 49
''Reflections on Trusting Trust''
●
Ken Thompson, Communications of the ACM Sep. '95
–
zmieniamy kompilator tak, aby:
●
jeżeli kompiluje program login umieszczał backdoor'a w kodzie
wynikowym
●
jeżeli kompiluje kompilator umieszczał w nim kod backdoor'ujący
program login, oraz kod wywołujący takie samo zachowanie
skompilowanego kompilatora
–
kompilujemy zmodyfikowany kompilator
–
rekompilujemy nim niezmodyfikowany kompilator
●
wersja skompilowana zawiera obie modyfikacje, będą one
dziedziczone przez każdą kolejną kompilację kompilatora
–
rekompilujemy program login, usuwamy zmodyfikowane
źródła z systemu
–
PROFIT!!! ;)
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 50
Pytania?
Krzysztof Zaraska / Nowoczesne systemy wykrywania włamań komputerowych / strona 51
Dziękuję
bardzo
za uwagę