Haittaohjelmien havaitseminen

Haittaohjelma tulee usein sähköpostin liitetiedostosta. Sellainen läpäisee palomuurit eikä fyysisiä turvallisuusmekanismeja yleensä ole tiellä. Riittää, että sähköposti saavuttaa käyttäjän ja käyttäjä saadaan suorittamaan liitteen haittakoodi. Vastaavan kaltainen tilanne on verkkosivuille istutetuilla haittaohjelmilla. Ne läpäisevät suojauksia tehokkaasti. Lisäksi ne voivat aktivoitua jopa ilman käyttäjän aktiivisia toimia.

Haittaohjelma voi tulla suoraan haavoittuvuuden kautta. Internetissä on jatkuvasti käynnissä automatisoituja hyökkäyksiä, jotka etsivät haavoittuvia laitteita. Sellaisen löydettyään ne tunkeutuvat laitteeseen ilman käyttäjän aktiivisia toimia. Erityisesti IoT-laitteet ovat olleet haavoittuvia niiden puutteellisten oletusasetusten sekä heikon päivitettävyyden vuoksi.

Haittaohjelma voi tulla ulkoisesta laitteesta. Erityisesti USB-portin kautta tulevat haittaohjelmat ovat osoittautuneet vaarallisiksi. Haittaohjelma voi olla rakennettu kytkettävään laitteeseen. Esimerkiksi latauslaite, tuuletin tai USB-tikku voi olla rakennettu sisältämään haittaohjelman. Tämäntyyppinen hyökkäys pääsee myös eristettyyn verkkoon. Tästä on esimerkkinä Stuxnet-madon leviäminen Iranin ydinvoimalaitokseen, jossa tiettävästi USB-tikulla päästiin sisään suljettuun verkkoon.

Joskus haittaohjelma on jo valmiiksi asennettuna. Tällöin hyökkääjä on läpäissyt laadun tarkastusketjun tai tuote itsessään saattaa olla suunniteltu sisältämään haitallista koodia.

Päästyään järjestelmään haittaohjelma voi olla muistissa, tiedostoissa, levätä odottaen komentoja tai ohjelmoitua toimintoa, tarkkailla, levitä, tehdä aktiivisia toimia tai päivittää itsensä. Tämä kaikki riippuu siitä, miten haittaohjelma on rakennettu. Haittaohjelma havaitaan tietojärjestelmästä sen aiheuttamien oireiden, muutosten, monitoroinnin tai torjuntaohjelmien avulla. Torjuntaohjelmista tyypillisiä ovat virustentorjuntaohjelmat sekä tunkeutumisen havainnointijärjestelmät (IDS, Intrusion Detection System).

Arkipäiväistä haittaohjelmaturvaa

Yksityishenkilön tärkein työkalu haittaohjelmilta suojautumiseen on ehdottomasti maalaisjärki. Kun jättää epäilyttävät hyperlinkit tai sähköpostit avaamatta sekä arveluttavat ohjelmat lataamatta ja suorittamatta, on haittaohjelmilta suojautuminen jo varsin hyvällä mallilla.

Kaikki kuitenkin tekevät virheitä, esimerkiksi kiireisenä tai väsyneenä, joten jonkinlainen virustentorjuntaohjelma on koneelta hyvä löytyä. Mikäli käytät Windows-konetta etkä aio sijoittaa virustentorjuntaohjelmaan rahaa, voidaan Windows 10/11:stä löytyvän Windows Defenderin katsoa olevan parempi vaihtoehto kuin jonkun muun tarjoajan ilmaisversio. Näin on ainakin sikäli, että siinä on enemmän ominaisuuksia eikä se jatkuvasti mainosta maksullista versiota. Virustentorjuntaohjelmaa täydentävä torjuntakeino on asentaa selaimeen vihamielisiä sivustoja estävä lisäosa, kuten uBlock Origin (HUOM. Ei pelkkä uBlock).

Aikaisemmin kohtalaisen suosittu menetelmä saada uhri suorittamaan haittaohjelma oli naamioida se joksikin toiseksi tiedostomuodoksi, eli tyypillisesti ohjelmatiedosto (executable, Windowsissa .exe) tai komentorivin kautta toimiva komentosarja (batch-file, Windowsissa .bat) naamioitaisiin vaikkapa kuvatiedostoksi (esim. .jpg). Näin ollen haittaohjelman nimeltään “haittaohjelma.bat” nimi muutettaisiin esimerkiksi muotoon “lomatervehdys.jpg.bat”. Ongelman tästä tekee se, että Windowsissa tiedostopäätteet ovat vakiona piilotettuja, eli uhrille tiedosto näkyy “lomatervehdys.jpg”:nä. Kyseistä haittaohjelmaa voisi levittää vaikkapa sähköpostitse, kuten kuuluisaa ILOVEYOU-matoa. Vaikka esimerkkimato on vuodelta 2000, Windowsin vakioasetukset mahdollistavat samankaltaisen harhautuksen edelleen. Sähköpostin liitetiedostojen turvallisuutta on onneksi parannettu. Ohjeet tiedostopäätteiden näyttämiseen löydät täältä.

Tiedostopäätteellinen esimerkki

Tiedostopäätteiden havainnollistamiseksi ensimmäisessä kuvassa tiedostopäätteet ovat näkyvillä, eli “.bat”-päätteestä näkee heti, ettei kyseessä ole kuvatiedosto.

Tiedostopäätteetön esimerkki

Toisessa kuvassa tiedostopäätteet ovat piilotettu, jolloin vain tiedoston nimi on näkyvissä. “.jpg” on lisätty nimeen hämäämään niitä, jotka tunnistavat päätteen kuvatiedostoksi.

Haarukkapommi-esimerkki

Tiedostoa klikkaava uhri saisi riesakseen haarukkapommin. Maailmaa se ei kaada, mutta tietokoneen kylläkin. Kyseinen haittaohjelma kuitenkin toimii kokonaan keskusmuistissa eikä sellaisenaan leviä muihin tiedostoihin, eli tietokone toimii normaalisti uudelleenkäynnistyksen jälkeen. Tästä huolimatta muista, että haittaohjelmien levittäminen on rikos.

Haittaohjelmahyökkäysten paljastaminen

Sormenjäljillä ja muulla staattisella tunnistamisella voidaan tunnistaa entuudestaan tunnettu haittaohjelma. Tämä ei kuitenkaan riitä, sillä haittaohjelmia kehitetään jatkuvasti lisää ja myös entuudestaan tuntemattomia haittaohjelmia on tarpeen tunnistaa. Tarvitaan siis staattisen tunnistamisen lisäksi dynaamista tunnistusta.

Valitse oikeat väitteet

Monitorointi työasemassa ja verkossa (syventävä)

Yksi keino tunnistaa haittaohjelmia on poikkeavuuksien tunnistaminen (anomaly detection). Poikkeavuus on jotain, mikä eroaa järjestelmän normaalista toiminnasta. Näin voidaan tunnistaa haittaohjelmien aiheuttamia muutoksia, mutta poikkeavuudet voivat johtua myös jostain muusta.

Tehokas tapa havaita haittaohjelmien vaikutuksia on käyttää tunnettujen hyökkäyksien sormenjälkiä. Niillä tarkoitetaan tunnistettavia toimia, jotka ovat hyökkäykselle tyypillisiä. Tätä kutsutaan väärinkäytösten tunnistamiseksi (misuse detection). Esimerkkinä on vaikka sähköpostin liitetiedostona tulleen ohjelman pyrkimys poistaa tiedostoja.

Hyökkäyksiä voidaan pyrkiä tunnistamaan sekä työasemalla että verkossa. Näitä kannattaa käyttää yhdessä, sille ne täydentävät toisiaan. Verkossa pystytään tunnistamaan asioita verkon laajuisesti, mutta toisaalta salattua verkkoliikennettä ei pystytä avaamaan. Työasemalla salaus pystytään purkamaan ja päästään sovellustasolle, mutta verkon laajuinen analysointi ei ole mahdollista.

Tarkastellaan seuraavaksi muutamia esimerkkejä sekä haittaohjelmien että niiden vaikutusten tunnistamisesta.

Roskapostia lähdettiin alkuun tunnistamaan analysoimalla sähköpostin sisältöä ja erottelemalla roskaposti muista sähköposteista. Myöhemmin kehitettiin lisäksi verkkopohjaista analysointia, jolla pystytään tunnistamaan roskapostia mm. lähetysmäärien ja lähetyslähteen perusteella. (Roskaposti sinänsä ei ole haittaohjelma, mutta sellaista lähettää usein haittaohjelma.)

Palvelunestohyökkäyksiä voidaan tunnistaa analysoimalla verkkoliikennettä, sen voimakkuutta, liikenteen sisältöä ja lähteitä. Kun liikenteen lähde saadaan selville, se voidaan sulkea pois. Useita lähteitä voidaan tunnistaa tietoliikenteen samankaltaisuudella. Toisaalta edistyneitä hyökkäyksiä voi olla vaikea havaita, sillä tietoliikenteen voimakkuus ja muoto voivat vaihdella. (Tässäkin kohdassa on usein kyse muualla toimivan haittaohjelman vaikutuksesta.)

Kiristyshaittaohjelmia voidaan tunnistaa muutoksilla suureen määrään tiedostoja. Tiedoston salakirjoitus havaitaan siitä, että tiedoston sisältö muuttuu kokonaisuudessaan.

Tietovuoto voidaan tunnistaa ja estää, jos verkkoliikenteessä havaitaan epäilyttäviä tunnisteita, kuten tilitietoja, salasanoja jne. Työasemassa olevalla analysointityökalulla voidaan tarkemmin jäljittää hyökkäyksen tapahtumia ja vaikutuksia.

Botnet-ohjelmia voidaan jäljittää verkkoliikennettä analysoimalla sekä työasemakohtaisilla tunnistusohjelmilla.

Koneoppimiseen perustuva turva-analytiikka (syventävä)

Koneoppimista on kehitetty 1990-luvulta lähtien automaattiseen haittaohjelmien ja hyökkäysten tunnistamiseen. Koneoppimista voidaan käyttää haittaohjelmien tunnistamiseen syöttämällä suuri määrä haittaohjelmia ja ei-haittaohjelmia algoritmin opetusaineistoksi. Kone oppii tunnistamaan paitsi sille näytetyt haittaohjelmat myös monet uudet. Koneoppimista voi käyttää myös dynaamiseen tunnistamiseen: opetusaineistona voi olla esim. järjestelmäkutsut, tietovirrat ja verkkoliikenne. Koneoppimista on käytetty menestyksekkäästi myös bottiverkkojen jäljittämiseen. Tämä on perustunut DNS-nimien, DNS-liikenteen ja muun verkkoliikenteen analysointiin.

Hyökkäykset koneoppimista vastaan (syventävä)

Koneoppimisen yleiset rajoitteet koskevat myös haittaohjelmien tunnistusta. On tärkeää, että oppimisaineisto on laajaa ja oikein luokitettua. Tunnistamisessa tulee helposti vääriä positiivisia ja negatiivisia.

Haittaohjelmien tekijät ovat oppineet kiertämään tunnistusta, esimerkiksi sisällyttämällä haittakoodin sekaan toimintoja, jotka ovat yleisiä tavallisissa ohjelmissa. Tällöin tapahtuu vääränlaista oppimista: tavalliset operaatiot vaikuttavat haittaohjelmien signaalilta. Tätä kutsutaan myös opetusdatan myrkyttämiseksi (data poisoning). Hyökkääjät voivat lisäksi lieventää koodinsa hyökkäävyyttä niin, että tunnistuksen raja-arvo ei ylity. Esimerkiksi vuodettavia tietoja saatetaan lähettää ainoastaan samalla, kun tietoliikennettä on muutenkin. Hyökkäystoimet saattavat jäljitellä käyttäjän tai järjestelmän normaalia toimintaa. Hyökkäyksen tai haittaohjelman muuntelu toimii myös koneoppimisen harhauttamisessa, sillä hyökkäysmallit vaikuttavat erilaisilta.

Palautusta lähetetään...