Man-in-the-Middle (MITM) — "ortadakı insan" hücumu olub, təcavüzkarın iki tərəf arasındakı trafiki onların xəbəri olmadan ələ keçirməsi, oxuması və ya dəyişdirməsidir. Kaspersky, 2025 məlumatlarına görə, mobil cihazlara edilən MITM hücumlarının sayı son iki ildə 35% artıb. Trafikin ələ keçirilməsinin əsas problemi odur ki, istifadəçi hücumun əlamətlərini görmür — əlaqə normal görünür.
Əsas məqamlar
Man-in-the-Middle (MITM) — təcavüzkarın iki tərəf arasındakı rabitə kanalına gizlicə daxil olduğu kiberhücum növüdür. Təcavüzkar ötürülən məlumatları ələ keçirə, oxuya və dəyişdirə bilər, hər iki tərəf üçün görünməz qalır.
Mobil tətbiqlərdə MITM hücumları xüsusilə təhlükəlidir, çünki cihazlar daim müxtəlif şəbəkələrə — ev, ofis, kafe və hava limanlarında ictimai Wi-Fi-a qoşulur. Hər şəbəkə dəyişikliyi potensial olaraq hücum üçün pəncərə yaradır. Verizon Mobile Security Index (2025) məlumatlarına görə, təşkilatların 43%-i korporativ mobil cihazlarda ən azı bir dəfə MITM hücumları ilə qarşılaşıb.
MITM-in əsas təhlükəsi — gizlilik: istifadəçi və server ələ keçirmə haqqında siqnal almır. Sessiya normal görünür, məlumatlar ötürülür, sertifikat xətaları yoxdur (əgər təcavüzkar öz sertifikatından istifadə edirsə). Hücumu yalnız şəbəkə infrastrukturu səviyyəsində və ya xüsusi alətlər vasitəsilə aşkar etmək olar.
Tərtibatçı MITM hücumlarının mexanizmlərini başa düşməlidir ki, tətbiq səviyyəsində müdafiəni təmin etsin, nəqliyyat təbəqəsinin təhlükəsizliyinə tam güvənməsin.
MITM hücumlarının təsnifatı rabitə kanalına daxil olma üsuluna görə fərqlənən bir neçə növü əhatə edir. Mobil inkişafda ən aktual üç növ var.
ARP Spoofing — təcavüzkarın yerli şəbəkəyə saxta ARP paketləri göndərərək öz MAC ünvanını şlüzün IP ünvanı ilə əlaqələndirdiyi texnikadır. Bundan sonra qurbanın bütün trafiki təcavüzkarın cihazı üzərindən yönləndirilir, o da trafiki şlüzə ötürərək görünməz qalır.
Hücumu həyata keçirmək üçün ARP-spoofingi avtomatlaşdıran Ettercap və ya BetterCAP kimi alətlər kifayətdir. Hücum yalnız bir alt şəbəkə daxilində mümkündür, buna görə də ictimai Wi-Fi şəbəkələrinin istifadəçiləri ən həssasdır. İdarə olunan açarlarda dinamik ARP yoxlaması (DAI) olan müasir şəbəkələr bu hücum növünü bloklayır.
Tətbiq səviyyəsində ARP Spoofing-dən qorunmaq mümkün deyil — bu şəbəkə infrastrukturu problemidir. Bununla belə, tətbiq iOS üçün TrustKit və ya Android üçün Network Security Config kimi kitabxanaların köməyi ilə şəbəkə qoşulmasında anomaliyaları aşkar edə bilər.
DNS Spoofing (və ya DNS Cache Poisoning) — klientdən DNS serverinə gedən yolda DNS qeydlərinin saxtalaşdırılmasıdır. Təcavüzkar tətbiqin DNS sorğusunu ələ keçirir və qanuni server əvəzinə trafiki öz serverinə yönləndirən saxta IP ünvanı qaytarır.
Hücum DNS serverinin DHCP vasitəsilə avtomatik təyin olunduğu ictimai şəbəkələrdə xüsusilə effektivdir. Təcavüzkar hədəf domenlər üçün saxta IP ünvanları qaytaran öz DNS serverini konfiqurasiya edə bilər. İstifadəçi brauzerdə qanuni URL görür, lakin təcavüzkarın serverinə qoşulur.
Tətbiq tərəfində DNS Spoofing-dən qorunma DNS sorğularını şifrələyən DNS-over-HTTPS (DoH) və ya DNS-over-TLS (DoT) vasitəsilə həyata keçirilir. Android 9+ və iOS 14+ sistem DoH-ni dəstəkləyir, tətbiq bu opsiyanı açıq şəkildə aktivləşdirə bilər.
SSL Stripping — təcavüzkarın qorunan HTTPS əlaqəsini qorunmayan HTTP səviyyəsinə endirdiyi hücumdur. Texnika bir çox istifadəçinin https://example.com əvəzinə əl ilə example.com daxil etməsindən istifadə edir və ilk əlaqə HTTP vasitəsilə qurulur.
sslstrip (Moxie Marlinspike, 2009) və bettercap kimi alətlər avtomatik olaraq HTTP sorğularını ələ keçirir, öz adından serverlə HTTPS əlaqəsi qurur və şifrəsi açılmış trafiki HTTP vasitəsilə klientə ötürür. Brauzer asma qilidi işarəsini göstərmir — istifadəçi əlaqənin təhlükəsiz olmadığını bilmir.
Müasir qorunma — HTTP Strict Transport Security (HSTS): server brauzerə bütün gələcək əlaqələrin yalnız HTTPS vasitəsilə olması lazım olduğunu bildirir. HSTS Preload List ilk hücumdan əlavə qoruyur, lakin domenin əvvəlcədən qeydiyyatını tələb edir.
Tipik MITM hücumu mobil tətbiqə dörd mərhələdən keçir. Hər mərhələ müxtəlif zəifliklərdən istifadə edir və tam qorunma üçün bütün vektorların bağlanması tələb olunur.
Birinci mərhələ — daxil olma: təcavüzkar cihaz və server arasında trafik yolunda yerləşir. Bu, yerli şəbəkədə ARP Spoofing, saxta Wi-Fi nöqtəsi (Evil Twin) və ya provayderin DNS serverinin kompromitasiyası ola bilər. Mobil cihazlar açıq şəbəkələrə avtomatik qoşulduqda xüsusilə həssasdır.
İkinci mərhələ — ələ keçirmə: daxil olduqdan sonra təcavüzkar tətbiq və server arasında mübadilə edilən bütün paketləri oxumağa başlayır. Bu mərhələdə o, metadata toplayır: sorğu URL-ləri, paket ölçüləri, cookies, başlıqlar. Məlumatlar şifrələnsə belə, metadata tətbiqin strukturunu və biznes məntiqini aça bilər.
Üçüncü mərhələ — şifrənin açılması (əgər trafik şifrələnibsə): təcavüzkar iki TLS əlaqəsi qurur — biri serverlə (saxta sertifikatdan istifadə edərək), digəri klientlə. Tətbiq əlaqəni təhlükəsiz hesab edir, lakin təcavüzkar bütün məlumatları açıq formada görür. Certificate Pinning olmadan bu, sistem deposunda quraşdırılmış istənilən sertifikat üçün işləyir.
Dördüncü mərhələ — modifikasiya və ekzfiltrasiya: təcavüzkar təkcə oxuya bilməz, həm də ötürülən məlumatları dəyişdirə bilər. Maliyyə tətbiqlərində bu, alıcının hesab nömrəsinin dəyişdirilməsi, API sorğularında — avtorizasiya parametrlərinin dəyişdirilməsi mənasına gələ bilər. iOS və Android tətbiq səviyyəsində cavabların bütövlüyünün yoxlanılmasını tətbiq etməyi tövsiyə edir.
Kotlin və Swift-də Certificate Pinning istifadə edərək MITM hücumlarından qorunmanın praktik nümunələrinə baxaq. Bu nümunələr sistem deposu kompromitə olunsa belə sertifikatın dəyişdirilməsini bloklayır.
OkHttp — CertificatePinner-i dəstəkləyən Android üçün standart HTTP kitabxanasıdır. Server sertifikatınızın SHA-256 hashini göstərin — digər bütün sertifikatlar rədd ediləcək.
import okhttp3.CertificatePinner
import okhttp3.OkHttpClient
val certificatePinner = CertificatePinner.Builder()
.add(
"api.example.com",
"sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
)
.build()
val client = OkHttpClient.Builder()
.certificatePinner(certificatePinner)
.build()
iOS-da server sertifikatını əl ilə yoxlamaq üçün URLSessionDelegate istifadə edin. SecCertificateRef-i lokal saxlanılmış nüsxə ilə müqayisə edin.
class SessionDelegate: NSObject, URLSessionDelegate {
func urlSession(
_ session: URLSession,
didReceive challenge: URLAuthenticationChallenge,
completionHandler: @escaping (
URLSession.AuthChallengeDisposition,
URLCredential?
) -> Void
) {
guard let serverTrust = challenge.protectionSpace
.serverTrust else { return }
let pinnedCert = SecCertificateCreateWithData(
nil,
pinnedCertData as CFData
)
let serverCerts = (0..<SecTrustGetCertificateCount(serverTrust))
.compactMap { SecTrustGetCertificateAtIndex(serverTrust, $0) }
if serverCerts.contains { CFEqual($0, pinnedCert) } {
completionHandler(.useCredential, URLCredential(trust: serverTrust))
} else {
completionHandler(.cancelAuthenticationChallenge, nil)
}
}
}
Android kod yazmadan OS səviyyəsində trafiki bloklayan network_security_config.xml XML faylı vasitəsilə deklarativ qorunma dəstəkləyir.
<!-- network_security_config.xml -->
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="false">
<domain includeSubdomains="true">api.example.com</domain>
<pin-set expiration="2027-07-01">
<pin digest="SHA-256">AAAAAAAAAAAAAAAAAAAAAAAAAAAA</pin>
</pin-set>
</domain-config>
</network-security-config>
MITM hücumlarından kompleks qorunma tətbiq, server və şəbəkə infrastrukturu səviyyəsində tədbirləri əhatə edir. Aşağıda Android və iOS üçün əsas tövsiyələr verilmişdir.
Certificate Pinning — tətbiq kodunda server sertifikatının bağlanmasından istifadə edin. Sistem deposundakı istənilən sertifikata etibar edən standart TLS yoxlamasından fərqli olaraq, Certificate Pinning konkret sertifikatı və ya onun açıq açarını yoxlayır. Android-də OkHttp və iOS-da TrustKit bu mexanizmin hazır tətbiqlərini təmin edir.
HTTPS və HSTS-ni məcburi edin: bütün şəbəkə sorğuları HTTPS vasitəsilə getməli, server isə Strict-Transport-Security başlığını qaytarmalıdır. Android üçün manifestə android:usesCleartextTraffic="false" əlavə edin — bu, OS səviyyəsində HTTP əlaqələrini qadağan edir. iOS iOS 9-dan etibarən App Transport Security (ATS) vasitəsilə HTTP-ni defolt olaraq qadağan edir.
Cavabların bütövlüyünün yoxlanılmasını tətbiq edin: server cavablarını tətbiqin yoxladığı rəqəmsal imza ilə imzalayın. Təcavüzkar HTTPS trafikini ələ keçirsə belə (sertifikatın yenidən quraşdırılması ilə proksi vasitəsilə), serverin şəxsi açarı olmadan imzanı saxtalaşdıra bilməyəcək. Kritik əməliyyatlar üçün RS256 ilə JWT və ya HMAC imzalarından istifadə edin.
Server tərəfində HTTP Public Key Pinning (HPKP) aktivləşdirin — bu, brauzerə və ya tətbiqə müəyyən domen üçün hansı sertifikatın etibarlı sayılacağını göstərən direktivdir. Lakin HPKP ehtiyat tələb edir: səhv konfiqurasiya tətbiqə girişi uzun müddət bloklaya bilər. Google HPKP-nin yalnız ehtiyat sertifikatlarla birlikdə istifadəsini tövsiyə edir.
NIST SP 800-52 Rev. 2 (2024) məlumatlarına görə, TLS 1.3, Certificate Pinning və HSTS kombinasiyası mobil tətbiqlərə edilən MITM hücumlarının məlum vektorlarının 99%-ni aradan qaldırır. Tərtibatçılara tətbiqi nəşr etməzdən əvvəl mitmproxy kimi alətlərlə qorunmanı sınamaq tövsiyə olunur.
Tez-tez verilən suallar
MITM hücumunun əlamətlərinə qəfil yavaşlama, etibarsız sertifikat haqqında xəbərdarlıqlar (əvvəllər olmayan), URL və səhifə məzmununun uyğunsuzluğu daxildir. Mobil tətbiqlərdə — Network Security Config xətaları və ya Certificate Pinning-in işə düşməsi.
VPN trafiki VPN serverinə qədər şifrələyir, bu da yerli şəbəkədə ələ keçirmədən qoruyur. Lakin təcavüzkar VPN serverini idarə edirsə və ya MITM hücumu provayder tərəfində baş verirsə, VPN qorumur. Tətbiq səviyyəsində Certificate Pinning daha etibarlı üsul olaraq qalır.
Evil Twin — qanuni şəbəkəni (məsələn, "Airport_Free_WiFi") təqlid edən saxta Wi-Fi nöqtəsidir. Bu ayrıca MITM növü deyil, daxil olma üsuludur: Evil Twin-ə qoşulmaqla istifadəçi avtomatik olaraq MITM hücumunun qurbanına çevrilir, çünki bütün trafik təcavüzkardan keçir.
Certificate Pinning təhlükəsizliyi artırır, lakin server sertifikatı dəyişdirildikdə tətbiqin yenilənməsini tələb edir. Bir deyil, bir neçə ehtiyat sertifikat (backup pins) göstərmək tövsiyə olunur. Əsas sertifikatın müddəti bitdikdə tətbiq yeniləməyə ehtiyac olmadan ehtiyat sertifikatdan istifadə edəcək.
Ən məşhur alətlər: mitmproxy — HTTP/HTTPS trafikinin ələ keçirilməsi və dəyişdirilməsi, BetterCAP — yerli şəbəkədə ARP spoofing və ələ keçirmə, Wireshark — paket analizi, sslstrip — HTTPS-in HTTP-yə endirilməsi. Bu alətləri bilmək tərtibatçıya öz tətbiqinin qorunmasını sınamağa kömək edir.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun