OWASP Mobile Top 10, kar amacı gütmeyen Open Web Application Security Project kuruluşu tarafından yayınlanan mobil uygulamaların en kritik on güvenlik açığının bir listesidir. Bu belge, güvenlik topluluğu ve gerçek olaylardan elde edilen verilere dayanarak birkaç yılda bir güncellenir. OWASP Foundation'a (2024) göre, ticari mobil uygulamaların %75'inden fazlası bu listeden en az bir güvenlik açığı içermektedir. Mobile Top 10'u incelemek, geliştiricilerin ve test uzmanlarının mimari tasarım aşamasında koruma oluşturmasına yardımcı olur. OWASP, 2024
Önemli noktalar
OWASP Mobile Top 10, mobil uygulamalara özgü en kritik güvenlik risklerinin standartlaştırılmış bir listesidir. Web uygulamaları için genel OWASP Top 10'un aksine, mobil sürüm platformların özelliklerini dikkate alır: cihazda yerel depolama, sensörlerle etkileşim, çevrimdışı modlar ve uygulama mağazalarının özellikleri. Belge 2010'dan beri yayınlanmaktadır ve her 2–4 yılda bir revize edilir: 2024 için mevcut sürüm, M1 — Improper Credential Usage ve M8 — Security Misconfiguration gibi kategorileri içerir. Proje, dünya çapında 500'den fazla gönüllüden oluşan bir topluluk tarafından desteklenmektedir.
Başlangıçta OWASP Top 10 yalnızca web uygulamalarını kapsıyordu, ancak 2010'larda mobil geliştirmenin büyümesi ayrı bir belge gerektirdi. Mobile Top 10'un ilk sürümü 2011'de yayınlandı ve yalnızca 7 madde içeriyordu. 2024'e kadar liste 10 kategoriye genişledi ve her biri birkaç belirli saldırı senaryosu içeriyor. Belgenin temel amacı, geliştiricilere ve güvenlik ekiplerine riskleri tartışmak ve düzeltmeleri önceliklendirmek için ortak bir dil sağlamaktır. Listenin düzenli güncellemeleri tehdit ortamındaki değişiklikleri yansıtır: yeni API'lerin ortaya çıkışı, işletim sistemlerinin (Android, iOS) evrimi ve Positive Technologies ve diğer araştırma merkezlerinin raporlarında açıklanan yeni saldırı teknikleri.
Mobile Top 10'u derleme metodolojisi, gerçek projelerden elde edilen verilere dayanır: mobil uygulama sızma testlerinin sonuçları, olay raporları ve güvenlik açığı araştırmaları analiz edilir. Her kategori iki parametreye göre değerlendirilir: Görülme sıklığı (Incidence Rate) ve Teknik Etki (Technical Impact). Bu metriklerin kombinasyonu nihai sıralamayı oluşturur. Öznel listelerin aksine, OWASP açık veri kullanır: topluluk üyelerinden herhangi biri, projenin GitHub deposu aracılığıyla yeni bir kategori ekleme talebinde bulunabilir. 2024'ün mevcut sürümü için 25 ülkeden 300.000'den fazla güvenlik testi işlenmiştir ve bu da istatistikleri küresel mobil geliştirme ekosistemi için temsil edici kılmaktadır. Ayrıca OWASP, MASVS'yi (Mobile Application Security Verification Standard) yayınlar — 8 kategoride dağıtılmış 80'den fazla belirli kontrol içeren ayrıntılı bir güvenlik gereksinimleri seti. MASVS, uygulama sertifikasyonu için bir temel ve sızma testleri için bir kontrol listesi olarak kullanılır: her gereksinim, standart ile risk listesi arasında izlenebilirlik sağlayan bir Mobile Top 10 kategorisine referansa sahiptir.
OWASP Mobile Top 10 2024'ün mobil projelerdeki tüm güvenlik olaylarının %70'inden fazlasını kapsayan en kritik üç kategorisini inceleyelim. Her kategori, belirli istismar senaryoları ve koruma önerileri içerir.
Bu kategori (M1), geliştiricilerin API'leri ve platform mekanizmalarını yanlış kullandığı durumları kapsar. Tipik örnekler: Android'de Intent Injection, iOS'ta açık Deep Link işleyicileri, Keychain ve SharedPreferences'ın yanlış kullanımı. Bir saldırgan, özel olarak hazırlanmış bir Intent gönderebilir ve başka bir uygulamanın veya bileşenin verilerine erişebilir. NowSecure raporuna (2023) göre, test edilen Android uygulamalarının %22'si Intent Redirection türünde güvenlik açıkları içeriyordu. Koruma şunları içerir: sıkı giriş verisi doğrulaması, Intent kaynağının kontrolü ve dışa aktarılan bileşenler için izinlerin kullanılması.
Güvensiz veri depolama (M2), mobil uygulamalardaki en yaygın sorundur. Hassas verilerin (erişim tokenları, şifreler, kişisel veriler) düz metin olarak veya yetersiz korumayla saklanması durumunda ortaya çıkar. Tipik güvenlik açığı kaynakları: şifrelemesiz SQLite veritabanları, EncryptedSharedPreferences olmadan SharedPreferences, hata ayıklama modunda veri günlüğü. OWASP Foundation'a (2024) göre, Google Play'deki ücretsiz uygulamaların %60'ından fazlası en az bir tür hassas veriyi şifrelenmemiş biçimde saklar. Çözüm, Android EncryptedSharedPreferences, iOS Keychain kullanmak ve verileri yerel depolamaya yazmadan önce şifrelemektir.
Kategori M3 — Güvensiz iletişim — uygulama ile sunucu arasındaki veri iletim kanallarındaki güvenlik açıklarını içerir. HTTPS eksikliği, SSL sertifikalarının yanlış doğrulaması, güncel olmayan TLS 1.0/1.1 protokollerinin kullanımı — tüm bu sorunlar, bir saldırganın Man-in-the-Middle saldırıları yoluyla trafiği ele geçirmesine olanak tanır. Uygulamanın korumasız bir kanal üzerinden hassas verilerle (banka işlemleri, tıbbi bilgiler) çalışması durumunda durum özellikle tehlikelidir. 2023'te NCC Group araştırmacıları, popüler finans uygulamalarının %12'sinin yanlış TLS yapılandırması kullandığını buldu. Öneri: Certificate Pinning ile HTTPS'nin zorunlu kullanımı ve üretim yapılarında HTTP'nin reddedilmesi.
OWASP metodolojisini kullanarak bir mobil uygulamanın güvenlik testi birkaç aşamayı içerir: statik kod analizi (SAST), dinamik analiz (DAST) ve manuel test (sızma testi). Her aşama, Mobile Top 10'dan belirli güvenlik açığı kategorilerini belirlemeyi amaçlar.
Otomatik analiz için OWASP, MobSF (Mobile Security Framework) — açık kaynaklı bir araç — kullanılmasını önerir. MobSF, kaynak kodu ve ikili dosyaların statik analizini gerçekleştirir, bildirim yapılandırmasını kontrol eder, izinleri analiz eder ve Mobile Top 10'daki güvenlik açıklarını belirler. Dinamik analiz için Burp Suite (trafik yakalama proxy'si) ve Frida (çalışma zamanı analiz aracı) kullanılır. Bu araçların kombinasyonu, listedeki kategorilerin %80'inden fazlasını kapsar. MobSF ile CI/CD boru hattında düzenli testler, güvenlik açıklarının geliştirmenin erken aşamalarında belirlenmesini sağlar ve düzeltme maliyetini %60–70 oranında azaltır. SAST ve DAST araçlarının boru hattına entegrasyonu, Gradle/Maven eklentileri veya iOS yapılarında Fastlane adımları aracılığıyla otomatikleştirilmelidir.
MobSF çalıştırıldıktan sonra geliştirici, renk göstergeleriyle bir rapor alır: kırmızı — kritik güvenlik açığı, turuncu — orta risk, sarı — düşük risk. Her uyarı, ilgili OWASP Mobile Top 10 kategorisine, sorunun açıklamasına ve bir düzeltme önerisine referans içerir. Yalnızca kırmızı uyarıları ortadan kaldırmak değil, aynı zamanda turuncu olanları analiz etmek de önemlidir: bunların birçoğu (örneğin, korumasız dışa aktarılan Activity'ler) birleşerek saldırgana bir saldırı vektörü verebilir. Her sürümden önce sıfır kırmızı uyarı ve en fazla 2–3 turuncu uyarı elde edilmesi önerilir. MobSF raporu ayrıca uygulama izinlerinin bir analizini de içerir: herhangi bir aşırı izin (örneğin, bir hesap makinesinde kamera erişimi), en az ayrıcalık ilkesinin ihlali olarak işaretlenir ve bildirimden kaldırılmalıdır. iOS uygulamaları için MobSF, .ipa dosyalarının benzer bir analizini gerçekleştirir; buna ATS istisnaları için Info.plist'in kontrolü ve NSAllowsArbitraryLoads gibi güvenli olmayan API'ler için Mach-O ikili dosyalarının analizi dahildir.
OWASP Mobile Top 10'daki güvenlik açıklarını belirlemek için MobSF kullanarak bir Android uygulamasının statik analizi örneğini ele alalım. Kod tipik bir hatayı gösteriyor — SharedPreferences'da token'ın güvensiz depolanması.
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 bu tür bir kodu analiz ederken güvensiz veri depolama (kategori M2 — Insecure Data Storage) hakkında bir uyarı verecektir. Düzeltilmiş sürüm, AndroidX Security kitaplığından EncryptedSharedPreferences kullanır. Depolama düzeyinde veri şifrelemesinin doğru şekilde uygulanması, OWASP önerilerine uygundur ve cihaza fiziksel erişim sırasında token sızıntısını önler. EncryptedSharedPreferences uygulandıktan sonra güvenlik açığı çözülür ve bu, MobSF raporunda ilgili bir uyarının olmamasıyla kanıtlanır.
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()
}
}
Sıkça sorulan sorular
OWASP Mobile Top 10, mobil uygulamalarda en sık bulunan on en tehlikeli güvenlik açığının bir listesidir. Belge, geliştiricilerin güvenli uygulamalar oluştururken nelere dikkat etmeleri gerektiğini anlamalarına yardımcı olur.
Liste yaklaşık her 2–4 yılda bir güncellenir. En son sürüm 2024'te yayınlanmıştır. Güncellemeler, mobil platformlardaki değişiklikleri, yeni API'lerin ortaya çıkışını ve saldırı yöntemlerinin evrimini dikkate alır.
Mobile Top 10, mobil platformların özelliklerini dikkate alır: yerel veri depolama, sensörlerle çalışma, Android Intent sistemi, çevrimdışı modlar ve web sürümünde bulunmayan uygulama mağazası yayınlama özellikleri.
OWASP Foundation istatistiklerine göre en yaygın olanı M2 — Insecure Data Storage'dır. Tüm kategorilerdeki test edilen mobil uygulamaların %60'ından fazlasında görülür.
MobSF — ücretsiz bir statik analiz aracı — yükleyerek başlayın. Uygulamanın APK'sını veya kaynak kodunu yükleyin; MobSF, projede hangi Mobile Top 10 kategorilerinin bulunduğunu otomatik olarak gösterecektir.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun