* 13 *

Innbruddsdeteksjon

Ukens faktum

De fleste sikkerhetsbrudd i høynivå organisasjoner kommer innenfra. Når du kikker etter aliens, rett ikke kikkerten bare mot stjernehimmelen!

Sålangt har vi nesten bare snakket om muligheten for å unngå innbrudd i og utnyttelse av datasystemer. Vi har sett på metoder for å verifisere identitet, begrense tilgang, kryptere beskjeder og noen softwareregler for å holde unna crackere. Nå fokuserer vi oppmerksomheten på et nytt tema: hvordan vet vi om våre sikkerhetstiltak har vært vellykkede eller ikke? Kan vi finne ut om det har skjedd sikkerhetsbrudd? Dette kalles for intrusion detection eller sikkerhetsovervåking.

I likhet med kryptering er intrusion detection systems (IDS) trendy i dataverden. IDS er interessant men noe oversolgt. En IDS er den siste komponenten man skal vurdere å kjøpe i en organisasjon, Det er ingen vits i å installere sikkerhetskamera for å se på innbruddstyver dersom du ikke har låst døra! IDS kommer ikke til å redde oss fra avanserte angrep. En sofistikert innbryter klarer alltid å lure eller ta ut et slikt system. Det beste vi kan håpe på er vel å danne oss et inntrykk av hvor mange potensielle inntrengere som prøver seg på låsen.

Intrusion detection

Hva er et innbrudd, eller forsøk på innbrudd? Dette kan være vanskelig å definere. Hva om noen prøver å logge seg inn som root en gang? Hva om noen prøver femti ganger? Port scanning, SATAN eller ISS scan? Dersom noen prøver et kjent sikkerhetshull?

Målet med innbruddsdeteksjon er å detektere innbrudd mens de pågår. Det først vi skal sørge for er selvsagt at det skal være vanskelig å komme inn i utgangspunktet. Dersom vi har gjort den jobben riktig, hvorfor er vi så bekymret for at noen skal klare å komme inn?

Innbruddsdeteksjon er en form for feildiagnose. Feilene (her i et sikkerhetssystem) skal ikke forekomme, men faktum er at de gjør det. I likhet med alle feildiagnosesystemer gir innbruddsdetektorer feil svar fra tid til annen. Slike systemer feiler på den sikre siden fordi de har en vanskelig oppgave som ingen helt har behersket. Problemet er at de registrerer for mange false positives, dvs at de roper ulv for ofte.

Det er vanskelig å automatisere denne prosessen i real time. Hva betyr real-time her? Noen angrep bruker stealth og pågår over mange timer eller dager. Andre skjer raskt. Hvordan kan vi oppdage slike overtredelser så fort som mulig? Systemet vil måtte kunne analysere og reagere fort for å detektere raske inbrudd, men ha en lang hukommelse for å kunne se de langsomme (tyven som graver tunnel inn i banken med teskje).

Hvordan skal vi slå alarm? E-mail? Hva skjer om tyven slår ut E-mail først?

Bruker fortrolighet er også et problem. Dersom et deteksjonssystem ser på alt som foregår på systemet i håpet om å finne skumle hendelser, er dette et brudd på brukeres `privacy'? Hva om mennesker aldri ser dataene som samles? Hvor trekker vi grensen mellom det akseptable og det uakseptable? Polititjenester har diskutert den i mange år!!

I 1986 skrev Dorothy Denning en artikkel som het "An intrusion detection model". Den beskriver en modell som har påvirket mye av dagens aktiviteter i feltet. Ideen er at man samler data om alt som foregår innen et datasystem, samt kommunikasjonstraffikken på nettet, og ser etter mistenkelige signaturer. Hva er en signatur?

Merk at det er umulig å analysere nettverkstrafikk når trafikken er kryptert. Den type analyse har ikke mye fremtid (IPv6). Idag prøver IDS å sette sammen fragmenterte pakker for å få med seg hele samtaler og analysere innholdet. Dette krever enorme CPU ressurser. Pakker mistes og deteksjonssystemene lures. De har sannsynligvis bugs som kan utnyttes av potensielle inntrengere.

Det finnes to strategier for innbruddsdeteksjon:

Hva er mistenkelig? Den avgjørelsen krever en stor kunnskapsbase over ting som mennesker allerede har klassifisert som suspekte. Signaturene er spesifikke for enhver OS. Det betyr at vi kan vente å kunne kjøpe fra hylla til NT og Solaris, men ikke stort annet. Databasene må oppdateres hele tiden.

IDS can detektere noen få ting ganske bra, men metoden er ikke mer avansert enn da militæret førte sensur på post under krigen. Hvordan kan vi kunne hver eneste protokoll? Hva med meta-protokoller som RPC og SMB?

Anomaly detection

En interessant ide som kan brukes både i feildiagnose generelt og i innbruddsdeteksjon er anomaly detection. Her ser vi etter alt som ser unormalt ut. Det kan bety unormal traffikk, mønstre i kjerneaktivitet eller i statistiske profiler av systemet.

Vi trenger en metode for å spore mønstre i statistiske datamengder. Nevrale nettverk har blitt brukt til dette, men ikke uten problemer. Der er problemet at ingen helt forstår hvordan nevrale nettverk virker: de klassifiserer informasjon ved å plassere dem i grove kategorier. Mens de gjør det, kaster de mye av detaljene slik at mesteparten av informasjonen blir borte. Nevrale nett må dresseres til å kjenne igjen mønstre ved å vises hva som er "normalt" på forhånd. Deretter kan de svitsjes over i produksjonsmodus for å finne anomalier. Dette kan føre til pinlige problemer. Hvordan vet vi hva normalt er i utgangspunktet?

Anomaly detection er et uløst problem, men det foregår mye forskning innen området. Det er et mer interessant problem enn regel-basert intrusion detection fordi det har muligheten til å løse noe generelt. En ulempe er at systemene må analysere data over lange perioder, og dette kan kreve mye plass.

Port scanning

En vanlig fremgangsmåte for crackere å finne ut informasjon om et nettverk på er å bruke en port scan. En port scanner er et program som forsøker å koble seg til alle portene ved alle maskinene i et nettverk: 1,2,3,4....5000... osv. Ved å se på hvilken respons som kommer fra en maskin kan programmet avgjøre hvilke tjenester som kjører på hvilke maskiner. Ofte sender servere versjonsinformasjon tilbake, slik at crackere kan se nøyaktig hvilken versjon av server software som kjører, og identifisere kjente sikkerhetshull!

Port scannere er fritt tilgjengelige på nettet. nmap er et slikt program. Tidlige port scannere kunne detekteres når de kontaktet ubrukte porter, eller besøkte alle porter etter tur i en sekvens. I dag bruker programmer såkallt `stealth scans'. En stealth scan foregår over lang tid, med random rekkefølge på portene, slik at disse er vanskelige å oppdage.

En port scan ser slik ut:
host% nmap 192.0.2.*

Starting nmap V. 2.07 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Host   (192.0.2.0) seems to be a subnet broadcast address (returned 23 extra pings).  Skipping host.
Strange error from connect (101):No ports open for host  (192.0.2.0)
Interesting ports on cadeler30-gw.uninett.no (192.0.2.1):
Port    State       Protocol  Service
23      open        tcp        telnet          
79      open        tcp        finger          
6001    open        tcp        xwin            

Interesting ports on sigmund.iu.hio.no (192.0.2.2):
Port    State       Protocol  Service
9       open        tcp        discard         
13      open        tcp        daytime         
37      open        tcp        time            
79      open        tcp        finger          
80      open        tcp        http            
111     open        tcp        sunrpc          
487     open        tcp        saft            
515     open        tcp        printer         
706     open        tcp        unknown         
751     open        tcp        kerberos_master 
1024    open        tcp        unknown         
1025    open        tcp        listen          
2003    open        tcp        cfingerd        
2049    open        tcp        nfs             
5308    open        tcp        cfengine        
6000    open        tcp        xterm           

....

Spesifikke alarmer

Vi kan alltid rigge opp alarmer på spesifikke objekter som avspeiler måten de brukes på. F.eks. dersom noen redigerer passordfilen uten å gå via et spesielt opplegg kunne man slå alarm...

Computer immune systems

Det er en edruelig tanke at det mest effektive innbruddsdeteksjonsystem vi vet om idag er i menneskekroppen. Bare en av ti-millioner bakteria og virus klarer å komme forbi kroppens grensekontroll. Av disse er mange drept av NK (natural killer) celler. De resterende blir siktet av spesifikke lymfceller (B og T celler) som kan gjenkjenne noe av størrelsesorden 1012 forskjellige objekter. Selv med en slik mønsterbase trenger vi leger for å helbrede oss!

Immunsystemet har vært inspirasjonen for flere grupper som jobber med datasikkerhet. Forskere ved New Mexico universitet har prøvd å oppdage mistenksomme aktiviteter ved å lete etter mønstre med kjernekall. Dette tillater en å oppdage at et program blir utnyttet, uten å bli helt byttet ut (f.eks. vha buffer overflow). Trojanske hester kan oppdages ved hjelp av MD5 sjekksummer osv.

Noen intrusion detection verktøy

Ukens tanke

Det store problemet med intrusion detection er at IDS i seg selv kan bli et mål for angrep. IDS må jobbe hardt, på grensen av det som er mulig. Det er ikke vanskelig å lure dem eller angripe dem med Denial of Service angrep.

Back