Ukens faktumDe 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.
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.
- Fil eksisterer(ikke)/sjekksumfeil (Viruser, Trojanske hester)
- Filrettigheter feil
- Ulovlige prosesser/manglende prosesser
- Packet sniffers
- Covert kanaler (eggdrop, irc-bots)
- Mistenkelig traffikk
- En labb i en honey-pot.
Det finnes to strategier for innbruddsdeteksjon:
- Regel basert: systemet tester for spesifikke hendelser som er kjent som farlige eller mistenkelige.
- tatistical anomaly detection: Se etter alt som er uvanlig. Dette krever at vi samler informasjon om hva som er vanlig.
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?
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.
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!En port scan ser slik ut: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.
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 ....
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...
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.
Ukens tankeDet 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. |