OWASP Mobile Top 10 je seznam deseti nejkritičtějších zranitelností mobilních aplikací vydávaný neziskovou organizací Open Web Application Security Project. Tento dokument je aktualizován každých několik let na základě dat bezpečnostní komunity a skutečných incidentů. Podle OWASP Foundation (2024) obsahuje více než 75% komerčních mobilních aplikací alespoň jednu ze zranitelností z tohoto seznamu. Studium Mobile Top 10 pomáhá vývojářům a testerům budovat ochranu již ve fázi návrhu architektury. OWASP, 2024
Hlavní body
OWASP Mobile Top 10 je standardizovaný seznam nejkritičtějších bezpečnostních rizik typických právě pro mobilní aplikace. Na rozdíl od obecného OWASP Top 10 pro webové aplikace zohledňuje mobilní verze specifika platforem: lokální ukládání na zařízení, interakci se senzory, offline režimy a vlastnosti obchodů s aplikacemi. Dokument je vydáván od roku 2010 a revidován každé 2–4 roky: aktuální verze pro rok 2024 zahrnuje kategorie jako M1 — Improper Credential Usage a M8 — Security Misconfiguration. Projekt je podporován komunitou více než 500 dobrovolníků po celém světě.
Původně OWASP Top 10 pokrýval pouze webové aplikace, ale růst mobilního vývoje v 2010. letech vyžadoval samostatný dokument. První verze Mobile Top 10 vyšla v roce 2011 a obsahovala pouze 7 bodů. Do roku 2024 se seznam rozšířil na 10 kategorií, z nichž každá zahrnuje několik konkrétních scénářů útoku. Hlavním cílem dokumentu je poskytnout vývojářům a bezpečnostním týmům společný jazyk pro diskusi o rizicích a prioritizaci oprav. Pravidelná aktualizace seznamu odráží změny v prostředí hrozeb: vznik nových API, vývoj operačních systémů (Android, iOS) a nové techniky útoků popsané ve zprávách Positive Technologies a dalších výzkumných center.
Metodologie sestavování Mobile Top 10 je založena na datech z reálných projektů: analyzují se výsledky penetračních testů mobilních aplikací, zprávy o incidentech a výzkumy zranitelností. Každá kategorie je hodnocena podle dvou parametrů: četnost výskytu (Incidence Rate) a potenciální technický dopad (Technical Impact). Kombinace těchto metrik tvoří konečné pořadí. Na rozdíl od subjektivních seznamů používá OWASP otevřená data: kterýkoli člen komunity může podat žádost o přidání nové kategorie prostřednictvím GitHub repozitáře projektu. Pro aktuální verzi 2024 bylo zpracováno více než 300 tisíc bezpečnostních testů z 25 zemí světa, což činí statistiku reprezentativní pro globální ekosystém mobilního vývoje. Kromě toho OWASP publikuje MASVS (Mobile Application Security Verification Standard) — soubor podrobných bezpečnostních požadavků zahrnujících více než 80 konkrétních kontrol rozdělených do 8 kategorií. MASVS se používá jako základ pro certifikaci aplikací a jako kontrolní seznam pro penetrační testy: každý požadavek odkazuje na kategorii z Mobile Top 10, což zajišťuje úplnou sledovatelnost mezi standardem a seznamem rizik.
Podívejme se na tři nejkritičtější kategorie z OWASP Mobile Top 10 2024, které pokrývají více než 70% všech bezpečnostních incidentů v mobilních projektech. Každá kategorie obsahuje konkrétní scénáře zneužití a doporučení k ochraně.
Tato kategorie (M1) zahrnuje situace, kdy vývojáři používají API a platformní mechanismy neúčelově. Typické příklady: Intent Injection na Androidu, otevřené obsluhy Deep Link na iOS, nesprávná práce s Keychain a SharedPreferences. Útočník může odeslat speciálně vytvořený Intent a získat přístup k datům jiné aplikace nebo komponenty. Podle zprávy NowSecure (2023) obsahovalo 22% testovaných Android aplikací zranitelnosti typu Intent Redirection. Ochrana zahrnuje: přísnou validaci vstupních dat, kontrolu zdroje Intent a používání oprávnění pro exportované komponenty.
Nezabezpečené ukládání dat (M2) je nejčastějším problémem v mobilních aplikacích. Vzniká, když jsou důvěrná data (přístupové tokeny, hesla, osobní údaje) ukládána v otevřené podobě nebo s nedostatečnou ochranou. Typické zdroje zranitelnosti: SQLite databáze bez šifrování, SharedPreferences bez EncryptedSharedPreferences, protokolování dat v debug režimu. Podle OWASP Foundation (2024) ukládá více než 60% bezplatných aplikací na Google Play alespoň jeden typ důvěrných dat v nešifrované podobě. Řešení — použití Android EncryptedSharedPreferences, iOS Keychain a šifrování dat před zápisem do lokálního úložiště.
Kategorie M3 — nezabezpečená komunikace — zahrnuje zranitelnosti v kanálech přenosu dat mezi aplikací a serverem. Absence HTTPS, nesprávná validace SSL certifikátů, používání zastaralých protokolů TLS 1.0/1.1 — všechny tyto problémy umožňují útočníkovi zachytávat provoz prostřednictvím Man-in-the-Middle útoků. Zvláště nebezpečná je situace, když aplikace pracuje s citlivými údaji (bankovní transakce, lékařské informace) přes nezabezpečený kanál. V roce 2023 výzkumníci z NCC Group zjistili, že 12% populárních finančních aplikací používá nesprávnou konfiguraci TLS. Doporučení: povinné používání HTTPS s Certificate Pinning a upuštění od HTTP v produkčních sestaveních.
Testování zabezpečení mobilní aplikace podle metodiky OWASP zahrnuje několik fází: statickou analýzu kódu (SAST), dynamickou analýzu (DAST) a ruční testování (pentest). Každá fáze je zaměřena na identifikaci určitých kategorií zranitelností z Mobile Top 10.
Pro automatizovanou analýzu OWASP doporučuje používat MobSF (Mobile Security Framework) — nástroj s otevřeným zdrojovým kódem. MobSF provádí statickou analýzu zdrojového kódu a binárních souborů, kontroluje konfiguraci manifestů, analyzuje oprávnění a identifikuje zranitelnosti z Mobile Top 10. Pro dynamickou analýzu se používají Burp Suite (proxy pro zachytávání provozu) a Frida (nástroj pro runtime analýzu). Kombinace těchto nástrojů pokrývá více než 80% kategorií ze seznamu. Pravidelné testování v CI/CD pipeline s MobSF umožňuje odhalovat zranitelnosti v raných fázích vývoje a snižuje náklady na jejich opravu o 60–70%. Integrace nástrojů SAST a DAST do pipeline by měla být automatizována pomocí Gradle/Maven pluginů nebo Fastlane kroků v iOS sestaveních.
Po spuštění MobSF obdrží vývojář zprávu s barevnými indikátory: červená — kritická zranitelnost, oranžová — střední riziko, žlutá — nízké. Každé varování obsahuje odkaz na odpovídající kategorii OWASP Mobile Top 10, popis problému a doporučení k opravě. Důležité je nejen odstranit červená varování, ale také analyzovat oranžová: mnohá z nich (např. exportované Activity bez ochrany) mohou v kombinaci poskytnout útočníkovi vektor útoku. Doporučuje se dosáhnout nulového počtu červených varování a ne více než 2–3 oranžových před každým vydáním. Zpráva MobSF také zahrnuje analýzu oprávnění aplikace: jakákoli nadbytečná oprávnění (např. přístup k kameře v kalkulačce) jsou zaznamenána jako porušení principu minimálních privilegií a musí být odstraněna z manifestu. Pro iOS aplikace provádí MobSF podobnou analýzu .ipa souborů, včetně kontroly Info.plist na výjimky ATS a analýzy Mach-O binárních souborů na použití nebezpečných API, jako je NSAllowsArbitraryLoads.
Podívejme se na příklad statické analýzy Android aplikace pomocí MobSF pro identifikaci zranitelností z OWASP Mobile Top 10. Kód ukazuje typickou chybu — nebezpečné ukládání tokenu v SharedPreferences.
class InsecureStorage {
private val prefs = context.getSharedPreferences("my_app", Context.MODE_PRIVATE)
fun saveToken(token: String) {
prefs.edit().putString("auth_token", token).apply()
}
fun getToken(): String? {
return prefs.getString("auth_token", null)
}
}
MobSF při analýze takového kódu vydá varování o nebezpečném ukládání dat (kategorie M2 — Insecure Data Storage). Opravená verze používá EncryptedSharedPreferences z knihovny AndroidX Security. Správná implementace šifrování dat na úrovni úložiště odpovídá doporučením OWASP a zabraňuje úniku tokenů při fyzickém přístupu k zařízení. Po zavedení EncryptedSharedPreferences je zranitelnost odstraněna, o čemž svědčí absence odpovídajícího varování ve zprávě MobSF.
class SecureStorage(context: Context) {
private val masterKey = MasterKey.Builder(context)
.setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
.build()
private val securePrefs = EncryptedSharedPreferences.create(
context,
"secure_prefs",
masterKey,
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
)
fun saveToken(token: String) {
securePrefs.edit().putString("auth_token", token).apply()
}
}
Často kladené otázky
OWASP Mobile Top 10 je seznam deseti nejnebezpečnějších zranitelností, které se nejčastěji vyskytují v mobilních aplikacích. Dokument pomáhá vývojářům pochopit, na co si dát pozor při vytváření bezpečných aplikací.
Seznam se aktualizuje přibližně každé 2–4 roky. Poslední verze byla vydána v roce 2024. Aktualizace zohledňují změny v mobilních platformách, vznik nových API a vývoj metod útoků.
Mobile Top 10 zohledňuje specifika mobilních platforem: lokální ukládání dat, práci se senzory, systém Intent na Androidu, offline režimy a vlastnosti publikování v obchodech s aplikacemi, které ve webové verzi chybí.
Podle statistik OWASP Foundation je nejčastější M2 — Insecure Data Storage (nezabezpečené ukládání dat). Vyskytuje se ve více než 60% testovaných mobilních aplikací všech kategorií.
Začněte instalací MobSF — bezplatného nástroje pro statickou analýzu. Nahrajte APK nebo zdrojový kód aplikace a MobSF automaticky ukáže, které kategorie Mobile Top 10 jsou v projektu přítomny.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také