Android Uygulama Pentest Rehberi

Sızma Testi

Mobil ekosistemin açık ara lideri olan Android platformu, sunduğu esneklik ve geniş kullanıcı kitlesi nedeniyle siber saldırganların en yoğun hedef aldığı alanlardan biridir. Bir Android uygulamasının güvenliğini test etmek, sadece yüzeysel bir tarama değil; uygulamanın mimarisini, veri depolama alışkanlıklarını, ağ trafiğini ve çalışma zamanı (runtime) davranışlarını derinlemesine analiz etmeyi gerektirir. Android Uygulama Sızma Testi (Pentest), uygulamanın yerel cihaz üzerindeki güvenliğinden, arka planda haberleştiği API servislerine kadar uzanan geniş bir saldırı yüzeyini kapsar. Bu rehberde, profesyonel bir sızma testi operasyonunda izlenen metodolojiyi, Android’e özgü zafiyet sınıflarını ve bu testlerde kullanılan endüstri standardı araçları teknik bir perspektifle ele alacağız.

Android Güvenliğinin Önemi

Android güvenliği, Linux çekirdeği üzerine inşa edilmiş bir “sandbox” (kum havuzu) mimarisine dayanır. Her uygulama, kendine has bir kullanıcı kimliği (UID) ile izole bir alanda çalışır. Ancak hatalı yapılandırmalar, aşırı yetkilendirmeler ve güvensiz kodlama pratikleri bu izolasyonu anlamsız kılabilir. Android pentest süreci temel olarak dört ana sütun üzerine kuruludur: Statik Analiz, Dinamik Analiz, Yerel Veri Güvenliği ve API Güvenliği. OWASP Mobile Top 10 listesi, bu süreçte hangi zafiyet türlerine (örneğin M1: Insecure Data Storage, M2: Insecure Communication) öncelik verilmesi gerektiği konusunda birincil yol haritasıdır.

Teknik Detaylar ve Uygulama Aşamaları

Profesyonel bir Android pentest operasyonu, uygulamanın paket dosyası (APK) üzerinden başlar ve cihaz üzerindeki canlı analize kadar ilerler.

1. Tersine Mühendislik ve Statik Analiz (SAST)

Uygulama çalıştırılmadan önce kod yapısının ve konfigürasyonunun incelenmesi aşamasıdır.

  • Dekomplasyon: apktool ile APK dosyası kaynaklarına ayrılır, jadx-gui ile Java/Kotlin kodları okunabilir hale getirilir.

  • Manifest Analizi: AndroidManifest.xml dosyası incelenerek gereksiz izinler, dışa açık bileşenler (exported activities/services) ve allowBackup="true" gibi hatalı ayarlar tespit edilir.

  • Hardcoded Veriler: Kod içerisinde unutulmuş API anahtarları, sertifika parolaları veya test ortamı URL’leri aranır.

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

Uygulamanın bir emülatör veya fiziksel cihaz üzerinde çalışırken denetlenmesidir.

  • Trafik Analizi (Burp Suite): Uygulamanın sunucuyla yaptığı HTTP/HTTPS trafiği araya girme (MitM) yöntemiyle izlenir. SSL Pinning (Sertifika Sabitleme) varsa, bu koruma Frida veya Objection scriptleri ile çalışma anında devre dışı bırakılır.

  • Runtime Hooking: Frida kullanılarak uygulamanın fonksiyonları manipüle edilir. Örneğin, kullanıcı girişi yapan bir fonksiyonun mantığı değiştirilerek şifresiz giriş denemeleri yapılır.

3. Yerel Veri ve Depolama Güvenliği

Uygulamanın cihaz üzerinde bıraktığı dijital izlerin analizi yapılır.

  • Data Directory: /data/data/[paket.adi] dizini altındaki SharedPrefs, Databases (SQLite) ve Cache klasörleri incelenir. Burada hassas verilerin (token, kullanıcı bilgisi) şifrelenmeden saklanıp saklanmadığı kontrol edilir.

  • External Storage: Uygulamanın SD karta veya genel erişime açık alanlara yazdığı veriler analiz edilir.

4. Android Bileşenleri ve Inter-Process Communication (IPC)

Android’in temel yapı taşları olan Activity, Service, Broadcast Receiver ve Content Provider’lar arasındaki iletişim test edilir.

  • Intent Injection: Bir uygulamanın diğerine gönderdiği komutların (Intent) manipüle edilerek yetkisiz işlem yapılması (örneğin gizli bir sayfanın açılması) test edilir.

  • Content Provider Sızıntıları: Uygulamanın veri tabanına dışarıdan yetkisiz erişim sağlayan açıklar araştırılır.

Riskler ve Kurumsal Etkiler

Güvensiz bir Android uygulaması, kurumun ve kullanıcının güvenliğini doğrudan tehlikeye atar.

  • Kimlik Hırsızlığı: Kullanıcı oturum token’larının (JWT vb.) cihazdan çalınması, saldırganın kullanıcının hesabını tamamen ele geçirmesine yol açar.

  • Kurumsal Veri Sızıntısı: Uygulama içindeki API uç noktalarının keşfedilmesi, kurumun arka planındaki veri tabanlarına yönelik saldırıların kapısını aralar.

  • İtibar ve Yasal Riskler: KVKK ve GDPR uyumluluğu kapsamında, kullanıcı verilerinin (konum, rehber, mesajlar) sızdırılması kurum için ağır para cezaları ve telafisi zor bir güven kaybı yaratır.

Önleme ve Güvenlik Önlemleri

Android uygulamalarını daha güvenli hale getirmek için şu teknik stratejiler izlenmelidir:

  • Kod Karartma (Obfuscation): R8 veya ProGuard kullanılarak kodun tersine mühendislik araçlarıyla analiz edilmesi zorlaştırılmalıdır.

  • Network Security Configuration: Android 7.0+ ile gelen bu özellik sayesinde, uygulamanın sadece güvenli TLS bağlantılarına izin vermesi sağlanmalıdır.

  • EncryptedSharedPreferences ve SQLCipher: Yerel veriler, Android Keystore sistemiyle korunan anahtarlarla şifrelenerek saklanmalıdır.

  • Root ve Emülatör Tespiti: Uygulama, güvenliği bozulmuş (rooted) cihazlarda çalışmayı reddetmeli veya hassas özellikleri devre dışı bırakmalıdır.

  • Bileşen Koruması: AndroidManifest.xml içinde sadece dışarıyla konuşması gereken bileşenler exported="true" olarak işaretlenmeli, geri kalanı izole tutulmalıdır.

Android uygulama pentest süreci, statik kod analizinden karmaşık çalışma zamanı manipülasyonlarına kadar uzanan disiplinler arası bir çalışmadır. Saldırganların sürekli gelişen tekniklerine karşı koymak için, güvenliğin uygulama geliştirme yaşam döngüsünün (SDLC) en başından itibaren bir parçası olması gerekir. Düzenli olarak yapılan Android sızma testleri, sadece mevcut açıkları kapatmakla kalmaz, aynı zamanda gelecekteki tehditlere karşı kurumsal mobil stratejiyi de güçlendirir. Unutulmamalıdır ki; bir mobil uygulama, internete açılan bir kapıdır ve o kapının ne kadar sağlam olduğu, yapılan profesyonel denetimlerin sıklığı ve kalitesiyle doğru orantılıdır.

Tags :
AndroidPentest,Frida,MobilGüvenlik,TersineMühendislik
Share This :

Bize Soru Sorun

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