- COMP.SEC.100
- 7. Haittaohjelmat ja hyökkäystekniikat
- 7.2 Haittaohjelmien toiminta
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 | Hyötykuorman (payload) jakaminen uhreille sähköpostilla, verkko-osoitteisiin, haavoittuviin kohteisiin jne. |
Hyödyntäminen | Haavoittuvuuksien hyödyntäminen ja haitallisen koodin suorittaminen |
Asentaminen | Haittakoodin asentaminen. Tämä voi sisältää haittaohjelman lataamisen ulkopuolelta. |
Kontrollointi | Etähallinnan ottaminen käyttöön. |
Hallinta | Haluttujen toimien suorittaminen uhrijärjestelmissä. Tämä voi sisältää mitä vain haltuun otettu järjestelmä mahdollistaa. Tyypillisiä esimerkkejä ovat: tiedon varastaminen ja kaappaaminen, tiedon muuttaminen, roskapostitus, palvelunestohyökkäykset muihin järjestelmiin, hyökkäykset muihin järjestelmiin, tiedon salakirjoitus kiristystarkoituksessa, verkossa olevien mainoslinkkien klikkaaminen ja kryptovaluutan louhiminen. Uhrijärjestelmä voi 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ä hyökkäyksistä.
Botnetit ovat tyypillinen esimerkki haittaohjelmien muodostamasta pitkäaikaisesta uhasta, joka hyödyntää haittaohjelmahyökkäyksen 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ä. Kirjoitushetkenä (maaliskuu 2022) 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ä.
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 analysointiympäristön ja estää oman toimintansa paljastumisen. Siten koodia pyritään ymmärtämään takaisinmallintamalla (reverse engineering). Usein tämä edellyttää konekielen hallintaa ammattimaisilta haittaohjelmien analysoijilta. 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 siten 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.