Dynaaminen analyysi Android haittaohjelmien tunnistamisessa: Tekniikat
Pellikka, Aleksi (2024)
Pellikka, Aleksi
2024
Tietojenkäsittelytieteiden kandidaattiohjelma - Bachelor's Programme in Computer Sciences
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2024-06-02
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202405236233
https://urn.fi/URN:NBN:fi:tuni-202405236233
Tiivistelmä
Mobiililaitteiden ja niille tarkoitettujen haittaohjelmien määrä kasvaa jatkuvasti. Maailmanlaajuisesti haittaohjelmat aiheuttavat biljoonien dollareiden edestä kustannuksia vuosittain, ja kustannusten määrä kasvaa vuosi vuodelta. Tämän vuoksi onkin oleellista tietää minkälaisia mahdollisuuksia haittaohjelmien tunnistamiseen on. Tässä tutkielmassa keskitytään Android käyttöjärjestelmään, koska mobiililaitteiden saralla Android on suosituin käyttöjärjestelmä. Suosion vuoksi se on myös suuremmalla todennäköisyydellä haittaohjelmien kehittäjien kohteena. Android haittaohjelmien tunnistamiseen käytetään useita erilaisia tekniikoita, jotka kaikki perustuvat joko staattiseen tai dynaamiseen analyysiin. Tässä kirjallisuuskatsauksessa on koottu yhteen tyypillisiä dynaamisessa analyysissa hyödynnettyjä tekniikoita Android haittaohjelmien tunnistamisessa.
Työn alkupuoliskolla avataan hieman Android-alustan arkkitehtuuria, jonka ymmärtäminen on tärkeää tutkielman myöhemmän vaiheen kannalta. Erityisesti Android-alustan eri kerrosten rakentuminen toistensa päälle ja niiden välisen yhteyden ymmärtäminen on tärkeää. Androidin perustuessa Linux-käyttöjärjestelmään on oleellista ymmärtää minkä takia eri tutkimuksissa on keskitytty Androidin rajapintakutsujen tarkkailun lisäksi myös Linux-järjestelmäkutsujen tarkkailuun. Myös dynaaminen analyysi määritellään lyhyesti, jonka lisäksi analyysin suoritusympäristöstä ja mahdollisista haasteista kerrotaan.
Keskeisimmät hyödynnetyt tekniikat liittyvät Androidin eri rajapinta- ja järjestelmäkutsujen sekä verkkoliikenteen analysointiin, joiden lisäksi myös koneoppimista hyödynnetään laajasti. Rajapinta- ja järjestelmäkutsujen kohdalla analysoidaan vaihtelevasti Android-rajapinnan ja Linux-järjestelmän funktiokutsuja. Osassa viitekehyksistä keskitytään vain toiseen näistä ja osassa taas molempiin. Verkkoliikenteen analysointi liittyy pääasiassa kohde-URL-osoitteiden, sekä verkkoliikennepakettien sisällön ja koon analysointiin. Koneoppimisen saralla dynaamisessa analyysissa hyödynnetään erilaisia yksittäisiä luokittelualgoritmeja sekä ryhmäoppimista tunnistamisen automatisoinnissa ja tehostamisessa.
Työn alkupuoliskolla avataan hieman Android-alustan arkkitehtuuria, jonka ymmärtäminen on tärkeää tutkielman myöhemmän vaiheen kannalta. Erityisesti Android-alustan eri kerrosten rakentuminen toistensa päälle ja niiden välisen yhteyden ymmärtäminen on tärkeää. Androidin perustuessa Linux-käyttöjärjestelmään on oleellista ymmärtää minkä takia eri tutkimuksissa on keskitytty Androidin rajapintakutsujen tarkkailun lisäksi myös Linux-järjestelmäkutsujen tarkkailuun. Myös dynaaminen analyysi määritellään lyhyesti, jonka lisäksi analyysin suoritusympäristöstä ja mahdollisista haasteista kerrotaan.
Keskeisimmät hyödynnetyt tekniikat liittyvät Androidin eri rajapinta- ja järjestelmäkutsujen sekä verkkoliikenteen analysointiin, joiden lisäksi myös koneoppimista hyödynnetään laajasti. Rajapinta- ja järjestelmäkutsujen kohdalla analysoidaan vaihtelevasti Android-rajapinnan ja Linux-järjestelmän funktiokutsuja. Osassa viitekehyksistä keskitytään vain toiseen näistä ja osassa taas molempiin. Verkkoliikenteen analysointi liittyy pääasiassa kohde-URL-osoitteiden, sekä verkkoliikennepakettien sisällön ja koon analysointiin. Koneoppimisen saralla dynaamisessa analyysissa hyödynnetään erilaisia yksittäisiä luokittelualgoritmeja sekä ryhmäoppimista tunnistamisen automatisoinnissa ja tehostamisessa.
Kokoelmat
- Kandidaatintutkielmat [9001]