Mobilās lietotnes
Mobilo lietotņu ielaušanās testēšana (Android un iOS)
Mobilā lietotne darbojas ierīcē, kuru jūs nekontrolējat: uzbrucēja rīcībā nonāk gan pati lietotnes pakotne, gan ierīcē saglabātie dati, gan datplūsma starp lietotni un serveri. Pārbaudām visus trīs slāņus un līdz ar tiem arī API, ar kuru lietotne sazinās.
Ielaušanās testi notiek atbilstoši OWASP MASVS standartam un MASTG testēšanas rokasgrāmatai. Tāpēc pārbaudes pārklājumu var izmērīt, un rezultāts nav atkarīgs no tā, kurš konkrēto lietotni testēja.
Mums uzticas
Mobilās lietotnes
Ko pārbaudām Android un iOS lietotnēs?
Lietotāja saskarne ir tikai mobilās lietotnes virskārta. Strādājam ar reālu ierīci un to pašu laidienu, kas nonāk lietotņu veikalā: dekompilējam kodu, vajadzības gadījumā iejaucamies lietotnes darbībā un izejam cauri katram ceļam, kas uzbrucējam paveras no nozagta tālruņa vai no ierīces ar root un jailbreak tiesībām.
Latvijā liela daļa lietotņu ir plāni klienti, kas balstās uz bankas, maksājumu vai valsts pakalpojumu API, un pieteikšanās tajās bieži notiek ar Smart-ID vai eParaksts mobile. Tieši tur parasti atrodam smagākos konstatējumus: sesijas atslēga paliek ierīcē, bet piekļuves tiesības servera pusē neviens nepārbauda. Tāpēc API iekļaujam tvērumā.
Pārklājums pa MASVS kategorijām
| Joma | Ko pārbaudām |
|---|---|
| Datu glabāšana | Paroles un piekļuves atslēgas SharedPreferences vai UserDefaults failos, nešifrētas datubāzes ierīcē, personas dati ārējā atmiņā un dati, kas nonāk ierīces rezerves kopijā. |
| Datu pārraide | Nešifrēta datplūsma, nepārbaudīti sertifikāti, sertifikātu piesaiste (pinning), ko var apiet lietotnes darbības laikā. |
| Autentifikācija un sesijas | Kodā iestrādātas API atslēgas, žurnālos nonākušas sesijas atslēgas, sesijas, kuras var izmantot atkārtoti, un biometriska pārbaude, aiz kuras nekas nav aizslēgts. |
| Binārā aizsardzība | Publiskajā laidienā atstāts atkļūdošanas režīms, lietotne, kas neatpazīst root vai jailbreak vidi, un vāja aizsardzība pret pārpakošanu un koda izmaiņām. |
| Platformas saskarnes | Eksportēti komponenti, ļaunprātīgi izmantojamas dziļās saites, WebView JavaScript tilti, path traversal ievainojamības content provider komponentos. |
| Piegādes ķēde | SDK bibliotēkas ar ļaunatūru, dependency confusion, neparakstīta koda ielāde darbības laikā. |
Katra rinda ved uz attiecīgo Haxoris Wiki nodaļu (angļu valodā): tur aprakstām, kā uzbrucējs ievainojamību izmanto un kā to novērst.
Kā notiek mobilās lietotnes pārbaude
Tipiskai lietotnei viss process kopā ar atkārtotu pārbaudi aizņem 2–4 nedēļas.
Tvēruma saskaņošana
Kopā saskaņojam platformas, testējamo laidienu, testa kontus un to, vai tvērumā ietilpst arī API. Fiksētu cenu piedāvājam, pirms sākas darbs.
Statiskā analīze
Dekompilējam laidienu, pārskatām manifestu un pieprasītās atļaujas un meklējam kodā atstātas atslēgas, vāju šifrēšanu un atkļūdošanas paliekas.
Dinamiskā testēšana
Strādājam uz reālas ierīces: iejaucamies lietotnes darbībā, pārtveram datplūsmu, apejam sertifikātu piesaisti, apskatām ierīcē saglabātos datus un ļaunprātīgi izmantojam eksportētās saskarnes.
API un servera puse
API, ko lietotne izmanto, pārbaudām tikpat rūpīgi kā tīmekļa lietotni: piekļuves tiesības, IDOR, pieprasījumu ierobežojumus un biznesa loģiku.
Ziņojums un atkārtota pārbaude
Katram konstatējumam pievienojam pierādījumus un novēršanas soļus. Kad labojumi ir ieviesti, pārbaudām tos atkārtoti bez papildu samaksas.
Ko jūs iegūstat
Katrā mobilās lietotnes pārbaudē ietilpst:
Klientu atsauksmes
Ko par mums saka klienti
Mobilo lietotņu ielaušanās testēšana – biežāk uzdotie jautājumi
01 Vai testēšanai vajadzīgs pirmkods?
Nav vajadzīgs. Noklusējumā strādājam pēc melnās kastes principa ar publisko laidienu. Ja varat iedot pirmkodu vai atkļūdošanas versiju, izmantosim to: pelēkās kastes pieeja tajā pašā laikā atrod vairāk. Tas nav priekšnosacījums: ja lietotni izstrādāja ārpakalpojuma partneris un pirmkodam nevar piekļūt, pārbaude notiek tāpat.
02 Vai testējat gan iOS, gan Android?
Jā. Vairums klientu pasūta abas platformas, jo kļūdas tajās ir atšķirīgas: Android biežāk noplūdina datus caur eksportētiem komponentiem un ierīces atmiņu, iOS – caur nepareizi lietotu keychain un apejamu jailbreak atpazīšanu.
03 Vai tvērumā iekļaut arī API?
Parasti jā. Mobilā lietotne bieži ir tikai plāns klients, un īstā piekļuves tiesību loģika atrodas API pusē. Tvērumu pierakstām līgumā, lai pēc darba nerastos strīds par to, kas tika pārbaudīts un kas ne.
04 Cik bieži mobilā lietotne jāpārbauda?
Latvijā biežumu nosaka divi apsvērumi. Nacionālās kiberdrošības likuma (NKDL) subjektiem ir jāveic IKT infrastruktūras drošības pārbaudes atbilstoši Ministru kabineta noteikumiem, praksē – reizi gadā. Publiski pieejama mobilā lietotne kopā ar savu API parasti iekļaujas šo pārbaužu tvērumā. Ja lietotne apstrādā personas datus, Vispārīgās datu aizsardzības regulas (VDAR jeb GDPR) 32. pants prasa regulāri pārbaudīt un izvērtēt tehnisko pasākumu efektivitāti. Pārējos gadījumos izšķirošais ir laidienu ritms: ja jauna versija iznāk katru mēnesi, pārbaudi ir vērts sasaistīt ar lielākajām funkcionālajām izmaiņām. Ielaušanās tests ir tehniska pārbaude, nevis juridisks izvērtējums par to, kuras prasības attiecas uz konkrēto organizāciju.
05 Cik maksā mobilās lietotnes ielaušanās testēšana?
Cenu nosaka tvērums: cik platformu pārbaudām, cik liela un cik sarežģīta ir lietotne, vai tajā ir maksājumi un pieteikšanās ar Smart-ID, un vai tvērumā ietilpst API. Abas platformas kopā ar API parasti prasa 8–15 speciālista darba dienas. Pēc īsas sarunas par tvērumu piedāvājam fiksētu cenu par visu darbu, ieskaitot atkārtotu pārbaudi.
06 Vai varat pārbaudīt lietotni, kas vēl nav publicēta?
Jā, un tas ir labākais brīdis. Atsūtiet parakstītu laidienu – TestFlight, APK failu vai piekļuvi iekšējam izplatīšanas kanālam – un pārbaudīsim to, pirms lietotne nonāk pie lietotājiem.