Autor:
Henry Narits

Kristiina Rahkema kaitseb doktoritööd „Quality Analysis of iOS Applications with Focus on Maintainability and Security Aspects“

23. oktoobril kell 10.15 kaitseb Kristiina Rahkema informaatika erialal doktoritööd „Quality Analysis of iOS Applications with Focus on Maintainability and Security Aspects“ („Mobiilirakenduste kvaliteedi analüüs rõhuga hooldatavuse ja turvalisuse aspektidele“).

Juhendaja
professor Dietmar Pfahl, Tartu Ülikool

Oponendid
professor Tom Mens, Monsi Ülikool (Belgia)
kaasprofessor Luis Miranda da Cruz, Delfti Tehnikaülikool (Holland)

Kokkuvõte
Nutitelefonidest on saanud meie elu lahutamatu osa. Iga asja jaoks on olemas äpp: sõnumite saatmiseks, internetipanga külastuseks, auto lukust avamiseks. Kahjuks on paljud neist rakendustest ebaturvalised. Turvavigu on avastatud sellistes rakendustes nagu Facebook, TikTok ja WhatsApp. Nende turvavigade raskusaste võib ulatuda andmelekkest kuni pahaloomulise koodi käivitamiseni, mis ohustavad meie kõige privaatsemaid andmeid. Androidi rakenduste kohta on läbi viidud palju uuringuid, mis analüüsivad koodi kvaliteedi erinevaid aspekte, nagu hooldatavus ja turvalisus. On vähe toetavaid tööriistu ja iOS-i rakenduste kohta on teostatud väga vähe uurimistöid. iOS-i populaarsuse tõttu on oluline toetada arendajaid kvaliteetsete rakenduste loomisel nii turvalisuse kui ka hooldatavuse osas.

Selle lõputöö eesmärk on täiustada nii arendajate kui ka teadlaste tööriistade tuge ning täita mõned iOS-i rakenduste hooldatavuse ja turvalisusega seotud uurimislüngad. Esmalt arendasime välja GraphifySwifti – tööriista, mis tuvastab Swiftis kirjutatud projektides kasinaid koodimustreid. Seejärel rakendasime GraphifySwifti avatud lähtekoodiga iOS-i rakendustele ning analüüsisime kasinate koodimustrite levikut ja sagedust. Lisaks võrdlesime kasinaid koodimustreid iOS-i ja Androidi rakendustes. Nende täiendavate analüüside põhjal töötasime välja GraphfiyEvolutioni, laiendatava tööriista, mis suudab analüüsida nii hetkeseisu kui ka projektide arengut. Kasutasime GraphifyEvolutionit esialgseks kasinate koodimustrid evolutsiooni analüüsiks.

Arendasime SwiftDependencyCheckeri – tööriista, mis leiab iOS-i rakendustest teavet kolmandate osapoolte teekide sõltuvuste kohta ja tuvastab ebaturvalised sõltuvused. Kasutasime GraphifyEvolutionit ja SwiftDependencyCheckerit, et luua Swifti ökosüsteemi kolmandate osapoolte raamistike jaoks raamistike sõltuvusvõrgu andmekogu. Kasutasime seda andmekogumit Swifti ökosüsteemi erinevate aspektide uurimiseks. Analüüsisime Swifti ökosüsteemi üldist arengut, paketihaldurite kasutamist, tehnilist välga raamistike sõltuvustes ja turvavigade levikut.