Ohje 1/2007 Haittaohjelman saastuttamaksi epäillyn Windows-järjestelmän tutkinta

Tämä ohje on tarkoitettu Windows NT -pohjaisella (kaikki Windows NT-versiot, Windows 2000, Windows XP, Windows Vista) käyttöjärjestelmällä (myöhemmin Windows) varustettujen tietokoneiden käyttäjille. Tässä ohjeessa esitellään tarkistuslistamaisesti hyödyllisimpiä Windows-komentoja, työkaluja ja menetelmiä, joilla haittaohjelman aiheuttama saastuminen, tietomurto, tai muu luvaton käyttö saattaa paljastua.

Ohjeessa mainituilla menetelmillä on mahdollista havaita kohtalaisen suuri osa haittaohjelmista tai tunkeutumisista. On kuitenkin olemassa joukko haittaohjelmia ja kohdennettuja hyökkäyksiä, joiden havaitseminen vaatii hyvin korkeaa osaamistasoa eikä ole mahdollista tässä ohjeessa mainituin keinoin. Suurin osa mainituista komennoista toimii sellaisenaan tavallisessa oletusasetuksin asennetussa Windows-työasemassa ilman ylimääräisten ohjelmistojen asentamista. Komennoista pääosa toimii myös peruskäyttäjän oikeustasolla. Pääkäyttäjän (Administrator) oikeuksia vaativien komentojen kohdalla on maininta asiasta.

Ohje on kirjoitettu siten, että ohjeen lukijalta vaadittavan taustatiedon määrä kasvaa ohjeen loppua kohti edetessä. Ohjeen ensimmäiset kappaleet sopivat hyvin peruskäyttäjän luettavaksi, mutta loppupään kappaleet sopivat parhaiten lisätiedoksi edistyneille käyttäjille. Ohje tarjoaa hyvää yleistietoa kaikille tietokoneen käyttäjille, vaikka lukija ei tuntisikaan jokaista esiteltyä menetelmää tai tekniikkaa läpikotaisin.

Esiteltyjä komentoja ja työkaluja on ensisijaisesti käytettävä tietokoneen ollessa käynnistettynä ja verkkoyhteyden ollessa aktiivisena (ns. online-tutkinta). Osa esitellyistä tutkintakohteista on myös sellaisia joiden avulla voi saada hyödyllisiä tuloksia vielä tietokoneen sammuttamisen jälkeen (ns. offline-tutkinta), esimerkiksi tutkimalla saastuneeksi epäillyn työaseman kovalevyä jollain muulla työasemalla tai käynnistämällä kone erilliseltä käynnistyslevyltä. Menetelmien kohdalla on mainittu, jos niiden avulla on mahdollista saada hyödyllisiä tietoja myös offline-tutkinnassa. On syytä huomata, että käyttöjärjestelmä käsittelee (lukee, muokkaa, luo, poistaa) suurta määrää tiedostoja tietokoneen sammuttamisen ja käynnistämisen yhteydessä. Mikäli tietokoneelle halutaan online-tutkinnan lisäksi suorittaa myös perinpohjainen offline-tutkinta, tulee online-tutkinta suorittaa viipymättä ja varoen muuttamasta tutkittavan kohteen tilaa. Kun online-tutkinta on valmis eli kaikki tarvittavat tiedot on saatu kerättyä, kone tulisi sammuttaa "väkivaltaisesti" ottamalla virtajohto/akku irti, jotta esimerkiksi RAM-muistin (Random Access Memory, ohjelmien käyttämä työmuisti) osia sisältävän sivutustiedoston ei sisältö pääse turmeltumaan. Asianmukainen offline-tutkinta vaatii usein huomattavasti enemmän asiantuntemusta kuin online-tutkinta. Offline-tutkinta kannattaakin usein antaa asiantuntijan tehtäväksi. Tästä syystä tässä ohjeessa keskitytään pääasiassa online-tutkinnan menetelmiin.

Tässä ohjeessa esitellyt komennot on kätevintä antaa Windowsin komentokehotteessa (Command Prompt). Muissa kuin Windows Vistassa komentokehotteen saa käynnistettyä valitsemalla Käynnistä -> Suorita ja kirjoittamalla avautuvaan ikkunaan cmd (engl. Start -> Run -> cmd). Windows Vistassa komentokehote kannattaa avata painamalla Ctrl-Shift-Esc ja valitsemalla Tiedosto -> Uusi tehtävä (Suorita...) (engl. File -> New Task (Run...)) ja kirjoittamalla avautuvaan ikkunaan cmd. Komentojen tulosteet kannattaa ottaa talteen myöhempää tarkastelua varten, sekä mahdollista tietoturva-asiantuntijan suorittamaa analyysiä varten. Helpoin tapa on ohjata komennon tuloste tiedostoon lisäämällä sen perään suurempi kuin -merkki ja tiedoston nimi, esimerkiksi näin:

netstat -an > c:\temp\netstat-tuloste.txt

Merkintä ">" ohjaa ohjelman näytölle tulevat tulosteet ja merkintä "2>" ohjaa ohjelman virhetulosteet tiedostoon.

Sisältö
Yleistä
Haittaohjelmista yleisesti
Windows Defender
Asennetut ohjelmistot
Verkkoyhteydet
Prosessit
Tapahtumalokit
Windowsin rekisteri
Tiedostojärjestelmä
Edistyneempiä työkaluja tutkintaan
Toiminta haittaohjelman löytyessä
Lisätietoa

Yleistä

Haittaohjelmien havaitsemiseen on paitsi hyvin teknisiä, niin myös enemmän tietokoneen käyttäytymisen tarkkailemiseen nojaavia keinoja. Jos esimerkiksi tietokone käyttäytyy poikkeavasti, on syytä epäillä, että työasema on haittaohjelman saastuttama. Poikkeava käytös tarkoittaa esimerkiksi tietokoneen tai sen verkkoyhteyden hidastumista tai pop-up -ikkunoiden jatkuvaa aukeilua. Muita tyypillisiä haittaohjelmatartunnan merkkejä ovat tilanteet, joissa Windowsin tehtävienhallintaa (engl. Task Manager; avataan painamalla Ctrl-Shift-Esc) ei saa auki, tunnettujen virustorjuntayhtiöiden kotisivuille ei pääse tai www-selain ohjautuu itsestään odottamattomille www-sivuille. Myös henkilökohtainen palomuuri tai virustentorjuntaohjelma saattaa raportoida mahdollisista tunkeutumisista tai haittaohjelmatartunnoista. Vähäistä internetin suunnasta tulevaa ja palomuurin torjumaa verkkoliikennettä ei pidä säikähtää. On täysin normaalia, että palomuuri torjuu monenlaisia yhteydenotto- ja hyökkäysyrityksiä. Omalta työasemalta lähteneet ja palomuurimerkinnän jättäneet yhteydet kannattaa sen sijaan tutkia tarkemmin. On myös hyvä huomata, että nykyään monet haittaohjelmat pyrkivät piiloutumaan käyttäjältä ja niiden havaitseminen em. keinoilla on epätodennäköistä. Siksi olisi hyvä kokeilla myös seuraavissa kappaleissa esiteltyjä keinoja.

Haittaohjelmista yleisesti

Nykyisin haittaohjelmia tuotetaan yhä useammin taloudellisen hyödyn tavoittelua varten. Haittaohjelmien tuottaminen ja levittäminen, sekä niiden avulla haltuun otettujen uhrien hallinta on enenevässä määrin ammattimaisen järjestäytyneen rikollisuuden motivoimaa ja kontrolloimaa. Tämä tarkoittaa väistämättä sitä, että haittaohjelmat ovat tehokkaita, vaikeasti havaittavia, alati muuttuvia ja - ennen kaikkea - teknisesti edistyksellisesti toteutettuja. On luvallista olettaa, että hyökkääjällä on reilu tekninen etumatka puolustajaan nähden. Hyökkääjän ei tarvitse löytää kuin yksi heikko kohta – puolustajan pitäisi löytää ne kaikki. Pahin virhe, jonka puolustaja voi tehdä, on vastustajan aliarviointi.

Haittaohjelmien saastuttamien koneiden siivoamiseen tulee siis suhtautua suurella varauksella. Usein varminta on eristää työasema verkosta, alustaa (formatoida) sen kovalevy käynnistämällä työasema käynnistyslevyltä ja asentaa käyttöjärjestelmä alusta alkaen uudestaan.

Erityisesti bot-haittaohjelmien kohdalla virustorjuntaohjelmistot eivät valitettavasti aina kykene estämään, löytämään tai poistamaan tartuntaa. Haittaohjelmat ovat nykyisin usein ns. monimuotoisia eli ne muokkaavat itseään levitessään uuteen kohteeseen. Näin jokainen saman haittaohjelman yksilö on hieman erilainen kuin muut ja virustorjuntaohjelmistojen on vaikea tunnistaa niitä. Lisäksi esimerkiksi verkon ylitse leviävät haittaohjelmat (mato, worm) hyökkäävät usein työasemien verkkoa kuuntelevien palveluiden puskuriylivuotoja hyödyntämällä, jolloin haittaohjelmakoodi voidaan syöttää suoraan haavoittuvan prosessin muistiin. Näin haittaohjelmatartunta ei välttämättä näy tiedostojärjestelmässä lainkaan, kun tietokone on käynnissä. Mikäli puskuriylivuotohaavoittuvuuden sisältävä ohjelma oli ajossa pääkäyttäjä- tai SYSTEM-tason oikeuksilla, myös haittaohjelma perii tämän korotetun oikeustason.

Nykyaikaiset haittaohjelmat pyrkivät yleensä hyökkäämään ensi töikseen palomuuriohjelmiston ja virustorjuntaohjelmiston kimppuun ja lamauttamaan ne, vähintään esimerkiksi häiritsemällä virustorjuntaohjelmiston sormenjälkien päivitystä. Ajantasainen virustorjuntaohjelmisto on kuitenkin välttämätön apuväline haittaohjelmatartuntojen ennaltaehkäisyssä.

Muun muassa edellä mainituista syistä työaseman tutkimiseen on suositeltavaa käyttää myös manuaalisia menetelmiä, joita tässä ohjeessa kuvataan. Lisäksi on hyvä huomata, että internetistä löytyy paljon haittaohjelmatartuntojen välttämiseen sekä haittaohjelmien havaitsemiseen ja poistamiseen liittyvää hyvää tietoa. Myös väärää tietoa levitetään, joten sopivan kriittinen asenne on kuitenkin paikallaan.

Windows Defender

Windows Defender on Microsoftin tuottama ohjelmisto, jonka tarkoituksena on ennaltaehkäistä tietoturvaongelmia ja muun muassa auttaa käyttäjää havaitsemaan ja poistamaan mahdolliset vakoilu- tai haittaohjelmat. Windows Defender on esiasennettuna Windows Vistassa ja sen saa ladattua ilmaiseksi Windows XP Service Pack 2:een ja Windows Server 2003 Service Pack 1:een.

Windows Defender on käyttökelpoinen apuväline haittaohjelmia etsittäessä. Windows Defender tarkkailee reaaliaikaisesti Windows-järjestelmässä tapahtuvia muutoksia ja ilmoittaa automaattisesti havaitsemistaan tietoturvauhkista. Se esimerkiksi auttaa käyttäjää tarvittaessa poistamaan tai asettamaan karanteeniin havaitun haittaohjelman. Windows Defenderin reaaliaikainen suojaus kattaa muun muassa tärkeimmät Windows-järjestelmän turvallisuusasetukset, Internet Explorerin lisäosat ja asetukset, Windowsiin asennetut ajurit ja Windowsissa toimivat palvelut sekä automaattisesti käynnistyvät sovellukset. Lisäksi Windows Defenderin ohjelmistoresurssien hallinnan (Software Explorer) avulla voi esimerkiksi estää tiettyjä sovelluksia käynnistymästä Windowsin käynnistyksen yhteydessä tai estää yhteydenotot verkosta tiettyihin sovelluksiin.

Windows Defender asentuu oletuksena siten, että se päivittää haittaohjelmamäärittelynsä automaattisesti. Windows Defender voidaan myös asettaa etsimään haittaohjelmia ajastetusti. On tärkeää huomioida, että Windows Defender ei korvaa virustorjuntaohjelmistoa eikä yksinään tarjoa riittävää suojaa haittaohjelmia vastaan. Osa Windows Defenderin toiminnoista vaatii pääkäyttäjän käyttöoikeustasoa.

Asennetut ohjelmistot

Jotkin yksinkertaiset haittaohjelmat jättävät itsestään helposti havaittavia jälkiä asennettujen ohjelmistojen listaan ja muutamiin muihin paikkoihin. Siksi on suositeltavaa tutkia, mitä ohjelmistoja koneelle on asennettu tai asentunut. Asennettujen ja "oikein" rekisteröityneiden sovellusten lista löytyy komennolla Appwiz.cpl. Myös %ProgramFiles% -tiedostokansio ja HKEY_LOCAL_MACHINE\SOFTWARE rekisterihaara kannattaa tutkia. Tiedostokansioita pääsee tutkimaan esimerkiksi Windows Explorerin tai edellä esitellyn komentokehotteen avulla. Windows Explorer käynnistetään valinnalla Käynnistä -> Suorita ja kirjoittamalla avautuvaan ikkunaan explorer (engl. Start -> Run -> explorer). Windowsin rekisterin tutkintaan esitellään keinoja kappaleessa Windowsin rekisteri .

Verkkoyhteydet

Tietokoneen verkkoyhteyksien tila on syytä selvittää välittömästi, kun epäilyt saastumisesta syntyvät. Verkkoyhteyksien kehittymistä on myös syytä tarkkailla aktiivisesti, mikäli esimerkiksi edellä mainittuja epäilyttäviä viitteitä ilmenee. Verkkoyhteyksien tilaa voi tutkia seuraavassa esitellyillä komennoilla ja menetelmillä.

Rekisteröidyt ja selvitetyt osoitteet: IPCONFIG

Komento Ipconfig listaa koneen kaikki verkkokortit sekä niiden fyysiset osoitteet (ns. MAC eli Medium Access Control -osoitteet; Ethernet-lähiverkoissa työasemat yksilöidään niiden verkkokortin MAC-osoitteen perusteella) ja niitä vastaavat IP-osoitteet (Internet Protocol; internetiin liitetyt työasemat yksilöidään IP-osoitteen perusteella). Lisäksi Ipconfig-komennolla on mahdollista nähdä selvitettyjen DNS -nimien välimuisti – tästä voi olla suuresti hyötyä erityisesti botnet-verkkojen hallintapalvelimia jäljitettäessä, esimerkiksi vertaamalla nimiä ja netstat-komennon tuottamaa aktiivisten yhteyksien listaa.

Syntaksit:

ipconfig /all #Verkkoliittymät ja osoitteet
ipconfig /displaydns #Paikallinen DNS-välimuisti

Verkkoyhteydet ja verkkoa kuuntelevat palvelut: NETSTAT

Monet haittaohjelmat kuuntelevat verkkoa ja odottavat verkon kautta lisäohjeita tai lähettävät tietoa verkon ylitse. Komento Netstat listaa koneen liikennöivät ja kuuntelevat portit. Ennen Netstat-komennon käyttöä kannattaa sulkea kaikki tunnetut verkkoa käyttävät ohjelmat (www-selain, vertaisverkko-ohjelmistot), jotta verkkoliikennettä ja tulkittavaa informaatiota olisi mahdollisimman vähän.

Syntaksit:

netstat -a #Kaikki verkkoyhteydet
netstat -o #Verkkoyhteyttä käyttävien prosessien numerot
netstat -nao #Samat kuin yllä, mutta osoitteet numeerisina

Mahdollista myöhempää tutkintaa varten on suositeltavinta ottaa talteen ensisijaisesti numeeriset osoitteet, joskin silmämääräinen tarkastelu on usein helpompaa nimien avulla. Nimiä käytettäessä tulee kuitenkin huomioida, että ne ovat numerosta nimeksi selvitettyjä ns. reverse-tietueita (DNS-nimien osalta: PTR-tietueet), eivätkä välttämättä ole yhteneviä nimestä numeroksi selvitettyjen forward-tietueiden kanssa.

Onko tutkittavassa koneessa outoja verkkoa kuuntelevia palveluita? Bot-verkoissa usein käytetyt IRC -palvelimet (Internet Relay Chat; internetissä käytetty keskusteluprotokolla, jota haittaohjelmakirjoittajat käyttävät usein haittaohjelmien komentokanavana) ovat oletuksena TCP -portissa 6667 (Transmission Control Protocol; yhdessä työasemassa voi olla useampia verkkoa käyttäviä sovelluksia, jotka erotetaan toisistaan tyypillisesti TCP-porttien avulla), joskin variaatioita esiintyy joskus. Varminta on ottaa tarkkailuun kaikki yhteydet, jotka jäävät päälle vielä yleisimpien verkkoa käyttävien ohjelmien sammuttamisen jälkeen.

Verkkoa kuuntelevat portit löytyvät Local Address – sarakkeesta riveiltä, joiden tila on LISTENING. Ne voivat olla merkittynä aktiivisen IP-osoitteen tai merkinnän "0.0.0.0" alla. PID tarkoittaa yhteyttä varaavaa prosessia, jonka voi selvittää kappaleen 6 ohjeilla. Esimerkkituloste:

Proto Local Address Foreign Address State PID
TCP 0.0.0.0:6667 0.0.0.0:0 LISTENING 1234
TCP 1.2.3.4:3267 0.0.0.0:0 LISTENING 4321

Lähteekö tutkittavasta koneesta lukuisia yhteydenottoyrityksiä outoihin kohdeosoitteisiin siten, että ne ovat SYN_SENT-tilassa? Usein ne ovat myös samasta osoiteavaruudesta, joskaan eivät välttämättä aivan peräkkäisistä osoitteista. Entä onko koneesta aktiivisia yhteyksiä outoihin osoitteisiin? Aktiivinen yhteys on ESTABLISHED-tilassa ja Foreign Address-kentässä näkyy kohdeosoite:

Proto Local Address Foreign Address State
TCP 1.2.3.4:1234 4.3.2.1:6667 ESTABLISHED

Hakukone Google (www.google.fi) on hyvä työkalu liikennöivien ja kuuntelussa olevien porttien ja kohdeosoitteiden merkitystä selvitettäessä. Google-haulla voi nopeasti tarkistaa käyttääkö jokin tunnettu haittaohjelma epäilyttävältä vaikuttavaa porttia tai DNS-nimeä.

NetBIOS-nimet ja yhteydet: NBTSTAT

Joskus saattaa olla hyödyllistä tietää, mitä NetBIOS -osoitteita ja -yhteyksiä (Network Basic Input/Output System; Netbios over TCP/IP on protokolla, jota käyttäen eräät vanhemmat sovellukset kommunikoivat TCP/IP-verkon ylitse) koneesta on otettu. Nykyään Windows-työasemissa ei usein ole enää asennettuna NBT-ajureita, jolloin ao. komennot eivät toimi eikä tällöin mahdollisten haittaohjelmienkaan Netbios-yhteyksistä tarvitse suuresti kantaa huolta, poikkeuksia tähän esiintyy harvoin. Huom. NetBIOS over TCP/IP:tä kutsutaan myös lyhenteellä NBT.

Syntaksit:

nbtstat -c #NetBIOS-nimien välimuisti
nbtstat -r #NetBIOS-välimuistin tila
nbtstat -S #NetBIOS-yhteydet, numeerisina
nbtstat -s #NetBIOS-yhteydet, niminä

Esimerkkitulosteita:

NetBIOS Remote Cache Name Table
Name Type Host Address Life [sec]

------------------------------------------------------------
NIMI <20> UNIQUE 1.2.3.4 205


NetBIOS Connection Table

Local Name State In/Out Remote Host Input Output
-------------------------------------------------------------------
NIMI <00> Connected Out 1.2.3.4 2MB 146KB

Henkilökohtainen palomuuri

Jos työasemassa on ns. henkilökohtainen palomuuri (työasemapalomuuriohjelmisto), tarkista ja ota varmuuden vuoksi talteen myös kaikki sen tarjoamat lokitiedot. Talteenoton toimintatapa vaihtelee suuresti eri valmistajien tuotteiden välillä, mutta lähes kaikista henkilökohtaisista palomuureista löytyy jonkinlainen raportointitoiminto.

Prosessit

Windows-järjestelmissä suoritettavana olevat sovellukset koostuvat yhdestä tai useammasta prosessista. Käyttäjän näkökulmasta lähes jokaiseen suoritettavaan ohjelmaan, myös haittaohjelmaan, liittyy prosessi. Käyttöjärjestelmän prosessilistausta tutkimalla voi selvittää onko työasemalla käynnissä ohjelmia, joiden ei kuuluisi olla ajossa. Hyvä työkalu tähän on Windowsin tehtävienhallinta, joka aukeaa Ctrl-Shift-Esc -näppäinyhdistelmällä. Tehtävienhallinnan Prosessit-välilehti (Processes) on kiintoisa. Joskus jokin työasemaan tunkeutunut haittaohjelma saattaa estää tehtävienhallinnan avaamisen. Osa haittaohjelmista myös piiloutuu tehtävienhallinnalta, mutta näkyy muilla tavoin. Tällöin prosessien listaamiseen ja hallintaan voi käyttää esimerkiksi komentoja Tasklist ja Taskkill (em. komennot eivät löydy Windows XP:tä aikaisemmista Windows-versioista, eivätkä Windows XP Home:sta).

Syntaksit:

tasklist #Prosessilistaus
tasklist /m #Prosessit ja niiden lataamat DLL-modulit
tasklist /svc #Prosesseja vastaavat palvelut
taskkill /pid 123 #Tapa prosessi, jonka tunniste (ID) on 123
taskkill /f /im notepad.exe #Tapa väkisin prosessi, jonka nimi on notepad.exe

Tämän ohjeen kappaleessa 10 on lueteltu työkaluja (Process Explorer, PsTools, PsFile), joita voi myös käyttää muun muassa prosessien hallintaan ja tarkasteluun. Edellä mainitut työkalut toimivat useimmissa Windows-versioissa. Prosessilistauksen voi lukea lisäksi WINMSD-komennon (MSInfo32.exe, hakemistopolku mainittu alla) avulla. Mielenkiintoisia kohtia ovat Software Environment haaran alta Network Connections, Running Tasks, Loaded Modules ja Services. Em. listauksen voi tulostaa myös .nfo -tiedostoon (allaolevassa msinfo.nfo) komennolla:

"%CommonProgramFiles%\Microsoft Shared\MSInfo\MSINFO32.exe" /nfo msinfo.nfo /categories +all

Vastaavasti listauksen voi tulostaa tekstitiedostoon komennolla:

"%CommonProgramFiles%\Microsoft Shared\MSInfo\MSINFO32.exe" /report msinfo.txt /categories +all

On hyvä huomata, että Msinfo.exe:n suorittaminen voi kestää hieman totuttua pidempään. Erityisesti tulosteesta voi etsiä prosesseja, joilla on asialliselta kuulostava nimi, mutta ne on käynnistetty epätavallisista paikoista tiedostojärjestelmässä. Myös prosessi, jonka nimi vaikuttaa täysin satunnaiselta merkkijonolta, kannattaa tutkia tarkemmin. Lisäksi kannattaa tarkistaa, että järjestelmäajureihin (järjestelmäohjain, System Driver) liittyvät .sys -tiedostot eivät ole c:\windows\system32\ -hakemistossa vaan c:\windows\system32\drivers\ -hakemistossa tai c:\program files\ -hakemiston alla. Jos poikkeuksia löytyy, on hyvä tutkia tarkemmin minkä kaltaisesta ajurista on kyse.

Tapahtumalokit

Windowsin lokitoiminnallisuus ei ole alun perin tarkoitettu tietomurtojen selvitykseen eikä se toimi selvitystarkoituksessa hyvin, mutta on parempi kuin ei mitään. Kaappaus saattaa tapahtumahetkellä tai sen jälkeen aiheuttaa sivuoireita, joista jää jälkiä lokiin. Windowsin lokisovellus käynnistetään komennolla Eventvwr.msc. Lokisovelluksen käyttö vaatii pääkäyttäjän käyttöoikeustasoa. Lokisovelluksesta voi tulostaa lokitiedoston aktivoimalla jonkin lokihaaran hiirellä klikkaamalla ja valitsemalla lokisovelluksesta Toiminto -> Vie luettelo (Action -> Export List).

Turvallisuus (Security) ja järjestelmälokien (System) lisäksi myös sovellusten (Application) lokeista voi löytyä hyödyllistä tietoa. Mikäli bot-verkon kontrollikanavana käytetään kohteeseen (yleensä hyökkääjän toimesta) asennettua IRC-palvelinta, sen lokiominaisuudet on yleensä huolellisesti kytketty pois päältä. Tämä kannattaa kuitenkin varmuuden vuoksi tarkistaa.

Windowsin rekisteri (myös offline-tutkinta)

Windowsin rekisteri toimii yleisenä tietokantana, johon Widows-käyttöjärjestelmä ja sovellusohjelmat tallentavat monenlaista tietoa. Windowsin rekisterin avulla on muun muassa mahdollista käynnistää sovelluksia automaattisesti (ilman käyttäjän toimia) aina, kun työasema käynnistetään. Myös monet haittaohjelmat hyödyntävät rekisteriä käynnistyäkseen automaattisesti Windowsia käynnistettäessä. Windowsin rekisteriin pääsee käsiksi myös offline-tutkinnassa, mutta rekisterin tutkiminen on hyvä aloittaa jo työaseman ollessa päällä. Työkaluina kannattaa käyttää soveltuvin osin Windowsin rekisterityökaluja, joita ovat Regedit.exe ja Regedt32.exe. Windows Resource Kitin mukana tulee myös Reg.exe-niminen komentorivityökalu.

Erityisesti Run-, RunOnce- ja RunServices -haarat (polku mainittu alla; rekisterirakenne vaihtelee hieman eri Windows-versioiden välillä, kaikkia mainituista haaroista ei löydy kaikista Windows-järjestelmistä) kannattaa tutkia, sekä HKEY_LOCAL_MACHINE- että HKEY_CURRENT_USER -rekisterihaaroista:

\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\Load
\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\Run

Myös Services-, Internet Settings- ja Winlogon\Notify -haarat voivat olla mielenkiintoisia:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\
Winlogon\Notify\

Kattava listaus kaikista muista sovelluksia "salaa" käynnistävistä rekisteripoluista löytyy Silent Runners sivuston kautta (http://www.silentrunners.org/sr_launchpoints.html). Lisäksi esimerkiksi Windows Sysinternalsin (http://www.microsoft.com/technet/sysinternals/default.mspx) tarjoaman ilmaisen AutoRuns-työkalun avulla voi myös kätevästi tarkastella kaikkia Windowsin rekisterin kautta automaattisesti tietokoneen käynnistyksen yhteydessä käynnistymään määriteltyjä ohjelmia. Autoruns toimii kaikissa 32-bittisissä Windows-versioissa.

HUOM: Regedt32.exe:n Export-toiminteella on mahdollista tulostaa rekisteri osina tai kokonaan tekstitiedostoon siten, että mukaan tulee myös rekisteriavaimen viimeisin muutosaika! Windowsin rekisterin muokkaaminen vaatii asiantuntemusta ja ennen mahdollisia muokkaustoimenpiteitä on tärkeää ottaa rekisteristä varmuuskopio.

Tiedostojärjestelmä (myös offline-tutkinta)

Pääosa haittaohjelmista jättää jälkiä tiedostojärjestelmään, joten haittaohjelmatartuntaa epäiltäessä on syytä tutkia mitä tiedostojärjestelmästä löytyy. Suositeltavia tutkintakohteita ovat seuraavat:

%SystemRoot%\ #Yleensä C:\WINDOWS tai C:\WINNT
%SystemRoot%\System32\
%SystemRoot%\System32\drivers\etc\HOSTS
%SystemRoot%\Debug\
%ProgramFiles%\ #Yleensä C:\Program Files
%SystemDrive%\ #Yleensä C:\
%Userprofile%\Local Settings\Temporary Internet Files

Myös tiedostojärjestelmän kautta on mahdollista käynnistää sovelluksia työaseman käynnistyksen yhteydessä. Näitä tiedostoja hakemistoja ovat mm:

C:\Windows\Win.ini
C:\Windows\System.ini
C:\Documents and Settings\<käyttäjänimi>\Start Menu\Programs\Startup\
C:\Users\<käyttäjänimi>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\

Myös Default User ja All Users profiilit sisältävät joskus kiinnostavaa tietoa. Eräät SYSTEM-oikeuksin toimivat haittaohjelmat käyttävät niitä työtilanaan. Muissa kuin Windows Vistassa profiilit löytyvät hakemistopoluista:

C:\Documents and Settings\Default User\
C:\Documents and Settings\All Users

Windows Vistassa vastaavat polut ovat:

C:\Users\Public\
C:\Users\Default\

Yleissilmäys tiedostojärjestelmään: TREE

Komento Tree tuottaa nopean yleissilmäyksen tiedostojärjestelmän rakenteesta ja koneessa olevista tiedostoista. Tutki, onko jotakin uutta ja outoa ilmestynyt.

Syntaksit:

tree C:\ /a #Listaa kansiorakenteen
tree C:\ /a /f #Kansiorakenne + tiedostot

Perinpohjainen tiedostolistaus: DIR, lukuisine optioineen

Dir-komennolla on mahdollista kaivaa monenlaisia mielenkiintoisia tietoja epäilyksenalaisista tiedostoista.

Syntaksit (tulosteet kannattaa ohjata tiedostoon):

dir /s /-c /tc /od * #Tiedostot luontiajan mukaan järjestettynä
dir /s /-c /ta /od * #Tiedostot viimeisen käyttöajan mukaan
dir /s /-c /tw /od * #Tiedostot viimeisen muokkausajan mukaan
dir /s /-c /q * #Listaa tiedostojen omistajan

dir /s /-c /tc /od /ah * #Samat kuin edellä piilotiedostoille
dir /s /-c /ta /od /ah *
dir /s /-c /tw /od /ah *
dir /s /-c /q /ah *

Tiedostojen NTFS-käyttöoikeudet: CACLS

Cacls näyttää ja muokkaa tiedostojen käyttöoikeuksia.

Syntaksi:

cacls C:\ /T /C #Listaa koko C-levyn oikeudet

HUOM: Cacls on ajettava riittävän korkealla käyttöoikeustasolla, jotta komento näyttäisi kaikkien tiedostojen käyttöoikeudet. Windows Vistassa kannattaa käyttää Icacls -nimistä kehittyneempää komentoa edellä mainittuun tapaan eli samoilla optioilla.

Edistyneempiä työkaluja tutkintaan

Oletusasetuksin asennetun Windowsin vakiokomennoilla ja työkaluilla on työlästä hankkia kaikkea informaatiota, jota hieman perinpohjaisempaan tutkintaan tarvitaan. Onneksi Windowsin prosessien, rekisterin, tiedostojärjestelmän ja verkkoyhteyksien tutkintaan on kuitenkin saatavilla ilmaisia työkaluja, jotka helpottavat tutkintaa huomattavasti. On hyvä huomioida, että tässä kappaleessa mainittujen työkalujen käyttö ja tulosten tulkinta vaatii laajaa osaamista. Lisäksi monien mainittujen työkalujen käyttö vaatii pääkäyttäjän käyttöoikeustasoa.

Esimerkiksi Windows XP:tä edeltävissä versioissa ei ole mahdollista helposti yhdistää liikennöivää verkkopalvelua tai -sovellusta aktiiviseen prosessiin. Windows Sysinternals tarjoaa tätä tarkoitusta varten parikin ilmaista työkalua: TCPView on graafisella käyttöliittymällä varustettu työkalu, joka tuo edellä esiteltyyn netstat-komentoon tämän kaivatun lisäominaisuuden ja paljon muuta. Muita Windows Sysinternalsin käteviä tutkintatyökaluja ovat Process Explorer, Handle, PsTools, Regmon, Filemon, ListDLLs, TDImon ja RootkitRevealer.

Nykyään eräät haittaohjelmat piilottavat tavallisimmat haittaohjelman tunnusmerkit (esim. prosessit, tiedostot ja rekisteriavaimet) ns. rootkit-tekniikan avulla, jolloin edellä mainituilla keinoilla ei ole mahdollista todeta haittaohjelmaa. Muun muassa edellä mainittu RootkitRevealer ja maksuton rootkitien havaitsemiseen ja poistamiseen tarkoittu GMER (http://www.gmer.net/index.php) ovat hyödyksi erityisesti tämän kaltaisissa tilanteissa. GMER toimii Windows NT/2000/XP -järjestelmissä. Myös muita maksullisia ja maksuttomia rootkitien havaitsemiseen ja poistamiseen tarkoitettuja ohjelmia on olemassa. Rootkitien havaitsemiseen tarkoitettujen ohjelmien havaitsemisvarmuus ei ole aivan täydellinen, joten tulosten varmentamiseen voi käyttää useampaa ohjelmistoa. Kun rootkit on havaittu, se voidaan poistaa esimerkiksi käynnistämällä tietokone käynnistyslevyltä tai toiselta loogiselta kovalevyasemalta, jolloin rootkitin piilottamat tiedostot, mukaanlukien itse rootkit, saadaan näkyviin ja voidaan poistaa. Rootkitin poistaminen on vaikeaa ja vaatii paljon osaamista, joten se on syytä antaa asiantuntijan tehtäväksi tai tehdä käyttöjärjestelmälle täydellinen uudelleenasennus.

Myös esimerkiksi Foundstonella (http://www.foundstone.com ) on ilmaisia työkaluja, joilla voi tutkia Internet Explorerin välimuistia (Pasco) ja evästeitä (Galleta) sekä Windowsin roskakorin tilaa (Rifiuti). Heillä on myös vastaavia työkaluja kuin edellä mainitut Windows Sysinternalsin tuotteet, esimerkiksi Vision ja F-Port. Lisäksi esimerkiksi myNetWatchmanin SecCheck SCU (http://www.mynetwatchman.com/tools/sc/) on helppokäyttöinen työkalu, joka kerää automaattisesti työasemasta haittaohjelmiin liittyvää tietoa ja lähettää sen analysoitavaksi myNetWatchmanin palvelimelle. SecCheck SCU raportoi analyysin tulokset, sekä www-sivun muodossa että kirjoittamalla lokitiedoston työasemalle.

Helix (http://www.e-fense.com/helix/) on kattava "työkalupakki" myös Windows-järjestelmien tutkintaan. Helix jaetaan .iso-levykuvana, jonka voi kirjoittaa CD-levylle. Helix-CD toimii käynnistyslevynä, jolta voi käynnistää tietokoneen ja joka ei tee muutoksia isäntäjärjestelmään. Helixissä on Windows-osio, joka sisältää paljon hyviä työkaluja Windows-järjestelmän tutkintaan.

Microsoft tarjoaa ilmaiseksi ladattavissa olevaa Change Analysis Diagnostic Tool -työkalua (http://support.microsoft.com/?kbid) Windows XP SP2-järjestelmissä tapahtuneiden muutosten havainnointiin. Työkalun avulla käyttäjä saa tietoa käyttöjärjestelmän sekä asennettujen ajurien, ohjelmistojen, ActiveX-komponenttien sekä selainlaajennusten muutoksista järjestelmässä. Vertailuhistorian pituus on melko vapaasti valittavissa. Työkalu tuottaa raportin XML-tiedostona, jota voi tutkia esimerkiksi tekstieditorilla ja jonka voi ottaa talteen myöhempää selvitystä varten. Kirjoitushetkellä Change Analysis Diagnostic Tool toimii vain Windows XP SP2:n englanninkielisessä versiossa.

Toiminta haittaohjelman löytyessä

Jos havaitset merkkejä vakavasta haittaohjelmatartunnasta tietokoneessasi, on suositeltavaa noudattaa CERT-FI:n tietoturvaloukkaustilanteista antamaa ohjetta tai lievemmissä tapauksissa kytkeä järjestelmä irti verkosta ja puhdistaa se omatoimisesti.

Lisätietoa

Englanninkielisiä lisätietoja haittaohjelman saastuttamaksi epäillyn työaseman tutkinnasta saa seuraavista linkeistä:

Microsoft TechNet -artikkeli Windows-työaseman tutkimisesta.

Windows Defenderin suomenkielinen sivusto .

Forensics Wiki-sivusto , joka sisältää paljon englanninkielistä tietokoneiden selvitykseen ja tutkintaan liittyvää tietoa.

Jamie Morrisin englanninkieliset artikkelit Windows Vistan tutkinnassa huomioitavista seikoista:

http://www.securityfocus.com/infocus/1889
http://www.securityfocus.com/infocus/1890

Online-virustutkia löytyy seuraavista:

http://housecall.trendmicro.com/
http://www.kaspersky.com/virusscanner http://www.pandasoftware.com/products/ActiveScan.htm
http://security.symantec.com/
http://support.f-secure.fi/fin/home/ols.shtml
http://us.mcafee.com/root/mfs/default.asp

Myös seuraavista linkeistä saattaa olla hyötyä haittaohjelmia etsittäessä:

http://www.file.net/
http://www.fileresearchcenter.com/
http://www.spybot.info/
http://www.lavasoft.com/
http://www.mynetwatchman.com/



Asiasanat: Tietoturva, CERT-FI, Ohjeet


Liitteet:


LinkedIn Print