Publicerad
Identifiera intrång - vad har hänt?
I den här delprocessen behandlas insamling samt analys av information och data för avgörande om en incident har inträffat.
Följande punkter behandlas :
- Upptäcka och identifiera en incident
- Informationsinsamling genom frågor
- Genomgång av checklista för insamling av data
- Analys av information och data
Upptäcka och identifiera en incident
Upptäckten av en incident sker vanligen genom att varningssystem - så som, antivirusskydd, IDS, IPS, brandväggar, nätverksövervakning - larmar eller att något system beter sig ovanligt t.ex., använder ovanligt mycket minne, känns väldigt segt m.m. I en del fall är det vanligt med så kallade falska positiver, vilket försvårar arbetet med att hitta ett verkligt problem. Därför är det bra att ha flera olika typer av varningssystem, om det är möjligt. Identifieringen av händelsen sker sedan genom an analys.
CER-SE har idag möjlighet att inhämta information angående infekterade eller på andra sätt komprometterade system via ett flertal olika IT-säkerhetsorganisationer som CERT-SE tillhör. Den informationen används för att kontakta och informera drabbade intressenter och parter.
Insamling samt analys av data kan antingen göras på ett ”live system” eller ett nedtaget system. Om det är möjligt så föredras ett nedtaget system. I vissa fall gällande insamlingen av data så måste vissa delar, det flyktiga datat - minne, nätverksprocesser, processer, öppna filer m.m. - samlas in från ett ”live system”.
Nedan beskrivs insamling från ett livesystem. I de fall då organisationen ska samla in bevis för att åtala den eventuella förövaren är det viktigt att vara extra försiktig, så att insamlingen lämnar så få spår som möjligt i systemet.
Vad kan CERT-SE bidra med?
Insamling av information
Insamling av data
Analys av information och data
Rekommendationer av metoder och program
Länkar till mer information
Kontaktinformation till externa aktörer inom området
Inhämtning samt analyser av information via CERT-SE:s omvärldsbevakningsprocess (MolluskNG) som bevakar sårbarheter, angrepp, komprometterade maskiner från informationskällor som t.ex:
-
Leverantörer av mjuk-/hårdvara
-
IT-säkerhetsleverantörer
-
"On-line"-forum
-
E-postlistor
Förutsättningar och terminologi
CERT-SE rekommenderar att använda statiska binärer från ett externt media vid datainsamling och analys. Detta för att försäkra att binärerna inte har blivit trojaniserade av t.ex., ett rootkit eller liknande.
Det förutsätter också att alla kommandon kan köras som root-användaren.
De kommandon som anges i dokumentet (förutom där andra källor anges) är statiska binärer som finns att tillgå från:
- HELIX Live-CD ver. 1.9
De flesta finns även förinstallerade och verifierade på WinXP, Win Server 2003 samt Ubuntu Linux 8.04.
CERT-SE rekommenderar att insamling och analyser - i den mån det är möjligt - görs på ett separat system som kan vara en forensisk arbetsstation eller annat externt system.
Vid insamling av flyktigt data från ett live-system så kan Live-CD:n monteras på Live-systemet (utan att starta upp operativsystemet) för att köra de statiska binärerna direkt från katalogen där de ligger.
Live-CD:n kan även användas för att starta en distribution som kan köras direkt från CD:n. I det fallet så får incidenhanteraren tillgång till flera verktyg och metoder som underlättar datainsamling och analys.
Forensisk arbetsstation = Specialkonfigurerat system som innehåller ett antal verktyg anpassade för forensiska undersökningar samt incidenthantering
Live-CD = CD-ROM-baserat operativsystem/distribution som kan köras direkt från CD:n
Live-system = Ett system som fortfarande är i sitt fulla bruk
Nedtaget system = Ett isolerat system
Flyktigt data = är den typen av information som försvinner om systemet måste startas om - t.ex. data som finns i minnet, i form av systemprocesser, öppna filer, nätverksprocesser m.m
Insamling av information från situationen
Genomgång av frågor kring den eventuella incidenten för att analysera läget och fastställa vilka åtgärder som är eller inte är vidtagna (glöm inte de viktigaste frågorna som finns i separat dokument).
-
Vad får organisationen att tro att systemet/organisationen är drabbad?
-
Vilka observationer är gjorda?
-
Hur upptäcktes problemet?
-
När upptäcktes problemet?
-
Var upptäcktes problemet? (fysisk placering av det drabbade systemet{outsoucing, co-loc})
-
Vem upptäckte problemet?
-
Vad är det för typ av system?
-
Kritiskt? I så fall på vilket sätt kritiskt [Sekretess | Riktighet | Tillgänglighet]
-
Kopplingar eller beroenden mot andra system?
-
Vilket OS?
-
Användningsområde eller syfte?
-
Var är systemet beläget, vilket nätverks-segment?
-
Driftas systemet av egen eller extern organisation?
-
Kan eller får systemet stänga ner?
-
Vilka åtgärder är tagna?
-
Är systemet intakt?
-
Har systemet startats om?
-
Har nätverk kopplats bort?
-
Finns det centrala eller/och lokala loggar?
-
Vilken typ av loggar finns att tillgå? (lokala, nätverk)
-
Vilka typer av systemloggar ? (IDS, FW, IPS...)
-
Kan något annat system ha drabbats?
Genomgång av checklista för insamling av data
Nedanstående kommandon finns att tillgå (som statiska binärer) från HELIX Live-CD (ver.1.9) förutom där andra källor anges. De flesta är även förinstallerade och verifierade på WinXP, Win Server 2003 samt Ubuntu Linux 8.04.
På grund av risken att systemet har blivit angripet med ett root-kit, plus, att i forensiskt perspektiv lämna så få spår som möjligt i ett live-system, bör insamlingen och analysen av datat göras med betrodda kommandon från ett externt media så som HELIX Live-CD.
Nedan beskrivs datainsamling från ett ”live system”, då är det av största vikt att vara extra försiktig så det lämnas så få spår som möjligt i systemet.
Kom ihåg att börja med att montera Live-CDn för att undvika att köra kommandon från operativsystemet.
Insamling av data
Det är viktigt att först försöka samla in flyktigt data - sådant data som försvinner om systemet startas om – till exempel data som finns i minnet, i form av systemprocesser, öppna filer, nätverksprocesser m.m. Detta för att inte missa information om någon process eller systemet av någon anledning måste startas om. En rekommendation är att så snart som möjligt spela in nätverkstrafik med en sniffer (t.ex. tcpdump) för att se vilken trafik som går ut och in till systemet.
CERT-SE har valt att samla in data enligt följande ordning:
- Minne (flyktigt)
- Nätverkstrafik (via sniffer) kan spela in trafik under hela tiden incidenten pågår
- Nätverksprocesser (flyktigt)
- Systemprocesser och minne (flyktigt)
- Öppna filer, registerinformation (flyktigt)
- Ovanliga filer
- Loggfiler
- Konton och användare
- Övriga ovanligheter
Nätverkstrafik
-
Win:
- c:\> wireshark (tredje-parts-program) http://www.wireshark.org/
-
Linux/Unix:
-
$ tcpdump -nnntti eth0 -w /tmp/networktraffic.pcap
-
$ lsof -i tcp
-
Nätverksprocesser
Finns det ovanliga nätverksuppkopplingar mot andra system?
Kontrollera om systemet lyssnar på ovanliga portar eller har nätverkssessioner mot ovanliga system på ovanliga portar.
-
Win:
- c:\> netstat -ano (listar PID, öppna lyssnande portar samt pågående uppkopplingar mot andra system)
-
Linux/Unix:
-
$ netstat -anp (listar PID, program, öppna lyssnande portar samt pågående uppkopplingar mot andra system)
-
$ lsof -i tcp
-
Är det ovanligt många nätverksuppkopplingar eller hög nätverkslast på systemet?
För att leta efter indikationer på ett intrång är intressant att se om om nätverket är/har haft ovanligt mycket last under den senaste tiden.
-
Win:
- c:\> netstat -s -p tcp
-
Linux/Unix:
-
$ netstat --statistics --tcp
-
$ netstat -m
-
Finns det några nya tjänster som lyssnar på ovanliga portar?
Andra indikationer på att något ovanligt är på gång är om systemet lyssnar på ovanliga portar som det vanligtvis inte lyssnar på.
-
Win:
- c:\> netstat -an | findstr LISTEN
-
Linux/Unix:
-
$ netstat -l
-
$ netstat -an | grep LISTEN
-
Hur ser nätverks- och routingkonfigurationen ut på systemet?
Fler indikationer på ovanliga aktiviteter kan vara om routingtabeller och annan nätverkskonfiguration har ändrats.
-
Win:
-
c:\> ipconfig /all
-
c:\> route print
-
c:\> netstat -nr
-
c:\> arp -a
-
-
Linux/Unix:
-
$ ifconfig -a
-
$ route -n
-
$ netstat -nr
-
$ arp -a
-
Är något nätverkskort (som inte borde vara det) i ”promiscous mode”?
I vissa fall kan en angripare installera en sniffer på systemet för att fortsätta attacken mot andra system. Ett sätt att upptäcka det är att leta efter nätverkskort i lyssnande läge.
-
Win:
-
Promqry 1.0 samt PromqryUI 1.0 (http://support.microsoft.com/kb/892853)
- Ovanstående program är inte förinstallerade i Windows
-
-
Linux/Unix:
-
$ dmesg |grep -i promisc
-
$ grep -i promisc /var/log/messages
-
Systemprocesser och minne
Finns det några ovanliga processer och tjänster i systemet?
Andra indikationer på ett intrång är att ovanliga processer är startade på systemet (för att ha en uppfattning bör organisationen tidigare gjort en ”base lining” av sina system, för jämförelse.
-
Win:
-
c:\> wmic process list full
-
c:\> net stat
-
c:\> tasklist /svc
-
c:\> tasklist -m
- *
-
-
Linux/Unix:
-
$ ps aux
-
$ ps -ef
-
Använder systemet ovanligt mycket minne?
Om systemet använder ovanligt mycket minne kan det vara en indikation på ett intrång.
-
Win:
- c:\> taskmgr.exe
-
Linux/Unix:
-
$ free
-
$ vmstat
-
Har systemet ovanligt hög CPU-last?
Även ovanligt hög CPU-last kan vara en indikation på ett intrång.
-
Win:
- c:\> taskmgr.exe(taskmgr.exe finns inte på HELIX Live-CD, fins installerat på XP samt Server 2003)
-
Linux/Unix:
-
$ top
-
$ vmstat
-
$ uptime
-
Öppna samt ovanliga filer
Vilka öppna filer finns på systemet?
Öppna filer kan visa på ovanligheter i systemet, eventuella processer använder dessa för att hämta information eller konfiguration.
-
Win:
- c:\> openfiles /query /v (Programmet är inte installerat som standard, det måste initieras med kommandot: c:\> openfiles /local on - som kräver omstart, vilket inte är att rekommendera vid en incident, programmet finns inte på HELIX Live-CD)
-
Linux/Unix:
- $ lsof
Finns det några nya ovanliga filer i systemet?
Här söks efter filer med ovanliga rättigheter, funktioner eller storlek, vilka kan ge en indikation på att något inte står rätt till.
-
Win:
- c:\> dir /Ac:\
-
Linux/Unix:
-
$ find / -uid 0 -perm -400 -print
-
$ find / -size +10000k -print $ lsof +L1 $ find / -name ” ” -print
-
$ find / -regex '.+[\^A-Za-z0-9(+=_-/.,!@#$%\^&*\~:;)]' -print
-
Finns det ovanliga utdelningar av filer eller andra resurser?
Leta efter ovanliga utdelade resurser för att se vem som har en session mot systemet.
-
Win:
-
c:\> net view
-
c:\> net use
-
c:\> net session
-
-
Linux/Unix:
- $ rpcinfo -p ”datornamn”
Finns det nya ovanliga program som startas automatiskt i systemet?
Kontrollera om några ovanliga program startas automatiskt på systemet, många trojaner startas automatiskt via registret eller rc-script.
-
Win:
-
c:\> wmic startup list full
-
c:\> wmic startup list brief| find /i ”hklm”
-
c:\> regedit (Leta efter referenser till ovanliga program under registernycklarna):
-
HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER, HKEY_USERS\.DEFAULT
- \Software\Microsoft\Windows\CurrentVersion\Run
\Software\Microsoft\Windows\CurrentVersion\RunOnce
-
\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
-
\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
-
\Software\Microsoft\WndowsNT\CurrentVersion\Winlogon
Linux/Unix:
- $ ls /etc/rc*.d
Är DNS-information eller hosts-filen ändrad?
Det är lätt att kontrollera host-filen för att se om DNS-konfigurationen är förvanskad, det kan vara en indikation på oönskade aktiviteter.
-
Win:
-
c:\> more c:\windows\system32\drivers\etc\hosts
-
c:\> ipconfig /displaydns
-
-
Linux/Unix:
-
$ more /etc/hosts
-
$ more /etc/resolv.conf
-
Loggfiler
Finns det några ovanliga loggposter i systemet, är några loggar raderade?
Här letar vi efter suspekta händelser, t.ex. om maskinen blivit omstartad, om några ny tjänster startats, om några tjänster/funktioner stoppats, massor av felaktiga inloggninsgförsök m.m.
-
Win:
- c:\> eventvwr.msc (leta efter suspekta meddelanden som: ”event log service was stopped”)
-
Linux/Unix:
-
$ ls -la /var/log
-
$ cat /var/log/messages
-
$ cat /var/log/syslog
-
Konton och användare
Finns det nytillagda användare och grupper i systemet?
Det är inte helt ovanligt vid ett intrång att det skapas nya användare och grupper med starka behörigheter för att en angripare åter igen ska kunna logga in på systemet. Här letar vi efter ovanliga användare och grupper.
-
Win:
-
c:\> lusermgr.msc (lusermanager finns inte på HELIX Live-CD, fins installerat på XP samt Server 2003)
-
c:\> net users
-
c:\> net localgroup administrators
-
c:\> net group administrators(leta efter nya användare i administratorgruppen eller nytillagda användare med SID 500)
-
-
Linux/Unix:
-
$ cat /etc/passwd
-
$ cat /etc/group
-
$ grep :0: /etc/passwd (leta efter användare med UID 0 eller användare i root-gruppen)
-
Övriga ovanligheter
Är några säkerhetsfunktioner (som bör vara startade) inaktiverade på systemet, t.ex. AV, FW, HIDS, loggning, uppdateringar?
Det är viktigt att kontrollera om säkerhetsfunktioner är avstängda, det kan vara en ganska stark indikation på suspekta aktiviteter på systemet.
-
Win:
-
c:\> control.exe → security center (kontrollera FW, AV, automatiska uppdateringar)
-
c:\> services.msc → event log (kontrollera om logg-tjänsten är startad)
-
-
Linux/Unix: (beror på unix-dialekt)
- Linux iptables: $ iptables -L -n
Finns det nya ovanliga schemalagda jobb i systemet?
Här kan det finnas ovanliga schemalagda aktiviteter som körs regelbundet på systemet, t.ex. keylogger-information som FTP:as någontans.
-
Win:
-
c:\> at
-
c:\> schtasks (leta speciellt efter aktiviteter som körs som SYSTEM eller utan användarnamn)
-
-
Linux/Unix:
-
$ crontab -u root -l
-
$ more /etc/crontab
-
$ at
-
Ovanligheter i användares inloggning- samt kommandohistorik?
Det går att hitta ganska mycket information genom att titta på kommandohistorik, t.ex. går det att se om en användare har installerat eller tagit bort program, startat sniffers, kompilerat program eller laddat ner suspekta filer.
-
Win:
- Vet inte om det finns någon liknande funktion i Windows
-
Linux/Unix:
-
$ last
-
$ who
-
$ more /root/.bash_history
-
Har systemet startats om nyligen?
En annan indikation på att något ovanligt har skett är om systemet har startats om utan att det det har planerats.
-
Win:
- c:\> net stats srv (leta efter raden: Statistics since...)
-
Linux/Unix:
- $ uptime
Ta fram en tidslinje från systemet (MAC-times)
Det är väldigt viktigt - för att kunna fastställa vad som har skett i systemet under en tid – att sammanställa tidstämplar från systemhändelser som t.ex. ändrade filer, nya filer, raderade filer till en tidlinje som kan följas. Tidslinjen är av största vikt för att spåra misstänkta händelser.
Att skapa en tidlinje är vanligen en tvåstegsprocess. För skapas en så kallad “body file” som innehåller temporärt data som t.ex.: filsystem, registerinformation, loggar vilket sparas ned i ett “body file”-format. För att göra detta kan man änvända verktyget fls som ingår i TSK.
Nedan visas exempel på insamling från ett Windows-system med en partition som startar på offset sector 63:
$ fls -o 63 -f windows -m / -r images/win-disk.dd > body.txt
Här ett exempel på ett Linuxsystem med två paritioner (den första startar på offset sector 63 den andra på offset sector 3233664:
$ fls -o 63 -f linux -m / -r images/lin-disk.dd > body.txt
$ fls -o 3233664 -f linux -m /var/ -r images/lin-disk.dd >> body.txt
Nästa steg är att skapa en tidslinje utifrån datat som verktyget fls har genererat. Detta kan göras med verktyget mactime även det en del av TSK.
Nedan visas ett exempel som läser body.txt och tar fram all aktivitet i filsystemet sedan 2008-03-01
$ mactime -b body.txt 2002-03-01 > filnamn2008-03-01.txt
Det finns även möjligheter att skapa en summerad indexfil vilken kan importeras som en graf i ett kalkylblad och grafas för att enklare se misstänkta händelser:
$ mactime -b body.txt -d -i hour data/tl-hour-sum.txt > timeline.txt
Analys av insamlad information och data
I ett första steg så analyseras information och data för att faställa om en incident verkligen har inträffat eller inte. Om den analysen visar att en incident har skett så går incidenthanteringsprocessen in i nästa fas. Där görs ytterligare mer insamling av data samt en grundligare analys där bevisinsamling, spegelkopia av hårddisk samt sökning efter information om angripare sker.
Det data som samlats in under den här delprocessn kommer även att analyseras i nästa steg.
Rekommendation av metoder och program för att analysera situationen
-
Använd pålitliga program för analys av systemet för att upptäcka en eventuell incident. (HELIX Live-CD)
-
Använd befintliga installerade program för analys av systemet
-
Tredjeparts-program för vidare analys av systemet
-
Windows:
-
Linux/Unix:
-
lsof (förinstallerat i de flesta dialekter/distributioner)
-
-
Länkar
Länkar till ytterligare extern information inom delprocessen
http://www.zeltser.com/network-os-security/security-incident-survey-cheat-sheet.html
http://sans.org/resources/winsacheatsheet.pdf
http://sans.org/resources/linsacheatsheet.pdf