- مقدمة
- لماذا يتم تحليل حركة المرور باستخدام mitmproxy؟
- حالات الاستخدام العملي
- التركيب والأدوات
- إعداد الوكيل الصريح (تكوين العميل)
- وضع الوكيل الشفاف (بدون تهيئة يدوية للعميل)
- تسجيل وتخزين وتحويل التدفقات
- البرمجة النصية والإضافات
- الفلاتر والبحث المتدفق
- تحليل TLS والتفاصيل التقنية
- قابلية التوسع والأداء
- الأمن التشغيلي والخصوصية
- أمثلة عملية: الهاتف المحمول، وواجهة برمجة التطبيقات، وإعادة التشغيل
- التكامل مع أدوات أخرى (Wireshark، Burp، CI)
- أفضل التكوينات حسب التطبيق
- ملاحظات ختامية وتحذيرات قانونية
- الخاتمة والاقتراحات العملية
- الأسئلة الشائعة
مقدمة
mitmproxy هي أداة قوية ومرنة لفحص حركة المرور ومعالجتها وتحليلها. HTTP/HTTPS في بيئات التطوير، يُستخدم هذا البرنامج لاختبار أمان تطبيقات الجوال والويب وتصحيح أخطائها. يقدم هذا الدليل شرحًا تفصيليًا للتنفيذ، وأمثلة عملية، وإعدادات شائعة (بما في ذلك بروكسي شفافتتم مراجعة نصائح الأمان وأساليب قابلية التوسع.
هذه المقالة موجهة لمسؤولي المواقع والمطورين وفرق DevOps وفرق الأمن، وتوفر أمثلة وأوامر لينكس قابلة للتنفيذ.
لماذا يتم تحليل حركة المرور باستخدام mitmproxy؟
mitmproxy إمكانية عرض الطلبات والاستجابات المشفرة باستخدام بروتوكول TLS عن طريق تثبيت شهادة محلية (MITM CA) على العميل؛ هذه الميزة رائعة لتصحيح أخطاء واجهات برمجة التطبيقات، وتحليل سلوك التطبيق، واختبار الأمان، وتسجيل/تشغيل حركة المرور.
تتضمن المجموعة أدوات mitmproxy (تفاعلي)، mitmdump (للبرامج النصية والخلفية) و mitmweb (واجهة الويب).
يمكن لبرمجة بايثون أتمتة عمليات التصفية والتسجيل وتعديل الحمولة. هذه الأداة هي عامل ميناء، نظام دي، iptables/nftables إنه متوافق ويمكن استخدامه كـ صريح أو بروكسي شفاف إنها.
حالات الاستخدام العملي
تصحيح أخطاء واجهة برمجة التطبيقات وتطبيقات الجوال
للاعتراض على مشاكل JSON أو أخطاء CORS أو مصادقة OAuth، يمكنك وضع mitmproxy بين الهاتف المحمول والخادم ومراقبة الطلبات/الاستجابات.
طريقة بسيطة: اضبط العميل على عنوان IP الخاص بخادم mitmproxy (المنفذ الافتراضي) 8080) وتثبيت شهادة المرجع المصدق على الجهاز.
اختبار الاختراق وتقييم الأمن (وفقًا للمبادئ القانونية)
بالنسبة لاختبارات الاختراق، يسمح mitmproxy بالهجمات المنطقية، وفحوصات تسريب الرموز المميزة، وتحليل TLS. احرص دائمًا على وجود عقد مكتوب وإذن. وتجنب جمع البيانات الحساسة دون إذن.
تسجيل وإعادة تشغيل حركة المرور
لإعادة إنتاج الأخطاء أو اختبار التحميل، يمكنك استخدام حركة المرور التي تم التقاطها مع إعادة تشغيل الخادم قم بتشغيل اللعبة لإعادة تقييم سلوك الخادم أو العميل.
التركيب والأدوات
التثبيت الأساسي على نظامي ديبيان/أوبونتو
قم بالتثبيت باستخدام pip (موصى به لأحدث إصدار):
pip3 install mitmproxyالتثبيت من حزمة (سهل ولكنه قديم):
sudo apt update
sudo apt install mitmproxy
تنفيذ سريع
ثلاث أدوات رئيسية:
mitmproxy — واجهة تفاعلية لوحدة التحكم
mitmdump — مناسب لتسجيل النصوص والخوادم الخلفية
mitmweb — واجهة ويب بواجهة مستخدم رسومية
مثال على التنفيذ:
mitmweb --listen-port 8080 --showhost
يعمل في Docker
docker run --rm -p 8080:8080 -p 8081:8081 -v $(pwd)/certs:/home/mitmproxy/.mitmproxy mitmproxy/mitmproxy mitmweb --web-host 0.0.0.0
إعداد الوكيل الصريح (تكوين العميل)
الخطوات العامة:
تشغيل mitmproxy:
mitmproxy --listen-port 8080إنشاء وتثبيت شهادة المرجع المصدق:
بعد تشغيل mitmproxy، CA في
~/.mitmproxy/يتم وضع (ملف)mitmproxy-ca-cert.pem).في متصفح العميل أو نظام التشغيل، اعرض الشهادة على النحو التالي: يثق التثبيت (ويندوز: MMC > الشهادات؛ ماك أو إس: سلسلة المفاتيح؛ أندرويد: الإعدادات > الأمان > التثبيت من وحدة التخزين).
وضع الوكيل الشفاف (بدون تهيئة يدوية للعميل)
بالنسبة للبيئات التي لا يمكن فيها تكوين إعدادات الوكيل على جهاز العميل (مثل أجهزة إنترنت الأشياء أو الشبكات الداخلية)، استخدم شفاف يتطلب هذا الوضع توجيه حركة المرور مع iptables/nftables/TPROXY كما أنه يحتوي على خاصية إعادة توجيه بروتوكول الإنترنت (IP) مفعلة في النواة.
تفعيل إعادة توجيه بروتوكول الإنترنت
sudo sysctl -w net.ipv4.ip_forward=1
مثال على استخدام iptables لإعادة توجيه HTTP/HTTPS إلى المنفذ 8080
قم بإعادة توجيه منفذي TCP 80 و 443 إلى المنفذ 8080 على نفس الجهاز (لحركة المرور المحلية):
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8080
تشغيل mitmproxy في الوضع الشفاف
mitmproxy --mode transparent --listen-port 8080ملاحظة: بالنسبة لحركة مرور HTTPS في الوضع الشفاف، يجب تثبيت مركز مصادقة على أجهزة العملاء. وللتنفيذ القابل للتوسع على حافة الشبكة، استخدم TPROXY + nftables يُستخدم للحفاظ على الملكية الفكرية الأصلية للعميل.
تسجيل وتخزين وتحويل التدفقات
التسجيل باستخدام mitmdump
mitmdump -w flows.mitm
قراءة الملف المسجل
mitmproxy -r flows.mitm
التحويل إلى HAR/pcap
يتمتع برنامج mitmproxy/mitmdump بإمكانيات التصدير (يحتوي mitmweb على خيار تصدير HAR).
بالنسبة لـ pcap، يمكنك تشغيل tcpdump في نفس الوقت ثم تحليل Wireshark باستخدام pcap:
sudo tcpdump -i eth0 -w capture.pcap port 80 or port 443إذا كنت بحاجة إلى تحليل بروتوكول TLS في برنامج Wireshark، فيمكنك ذلك إذا كنت تتحكم في المتصفح. ملف سجل مفاتيح SSL قم بتمكين إنشاء مفاتيح من جانب العميل وتمريرها إلى Wireshark.
البرمجة النصية والإضافات
يتكامل mitmproxy مع لغة بايثون، ويمكنك كتابة إضافات برمجية. يوضح المثال التالي كيفية تسجيل وتعديل محتوى استجابة JSON.
from mitmproxy import http
import json
def response(flow: http.HTTPFlow):
if "api.example.com" in flow.request.pretty_host():
# log URL
print(flow.request.url)
# modify JSON response
if "application/json" in flow.response.headers.get("content-type", ""):
data = json.loads(flow.response.get_text())
data["injected"] = True
flow.response.set_text(json.dumps(data))قم بتشغيل الإضافة:
mitmdump -s modify_response.py
الفلاتر والبحث المتدفق
أمثلة مفيدة للفلاتر:
عرض الطلبات الموجهة إلى نطاق محدد فقط:
~d example.comعرض الاستجابات التي تحتوي على أخطاء من نوع 5xx فقط:
~ 500-599
مثال على تشغيل mitmproxy بالإعدادات التالية:
mitmproxy --set stream_large_bodies=2m --showhost
تحليل TLS والتفاصيل التقنية
mitmproxy can TLS ClientHelloمجموعات التشفير، و SNI والمساعدة في عملية أخذ البصمات.
لتحليل شامل لبروتوكول TLS في بيئات التطوير، قم بتثبيت CA وجمع البيانات. JA3 أو كاشف UADetector إنها تعمل.
قابلية التوسع والأداء
mitmproxy يعتمد على لغة بايثون، ويجب تشغيله على أجهزة مناسبة أو على مجموعة حاسوبية للأحمال الثقيلة.
بالنسبة للنطاق العالي: استخدم خوادم مخصصة أو مثيلات سحابية ذات شبكات قوية، مثل خادم سحابي بمنافذ 10 جيجابت في الثانية.
في بيئات الإنتاج التي تتطلب تحمل الهجمات، استخدم خوادم مكافحة الفيروسات.هجوم DDoS وموازن الأحمال. شركتنا تعمل في هذا المجال. أكثر من 85 موقعًا عالميًا يتمتع هذا النظام بالقدرة على النشر في نقاط الحافة، وهو أمر مفيد لتقليل زمن الاستجابة في التداول والألعاب.
الأمن التشغيلي والخصوصية
لا تقم بتحليل الشبكات إلا بإذن صريح. يُعدّ تسجيل حركة البيانات دون موافقة قانونية جريمة.
قم بتخزين المفتاح الخاص بهيئة التصديق على جهاز أو في مدير مفاتيح وقم بتقييد الوصول إليه.
قد تحتوي السجلات على بيانات حساسة (رموز مميزة، ملفات تعريف الارتباط)؛ حدد سياسة الاحتفاظ بها وقم بتطبيق التشفير عليها.
بالنسبة للبيئات الحساسة (الدفع، البطاقات)، توجد قواعد معيار أمان بيانات صناعة بطاقات الدفع (PCI/DSS) واستخدام أدوات MITM فقط في مرحلة الاختبار.
إذا كنت تستخدمه للتداول أو تحليل الألعاب، فاستخدم خادمًا افتراضيًا مخصصًا للتداول أو خادمًا افتراضيًا مخصصًا للألعاب مع اتفاقية مستوى الخدمة المناسبة وحماية من هجمات DDoS.
أمثلة عملية: الهاتف المحمول، وواجهة برمجة التطبيقات، وإعادة التشغيل
تصحيح أخطاء تطبيقات الجوال
قم بتشغيل برنامج mitmproxy على جهاز الكمبيوتر المحمول الخاص بك:
mitmweb --listen-host 0.0.0.0 --listen-port 8080قم بتوصيل الكمبيوتر المحمول بنفس شبكة Wi-Fi؛ على سبيل المثال، شبكة IP 192.168.1.10.
في إعدادات الواي فاي بهاتفك، اضبط وضع الوكيل على يدوي، ثم حدد عنوان IP. 192.168.1.10 والميناء 8080 ضعها.
قم بتثبيت شهادة mitmproxy على الهاتف.
عرض وتصفية حركة المرور على mitmweb.
قم بتسجيل وتشغيل حركة مرور واجهة برمجة التطبيقات (API) لأغراض الاختبار.
تسجيل:
mitmdump -w api_flows.mitmإذاعة:
mitmdump --server-replay api_flows.mitm --server-replay-nopop
التكامل مع أدوات أخرى (Wireshark، Burp، CI)
استخدم tcpdump لالتقاط ملفات pcap وتحليلها في Wireshark.
يمكن استخدام Mitmproxy كمعالج مسبق لحركة البيانات لبرنامج Burp أو أي محلل آخر.
في CI/CD: من المفيد التقاط عينات حركة المرور باستخدام mitmdump وتشغيلها أثناء مراحل التكامل لمحاكاة ظروف العالم الحقيقي.
أفضل التكوينات حسب التطبيق
لأغراض التداول: خادم افتراضي خاص (VPS) ذو زمن استجابة منخفض، وخادم قريب من منصة التداول، وشبكة مزودة ببروتوكول BGP وشبكة توصيل محتوى (CDN) مناسبة. استخدم خادمًا افتراضيًا خاصًا مخصصًا للتداول لتشغيل mitmproxy في وضع الاختبار، وأداة تسجيل منفصلة حتى لا تتداخل مع محرك تنفيذ التداول.
بالنسبة للعبة: خادم افتراضي خاص للألعاب مع زمن استجابة منخفض. ملاحظة: يدعم mitmproxy فقط بروتوكول TCP/HTTP يدعم ذلك؛ لتحليل بروتوكول UDP، تحتاج إلى استخدام أدوات أخرى مثل tcpreplay/وايرشارك و صنبور يستخدم.
للذكاء الاصطناعي/الرسم: يُعد mitmproxy مفيدًا لتصحيح أخطاء واجهات برمجة التطبيقات النموذجية؛ أما بالنسبة لمعالجة الشبكة الثقيلة، فاستخدم خادم رسومات (GPU Cloud) وضع mitmproxy على خادم حساب منفصل.
ملاحظات ختامية وتحذيرات قانونية
احصل دائمًا على إذن كتابي من مالك الخدمة أو المستخدم قبل إجراء أي تحليل.
يجب الحفاظ على أمان البيانات مثل معلومات البطاقة وكلمات المرور والرموز المميزة وحذفها بعد الاستخدام.
لأغراض الإنتاج، استخدم خوادم محمية وحلًا مضادًا لهجمات DDoS لمنع إساءة الاستخدام.
الخاتمة والاقتراحات العملية
يُعد تحليل حركة البيانات باستخدام mitmproxy أداة مرنة لتصحيح الأخطاء واختبار الأمان وتحليل حركة البيانات. سهولة تثبيته، وإمكانية برمجته بلغة بايثون، وقدراته على التسجيل والتشغيل تجعله مفيدًا للغاية في التطوير وضمان الجودة وبعض سيناريوهات الأمان.
للإنتاج والتحليل على نطاق واسع، استخدم خوادم ذات شبكة قوية، ومضادة لهجمات DDoS، ونشرها في مواقع قريبة من المستخدمين.









