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