„iOS“ ir „Android“ programėlių testavimas kartu su jų serverine dalimi: duomenų saugojimas, perdavimas, sąveika su platforma ir atsparumas modifikavimui.
Mobilioji programėlė veikia įrenginyje, kurio jos kūrėjas nekontroliuoja. Viską, kas yra diegimo pakete, galima perskaityti, kiekvieną įrenginyje atliekamą tikrinimą galima apeiti, o kiekviena į kodą įrašyta paslaptis tampa vieša tą dieną, kai programėlė išleidžiama.
Programėlę analizuojame statiškai ir instrumentuotuose įrenginiuose, perimame jos srautą ir testuojame serverinę dalį, su kuria ji bendrauja. Klausimas visada tas pats: ką gali padaryti tas, kam priklauso įrenginys, arba tas, kas yra su juo tame pačiame tinkle.
01Apimtis
Ką testuojame
Vietinė saugykla: duomenų bazės, nuostatos, „Keychain“ ir „Keystore“, žurnalai, atsarginės kopijos
Kriptografija: algoritmai, raktų valdymas, į kodą įrašytos paslaptys
Tinklas: TLS konfigūracija, sertifikatų prisegimas (angl. certificate pinning), nešifruotas srautas
Autentifikavimas: biometrija, žetonai, sesijų valdymas, susiejimas su įrenginiu
Sąveika su platforma: gilieji saitai (angl. deep links), ketinimai (angl. intents), URL schemos, „WebView“, iškarpinė
Kodo kokybė ir kompiliavimo nustatymai: derinimo vėliavėlės, eksportuoti komponentai, prieigos teisės
Atsparumas: „root“ ir „jailbreak“ aptikimas, apsauga nuo modifikavimo, kodo supainiojimas (angl. obfuscation)
Programėlės naudojama serverio API
02Darbo eiga
Kaip atliekamas darbas
01
Statinė analizė
Paketą išpakuojame ir dekompiliuojame. Skaitome konfigūraciją, ieškome paslapčių ir tiriame, kaip programėlė saugo ir apsaugo duomenis.
02
Dinaminė analizė
Programėlė veikia instrumentuotuose įrenginiuose. Perimame jos funkcijų iškvietimus, apeiname jos tikrinimus ir stebime, ką ji įrašo ir siunčia.
03
Srauto analizė
Srautą perimame išjungę sertifikatų prisegimą. Tada serverinę dalį testuojame tiesiogiai, be apribojimų, kuriuos taiko kliento programa.
04
Piktnaudžiavimas platforma
Programėlę iškviečiame iš kitų įrenginio programėlių per jos saitus, ketinimus ir eksportuotus komponentus.
Kiekvieną radinį lemiančios silpnosios vietos klasė.
The MITRE Corporation
06Klausimai
Klausimai apie šią paslaugą
Ar turime jums pateikti pirminį kodą?
Ne. Programėlę testuojame tokią, kokia ji platinama. Pirminis kodas pagreitina darbą ir padaro radinius tikslesnius; jį galima pridėti kaip kodo saugumo peržiūrą.
Ar serverinė dalis įtraukta?
Taip. Mobiliosios programėlės testas be serverinės dalies aprėpia pusę atakos paviršiaus. API testuojame per sąsają, kurią naudoja programėlė.
Mūsų programėlė naudoja sertifikatų prisegimą ir „root“ aptikimą. Ar tai trukdo testuoti?
Tai sulėtina ir užpuoliką, ir mus. Šias apsaugas apeiname ir nurodome, kiek pastangų tai pareikalavo: iš to matyti, ko jos vertos.