Mobilne aplikacije

Penetracijski test mobilnih aplikacij za iOS in Android

Mobilna aplikacija teče na napravi, ki je nimate pod nadzorom. Napadalec ima zato v rokah binarno datoteko, lokalno shrambo in omrežni promet. Pri penetracijskem testu mobilne aplikacije preverimo vse troje – in še zaledni sistem (backend), s katerim aplikacija komunicira.

Testiramo po standardu za preverjanje OWASP MASVS in vodniku za testiranje MASTG, zato je pokritost merljiva in ni odvisna od tega, kdo je aplikacijo ravno testiral.

Zaupajo nam

  • Logotip podjetja Raiffeisen Processing Centre
  • Logotip podjetja Penta Hospitals
  • Logotip podjetja Pixel Federation
  • Logotip slovaškega ministrstva za finance
  • Logotip podjetja DanubePay
  • Logotip podjetja Alison
  • Logotip podjetja Ditec
  • Logotip podjetja Sanaclis
  • Logotip podjetja Piano
  • Logotip podjetja Ultima Payments
  • Logotip podjetja Amerge
  • Logotip podjetja Digital Systems

Mobilne aplikacije

Kaj testiramo v aplikacijah za iOS in Android

Penetracijski test (ali varnostni pregled) mobilne aplikacije zajema veliko več kot zaslone, ki jih vidi uporabnik. Delamo na fizični napravi in z dejansko različico aplikacije (build), po potrebi jo dekompiliramo in instrumentiramo ter preverimo vsako pot, ki bi jo napadalec lahko ubral z ukradenim telefonom ali z napravo s korenskim dostopom (root).

Kadar je aplikacija le lahki odjemalec, se resnično tveganje običajno skriva v vmesniku API za njo – tudi ta je del obsega.

Pokritost po kategorijah MASVS

PodročjeKaj iščemo
Shranjevanje podatkovSkrivnosti v shrambi SharedPreferences, nešifrirane podatkovne baze, občutljivi podatki v zunanji shrambi, podatki, ki ostanejo v varnostnih kopijah
Prenos podatkovNešifriran promet, manjkajoče preverjanje potrdil, pripenjanje potrdil (TLS pinning), ki ga je med izvajanjem mogoče zaobiti
Poverilnice in sejeV kodo vpisani ključi API, žetoni v dnevniških zapisih, žetoni seje z možnostjo ponovne uporabe (replay), biometrično preverjanje, ki v resnici ničesar ne varuje
Zaščita binarne datotekeIzdajne različice z omogočenim razhroščevanjem, manjkajoče zaznavanje dostopa root in jailbreaka, odpornost proti prepakiranju in spreminjanju aplikacije
Vmesniki platformeIzvožene komponente, zloraba globokih povezav (deep link), mostovi JavaScript v komponenti WebView, path traversal v ponudnikih vsebine (content provider)
Dobavna verigaKompleti SDK s podtaknjeno zlonamerno kodo, napadi dependency confusion, dinamično nalaganje nepodpisane kode

Vsaka vrstica vodi do ustreznega poglavja v Haxoris Wiki (v angleščini), kjer opišemo ranljivost, način njene izrabe in odpravo.

Kako poteka test mobilne aplikacije

Test običajne aplikacije traja od začetka do konca dva do štiri tedne, vključno s ponovnim testiranjem (retest).

1

Določitev obsega

Dogovorimo se o platformah, različici aplikacije, testnih računih in o tem, ali je v obsegu tudi zaledni sistem. Fiksno ceno poznate, še preden se delo začne.

2

Statična analiza

Aplikacijo dekompiliramo, pregledamo manifest in pravice (entitlements) ter poiščemo skrivnosti, šibko kriptografijo in ostanke razhroščevanja v izdajni različici.

3

Dinamično testiranje

Na fizični napravi: instrumentacija med izvajanjem, prestrezanje prometa, obhod pripenjanja potrdil, pregled shrambe in zloraba izvoženih vmesnikov.

4

Testiranje zalednega sistema

Vmesnike API, od katerih je aplikacija odvisna, testiramo enako temeljito kot spletno aplikacijo: avtorizacijo, ranljivosti IDOR, omejitve števila zahtev in poslovno logiko.

5

Poročilo in ponovni test

Ugotovitve z dokazi in priporočili za odpravo, po uvedbi popravkov pa brezplačen ponovni test.

Kaj dobite

Vsak test mobilne aplikacije vključuje:

Testiranje aplikacij za iOS in Android na fizični napravi
Poročilo, urejeno po kategorijah MASVS
Koraki za ponovitev, ki jim vaši razvijalci lahko sledijo
Brezplačen ponovni test po uvedbi popravkov
Testiranje zalednih vmesnikov API, kadar so v obsegu
Testerji s certifikatoma OSCP in eMAPT

Mnenja strank

Kaj o nas pravijo stranke

Penetracijski test mobilnih aplikacij – pogosta vprašanja

01 Ali potrebujete izvorno kodo?

Ne. Privzeto testiramo po metodi black box, z izdajno različico aplikacije. Če nam lahko daste izvorno kodo ali razhroščevalno različico, jo bomo uporabili (testiranje grey box v enakem številu dni odkrije več), vendar to ni pogoj.

02 Ali testirate tako iOS kot Android?

Da. Večina strank testira obe platformi, saj odpovesta vsaka po svoje: v sistemu Android podatki najpogosteje uhajajo prek izvoženih komponent in shrambe, v sistemu iOS pa zaradi napačne uporabe shrambe Keychain in obhoda zaznavanja jailbreaka.

03 Ali je vključen tudi zaledni vmesnik API?

Lahko je – in običajno bi tudi moral biti. Mobilna aplikacija je pogosto le lahki odjemalec nad vmesnikom API, v katerem je prava avtorizacijska logika. Obseg izrecno zapišemo, da ni dvoma o tem, kaj smo preverili.

04 Koliko stane penetracijski test mobilne aplikacije?

Test aplikacije za eno platformo stane od približno 2.000 € naprej. Testiranje obeh platform skupaj z zalednim sistemom običajno obsega 8 do 15 delovnih dni. Fiksno ceno ponudimo po kratkem pogovoru o obsegu.

05 Ali lahko testirate aplikacijo, ki še ni objavljena?

Da, in to je celo boljši čas za test. Pošljite nam podpisano različico – prek TestFlighta, kot datoteko APK ali prek internega kanala za testiranje – in testirali jo bomo, še preden pride do vaših uporabnikov.

Naročite test svoje mobilne aplikacije

Povejte nam, za katere platforme gre in kaj aplikacija približno počne, mi pa vam pošljemo fiksno ceno in časovni načrt. Oglejte si tudi penetracijske teste spletnih aplikacij.

Naročite brezplačen posvet