Kapatmak için ESC tuşuna basın

apk-mitm İle Android Uygulamalarında HTTPS Trafiğini Analiz Etme

1. Giriş

apk-mitm, Android APK’larını otomatik olarak “MITM (man-in-the-middle)” için hazır hâle getiren komut satırı araçlarından biridir. Genel amaç, uygulamanın TLS/HTTPS trafiğini analiz edebilmek için uygulamada yapılan güvenlik kontrollerini (ör. ağ güvenlik konfigürasyonu, pinning kontrolleri, bazı yerel pinning uygulamaları) tespit edip gerekli yamaları otomatik uygulamaktır. Projenin popüler implementasyonlarından biri GitHub üzerinde niklashigi/apk-mitm olarak bulunur; bu araç bir APK’yı decode/patch/rebuild/sign zinciriyle işler.

Mobil uygulamalarda HTTPS trafiğini analiz etmek; API tasarım hatalarını, hassas veri sızmalarını veya kötü yapılandırılmış kimlik doğrulama akışlarını tespit etmek için gereklidir.


2. Teknik Arka Plan

HTTPS, TLS ve Sertifika Pinning

  • HTTPS/TLS: İstemci-sunucu arasında şifreli kanal sağlar. TLS, sertifika zinciri (CA → leaf sertifika) doğrulamasını temel alır.
  • Sertifika pinning: Uygulama, yalnızca belirli bir sertifikaya veya anahtar parmak izine (pin) güvenecek şekilde yapılandırılır; böylece cihazın sistem CA deposuna eklenen proxy CA’ları işe yaramaz. OWASP ve MASTG rehberleri pinning kavramını ve test tekniklerini açıklar. cheatsheetseries.owasp.org+1

Pinning’in Zorluğu

Pinning, MITM tabanlı proxy’lerin (mitmproxy, Burp) işe yaramasını engeller çünkü uygulama beklenmeyen/eklenen CA’ları kabul etmez. Bu nedenle sadece cihazın CA deposuna ekleme genellikle yeterli olmaz; uygulamanın içindeki pin doğrulama mantığı (Java/Native/okHttp/conscrypt vb.) devre dışı bırakılmalıdır.

apk-mitm’in Yaklaşımı

apk-mitm şu adımları otomatikleştirir:

  1. APK’yı decompile eder (apktool).
  2. network_security_config ve ilgili kaynakları değiştirerek kullanıcı eklemeli CA’yı kabul eder hâle getirir.
  3. Bilinen pinning implementasyonlarına yönelik smali/Java/katman yamaları uygular veya ilgili çağrıları pasifleştirir.
  4. Yeniden paketler ve imzalar.
    Bu otomasyon, manuel smali/Frida/objection yaklaşımlarına kıyasla hızlı bir başlangıç sağlar.

3. Kurulum ve Kullanım Adımları

Gerekenler

Hızlı Kurulum

npm install -g apk-mitm

Basit patch örneği

# APK'yi patchle
apk-mitm example.apk

   Decoding APK file
   Modifying app manifest
   Replacing network security config
   Disabling certificate pinning
   Encoding patched APK file
   Signing patched APK file

   Done!  Patched APK: ./example-patched.apk

Bu işlem apktool ile decompile, yamaları uygular, yeniden paketleyip imzalar)


4. Alternatif Araçlar ve Karşılaştırma

  • Frida / Objection: Runtime hooking ile pinning fonksiyonlarını dinamik olarak devre dışı bırakma imkânı verir; daha esnek ama bazen daha karmaşık.
  • Burp Suite / Charles: GUI tabanlı güçlü proxy araçları (scripting, repeater, intruder).
  • apk-mitm: Otomatik patch + rebuild süreciyle hızlı başlangıç; statik patching tercih edilen senaryolarda kolaylık sağlar.
  • android-unpinner ve benzeri projeler farklı yaklaşımlar sunar (farklı yöntemler, non-root çözümler vb.). GitHub+1

5. Sonuç ve Öneriler

apk-mitm, izinli testlerde HTTPS trafiğini incelemek için hızlı bir başlangıç sunar; fakat kapsamlı analiz için Frida/objection gibi runtime araçları ve manuel geri mühendislik gerekebilir.


Sık Sorulan Sorular (FAQ)

  1. apk-mitm root gerektirir mi?
    Hayır — çoğu senaryoda root gerekmeden APK patchleyip yeni bir APK oluşturarak çalıştırabilirsiniz.
  2. apk-mitm her pinning türünü çözer mi?
    Hayır — otomatik yamalar yaygın implementasyonları hedefler; native/obfuscation/yalın-hash pinning durumlarında ek manuel inceleme veya Frida gerekebilir.

Bayram Alaçam

Merhaba, Ben Bayram Bursa'da yaşıyorum. Geniş Bir deneyime sahip olmakla birlikte, özellikle Javascript alanında uzmanlaştım ve bu alandaki tüm detaylarla ilgileniyorum. Mobil uygulama geliştirme konusunda da derin bir ilgi ve yetenek setine sahibim. Backend, veritabanı yönetimi ve DevOps konularında da deneyimliyim ve her projede güvenilir, ölçeklenebilir çözümler sunabilirim.Yeni teknolojileri öğrenmek benim için bir tutku. Hızla değişen teknoloji dünyasında güncel kalmak ve son trendleri takip etmek benim için önemli bir prensiptir