You are here: TUTWiki>Tietoturva/Tutkielmat>LuukkainenJ?>2005-22 (revision 4)

Aapo Kuusela

Haittaohjelmat Windows-käyttöjärjestelmässä

Johdanto

Miksi Windows-käyttöjärjestelmä on niin altis erilaisille haittaohjelmille? Mitä Windows-käyttöjärjestelmän ominaisuuksia erilaiset haittaohjelmat pyrkiväy hyödyntämään? Tässä tukielmassa selvitetään miten nämä ominaisuudet otetaan huomioon haittaohjelmien torjunnassa ja minkä takia Windowsissa on tällaisia ominaisuuksia.

Tässä työssä tutkitaan kokeellisesti Windows-koneeseen asentuneita haittaohjelmia. Miten ne ovat päässeet koneeseen ja mitä ne pyrkivät koneelle tekemään. Lopuksi testissä siivotaan kone haittaohjelmista ja pyritään estämään uusien haittaohjelmien pääsy koneille.

Työssä etsitään tietoa haittaohjelmien toimintatavoista myös mm. antispyware-ohjelmistoja analysoimalla ja eri web-artikkeleista.

Erilaiset haittaohjelmat

Haittaohjelma on tietokoneohjelma, joka asennetaan/asentuu jollekin tietokoneelle. Asennuttuaan koneelle haittaohjelma voi aiheuttaa koneelle ja sen käyttäjälle monenlaista harmia ja vahinkoa.

Haittaohjelmat voidaan jaotella erilaisiin ryhmiin ominaisuuksiensa mukaan. Nykyään erilaisten haittaohjelmien jaottelu on vaikeaa, sillä ne usein suorittavat monia haitallisia toimintoja ja niiden ominaisuudet voivat olla hyvinkin monipuolisia. Tämän vuoksi yksittäinen haittaohjelma voidaan usein laskea kuuluvaksi monen eri ryhmään samaan aikaan. Tässä esitellään kuitenkin yleinen haittaohjelmien jaottelu. Erillisillä wiki-sivuilla on lisätietoa ja esimerkkejä eri tyyppisistä haittaohjelmista:

takaovet?

loogiset Pommit?

Troijan hevoset?

virukset?

madot?

vakoiluohjelmat ja mainosohjelmat?

Testi

Haittaohjelmien toimintaa Windows-koneissa testattiin haittaohjelmien saastuttamalla Windows XP koneella.

Testauksen vaiheet ja tulokset erillisellä Wiki-sivulla?

Miten haittaohjelma pääsee järjestelmään

Nykyään lähes kaikki Windows-käyttöjärjestelmässä toimivat haittaohjelmat pääsevät järjestelmään tietoverkon välityksellä. Jotkut haittaohjelmat etsivät verkosta päivittämättömiä - ja siten haavoittuvia - koneita ja asentuvat tällaiselle. Myös tietomurtautuja (krakkeri/hakkeri) voi murtautua suojaamattomalle koneelle ja asentaa sille haittaohjelmia. Yllättävän usein haittaohjelmat kuitenkin pääsevät järjestelmään käyttäjien vapaaehtoisesti asentamana. Käyttäjä saattaa ladata ja asentaa internetistä löytämiään ohjelmia koneelleen ottamatta selvää mitä ohjelma itseasiassa tekee. Myös sähköpostin liitetiedostot saattavat sisältää haittaohjelmia, jotka varomaton käyttäjä saattaa tulla asentaneeksi koneelleen.

Käyttäjä asentaa haittaohjelman tietämättään

Aikuisviihdesivuilta löytynyt harmittoman oloinen Stip Poker-peli voi houkutella viattoman käyttäjän lataamaan sen koneelleen, mutta todennäköisesti pelin mukana koneelleen saa parhaimmassa tapauksessa lisänä tukun mainosohjelmia. Huonoimmassa tapauksessa käyttäjä käynnistää lataamansa exe-tiedoston joka ei olekaan peli vaan jokin haittaohjelma. Myös useiden warez-ohjelmistojen (KaZaa? ym.) mukana asentuu koneelle monia haittaohjelmia. Tällaisissa tapauksissa Windows-käyttöjärjestelmä ei yleensä varoita käyttäjää mitenkään mahdollisista haittaohjelmista vaan antaa kiltisti niiden asentua koneelle.

Internetsivuja selailtaessa (Internet Explorer-selaimella) saattaa käyttäjän ruudulle pompata kysymysdialogi johon voi yleensä vastata YES tai No. Peruskäyttäjä ei todennäköisesti edes tiedä mitä dialogissa kysytään ja yleensä kysymykseen on mukava vasta YES. Tällaiset kysymysdialogit tavallisesti kysyvät haluaako käyttäjä asentaa tietyn selainlaajennuksen koneelleen. Selainlaajennuksien asentaminen on tehty Windows-järjestelmissä erittäin helpoksi, eikä ihme että haittaohjelmien tekijät hyödyntävät tätä saadakseen ohjelmiaan käyttäjien koneille. Käyttäjä saattaa siis sallia tietämättään jonkun tietyn haittaohjelman asentumisen koneelle.

Tietoturva-aukot

Windows-käyttöjärjestelmä on tullut aikojen saatossa kuuluisaksi lukemattomista haavoittuvuuksistaan. Nämä haavoittuvuudet ovat usein tietoturva-aukkoja, joiden kautta haittaohjelmat pääsevät järjestelmään. Windowsin haavoittuvuudet johtuvat tavallisesti ohjelmointivirheistä ja puutteellisesta laadunvalvonnasta. Lisäksi Windows-käyttäjien valtava määrä aiheuttaa sen, että siinä esiintyvät virheet huomataan todella herkästi.

Tärkeä syy tietoturvaongelmiin on myös Microsoftin vuosien takaa periytyvä suunnittelufilosofia, jossa uudet ominaisuudet ja käytön helppous ovat olleet tietoturvaa tärkeämpiä: ohjelmia ajetaan turhaan pääkäyttäjän oikeuksilla; tuotteissa on oletusarvoisesti päällä turhia ominaisuuksia, jotka ovat potentiaalisia haavoittuvuuksia; tiedoston katsomisen ja ajamisen (datan ja ohjelmakoodin) erottelu ei toimi tarpeeksi tehokkaasti, kuten ei myöskään luotetun ja ei-luotetun tiedon erottelu. Monet vakavat haavoittuvuudet ovat perustuneet näihin arkkitehtuurin perusoletuksissa oleviin puutteisiin, joiden paikkailu jälkikäteen on hyvin vaikeaa. (Vaihtoeht TT-opas)

Lista eräistä Windowsin vakavista paikkaamattomista ja paikatuista tietoturva-aukoista?

Missä haittaohjelma piilottelee?

Windows-järjestelmässä on useita oivallisia piilopaikkoja haittaohjelmille. Näistä paikoista useimmat kotikäyttäjät eivät ole välttämättä kuulleetkaan ja näin haittaohjelmat saavat olla rauhassa.

Hakemistot

Suoritetun testin perusteella haittaohjelmat piiloutuvat yleensä Windowsin järjestelmäkansiohin. Haittaohjelmia löytyi seuraavista kansioista:

C:|Documents and Settings|P.ALocal Settings|Temp| C:|Documents and Settings|P.A|Local Settings|Temporary Internet Files|Content.IE5| C:|Windows| C:Windows|system32| C:Windows|Temp| C:|

Havaitaan, että haittaohjelmat käyttävät hyväkseen Windowsin tapaa säilyttää väliaikaisia tiedostoja niin kauan kun käyttäjä omatoimisesti ne poistaa. Yli puolet ohjelmista oli pesiytynyt Temp-kansioihin, joissa säilytetään mm. selaimen välimuistia ja asennusohjelmien osia. Lisäksi nämä kansiot ovat yleensä oletusarvoisesti piilotettuja tai ne ovat monimutkaisen hakemistopuun takana jolloin niitä on hankala löytää.

Myös Windowsin asennuskansio ja järjestelmätiedostoja sisältävät kansiot ovat oivallisia piilopaikkoja haittaohjelmille. Näissä kansioissa sijaitsevat - vieläpä ovelasti nimetyt - tiedostot harvoin aiheuttavat epäilyksiä normaalissa kotikäyttäjässä. Lisäksi käyttäjällä on yleensä suuri kynnys poistaa tiedostoja näistä kansioista (pelko käyttöjärjestelmän vahingoittumisesta).

Tiedostonimet

Suoritettu testi osoitti että haittaohjelmat pyrkivät nimeämään käyttämänsä tiedostot siten että ne eivät herättäisi käyttäjässä huomiota. Esimerkiksi tunnettujen Windowsin käyttämien tiedostojen nimet hieman muunneltuna tai täysin samanlaisina, mutta eri paikassa ovat suosittuja. Tässä esimerkiksi muutama testissä löytynyt tiedostonimi:

notepad.exe list.exe win33.exe iinstall.exe installer.exe optimize.exe nem2201.dll wsem3021.dll msdos.exe sitebar.exe taskmsg.exe winlogon.exe

Ainoa huomiota herättänyt tiedostonimi oli erään Troijan hevosen käyttämä nimi - DeskBikini?-153315.exe

Tavallisten kovalevyltä löytyvien tiedostojen lisäksi haittaohjelmat luovat avaimia ja erilaisia arvoja Windowsin rekisteriin. Yleistä on että haittaohjelmat luovat oman avaimensa rekisterin kansioon SOFTWARE|Microsoft|Windows|CurrentVersion|Run. Tämä kansio määrittelee mitkä ohjelmat käynnistyvät aina Windowsin käynnistymisen yhteydessä. Sijoittamalla avaimen tähän rekisterikansioon haittaohjelma siis käynnistyy aina kun Windowskin käynnistyy. Windows ei millään tavalla varoita käyttäjää, kun asentuva ohjelma on sijoittamassa avainta tähän rekisterikansioon. Tämän vuoksi haittaohjelmien on helppo pysyä aktiivisena vaikka kone välillä sammutettaisiinkin.

Havaitseminen ja suojautuminen

Havaitseminen

Haittaohjelmien havaitseminen ilman apuvälineitä voi olla hankalaa. Ne eivät välttämättä mitään näkyviä oireita koneelle, vaan toimivat täysin käyttäjän tietämättä. Selvästi näkyviä ongelmia aiheuttavat haittaohjelmatkin ovat yleensä niin hyvin piilossa, että niitä ei voi peruskäyttäjä kuin vahingossa paikantaa.

Hyvä työkalu haittaohjelmien havaitsemiseen on kunnollinen virus/antispywareohjelma. Testissä käytetty AVG Antivirus etsii haittaohjelmia koneelta useilla menetelmillä joiden yhdistelmällä taataan, että haittaohjelmat havaitaan suurella todennäköisyydellä. Seuraavassa AVG Antivirus-ohjelman havaitsemismenetelmät:

* Tunnettujen haittaohjelmien havaitseminen:

Yksinkertainen menetelmä, joka havaitsee haittaohjelman tietokannastaan ennestään löytyvien virus-ID:n (eräänlainen Hash-arvo) perusteella.

* Geneerinen havainnointi:

Menetelmä, jolla voidaan löytää jo tunnettuja haittaohjelmia ja niiden uusia variantteja. Menetelmällä etsitään tiedostosta koodinpätkiä, joita joku tunnettu haittaohjelma on käyttänyt. Yleensä tiettyjä haittaohjelmien eri variantit käyttävät samoja koodinosia. Tehokas menetelmä erityisesti macro- ja skriptiviirusten löytämiseen.

* Heuristinen analyysi:

Menetelmä, jolla etsitään kokonaan uusia haittaohjelmia. Heuristisessa analyysissä on kaksi menetelmää: Staattinen analyysi, joka etsii epäilyttäviä tiedostorakenteita. Dynaaminen analyysi, jossa luodaan erillinen hiekkalaatikko (eristetty virtuaaliympäristö) jossa tiedosto ajetaan. Tiedoston ajon aikana sen käyttäytymistä analysoidaan ja tutkitaan onko siinä tyypillisen haittaohjelman piirteitä.

(AVG)

Kokenut käyttäjä saattaa löytää koneessa olevia haittaohjelmia kokonaan ilman siihen erikoistuneita työkaluja. Haittaohjelmia voi etsiä vaikka testissä mainituista kansiosta joista harjaantunut käyttäjä voi löytää oudon nimisiä tiedostoja (yleensä .exe tai .dll päätteisiä). Myös Windowsin rekisteriä tutkimalla saattaa törmätä erikoisiin avaimiin ja hakemistoihin. Ehkäpä varmin paikka josta haittaohjelman voi löytää on Windowsin käynnistymisen yhteydessä ladattavien ohjelmien joukosta. Msconfig-komennolla aukeavasta menusta löytyy helposti Windowsin käynnistymisen yhteydessä käynnistyvistä ohjelmista.

Suojautuminen

Haittaohjelmat pyrkivät usein käyttämään Windowsin tietoturva-aukkoja päästäkseen järjestelmään. Windowsin tietoturva-aukkojen paikkaaminen onnistuu Windows Update-sivustolta löytyvien päivitysten avulla. Uusimmat päivitykset olisi syytä ladata kuukausittain, sillä uusia tietoturva-aukkoja paljastuu vielä säännöllisesti. Microsoft ei ole aina julkaissut tietoturvapäivityksiä ajoissa, huolimatta yrityksen lupauksista panostaa enemmän ohjelmiensa tietoturvaongelmiin. Esimerkkinä Microsoft julkaisi erääseen vakavaan haavoittuvuuteen päivityksen tietoturvapäivän aattona - puoli vuotta sen jälkeen kun haavoittuvuudesta oli kerrottu yritykselle. Valitettavasti tällaiset pitkät vasteajat eivät ole olleet Microsoftille erityisen poikkeuksellisia (Vaihtoeht TT-opas). Myös järjestelmän muut ohjelmistot tulisi pitää ajan tasalla.

Windowsin mukana tulevassa Internet Explorer-selaimessa domain/zone-tietoturvamalliin, DHTML-objektimalliin, tiedostotyypin päättelyyn, graafiseen käyttöliittymään ja ActiveX?:ään liittyy monia merkittäviä haavoittuvuuksia (Vaihtoeht TT-opas). Käyttäjillä on onneksi mahdollisuus käyttää muitakin selaimia Windowsin kanssa. Esimerkiksi Mozilla Firefox-selain muistuttaa Internet Exploreria paljon, mutta siinä ei ole havaittu kuin muutama tietoturvaongelma.

Käyttämällä toimivaa virustorjuntaohjelmaa voidaan haittaohjelmien asentuminen koneelle estää, vaikka ne olisivatkin päässeet kopioitumaan järjestelmään. Virustorjuntaohjelmiston rinnalla voi käyttää myös antispyware-ohjelmistoa, joka tunnistaa erityisesti erilaiset vakoiluohjelmat. Virus- ja antispywareohjelmistot alkavat kuitenkin nykyään muistuttamaan toisiaan niin läheisesti, että yksi toimiva ohjelmisto hoitaa molempien tehtävät. Esimerkiksi AVG Antivirus-ohjelmisto löysi testaustilanteessa koneelta monia vakoiluohjelmistoja eikä tämän jälkeen ajettu Microsoft Antispyware löytänyt muita vakoiluohjelmia järjestelmästä.

Haittaohjelmien toimintaa ja pääsyä koneelle voidaan rajoittaa palomuurilla. Windows toimii melko sinisilmäisesti tietoverkosta käyttäjän koneelle tulevia yhteyksiä kohtaan. Kenen tahansa on mahdollisuus ottaa yhteys käyttäjän koneelle ja hyödyntää tietoturva-aukkoja ujuttaakseen koneelle haittaohjelmia. Palomuuri valvoo ja rajoittaa yhteyksiä oman koneen ja ulkoisen verkon välisiä yhteyksiä. Ulkoapäin tulevia verkkoyhteysyrityksiä on mahdollisuus rajoittaa palomuurin avulla ja näin estää mahdollisia hyökkäyksiä. Myös vakoiluohjelmien ottamia verkkoyhteyksiä voidaan rajoittaa palomuurilla. Windows XP:n Service Pack 2 sisältää sisäänrakennetun palomuurin, joten erillistä palomuuria ei ole välttämätön asentaa.

Haittaohjelmien tehokkuus eri Windows-versioissa

Vaikka nopeasti ajateltuna luulisi, että Windows-käyttöjärjestelmien kyky kestää haittaohjelmien uhkia kasvaisi kehityksen myötä, ei näin kuitenkaan ole. Erinäiset tutkimukset osoittavat, että uusin (2009) Windows-käyttöjärjestelmä, Windows Vista, kestää vähemmän uhkia kuin sen kahdeksan vuotta aikaisempi versio, Windows 2000. Tutkimusten mukaan siinä missä Windows 2000 päästi 586 uhkaa sisään ja Windows XP päästi 1,021, niin Windows Vista päästi 639, mikä on 53 enemmän kuin Windows 2000. Osa näistä numeroista selittyy tietysti haittaohjelmien kehityksellä, mutta osasyitä löytyy myös Windows-käyttöjärjestelmien tietoturvallisuuden kehitysmenetelmistä. Windows on tunnettu kehitystavastaan, jolla ilmenneet ongelmat yritetään paikata uudella koodilla, koskematta mahdollisemman vähän sen alkuperäiseen alustaan ja toimintaan. Tästä seuraa väkisinkin monimutkainen ja sekava ohjelmistorakenne, jota on erittäin vaikea ylläpitää ja jonka heikkouksia on hankala nähdä. Nämä uudet ratkaisut ovat yleensä tuoneet uusia heikkouksia käyttöjärjestelmään, eli voidaan sanoa, että lääke on sairautta pahempi.

Ulkopuolisen ohjelmoijan on yleensä helpompi huomata nämä heikkoudet ja käyttää niitä hyväkseen haittaohjelmia teossa. Uudet "paikkaavat" koodinpätkät ovat olleet ristiriidassa aikaisempien toimintojen kanssa, joten pahimmillaan ne avaavat uusi reikiä puolustukseen, joiden muodostamat uhat olivat huomioitu jo aikaisempien versioiden alustojen kehityksessä. Muun muassa Macintoshilla ei tätä ongelmaa ilmene Windowsin mittakaavassa. Tämä johtuu paljolti alkuperäisestä suunnittelusta, jossa kehittäjät pystyivät huomioimaan Windowsin aikaisemmat ongelmat ja näin rakentamaan pitkälti suunnitellun ja kestävän pohjan käyttöjärjestelmälle. Tässä alustassa tuleville ongelmille oli jo valmiina ratkaisumalli, jossa oli huomioitu se, miten uusi koodi vaikuttaa aikaisempaan toimintaan.

Yhteenveto

Haittaohjelmien kirjo alkaa olla jo niin moninainen, että on jo usein vaikeaa määritellä mikä ohjelma on haittaohjelma ja mikä ei. Esim. yleisesti käytetty Real One Player näyttää käyttäjälle mainoksia ja kerää käyttäjätietoa, joten senkin voisi luokitella haittaohjelmaksi.

Windows-käyttöjärjestelmän monimutkaisuus aiheuttaa sen, että siitä löytyy lukemattomia seikkoja joita haittaohjelmat voivat yrittää hyödyntää. Käynnissä on jatkuva kilpajuoksu, jossa Microsoft pyrkii vaihtelevalla menestyksellä paikkaamaan löytyneitä Windowsin haavoittuvuuksia kun samalla haittaohjelmien tekijät etsivät jatkuvasti uusia keinoja saada ohjelmansa ujutettua käyttäjien koneille.

Windows-järjestelmien alttius haittaohjelmille johtuu kuitenkin ennen kaikkea sen suunnittelun lähtökohdista. Tähän mennessä Windowsin suunnittelussa on jätetty tietoturvallisuuteen panostaminen taka-alalle ja keskitytty parantamaan käytettävyyttä ja luomaan uusia ominaisuuksia (ja uusia tietoturvaongelmia).

Palaute ja kehitysideat

Saadun palautteen pohjalta tutkielman otsaketta muutettiin kuvaavampaan suuntaan. Alkuperäinen otsake (Haittaohjelmien hyödyntämät rakenteelliset seikat Windows-käyttöjärjestelmissä) ei ollut kovinkaan kuvaava tutkielman tekstille. Koska aihealue on niin laaja ei tutkielman supistaminen tuntunut mielekkäältä vaikka sanojen määrä ylittää jonkin verran 1000:n sanan määrän.

Lähteet

* (TT-per) TTY:n TT-perusteet verkkomateriaali http://maso.atm.tut.fi/
* (AVG) AVG Anti Virus http://www.grisoft.com/
* Get AVG Free - ilmaisen ja hyvän virustorjuntaohjelmiston lataussivusto http://free.grisoft.com/doc/2/lng/us/tpl/v5
* Microsoft Technet http://technet.microsoft.com/default.aspx
* Tietoturvaopas http://www.tietoturvaopas.fi/
* (Vaihtoeht TT-opas) Vaihtoehtoinen tietoturvaopas http://www.cis.hut.fi/kaip/tietoturvaopas.html
* Afterdawn.com http://www.afterdawn.com/
* Trend Micro Virus Encyclopedia http://www.trendmicro.com/vinfo/virusencyclo/default.asp
* (SANS) SANS Top 20 Vulnerabilities, Version 6.01 November 28 http://www.sans.org/top20/
* (Wiki) Wikipedia http://fi.wikipedia.org/wiki/
* Windows Vista More Vulnerable To Malware Than Windows 2000 http://www.informationweek.com/news/windows/operatingsystems/showArticle.jhtml?articleID=207601217

-- JukkaLuukkainen? - 20 Sep 2009
Print version |  PDF  | History: r5 < r4 < r3 < r2 | 
Topic revision: r4 - 16 Nov 2009 - 11:31:52 - JukkaLuukkainen?
 

TUTWiki

Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TUTWiki? Send feedback