OWASP Mobile Top 10 är en lista över de tio mest kritiska sårbarheterna i mobila applikationer, publicerad av den ideella organisationen Open Web Application Security Project. Detta dokument uppdateras med några års mellanrum baserat på data från säkerhetsgemenskapen och verkliga incidenter. Enligt OWASP Foundation (2024) innehåller mer än 75% av kommersiella mobilappar minst en av sårbarheterna från denna lista. Att studera Mobile Top 10 hjälper utvecklare och testare att bygga skydd redan i arkitekturdesignfasen. OWASP, 2024
Huvudpunkter
OWASP Mobile Top 10 är en standardiserad lista över de mest kritiska säkerhetsriskerna som är specifika för mobila applikationer. Till skillnad från den allmänna OWASP Top 10 för webbapplikationer tar mobilversionen hänsyn till plattformarnas särdrag: lokal lagring på enheten, interaktion med sensorer, offlinelägen och egenskaper hos appbutiker. Dokumentet publiceras sedan 2010 och revideras var 2–4:e år: den aktuella versionen för 2024 innehåller kategorier som M1 — Improper Credential Usage och M8 — Security Misconfiguration. Projektet stöds av en gemenskap på över 500 volontärer världen över.
Ursprungligen täckte OWASP Top 10 endast webbapplikationer, men tillväxten av mobil utveckling på 2010-talet krävde ett separat dokument. Den första versionen av Mobile Top 10 kom ut 2011 och innehöll bara 7 punkter. Till 2024 hade listan utökats till 10 kategorier, var och en med flera specifika attackscenarier. Dokumentets huvudsyfte är att ge utvecklare och säkerhetsteam ett gemensamt språk för att diskutera risker och prioritera åtgärder. Regelbunden uppdatering av listan återspeglar förändringar i hotbilden: uppkomsten av nya API:er, evolutionen av operativsystem (Android, iOS) och nya attacktekniker som beskrivs i rapporter från Positive Technologies och andra forskningscentra.
Metodiken för att sammanställa Mobile Top 10 baseras på data från verkliga projekt: resultat från penetrationstester av mobilappar, incidentrapporter och sårbarhetsundersökningar analyseras. Varje kategori bedöms utifrån två parametrar: förekomstfrekvens (Incidence Rate) och potentiell teknisk påverkan (Technical Impact). Kombinationen av dessa mätvärden bildar den slutliga rankningen. Till skillnad från subjektiva listor använder OWASP öppna data: vilken medlem som helst i gemenskapen kan lämna in en begäran om att lägga till en ny kategori via projektets GitHub-förråd. För den aktuella versionen 2024 bearbetades över 300 tusen säkerhetstester från 25 länder, vilket gör statistiken representativ för det globala ekosystemet för mobil utveckling. Dessutom publicerar OWASP MASVS (Mobile Application Security Verification Standard) — en uppsättning detaljerade säkerhetskrav som omfattar över 80 specifika kontroller fördelade på 8 kategorier. MASVS används som grund för certifiering av appar och som checklista för penetrationstester: varje krav hänvisar till en kategori från Mobile Top 10, vilket säkerställer full spårbarhet mellan standarden och risklistan.
Låt oss titta på de tre mest kritiska kategorierna från OWASP Mobile Top 10 2024, som täcker mer än 70% av alla säkerhetsincidenter i mobilprojekt. Varje kategori innehåller specifika exploateringsscenarier och skyddsrekommendationer.
Denna kategori (M1) omfattar situationer där utvecklare använder API:er och plattformsmekanismer inte enligt ändamålet. Typiska exempel: Intent Injection på Android, öppna Deep Link-hanterare på iOS, felaktig hantering av Keychain och SharedPreferences. En angripare kan skicka en specialgjord Intent och få åtkomst till data från en annan app eller komponent. Enligt NowSecure-rapporten (2023) innehöll 22% av testade Android-appar sårbarheter av typen Intent Redirection. Skydd inkluderar: strikt validering av indata, kontroll av Intent-källan och användning av behörigheter för exporterade komponenter.
Osäker datalagring (M2) är det vanligaste problemet i mobilappar. Det uppstår när konfidentiell data (åtkomsttokens, lösenord, personlig information) lagras i öppen form eller med otillräckligt skydd. Typiska källor till sårbarhet: SQLite-databaser utan kryptering, SharedPreferences utan EncryptedSharedPreferences, loggning av data i felsökningsläge. Enligt OWASP Foundation (2024) lagrar mer än 60% av gratisapparna på Google Play minst en typ av konfidentiell data i okrypterad form. Lösning — användning av Android EncryptedSharedPreferences, iOS Keychain och kryptering av data innan skrivning till lokal lagring.
Kategori M3 — osäker kommunikation — omfattar sårbarheter i dataöverföringskanaler mellan appen och servern. Avsaknad av HTTPS, felaktig validering av SSL-certifikat, användning av föråldrade TLS 1.0/1.1-protokoll — alla dessa problem gör att en angripare kan avlyssna trafik via Man-in-the-Middle-attacker. Situationen är särskilt farlig när appen arbetar med känslig data (banktransaktioner, medicinsk information) via en oskyddad kanal. 2023 upptäckte forskare från NCC Group att 12% av populära finansappar använder felaktig TLS-konfiguration. Rekommendation: obligatorisk användning av HTTPS med Certificate Pinning och avstående från HTTP i produktionsbyggen.
Säkerhetstestning av mobila appar enligt OWASP-metodiken omfattar flera steg: statisk kodanalys (SAST), dynamisk analys (DAST) och manuell testning (pentest). Varje steg syftar till att identifiera specifika kategorier av sårbarheter från Mobile Top 10.
För automatiserad analys rekommenderar OWASP användning av MobSF (Mobile Security Framework) — ett verktyg med öppen källkod. MobSF utför statisk analys av källkod och binärfiler, kontrollerar manifestkonfiguration, analyserar behörigheter och identifierar sårbarheter från Mobile Top 10. För dynamisk analys används Burp Suite (proxy för trafikavlyssning) och Frida (verktyg för runtime-analys). Kombinationen av dessa verktyg täcker mer än 80% av kategorierna i listan. Regelbunden testning i CI/CD-pipeline med MobSF möjliggör identifiering av sårbarheter i tidiga utvecklingsstadier och minskar kostnaderna för att åtgärda dem med 60–70%. Integrering av SAST- och DAST-verktyg i pipelinen bör automatiseras via Gradle/Maven-plugin eller Fastlane-steg i iOS-byggen.
Efter att ha kört MobSF får utvecklaren en rapport med färgindikatorer: röd — kritisk sårbarhet, orange — medelhög risk, gul — låg. Varje varning innehåller en hänvisning till motsvarande OWASP Mobile Top 10-kategori, en beskrivning av problemet och en rekommendation för åtgärd. Det är viktigt att inte bara ta bort röda varningar utan också analysera orange: många av dem (t.ex. exporterad Activity utan skydd) kan i kombination ge en angripare en attackvektor. Det rekommenderas att uppnå noll röda varningar och högst 2–3 orange varningar före varje release. MobSF-rapporten innehåller också analys av appbehörigheter: alla överflödiga behörigheter (t.ex. kameraåtkomst i en miniräknare) registreras som brott mot principen om minsta behörighet och måste tas bort från manifestet. För iOS-appar utför MobSF liknande analys av .ipa-filer, inklusive kontroll av Info.plist för ATS-undantag och analys av Mach-O-binärfiler för användning av osäkra API:er som NSAllowsArbitraryLoads.
Låt oss titta på ett exempel på statisk analys av en Android-app med MobSF för att identifiera sårbarheter från OWASP Mobile Top 10. Koden visar ett typiskt fel — osäker lagring av en token i 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 vid analys av sådan kod kommer att utfärda en varning om osäker datalagring (kategori M2 — Insecure Data Storage). Den korrigerade versionen använder EncryptedSharedPreferences från AndroidX Security-biblioteket. Korrekt implementering av datakryptering på lagringsnivå överensstämmer med OWASP:s rekommendationer och förhindrar tokenläckage vid fysisk åtkomst till enheten. Efter implementering av EncryptedSharedPreferences elimineras sårbarheten, vilket bevisas av frånvaron av motsvarande varning i MobSF-rapporten.
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()
}
}
Vanliga frågor
OWASP Mobile Top 10 är en lista över de tio farligaste sårbarheterna som oftast förekommer i mobilappar. Dokumentet hjälper utvecklare att förstå vad de ska vara uppmärksamma på när de skapar säkra applikationer.
Listan uppdateras ungefär var 2–4:e år. Den senaste versionen släpptes 2024. Uppdateringarna tar hänsyn till förändringar i mobila plattformar, uppkomsten av nya API:er och utvecklingen av attackmetoder.
Mobile Top 10 tar hänsyn till specifika egenskaper hos mobila plattformar: lokal datalagring, arbete med sensorer, Android Intent-system, offlinelägen och publiceringsfunktioner i appbutiker som saknas i webbversionen.
Enligt OWASP Foundations statistik är den vanligaste M2 — Insecure Data Storage (osäker datalagring). Den förekommer i mer än 60% av testade mobilappar i alla kategorier.
Börja med att installera MobSF — ett gratis verktyg för statisk analys. Ladda upp APK eller appens källkod, så visar MobSF automatiskt vilka kategorier av Mobile Top 10 som finns i projektet.
Sammanfattning
Vi utvecklar en mobil applikation nyckelfärdigt
IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.
Läs också