Man-in-the-Middle (MITM) — ایک “درمیان میں موجود شخص” حملہ جس میں حملہ آور دو فریقوں کے درمیان ٹریفک کو ان کی معلومات کے بغیر روکتا ہے، پڑھتا ہے یا تبدیل کرتا ہے۔ Kaspersky، 2025 کے مطابق، پچھلے دو سالوں میں موبائل آلات پر MITM حملوں کی تعداد میں 35% اضافہ ہوا ہے۔ ٹریفک کی مداخلت کا اہم مسئلہ یہ ہے کہ صارف کو حملے کے کوئی نشانات نظر نہیں آتے — کنکشن معمول کا لگتا ہے۔
اہم نکات
Man-in-the-Middle (MITM) ایک قسم کا سائبر حملہ ہے جس میں حملہ آور خفیہ طور پر دو فریقوں کے درمیان مواصلاتی چینل میں گھس جاتا ہے۔ حملہ آور دونوں فریقوں سے پوشیدہ رہتے ہوئے منتقل کردہ ڈیٹا کو روک سکتا ہے، پڑھ سکتا ہے اور تبدیل کر سکتا ہے۔
موبائل ایپس میں، MITM حملے خاص طور پر خطرناک ہوتے ہیں کیونکہ آلات مسلسل مختلف نیٹ ورکس سے جڑتے ہیں — گھر، دفتر، کیفے اور ہوائی اڈوں میں عوامی Wi-Fi۔ ہر نیٹ ورک سوئچ ممکنہ طور پر حملے کے لیے ایک موقع پیدا کرتا ہے۔ Verizon Mobile Security Index (2025) کے مطابق، 43% تنظیموں نے کم از کم ایک بار کارپوریٹ موبائل آلات پر MITM حملوں کا سامنا کیا ہے۔
MITM کا اہم خطرہ چھپاؤ ہے: صارف اور سرور کو مداخلت کے کوئی سگنل نہیں ملتے۔ سیشن معمول کا لگتا ہے، ڈیٹا منتقل ہوتا ہے، کوئی سرٹیفکیٹ خرابی نہیں ہوتی (اگر حملہ آور اپنا سرٹیفکیٹ استعمال کرتا ہے)۔ حملے کا پتہ صرف نیٹ ورک کے بنیادی ڈھانچے کی سطح پر یا خصوصی آلات سے لگایا جا سکتا ہے۔
ڈویلپر کو MITM حملوں کے میکانزم کو سمجھنے کی ضرورت ہے تاکہ ایپلیکیشن کی سطح پر تحفظ ڈیزائن کیا جا سکے، بجائے اس کے کہ صرف ٹرانسپورٹ پرت کی حفاظت پر انحصار کیا جائے۔
MITM حملوں کی درجہ بندی میں کئی اقسام شامل ہیں جو مواصلاتی چینل میں گھسنے کے طریقہ کار میں مختلف ہوتی ہیں۔ موبائل ڈیولپمنٹ میں، تین اقسام سب سے زیادہ متعلقہ ہیں۔
ARP Spoofing ایک تکنیک ہے جس میں حملہ آور مقامی نیٹ ورک پر جعلی ARP پیکٹ بھیجتا ہے، اپنے MAC ایڈریس کو گیٹ وے IP ایڈریس سے منسلک کرتا ہے۔ اس کے بعد، متاثرہ کا تمام ٹریفک حملہ آور کے آلے کے ذریعے روٹ کیا جاتا ہے، جو پوشیدہ رہتے ہوئے اسے گیٹ وے کو فارورڈ کرتا ہے۔
حملہ کرنے کے لیے Ettercap یا BetterCAP جیسے اوزار کافی ہیں، جو ARP اسپوفنگ کو خودکار کرتے ہیں۔ حملہ صرف ایک سب نیٹ کے اندر ممکن ہے، جس سے عوامی Wi-Fi نیٹ ورکس کے صارفین سب سے زیادہ خطرے میں ہوتے ہیں۔ منظم سوئچز پر Dynamic ARP Inspection (DAI) والے جدید نیٹ ورک اس قسم کے حملے کو روکتے ہیں۔
ARP Spoofing سے ایپلیکیشن کی سطح پر تحفظ ممکن نہیں ہے — یہ نیٹ ورک کے بنیادی ڈھانچے کا مسئلہ ہے۔ تاہم، ایپلیکیشن iOS کے لیے TrustKit یا Android کے لیے Network Security Config جیسی لائبریریوں کا استعمال کرکے نیٹ ورک کنیکٹیویٹی میں بے ضابطگیوں کا پتہ لگا سکتی ہے۔
DNS Spoofing (یا DNS کیش پوائزننگ) کلائنٹ سے DNS سرور کے راستے میں DNS ریکارڈز کی تبدیلی ہے۔ حملہ آور ایپلیکیشن کی DNS درخواست کو روکتا ہے اور جعلی IP ایڈریس واپس کرتا ہے، ٹریفک کو جائز سرور کی بجائے اپنے سرور پر ری ڈائریکٹ کرتا ہے۔
یہ حملہ عوامی نیٹ ورکس میں خاص طور پر مؤثر ہے جہاں DNS سرور DHCP کے ذریعے خود بخود تفویض کیا جاتا ہے۔ حملہ آور اپنا DNS سرور ترتیب دے سکتا ہے جو ہدف والے ڈومینز کے لیے جعلی IP ایڈریس واپس کرتا ہے۔ صارف براؤزر میں ایک جائز URL دیکھتا ہے لیکن حملہ آور کے سرور سے جڑتا ہے۔
DNS Spoofing سے ایپلیکیشن کی طرف تحفظ DNS-over-HTTPS (DoH) یا DNS-over-TLS (DoT) کے ذریعے لاگو کیا جاتا ہے، جو DNS استفسارات کو خفیہ کرتے ہیں۔ Android 9+ اور iOS 14+ سسٹم لیول DoH کو سپورٹ کرتے ہیں، اور ایپلیکیشن واضح طور پر اس آپشن کو فعال کر سکتی ہے۔
SSL Stripping ایک حملہ ہے جس میں حملہ آور ایک محفوظ HTTPS کنکشن کو غیر محفوظ HTTP میں تنزلی کرتا ہے۔ یہ تکنیک اس حقیقت کا فائدہ اٹھاتی ہے کہ بہت سے صارفین https://example.com کی بجائے دستی طور پر example.com ٹائپ کرتے ہیں، اور پہلا کنکشن HTTP کے ذریعے قائم ہوتا ہے۔
sslstrip (Moxie Marlinspike، 2009) اور bettercap جیسے اوزار خود بخود HTTP درخواستوں کو روکتے ہیں، اپنی طرف سے سرور کے ساتھ HTTPS کنکشن قائم کرتے ہیں، اور ڈیکرپٹ شدہ ٹریفک کو HTTP کے ذریعے کلائنٹ کو منتقل کرتے ہیں۔ براؤزر لاک آئیکن نہیں دکھاتا — صارف کو معلوم نہیں ہوتا کہ کنکشن محفوظ نہیں ہے۔
جدید تحفظ — HTTP Strict Transport Security (HSTS): سرور براؤزر کو مطلع کرتا ہے کہ تمام مستقبل کے کنکشن صرف HTTPS کے ذریعے ہونے چاہئیں۔ HSTS Preload List پہلے حملے سے بھی بچاتی ہے، لیکن اس کے لیے ڈومین کی پیشگی رجسٹریشن کی ضرورت ہوتی ہے۔
موبائل ایپ پر ایک عام MITM حملہ چار مراحل سے گزرتا ہے۔ ہر مرحلہ مختلف کمزوریوں کا استحصال کرتا ہے، اور مکمل تحفظ کے لیے تمام ویکٹرز کا احاطہ کرنا ضروری ہے۔
پہلا مرحلہ — گھساؤ: حملہ آور ڈیوائس اور سرور کے درمیان ٹریفک کے راستے میں آجاتا ہے۔ یہ مقامی نیٹ ورک میں ARP Spoofing، جعلی Wi-Fi رسائی پوائنٹ (Evil Twin)، یا فراہم کنندہ کے DNS سرور سے سمجھوتہ ہو سکتا ہے۔ موبائل آلات کھلے نیٹ ورکس سے خود بخود جڑنے پر خاص طور پر خطرے میں ہوتے ہیں۔
دوسرا مرحلہ — مداخلت: گھساؤ کے بعد، حملہ آور ایپ اور سرور کے درمیان تبادلہ ہونے والے تمام پیکٹوں کو پڑھنا شروع کرتا ہے۔ اس مرحلے پر، یہ میٹا ڈیٹا جمع کرتا ہے: درخواست URLs، پیکٹ سائز، کوکیز، ہیڈر۔ یہاں تک کہ اگر ڈیٹا خفیہ ہے، میٹا ڈیٹا ایپلیکیشن کی ساخت اور کاروباری منطق کو ظاہر کر سکتا ہے۔
تیسرا مرحلہ — ڈیکرپشن (اگر ٹریفک خفیہ ہے): حملہ آور دو TLS کنکشن قائم کرتا ہے — ایک سرور کے ساتھ (جعلی سرٹیفکیٹ استعمال کرکے)، دوسرا کلائنٹ کے ساتھ۔ ایپ کنکشن کو محفوظ سمجھتی ہے، لیکن حملہ آور تمام ڈیٹا کو سادہ متن میں دیکھتا ہے۔ Certificate Pinning کے بغیر، یہ سسٹم اسٹور میں انسٹال کردہ کسی بھی سرٹیفکیٹ کے لیے کام کرتا ہے۔
چوتھا مرحلہ — تبدیلی اور نکالنا: حملہ آور نہ صرف پڑھ سکتا ہے بلکہ منتقل کردہ ڈیٹا کو تبدیل بھی کر سکتا ہے۔ مالیاتی ایپس میں، اس کا مطلب وصول کنندہ کے اکاؤنٹ نمبر کو تبدیل کرنا ہو سکتا ہے؛ API درخواستوں میں، اجازت کے پیرامیٹرز کو تبدیل کرنا۔ iOS اور Android ایپلیکیشن کی سطح پر جواب کی سالمیت کی جانچ لاگو کرنے کی تجویز کرتے ہیں۔
آئیے Kotlin اور Swift میں Certificate Pinning کا استعمال کرتے ہوئے MITM حملوں سے تحفظ کی عملی مثالیں دیکھتے ہیں۔ یہ مثالیں سسٹم اسٹور سے سمجھوتہ ہونے پر بھی سرٹیفکیٹ کی تبدیلی کو روکتی ہیں۔
OkHttp Android کے لیے معیاری HTTP لائبریری ہے جو CertificatePinner کو سپورٹ کرتی ہے۔ اپنے سرور کے سرٹیفکیٹ کا SHA-256 ہیش بتائیں — کوئی بھی دوسرا سرٹیفکیٹ مسترد کر دیا جائے گا۔
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 پر، سرور سرٹیفکیٹ کو دستی طور پر تصدیق کرنے کے لیے URLSessionDelegate استعمال کریں۔ SecCertificateRef کا موازنہ مقامی طور پر ذخیرہ کردہ کاپی سے کریں۔
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 network_security_config.xml فائل کے ذریعے اعلانیہ تحفظ کو سپورٹ کرتا ہے، جو کوڈ لکھے بغیر OS کی سطح پر ٹریفک کو روکتا ہے۔
<!-- 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 حملوں سے جامع تحفظ میں ایپلیکیشن، سرور اور نیٹ ورک کے بنیادی ڈھانچے کی سطح پر اقدامات شامل ہیں۔ ذیل میں Android اور iOS کے لیے اہم سفارشات ہیں۔
Certificate Pinning استعمال کریں — ایپلیکیشن کوڈ میں سرور سرٹیفکیٹ کو باندھنا۔ معیاری TLS تصدیق کے برعکس، جو سسٹم اسٹور سے کسی بھی سرٹیفکیٹ پر بھروسہ کرتی ہے، Certificate Pinning ایک مخصوص سرٹیفکیٹ یا اس کی عوامی کلید کو چیک کرتا ہے۔ Android پر OkHttp اور iOS پر TrustKit اس میکانزم کے تیار شدہ نفاذ فراہم کرتے ہیں۔
HTTPS اور HSTS کو لازمی بنائیں: تمام نیٹ ورک درخواستیں HTTPS کے ذریعے جانی چاہئیں، اور سرور کو Strict-Transport-Security ہیڈر واپس کرنا چاہیے۔ Android کے لیے، مینی فیسٹ میں android:usesCleartextTraffic="false" شامل کریں — یہ OS کی سطح پر HTTP کنکشن کو روکتا ہے۔ iOS iOS 9 سے App Transport Security (ATS) کے ذریعے ڈیفالٹ طور پر HTTP کو روکتا ہے۔
جواب کی سالمیت کی جانچ لاگو کریں: سرور کے جوابات کو ڈیجیٹل دستخط سے دستخط کریں جسے ایپ تصدیق کرتی ہے۔ یہاں تک کہ اگر حملہ آور HTTPS ٹریفک کو روکتا ہے (پراکسی کے ذریعے سرٹیفکیٹ دوبارہ انسٹال کرکے)، وہ سرور کی نجی کلید کے بغیر دستخط جعلی نہیں بنا سکتا۔ اہم کارروائیوں کے لیے RS256 یا HMAC دستخطوں والا JWT استعمال کریں۔
سرور کی طرف، HTTP Public Key Pinning (HPKP) کو فعال کریں — ایک ہدایت جو براؤزر یا ایپ کو بتاتی ہے کہ کسی مخصوص ڈومین کے لیے کون سا سرٹیفکیٹ درست سمجھا جائے۔ تاہم، HPKP میں احتیاط کی ضرورت ہے: غلط ترتیب طویل عرصے کے لیے ایپلیکیشن تک رسائی کو روک سکتی ہے۔ Google صرف بیک اپ سرٹیفکیٹس کے ساتھ HPKP استعمال کرنے کی تجویز کرتا ہے۔
NIST SP 800-52 Rev. 2 (2024) کے مطابق، TLS 1.3، Certificate Pinning اور HSTS کا امتزاج موبائل ایپس پر 99% معروف MITM حملہ ویکٹرز کو ختم کرتا ہے۔ ڈویلپرز کو مشورہ دیا جاتا ہے کہ وہ ایپلیکیشن شائع کرنے سے پہلے mitmproxy جیسے آلات سے تحفظ کی جانچ کریں۔
اکثر پوچھے گئے سوالات
MITM حملے کی علامات میں اچانک کنکشن سست ہونا، ناقابل بھروسہ سرٹیفکیٹ کے بارے میں انتباہ (جو پہلے نہیں تھے)، URL اور صفحہ کے مواد کے درمیان عدم مطابقت شامل ہے۔ موبائل ایپس میں — Network Security Config کی خرابیاں یا Certificate Pinning کا فعال ہونا۔
VPN ٹریفک کو VPN سرور تک خفیہ کرتا ہے، جو مقامی نیٹ ورک پر مداخلت سے بچاتا ہے۔ تاہم، VPN حفاظت نہیں کرتا اگر حملہ آور VPN سرور کو کنٹرول کرتا ہے، یا اگر MITM حملہ فراہم کنندہ کی طرف سے ہوتا ہے۔ ایپلیکیشن کی سطح پر Certificate Pinning زیادہ قابل اعتماد طریقہ ہے۔
Evil Twin ایک جعلی Wi-Fi رسائی پوائنٹ ہے جو جائز نیٹ ورک (مثلاً “Airport_Free_WiFi”) کی نقل کرتا ہے۔ یہ MITM کی علیحدہ قسم نہیں بلکہ گھساؤ کا ایک طریقہ ہے: Evil Twin سے جڑ کر، صارف خود بخود MITM حملے کا شکار ہو جاتا ہے، کیونکہ تمام ٹریفک حملہ آور کے ذریعے گزرتی ہے۔
Certificate Pinning حفاظت کو بہتر بناتا ہے لیکن سرور سرٹیفکیٹ تبدیل ہونے پر ایپ کو اپ ڈیٹ کرنے کی ضرورت ہوتی ہے۔ ایک نہیں بلکہ متعدد بیک اپ سرٹیفکیٹ (backup pins) بتانے کی سفارش کی جاتی ہے۔ جب بنیادی سرٹیفکیٹ ختم ہو جاتا ہے، تو ایپ اپ ڈیٹ کی ضرورت کے بغیر بیک اپ استعمال کرے گی۔
سب سے مشہور اوزار: mitmproxy — HTTP/HTTPS ٹریفک کی روک تھام اور تبدیلی، BetterCAP — ARP اسپوفنگ اور مقامی نیٹ ورک میں روک تھام، Wireshark — پیکٹ تجزیہ، sslstrip — HTTPS سے HTTP میں تنزلی۔ ان آلات کا علم ڈویلپرز کو اپنی ایپلیکیشن کی حفاظت کی جانچ کرنے میں مدد کرتا ہے۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں