PRADS PASSIVE REAL-TIME ASSET DETECTION SYSTEM Edward Fjellskål & Kacper Wysocki
Hvem er vi? Edward Fjellskål Redpill Linpro (4år, 3mnd) Første datamaskin i 1983 Siv.Ing IKT Linux og sikkerhet fra 98 Nettverks overvåkning Forensics Penetrasjons testing Kacper Wysocki Redpill Linpro (1år) Født 31337 B.A. Comp. Sci Norman Anti-Virus Kernelpatching '01 Pakkesniffing Clusters
Hvorfor PRADS Finnes frie verktøy som gjør lignende Vanskelig å kombinere for å gjøre en kjapp avstemming Ikke laget for store nettverk eller trafikkmengder Ikke noe verktøy for lett å lage host attribute table til Snort Spennende og lærerikt
Hva er PRADS? Passive Real-time Asset Detection System Passive - Sender ikke pakker ut på nettverket Real-time - Analyserer så fort man har en pakke. Asset - Tjenere, klienter, tjenester, OS, routere m.m Oppdager og identifiserer trafikk
Hva er PRADS? Detekterer via: Hoster - ARP og IP Tjenester - UDP og TCP OS - IP(TCP/UDP/ICMP) MAC - ARP
Hva kan PRADS brukes til? Få oversikt over... Maskiner (IP) Operativsystem (Windows/Linux/Solaris/Mac/*BSD...) Tjenester (Apache, IIS, MySQL, MSSQL, SMTP XXXX...) Klienter (Firefox, Thunderbird, Skype, IE(5,6,7,8)...)
Hva kan PRADS brukes til?...så man kan: Automatisere overvåking av nettverk i konstant forandring. Bedre beskytte nettverket sitt med IDS/IPS. Policy & Compliance Vite hva man har på nettet sitt til en hver tid.
TCP fingerprinting? TCP brukes til (nesten) alt Ikke ny teknologi (nmap, p0f, SinPF, netfilter!, pf) Nmap er aktiv. (p0f kan og gjøre aktiv spørring) Aktiv skanning ikke alltid akseptert. P0f Laget som en proof of concept Fuzzing av fingerprints
TCP Fingerprinting i dybden Transmission Control Protocol: Kræsjkurs TCP er pålitelig kommunikasjon av datastrømmer
TCP Fingerprinting i dybden En typisk TCP oppkobling: 3-way handshake 1) Klient sender SYN "jeg vil prate med deg" 1) Server sender SYN+ACK "ok, jeg er klar" 1) Klient sender ACK kommunikasjon er opprettet Interessante felt allerede i første pakke!
TCP Fingerprinting i dybden Signaturer: kjente mønster Gjetter OS på grunnlag av WindowSize : TTL : DontFrag : SYNsize : Options : Quirks Fingerprints: beskriver pakken Fingerprint matcher en eller flere signaturer sig og fp er konsist, ikke leselig :-)
TCP Fingerprinting i dybden Interessante felt i første pakke Window Size Reserved field TCP Flags TCP Options Data?
TCP Fingerprinting i dybden Signaturer: kjente mønster WindowSize : TTL : DontFrag : SYNsize : Options : Quirks S4 : 64 : 1 : 60 : M*,S,T,N,W8 :. : Linux:2.6 S12:128:1:48:M*,N,N,S:.:Windows:XP SP1+ 65535:64:1:48:M1460,S:.:FreeBSD:7.0 Fingerprints: beskriver pakken [5672:64:0:60:M1430,S,T,N,W6:A] (Google bot) Fingerprint matcher en eller flere signaturer sig og fp er konsist, ikke leselig :-)
TCP Fingerprinting i dybden
TCP Fingerprinting i dybden TCP Options: WindowSize : TTL : DontFrag : SYNsize : Options : Quirks S4 : 64 : 1 : 60 : M*,S,T,N,W8 :. : Linux:2.6 MSS, SACK, TIMESTAMP, NOOP, WINDOWSCALE, EOL, ++ Les RFC'en om disse Quirks rare ting noen OS'er gjør Z: no ID, I: IP opts, U: URG flag, X: reserved, A: ACK flag, F: other flags, D: data i SYN pakke, T: ekstra timestamp, P: options etter option EOL
UDP/ICMP fingerprinting Kan kun brukes som indikasjon Lett å implementere I forhold til IP/TCP FP Ett bra alternativ om ikke hosten svarer på noen tcp porter, eller om man ikke kan fange opp noen TCP/IP SYN eller SYN/ACK pakker.
ICMP Signatur: icmp_type : icmp_code : init_ttl : dont_frag : ip_opt : ip_len : ip_flags : frag_offset : ip-tos
ARP Fingerprinting/Deteksjon Fanger opp ARP Request/Reply Registrerer MAC og IP Slår opp MAC vendor altså hvem lagde nettverkskortet
Klienter/Tjenester: Deteksjon Ser etter signaturer i trafikkstrømmen Kostbart å se på hver pakke Signatur kommer som regel i starten av en forbindelse Signaturer kan manipuleres
DEMO
PRADS - Videre C Skrive om koden (speed) Host attribute table til Snort / Nagios GUI Policy & Compliance Alarmer CVE
Takk for oss... edward@redpill-linpro.com kwy@redpill-linpro.com http://gamelinux.github.com/prads/ Spørsmål? Ja takk!