Haittaohjelmien toiminta

Haittaohjelmien toimintaa voi hahmottaa oheisella haittaohjelmahyökkäyksen ketjumallilla (Cyber Kill Chain Model). Hyökkäysketju yleisemmässä muodossa on esitetty täällä.

Vaihe Toiminta
Tiedustelu Sähköpostiosoitteiden ja haavoittuvien kohteiden etsiminen ja kokoaminen
Varustelu Hyökkäyksen sekä tarvittavan haittakoodin suunnittelu ja toteutus
Jakelu Koodin toimittaminen uhreille sähköpostilla, verkko-osoitteisiin, haavoittuviin kohteisiin jne.
Hyväksikäyttö (eksploitaatio) Haavoittuvuuksien hyödyntäminen siten että koodi pääsee suoritettavaksi
Asentaminen Koodin asentaminen. Tämä voi sisältää asennuksen pysyvyyttä edistäviä toimia tai lisäkoodin lataamista ulkopuolelta.
Komento ja hallinta Etähallinnan ottaminen käyttöön.
Tavoitetoimet Tavoitteen mukaisten toimien suorittaminen uhrijärjestelmissä eli koodin "hyötykuorman" (payload) ajaminen. Tämä voi sisältää mitä vain haltuun otettu järjestelmä mahdollistaa. Tyypillisiä esimerkkejä ovat: tiedon varastaminen ja kaappaaminen, tiedon muuttaminen, roskapostitus, palvelunestot ja murtautumiset toisiin järjestelmiin, tiedon salakirjoitus kiristystarkoituksessa, verkossa olevien mainoslinkkien klikkaaminen ja kryptovaluutan louhiminen. Voidaan myös jäädä odottamaan kaapatun resurssin myyntiä tai myöhempiä toimia. Haittaohjelma voidaan myös päivittää tarvittaessa.

Haittaohjelmat hyödyntävät yhdistelmän näistä vaiheista. Botnetit ovat tyypillinen esimerkki haittaohjelmien muodostamasta pitkäaikaisesta uhasta, joka käyttää ketjumallin kaikkia osia. Haittaohjelmia käytetään myös edistyneen pysyvän uhan osana (Advanced Persistent Threat, APT), jossa hyökkäys pyritään pitämään piilossa ja huomaamattomana. APT on pitkäaikainen ja voi käyttää useita eri kanavia, joten se ei rajoitu pelkästään haittaohjelmiin. Esim. sosiaalisen hakkeroinnin keinot voivat olla käytössä. Hyökkäys kohdistuu johonkin tiettyyn organisaatioon ja tavoitteena on teollisuusvakoilu tai rahallinen hyöty. APT on tyypillisesti myös hyvin resursoitu. Botnet voi olla yksi APT:n työkalu.

Haittaohjelmien ekosysteemi

Aluksi haittaohjelmat olivat yksittäisiä hyökkäyksiä. Nykyään (toukokuu 2026) ne ovat monimutkaisia ja hyvin resursoituja hyökkäyksiä. Taustalla on tyypillisesti järjestäytynyttä rikollisuutta tai valtiollisia toimijoita. Hyökkäyksiin on käytettävissä ja ostettavissa erilaisia työkaluja ja palveluita. Ekosysteemistä lisää myöhemmin täällä ja täällä. Niihin kuuluu nykyään myös laajoja kielimalleja, eli tekoälypalvelimia, joilla ei ole estoja haittakoodin (ja kaikenlaisen muun haittamateriaalin) tuottamisessa - toisin kuin vielä useimmilla laajan yleisön käytössä olevilla.

Haittaohjelmien analysointi

Haittaohjelmia analysoidaan, jotta pystytään ymmärtämään niiden toimintaa ja siten kehittämään suojauskeinoja. Myös tekijän tai hyökkäävän verkon jäljille voi päästä ohjelmaa analysoimalla.

Analysointitekniikoista

Analysointitekniikoista on jokaiselle tärkeää ymmärtää dynaamisen ja staattisen analyysin periaatteet. Näitä tekniikoita haittaohjelmien torjunnan ammattilaiset käyttävät, mutta näitä voi soveltaa myös organisaatioissa ja miksipä ei innostunut harrastajakin.

Dynaaminen analyysi
Dynaamisessa analyysissa haittaohjelmaa suoritetaan suojatussa ympäristössä ja sen aiheuttamia vaikutuksia tarkastellaan. Esimerkiksi haittaohjelman aiheuttamaa verkkoliikennettä voidaan seurata ja analysoida. Haittaohjelma voi myös edellyttää syötettä, jota sille voidaan antaa. Lisäksi haittaohjelman järjestelmään aiheuttamia muutoksia voidaan tarkkailla. On tärkeää, että analysointiympäristö on hyvin suojattu, sillä ulkopuolisille ei saa aiheutua haittaa. Koodia saatetaan myös suorittaa sen verran, että pakattu tai salattu sisältö paljastuu ja voidaan käyttää staattista analyysia.
Staattinen analyysi
Staattinen analyysi tarkoittaa lähdekoodin, binäärin tai näiden välimuotojen analysointia. Dynaaminen analyysi ei paljasta kaikkea, sillä haittaohjelmiin on rakennettu toimintojen aktivoitumista vain tietyissä ennalta ohjelmoiduissa tilanteissa. Voi myös olla, että haittaohjelma havaitsee olevansa analysointiympäristössä ja estää oman toimintansa paljastumisen. Staattisessa analyysissa koodia pyritään ymmärtämään takaisinmallintamalla (reverse engineering). Yleensä tämä edellyttää konekielen hallintaa. Haittaohjelmien tekijät pyrkivät usein haittaamaan koodin analysointia mm. koodin hämäännyttämisellä (obfuscation), pakkaamalla ja salakirjoittamalla. Ammattimaisilla haittaohjelmien analysoijilla on työkaluja ja ymmärrystä, ja koodia pyritään ymmärtämään haittaavista tekijöistä huolimatta. Nykyisin haittaohjelmia tehdään kuitenkin niin paljon, että kaikkia ei edes yritetä analysoida manuaalisesti - usein riittää tunnistus ja perustiedot toiminnoista.
Palautusta lähetetään...