Mobil Uygulama Sızma Testi (Mobile App Pentest)

Uncategorized

Giriş

Günümüzde kurumsal servislerin ve son kullanıcı işlemlerinin büyük bir çoğunluğu mobil platformlar üzerinden yürütülmektedir. Bu durum, mobil uygulamaları siber saldırganlar için finansal veriler, kişisel bilgiler ve kurumsal erişim anahtarları açısından birincil hedef haline getirmiştir.

Mobil Uygulama Sızma Testi (Mobile App Pentesting), bir uygulamanın hem cihaz üzerindeki (client-side) hem de sunucu tarafındaki (server-side) güvenlik mekanizmalarını denetleme sürecidir. Mobil ekosistem, geleneksel web uygulamalarından farklı olarak; yerel depolama, cihaz izinleri, uygulama içi şifreleme ve karmaşık API iletişimleri gibi özgün risk alanları barındırır. Bu makalede, OWASP Mobile Application Security (MAS) rehberini temel alarak profesyonel bir sızma testi metodolojisini teknik derinliğiyle ele alacağız.

Konun Temel Açıklaması

Mobil uygulama sızma testi, uygulamanın yaşam döngüsü boyunca veriyi nasıl koruduğunu analiz eder. Süreç iki ana koldan ilerler:

  • Statik Analiz (SAST): Uygulamanın kaynak kodu veya derlenmiş paketi (APK/IPA) üzerinden tersine mühendislik yöntemleriyle zayıf algoritmalar, gömülü parolalar ve hatalı izinler aranır.

  • Dinamik Analiz (DAST): Uygulama canlı bir cihaz veya emülatör üzerinde çalıştırılarak; çalışma zamanı (runtime) manipülasyonları, ağ trafiği müdahalesi ve yerel veri depolama güvenliği test edilir.

Mobil pentest operasyonunun başarısı, cihaz üzerindeki güvenliğin yanı sıra, uygulamanın konuştuğu backend servislerinin (API) ne kadar sıkılaştırıldığına bağlıdır.

Teknik Detaylar ve Uygulama Aşamaları

1. Hazırlık ve Tersine Mühendislik (Reverse Engineering)

Uygulamanın iç yapısını anlamak için paket dosyasının açılması sürecidir.

  • Android: apktool veya jadx kullanılarak APK dosyası dekompile edilir. Java/Kotlin kodları incelenerek API uç noktaları, sertifika sabitleme (SSL Pinning) mantığı ve gizli anahtarlar araştırılır.

  • iOS: class-dump veya frida-dump ile Objective-C/Swift sınıfları analiz edilir. Uygulamanın ikili dosyası (binary) üzerindeki korumalar (PIE, Stack Canaries) kontrol edilir.

2. Statik Analiz (SAST)

Kod seviyesindeki hataların ve yapılandırma yanlışlarının tespitidir.

  • İzin Analizi: Uygulamanın gereğinden fazla izin isteyip istemediği kontrol edilir. Android tarafında AndroidManifest.xml dosyasındaki “exported” bileşenler üzerinden yetkisiz erişim yolları aranır.

  • Güvensiz Depolama: Kod içerisinde SharedPreferences veya NSUserDefaults gibi alanlara hassas verilerin şifrelenmeden yazılıp yazılmadığı incelenir.

3. Dinamik Analiz (DAST) ve Çalışma Zamanı Manipülasyonu

Uygulamanın çalışma anındaki davranışlarının denetlenmesidir.

  • Trafik Analizi (Burp Suite): Uygulama ile sunucu arasındaki trafik, bir proxy aracılığıyla izlenir. SSL Pinning koruması varsa, Frida veya Objection gibi araçlarla bu koruma çalışma anında devre dışı bırakılarak şifreli trafiğin içeriği analiz edilir.

  • Root/Jailbreak Tespiti: Uygulamanın, güvenliği bozulmuş cihazlarda çalışmayı engelleyip engellemediği test edilir.

  • Runtime Hooking: Frida scriptleri ile uygulamanın fonksiyonları çalışma anında değiştirilerek mantıksal hatalar aranır.

4. API ve Backend Güvenliği

Mobil uygulamalar genellikle birer “kabuk”tur; asıl veri işlemleri API’lar üzerinden döner.

  • Yetkilendirme Testleri: Bir kullanıcının kendi ID’sini değiştirerek başka bir kullanıcının verisine erişip erişemediği (IDOR) test edilir.

  • Girdi Denetimi: API uç noktalarına gönderilen parametreler üzerinden SQL Injection veya komut çalıştırma denemeleri yapılır.

Riskler ve Kurumsal Etkiler

  • Veri Sızıntısı: Yerel veri tabanında (SQLite) veya log dosyalarında saklanan hassas veriler, cihazı ele geçiren biri tarafından çalınabilir.

  • Finansal ve İtibar Kaybı: Özellikle bankacılık uygulamalarında yaşanan yetkilendirme hataları, doğrudan maddi kayıplara neden olur.

  • KVKK/GDPR İhlalleri: Kişisel verilerin güvensiz bir şekilde sunucuya iletilmesi veya cihazda saklanması, ağır yasal cezalara yol açar.

Önleme ve Güvenlik Önlemleri

Mobil uygulama güvenliğini artırmak için yazılım geliştirme sürecine (DevSecOps) şu kontroller eklenmelidir:

  • Kod Karartma (Obfuscation): ProGuard veya DexGuard gibi araçlarla kaynak kodun okunması zorlaştırılmalıdır.

  • Güçlü Şifreleme ve KeyChain/Keystore: Hassas veriler cihazın donanımsal güvenlik modülleriyle entegre çalışan KeyStore (Android) veya KeyChain (iOS) yapılarında saklanmalıdır.

  • SSL Pinning Uygulaması: Uygulamanın sadece kurumun kendi sertifikasıyla imzalanmış sunucularla konuşması sağlanarak, araya girme (MitM) saldırıları engellenmelidir.

  • Anti-Debugging: Uygulamanın çalışma anında debugger ile izlenmesi durumunda kendini kapatması sağlanmalıdır.

Sonuç

Mobil uygulama sızma testi, sadece bir uzmanın becerisine değil, cihaz ve işletim sistemi mimarilerinin derinlemesine bilinmesine dayanan teknik bir disiplindir. Uygulamanın her güncellemesinde yeni bir zafiyetin oluşma riski göz önüne alındığında, bu testlerin periyodik olarak tekrarlanması bir zorunluluktur.

Tags :
#AndroidSecurity,MobileAppPentest,MobilSızmaTesti
Share This :

Diğer Yazılar

Bize Soru Sorun

Soru ve görüşleriniz için bizimle iletişime geçebilirsiniz.