تحليل حركة البيانات باستخدام mitmproxy: دليل شامل لتصحيح الأخطاء والأمان
تتناول هذه المقالة أداة Mytemproxy لتحليل حركة مرور HTTP/HTTPS وتطبيقاتها في مجال الأمن وتصحيح الأخطاء.

تحليل حركة البيانات باستخدام mitmproxy: دليل شامل لتصحيح الأخطاء والأمان

سنستعرض في هذه المقالة أداة mitmproxy، المستخدمة لتحليل وتصحيح أخطاء حركة مرور HTTP/HTTPS. بدءًا من التثبيت والإعداد، وصولًا إلى نصائح الأمان والاستخدامات العملية، سيساعدك هذا الدليل على إدارة حركة مرور البيانات بكفاءة.
0 الأسهم
0
0
0
0
  1. مقدمة
  2. لماذا يتم تحليل حركة المرور باستخدام mitmproxy؟
  3. حالات الاستخدام العملي
    1. تصحيح أخطاء واجهة برمجة التطبيقات وتطبيقات الجوال
    2. اختبار الاختراق وتقييم الأمن (وفقًا للمبادئ القانونية)
    3. تسجيل وإعادة تشغيل حركة المرور
  4. التركيب والأدوات
    1. التثبيت الأساسي على نظامي ديبيان/أوبونتو
    2. تنفيذ سريع
    3. يعمل في Docker
  5. إعداد الوكيل الصريح (تكوين العميل)
  6. وضع الوكيل الشفاف (بدون تهيئة يدوية للعميل)
    1. تفعيل إعادة توجيه بروتوكول الإنترنت
    2. مثال على استخدام iptables لإعادة توجيه HTTP/HTTPS إلى المنفذ 8080
    3. تشغيل mitmproxy في الوضع الشفاف
  7. تسجيل وتخزين وتحويل التدفقات
    1. التسجيل باستخدام mitmdump
    2. قراءة الملف المسجل
    3. التحويل إلى HAR/pcap
  8. البرمجة النصية والإضافات
  9. الفلاتر والبحث المتدفق
  10. تحليل TLS والتفاصيل التقنية
  11. قابلية التوسع والأداء
  12. الأمن التشغيلي والخصوصية
  13. أمثلة عملية: الهاتف المحمول، وواجهة برمجة التطبيقات، وإعادة التشغيل
    1. تصحيح أخطاء تطبيقات الجوال
    2. قم بتسجيل وتشغيل حركة مرور واجهة برمجة التطبيقات (API) لأغراض الاختبار.
  14. التكامل مع أدوات أخرى (Wireshark، Burp، CI)
  15. أفضل التكوينات حسب التطبيق
  16. ملاحظات ختامية وتحذيرات قانونية
  17. الخاتمة والاقتراحات العملية
  18. الأسئلة الشائعة

 

مقدمة

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

 

إعداد الوكيل الصريح (تكوين العميل)

الخطوات العامة:

  1. تشغيل mitmproxy:

    mitmproxy --listen-port 8080
  2. إنشاء وتثبيت شهادة المرجع المصدق:

    بعد تشغيل 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.

 

أمثلة عملية: الهاتف المحمول، وواجهة برمجة التطبيقات، وإعادة التشغيل

 

تصحيح أخطاء تطبيقات الجوال

  1. قم بتشغيل برنامج mitmproxy على جهاز الكمبيوتر المحمول الخاص بك:

    mitmweb --listen-host 0.0.0.0 --listen-port 8080
  2. قم بتوصيل الكمبيوتر المحمول بنفس شبكة Wi-Fi؛ على سبيل المثال، شبكة IP 192.168.1.10.

  3. في إعدادات الواي فاي بهاتفك، اضبط وضع الوكيل على يدوي، ثم حدد عنوان IP. 192.168.1.10 والميناء 8080 ضعها.

  4. قم بتثبيت شهادة mitmproxy على الهاتف.

  5. عرض وتصفية حركة المرور على 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، ونشرها في مواقع قريبة من المستخدمين.

 

الأسئلة الشائعة

قد يعجبك أيضاً