Mobil Uygulama Sızma Testi: Yerel Depolama ve Trafik

Statik/dinamik analiz, SSL pinning, veri sızıntıları ve trafik güvenliği için pratik kontrol listesi.

Mobil uygulama sızma testi kapak görseli
Statik • Dinamik • Trafik • Depolama

Kısaca

  • Statik analizde kod/gömülü anahtar ve hassas dizinlere odaklanın.
  • Dinamik analizde SSL pinning, trafik ve kimlik akışlarını test edin.
  • Yerel depolama ve yedeklemelerde veri sızıntılarını araştırın.

Özet Anlatım

Mobil uygulamalarda güvenlik; istemci tarafı saklanan veriler, ağ trafiği ve uygulamanın çalışırken aldığı kararların doğrulanmasıyla sağlanır. Basit bir log kaydı veya debug yapılandırması bile hassas bilgilerin sızmasına yol açabilir.

Statik Analiz

  • Hassas anahtar/endpoint sızıntıları (strings, resources)
  • İmza, izinler ve güvenlik özellikleri (AndroidManifest/Info.plist)

Dinamik Analiz

  • SSL pinning, cert validation ve MITM dayanıklılığı
  • Runtime hook (Frida) ile kontrol atlama testleri

Yaygın Bulgular

  • Yerel depolamada şifrelenmemiş PII/Token
  • Zayıf SSL/TLS ve sertifika doğrulaması eksikliği

Pratik Rehber

Önce cihazda nelerin kaldığını görün: Log, cache ve yedekleme klasörlerinde kişisel veri veya token izleri var mı? Ardından trafiği inceleyin; SSL pinning yalnızca geçerli sertifikayı değil, beklenen sertifikayı doğruluyor mu? Son olarak uygulamanın aldığı kararları test edin; kök tespiti veya debug kapalıysa bunu atlayarak hassas işlemler yapılabiliyor mu?

Adım adım:

  1. Statik analiz. Kaynak dosyaları ve izinleri kontrol edin; gömülü anahtar/endpoint var mı?
  2. Dinamik analiz. Trafiği izleyin, pinning/sertifika doğrulamasını sınayın; temel hook denemeleri yapın.
  3. Depolama. Kalıntı veriler, yedekleme noktaları ve ekran görüntüsü sızıntılarını kontrol edin.

Örnek: Bazı uygulamalar, arka plana alındığında ekran görüntüsünü maskeler. Bu özellik kapalıysa, duyarlı bilgiler çoklu görev ekranında sızabilir; basit bir maskeleme bile ciddi riski ortadan kaldırır.

Mobil Uygulama Mimarisi ve Saldırı Yüzeyi

Kapsamlı bir mobil sızma testi için uygulamanın mimarisini ve saldırı yüzeyini tam olarak anlamak gerekir. Mobil uygulamalar üç ana katmanda güvenlik açığı risklerine sahiptir: istemci tarafı, ağ katmanı ve sunucu tarafı.

  • İstemci Tarafı Saldırı Yüzeyi: Uygulama binary'si (APK/IPA) tersine mühendislikle analiz edilebilir. Yerel depolama alanları (SharedPreferences, Keychain, SQLite, dosya sistemi) hassas veri barındırabilir. Uygulama içi WebView bileşenleri JavaScript injection'a açık olabilir. Clipboard (pano) üzerinden veri sızıntısı. Debug modunda bırakılmış uygulamalarda bellek erişimi. Yerel biyometrik doğrulamanın atlanma riskleri.
  • Ağ Katmanı Saldırı Yüzeyi: İstemci-sunucu arası tüm iletişim araya girme (MITM) saldırılarına karşı test edilir. SSL/TLS yapılandırması, sertifika pinning uygulaması ve sertifika doğrulaması kontrol edilir. Güvensiz ağlarda (açık Wi-Fi) uygulama davranışı incelenir. API çağrılarında hassas verilerin URL parametrelerinde gönderilip gönderilmediği doğrulanır.
  • Sunucu Tarafı Saldırı Yüzeyi: Mobil uygulamanın kullandığı backend API'ler klasik web güvenlik açığı taraması kapsamında test edilir. Push notification servisleri (FCM/APNs) üzerinden bilgi ifşası. Kullanıcı kimlik doğrulama ve oturum yönetimi sunucuda test edilir. Dosya yükleme/indirme işlemlerinde sunucu tarafı güvenlik kontrolleri.
  • Üçüncü Taraf Bileşen Riskleri: SDK'lar ve kütüphaneler bilinen güvenlik açıkları barındırabilir. Reklam SDK'ları, analitik araçlar ve sosyal medya entegrasyonları veri sızıntısı riski taşır. Firebase, AWS Amplify gibi BaaS yapılandırmalarında güvenlik kontrollerinin doğrulanması.

Saldırı yüzeyini katmanlı olarak haritalandırmak, zafiyet yönetimi sürecinde bulguların doğru kategorize edilmesini ve önceliklendirilmesini sağlar.

Statik Analiz Detayları

Statik analiz, mobil sızma testi sürecinin ilk ve en kapsamlı aşamalarından biridir. Uygulama çalıştırılmadan, binary ve kaynak kod üzerinden güvenlik açığı tespiti yapılır.

  • Tersine Mühendislik (Reverse Engineering): Android APK dosyaları jadx, apktool veya dex2jar ile dekompile edilir. iOS IPA dosyaları class-dump, Hopper veya Ghidra ile analiz edilir. Obfuscation seviyesi değerlendirilir - ProGuard/R8 (Android) ve Swift/ObjC obfuscation etkinliği.
  • Kaynak Kod İnceleme: Gömülü API anahtarları, sertifikalar ve parolalar aranır (TruffleHog, GitLeaks benzeri tarama). Hard-coded URL'ler, IP adresleri ve geliştirme/test ortamı referansları tespit edilir. Güvensiz kriptografik kullanımlar (MD5, SHA1, ECB modu, sabit IV) kontrol edilir. Güvensiz rastgelelik üretimi ve zayıf şifreleme anahtarları aranır.
  • Manifest ve Yapılandırma Analizi: AndroidManifest.xml - exported bileşenler (activity, service, broadcast receiver, content provider) kontrol edilir. Gereksiz izinler (CAMERA, LOCATION, CONTACTS) ve tehlikeli izin kombinasyonları değerlendirilir. Info.plist (iOS) - ATS (App Transport Security) istisnaları, URL scheme'ler ve kamera/mikrofon erişim açıklamaları incelenir. Backup izninin açık olup olmadığı (android:allowBackup) kontrol edilir.
  • Bağımlılık ve Kütüphane Analizi: Kullanılan üçüncü taraf kütüphanelerin bilinen güvenlik açıkları ile eşleştirilmesi (SCA - Software Composition Analysis). Eski ve bakımı yapılmayan kütüphanelerin riskinin değerlendirilmesi. Native kütüphanelerde (.so/.dylib) bellek güvenliği açıklarının aranması.

Statik analiz bulgularını zafiyet yönetimi platformuna aktararak, dinamik analizle doğrulanacak bulguları önceliklendirin. Otomatik SAST araçları (MobSF, QARK) ile ilk taramayı hızlandırıp manuel inceleme için odak noktaları belirleyin.

Dinamik Analiz ve Hooking

Dinamik analiz, mobil uygulamanın çalışma zamanında (runtime) davranışını inceleyerek statik analizde görülemeyen güvenlik açıklarını ortaya çıkarır. Hooking teknikleri, uygulamanın güvenlik kontrollerini atlamak ve iç mekanizmalarını analiz etmek için kullanılır.

  • Frida ile Runtime Hooking: Frida, en güçlü dinamik enstrümantasyon aracıdır. JavaScript script'leriyle çalışma zamanında fonksiyonları yakalama (hook), dönüş değerlerini değiştirme ve gizli fonksiyonları çağırma imkânı sunar. SSL pinning atlatma, root/jailbreak tespiti atlatma ve şifreleme fonksiyonlarını izleme en yaygın kullanım alanlarıdır.
  • Objection Framework: Objection, Frida tabanlı bir sızma testi aracıdır ve yaygın güvenlik testlerini komut satırından hızla gerçekleştirmeyi sağlar. Keychain/SharedPreferences dökümü, dosya sistemi gezintisi, sertifika pinning bypass ve biometrik atlatma işlemleri tek komutla yapılabilir.
  • Runtime Manipülasyon Senaryoları: Kimlik doğrulama fonksiyonlarının dönüş değerlerini değiştirerek login atlatma. Lisans/ödeme kontrollerinin devre dışı bırakılması. Jailbreak/root tespit fonksiyonlarının False döndürmesi sağlanarak uygulama kısıtlamalarının aşılması. Şifreleme anahtarlarının bellekten çıkarılması.
  • Bellek Analizi: Uygulama belleğinde hassas verilerin (parolalar, tokenlar, PII) düz metin olarak kalıp kalmadığının kontrolü. Fridump veya r2frida ile bellek dökümü ve analizi. Bellek temizleme (memory scrubbing) uygulamasının doğrulanması.
  • Trafik Analizi ve Proxy: Burp Suite veya mitmproxy ile uygulama trafiğinin yakalanması ve manipülasyonu. İstek/yanıt değişikliğiyle sunucu tarafı doğrulama eksikliklerinin tespiti. WebSocket ve gRPC trafiğinin izlenmesi.

Dinamik analiz sonuçlarını güvenlik açığı taraması raporlarıyla birleştirerek, her bulgu için siber güvenlik etkisini somut kanıtlarla destekleyin.

Veri Depolama Güvenliği

Mobil cihazlarda yerel veri depolama, en yaygın güvenlik açığı kaynaklarından biridir. Kaybolmuş veya çalınmış cihazlardan hassas verilere erişim, kötü amaçlı uygulamaların paylaşılan depolama alanlarını okuması ve yedekleme mekanizmalarından veri sızıntısı ciddi riskler oluşturur.

  • SharedPreferences (Android): XML tabanlı anahtar-değer deposu varsayılan olarak şifrelenmez. EncryptedSharedPreferences kullanımının doğrulanması. MODE_WORLD_READABLE veya MODE_WORLD_WRITABLE ayarlarının kontrolü. Hassas verilerin (tokenlar, kullanıcı bilgileri) SharedPreferences'ta saklanıp saklanmadığının tespiti.
  • Keychain (iOS): Keychain erişim politikalarının doğru yapılandırıldığının kontrolü (kSecAttrAccessibleWhenUnlocked vs kSecAttrAccessibleAlways). Jailbreak yapılmış cihazlarda Keychain verilerinin Keychain-dumper ile çıkarılma denemesi. Keychain sharing gruplarının gereksiz geniş kapsamda olup olmadığının kontrolü.
  • SQLite Veritabanları: Şifrelenmemiş veritabanı dosyalarında hassas verilerin aranması. SQLCipher kullanımının doğrulanması ve şifreleme anahtarının güvenli saklanıp saklanmadığının kontrolü. SQL injection risklerinin değerlendirilmesi (Content Provider üzerinden erişim).
  • Dosya Sistemi: Uygulama sandbox'ı dışında yazılan dosyaların kontrolü. Geçici dosyalarda ve cache dizinlerinde hassas veri kalıntıları. Log dosyalarında kişisel bilgi veya token izleri. Harici depolama (SD kart) üzerine yazılan dosyaların şifreleme durumu.
  • Yedekleme ve Bulut Senkronizasyonu: Android backup (adb backup) ve iOS iTunes/iCloud yedeklemelerinde hassas verilerin korunup korunmadığı. android:allowBackup="false" yapılandırmasının doğrulanması. iOS Data Protection sınıflarının uygun kullanımı.

Veri depolama bulgularını zafiyet yönetimi raporunda önem derecesiyle birlikte sunun. Şifrelenmemiş PII saklayan her depolama mekanizması yüksek öncelikli bir güvenlik açığı olarak işaretlenmelidir.

Ağ Güvenliği Testleri

Mobil uygulamaların ağ güvenliği, sızma testi kapsamında kritik bir alandır. İstemci ile sunucu arasındaki tüm iletişimin gizliliği, bütünlüğü ve kimlik doğrulaması test edilmelidir.

  • Certificate Pinning Bypass: Frida + objection veya ssl-kill-switch (iOS) ile sertifika pinning'in atlatılması. Farklı pinning uygulamalarının (OkHttp CertificatePinner, AFNetworking, TrustKit, Network Security Config) ayrı ayrı test edilmesi. Pinning atlatıldığında uygulamanın davranışının gözlemlenmesi - hata raporlama (pin validation failure reporting) mekanizmasının varlığı.
  • TLS Yapılandırma Analizi: Desteklenen TLS sürümlerinin kontrolü - TLS 1.0/1.1 desteğinin kapatılmış olması. Zayıf cipher suite'lerin (RC4, DES, NULL) kullanılıp kullanılmadığı. Perfect Forward Secrecy (PFS) desteğinin doğrulanması. HSTS (HTTP Strict Transport Security) uygulamasının kontrolü.
  • Trafik Yakalama ve Analiz: Burp Suite, mitmproxy veya Charles Proxy ile tüm HTTP/HTTPS trafiğinin incelenmesi. Hassas verilerin (parolalar, tokenlar, PII) şifrelenmeden gönderilip gönderilmediğinin kontrolü. API yanıtlarında gereksiz veri ifşasının tespiti. WebSocket ve diğer real-time protokollerin güvenliğinin doğrulanması.
  • Ağ Güvenliği Yapılandırması: Android Network Security Configuration dosyasının analizi - cleartext traffic izni, özel CA sertifikaları, debug override ayarları. iOS ATS (App Transport Security) istisnalarının incelenmesi - NSAllowsArbitraryLoads, NSExceptionDomains ayarları.
  • DNS Güvenliği: DNS sorgularının şifreli kanallar (DoH/DoT) üzerinden yapılıp yapılmadığı. DNS spoofing saldırılarına karşı dayanıklılık.

Ağ güvenliği testlerinin sonuçlarını güvenlik açığı taraması raporuyla birleştirin. Sertifika pinning eksikliği veya zayıf TLS yapılandırması, ortadaki adam (MITM) saldırısı riskini doğrudan artıran yüksek öncelikli bulgulardır.

Platform-Spesifik Riskler

Android ve iOS platformları farklı güvenlik mimarilerine sahiptir ve her biri kendine özgü güvenlik açığı riskleri taşır. Mobil sızma testi uzmanlarının her platformun spesifik risklerini bilmesi gerekir.

  • Android Root Tespiti ve Atlatma: Root edilmiş cihazlarda uygulama güvenlik kısıtlamaları aşılabilir. Magisk (systemless root) ile root tespitinin atlatılması - MagiskHide/Zygisk DenyList yapılandırması. SafetyNet/Play Integrity API doğrulamasının test edilmesi. Root tespit yöntemleri: su binary kontrolü, build.prop analizi, mount noktaları inceleme, Magisk dosyaları arama.
  • iOS Jailbreak Tespiti ve Atlatma: Jailbreak yapılmış cihazlarda sandbox kısıtlamaları kalkar. Liberty Lite, Shadow veya A-Bypass ile jailbreak tespitinin atlatılması. Jailbreak tespit yöntemleri: Cydia/Sileo varlığı, /etc/apt dizini, fork() syscall, dyld_get_image_name() kontrolü, sandbox bütünlüğü testi.
  • Android Intent ve Deep Link Riskleri: Exported bileşenlere dışarıdan yetkisiz erişim. Kötü amaçlı intent ile hassas işlem tetikleme. Deep link/URL scheme manipülasyonu ile yetki atlatma. PendingIntent kötüye kullanımı.
  • iOS URL Scheme ve Universal Link Riskleri: Özel URL scheme'lerin diğer uygulamalar tarafından ele geçirilmesi (scheme hijacking). Universal links yapılandırmasının doğrulanması. Pasteboard (pano) üzerinden uygulamalar arası veri sızıntısı.
  • WebView Güvenliği: Android WebView'da JavaScript arayüz (addJavascriptInterface) riskleri. File scheme erişimi ve yerel dosya okuma. iOS WKWebView vs UIWebView güvenlik farkları. WebView üzerinden XSS ve veri sızıntısı senaryoları.
  • Biyometrik Kimlik Doğrulama Riskleri: Biyometrik doğrulamanın yalnızca istemci tarafında mı yoksa sunucu ile entegre mi yapıldığının kontrolü. CryptoObject kullanımının doğrulanması (Android). LAContext değerlendirmesinin güvenliği (iOS). Biyometrik atlatma denemeleri.

Platform-spesifik bulguları zafiyet yönetimi raporunda ayrı kategorilere ayırın. Her platformun kendi savunma mekanizmaları doğru uygulandığında, siber güvenlik riskini önemli ölçüde azaltır.

Mobil Uygulama Sertleştirme

Mobil sızma testi bulgularına dayalı sertleştirme önerileri, uygulamanın saldırılara karşı dayanıklılığını artırmak için uygulanması gereken teknik tedbirleri kapsar. Bu öneriler, zafiyet yönetimi sürecinin düzeltme aşamasında geliştirme ekibine yol gösterir.

  • Kod Karmaşıklaştırma (Code Obfuscation): Android için ProGuard/R8 (ücretsiz) veya DexGuard (ticari) ile sınıf/metot/alan isimlerini karıştırma. iOS için Swift doğal olarak daha az bilgi ifşa eder ancak iXGuard veya LLVM obfuscation ek koruma sağlar. String şifreleme ile gömülü anahtarların ve URL'lerin doğrudan okunmasını engelleme.
  • Anti-Tampering (Değişiklik Tespiti): Uygulama imza doğrulaması - runtime'da APK/IPA imzasının beklenen değerle eşleştiğinin kontrolü. Checksum doğrulaması ile uygulama dosyalarının bütünlüğünün izlenmesi. Debugger tespit mekanizmaları - ptrace, sysctl kontrolü (iOS), isDebuggerConnected (Android). Emülatör tespit kontrolleri.
  • Güvenli Veri Depolama: Android Keystore ve iOS Keychain kullanarak kriptografik anahtarları donanım destekli güvenli bölgede (TEE/Secure Enclave) saklama. EncryptedSharedPreferences (Android) veya Core Data + Data Protection (iOS) ile hassas verileri şifreleme. Bellek içi hassas veriler için secure zeroing uygulaması.
  • Ağ Güvenliği Sertleştirme: Sertifika pinning'i en az iki yöntemle uygulama (public key pinning + sertifika zinciri doğrulama). Network Security Configuration (Android) ile cleartext trafiği tamamen engelleme. ATS (iOS) istisnalarını minimize etme ve gerekçelendirme.
  • Root/Jailbreak Koruması: Çoklu tespit yöntemi kullanarak (dosya sistemi kontrolü, binary arama, property kontrol, syscall testi) atlatmayı zorlaştırma. Tespit sonrası kademeli tepki - uyarı, sınırlı erişim veya tamamen engelleme. Sunucu tarafında cihaz bütünlüğü doğrulaması (SafetyNet/Play Integrity, DeviceCheck/App Attest).
  • Güvenli Kodlama Pratikleri: Hassas verileri log'lara yazmamak (android:debuggable="false", OS_ACTIVITY_MODE=disable). Ekran görüntüsü koruması (FLAG_SECURE / isSecureTextEntry). Clipboard veri sızıntısını önleme. Minimum izin prensibi - yalnızca gerekli platform izinlerini talep etme. OWASP MASVS (Mobile Application Security Verification Standard) kontrol listesine uyum.

Sertleştirme önerilerini güvenlik açığı taraması ve sızma testi bulgularına dayalı olarak önceliklendirin. Yüksek etkili ve düşük maliyetli düzeltmeleri (sertifika pinning, debug kapama, log temizliği) ilk sprint'te uygulayın; kapsamlı obfuscation ve anti-tampering entegrasyonunu orta vadeli yol haritasına ekleyin.

SSS

Mobil uygulama sızma testi hangi platformları kapsar?

Mobil sızma testi genellikle hem Android hem iOS platformlarını kapsar; her iki işletim sisteminin kendine özgü güvenlik modeli ve depolama mekanizmaları ayrı ayrı test edilir.

Mobil pentest sırasında hangi araçlar kullanılır?

Burp Suite veya mitmproxy ile trafik analizi, Frida ile dinamik enstrümantasyon, MobSF ile statik analiz ve Objection ile runtime manipülasyon en yaygın kullanılan araçlardır.

SSL pinning bypass mobil güvenlik testinde neden önemlidir?

SSL pinning bypass, uygulamanın sunucu ile arasındaki şifreli trafiği analiz etmek için gereklidir; bu sayede API isteklerindeki hassas veri sızıntıları ve kimlik doğrulama açıkları tespit edilebilir.

SİTEY ile bu süreçleri tek platformda otomatikleştirin.

Sınırsız Demo İndir Platformu İnceleyin