OWASP MASVS Nedir?
OWASP Mobile Application Security Verification Standard (MASVS), mobil uygulamaların güvenlik seviyesini değerlendirmek için oluşturulmuş endüstri standardı bir çerçevedir. 2026 itibarıyla MASVS v2 aktif olarak kullanılmakta ve iki ana profil sunmaktadır:
- MAS-L1: Her mobil uygulamanın karşılaması gereken temel güvenlik gereksinimleri
- MAS-L2: Hassas veri işleyen uygulamalar için ileri düzey gereksinimler (finans, sağlık gibi)
MASVS'i bir checklist gibi düşünebilirsiniz. Uygulamanızı yayınlamadan önce bu listedeki maddeleri tek tek kontrol ederek güvenlik açıklarını tespit edebilirsiniz.
SSL/TLS Pinning
Sunucu ile uygulama arasındaki iletişimin güvenliğini sağlamanın ilk adımı SSL/TLS pinning uygulamaktır. Normal HTTPS bağlantısında cihaz, herhangi bir güvenilir sertifika otoritesini kabul eder. Pinning ile uygulamanız yalnızca belirli bir sertifikayı veya public key'i kabul eder.
iOS'ta pinning:
- URLSession delegate metotlarıyla manuel pinning
- TrustKit kütüphanesi ile deklaratif yapılandırma
- Info.plist'te App Transport Security kuralları
Android'de pinning:
- network_security_config.xml ile pin tanımlama
- OkHttp CertificatePinner API'si
- Android 7+ için network security config yeterli oluyor
Certificate transparency logları da kontrol edin. Sertifikanız için yetkisiz bir sertifika düzenlenip düzenlenmediğini takip etmenizi sağlar.
Jailbreak ve Root Tespiti
Jailbreak (iOS) veya root (Android) yapılmış cihazlar, uygulamanızın sandbox korumasını devre dışı bırakabilir. Bu cihazlarda keychain verileri okunabilir, runtime'da fonksiyonlar hook'lanabilir ve dosya sistemine erişilebilir.
Kontrol edilecek sinyaller:
- Root/jailbreak ile ilişkili dosya ve dizin varlığı (Cydia, Magisk, SuperSU)
- su binary erişimi kontrolü
- Sandbox bütünlüğü testi
- Sistem kütüphanelerinin orijinallik kontrolü
- Frida, Xposed gibi hook framework'lerinin tespiti
Tespit edildiğinde uygulamanın nasıl davranacağına karar verin. Bazı uygulamalar uyarı gösterip devam eder, finans uygulamaları genelde tamamen çalışmayı reddeder.
Kod Obfuscation
Uygulamanızın APK veya IPA dosyası reverse engineering ile incelenebilir. Obfuscation, bu süreci zorlaştırmanın temel yoludur.
Android (ProGuard/R8):
- R8, Android'in varsayılan code shrinker ve obfuscator aracıdır
- minifyEnabled true yaparak etkinleştirilir
- proguard-rules.pro dosyasında keep kurallarını doğru tanımlayın
- Reflection kullanan kütüphaneler (Gson, Retrofit) için keep rule eklemeyi unutmayın
iOS:
- Swift/Objective-C kodu derleme sırasında zaten kısmen obfuscate olur
- Ek koruma için ticari araçlar (iXGuard, SwiftShield) kullanılabilir
- Bitcode etkinleştirildiğinde Apple kendi optimizasyonlarını uygular
API Key Güvenliği
Mobil uygulamada API key saklama her zaman zor bir konudur. Client tarafında saklanan her key potansiyel olarak ele geçirilebilir.
- API key'leri source code'a hardcode etmeyin
- iOS'ta Keychain, Android'de EncryptedSharedPreferences kullanın
- NDK/C katmanında saklama, decompile sürecini zorlaştırır ama kesin çözüm değildir
- Mümkünse backend proxy kullanarak hassas API key'leri client'a hiç göndermeden iletişimi yönetin
- API key rotation mekanizması kurun
MITM Koruması ve Biometric Bypass
Man-in-the-middle saldırıları:
- Proxy araçları (Charles, mitmproxy) ile trafik yakalanabilir
- SSL pinning bu saldırının ana savunma hattıdır
- Debug build'lerde pinning genelde devre dışı bırakılır, release build'de mutlaka aktif olmalı
Biometric bypass riskleri:
- Sahte parmak izi veya yüz verisi ile doğrulama atlatılabilir
- Biometric sonucunu sadece local boolean olarak tutmayın
- Keychain/Keystore'da biometric ile korunan bir key saklayarak doğrulama yapın
- LAContext (iOS) veya BiometricPrompt (Android) API'lerini doğru kullanın
Penetrasyon Testi Araçları
| Araç | Platform | Kullanım Alanı |
|---|---|---|
| Frida | iOS/Android | Runtime hooking, fonksiyon intercept |
| Burp Suite | Tümü | HTTP/HTTPS trafik analizi ve manipülasyon |
| JADX | Android | APK decompile ve kaynak kod inceleme |
| Hopper/Ghidra | iOS | Binary analiz ve disassembly |
| objection | iOS/Android | Runtime keşif, SSL pinning bypass |
| MobSF | iOS/Android | Otomatik statik ve dinamik analiz |
| drozer | Android | Component güvenlik testi |
Store Review'da Güvenlik Kontrolleri
Apple ve Google Play, review sürecinde bazı güvenlik kontrollerini otomatik olarak yapar:
- Bilinen kötü amaçlı SDK'ların tespiti
- Private API kullanımı (iOS)
- Permission'ların kullanım amacıyla tutarlılığı
- Data safety/privacy label doğruluğu
Ancak store review'lar kapsamlı güvenlik denetimi yerine geçmez. Uygulamanızın güvenlik sorumluluğu tamamen size aittir.
Güvenlik Test Checklist'i
- SSL/TLS pinning uygulanmış mı?
- Root/jailbreak tespiti aktif mi?
- Hassas veriler şifreli olarak saklanıyor mu?
- API key'ler güvenli bir şekilde yönetiliyor mu?
- Kod obfuscation uygulanmış mı?
- Debug logları release build'de kapalı mı?
- Clipboard'a hassas veri kopyalanması engelleniyor mu?
- Biometric doğrulama Keychain/Keystore destekli mi?
- Screenshot/screen recording koruması gerekli mi?
- Minimum OS versiyon güvenli bir sürüm mü?
Güvenlik tek seferlik bir iş değildir. Her release öncesi bu checklist'i gözden geçirin ve yeni tehditlere karşı OWASP MAS checklist'ini takip edin.