Mobil Uygulamalarda SSL Pinning ve Atlatma Yöntemleri (Pentesting)
Siber Güvenlik Uzmanları İçin Mobil API Trafiğini Dinleme
Bir mobil uygulamanın (Android/iOS) sızma testini (Penetration Test) yaparken atılması gereken ilk adım, uygulamanın sunucuyla konuştuğu API isteklerini Burp Suite veya OWASP ZAP gibi bir proxy üzerinden okumaktır. (MITM - Ortadaki Adam Saldırısı).
SSL Pinning (Sertifika Sabitleme) Nedir?
Güvenlik bilinci olan uygulamalar (Özellikle bankalar), telefona sizin tarafınızdan yüklenen sahte root sertifikalarına güvenmezler. Uygulama kodunun içine, doğrudan bağlanacağı sunucunun sertifika parmak izi (Hash) gömülmüştür. Eğer proxy araya girip kendi sertifikasını sunarsa, uygulama "Bu benim beklediğim sertifika değil" der ve bağlantıyı anında koparır (SSL Handshake Failed).
SSL Pinning Nasıl Atlatılır (Bypass)?
Uygulamanın şifreli trafiğini okuyabilmek için kodun içindeki o kontrol mekanizmasını devre dışı bırakmak gerekir. Bunun için Frida ve Objection araçları kullanılır.
Rootlu (Magisk) veya Jailbreakli bir cihaza Frida Server kurulur.
Bilgisayardaki terminalden Frida aracılığıyla çalışan uygulamanın belleğine (RAM) özel bir JavaScript kodu enjekte edilir (Hooking).
Bu JS kodu, uygulamanın SSL doğrulama fonksiyonunu (Örn: `TrustManager`) bulur ve "Sertifika hatalı bile olsa sen TRUE döndür ve çalışmaya devam et" komutunu zorla işletir.
Böylece trafik Burp Suite üzerine plaintext (okunabilir metin) olarak düşmeye başlar ve API zafiyetleri aranır.
Siz kendi geliştirdiğiniz mobil uygulamalarda SSL Pinning kullanıyor musunuz, yoksa ek bir maliyet olarak mı görüyorsunuz?
Sızma testlerinde (Pentest) uygulamanın SSL Pinning kontrolünü Frida kullanarak RAM üzerinde bypass etmek trafiği okuyabilmek için tek yol.
Cevap yazmak için giriş yapmalısınız.
Giriş Yap