انتقل إلى المحتوى

الدليل الكامل لاستخراج البيانات من واجهات برمجة تطبيقات تطبيقات الهاتف المحمول

في عالمنا الحديث الذي يعتمد على الهاتف المحمول أولاً، تزداد شعبية تطبيقات الهاتف المحمول وتحل محل مواقع الويب التقليدية في العديد من الخدمات. يوجد الآن أكثر من 5 ملايين تطبيق متاح عبر متاجر التطبيقات الكبرى. لدى مستخدم الهاتف الذكي العادي أكثر من 80 تطبيقًا مثبتًا. وتمثل تطبيقات الهاتف المحمول 90% من الوقت الذي يتم قضاؤه عبر الإنترنت في التطبيقات مقابل الويب عبر الهاتف المحمول.

ماذا يعني هذا؟ أصبحت تطبيقات الهاتف المحمول واحدة من مصادر البيانات الأكثر قيمة ووفرة في عالمنا الرقمي المتزايد. يمكن استخراج بيانات الموقع وإحصائيات الاستخدام والملفات الشخصية والمعاملات والمزيد من حركة مرور تطبيقات الهاتف المحمول.

يمثل هذا فرصة كبيرة للشركات والباحثين والمطورين. لكن جمع هذه البيانات يتطلب اعتراض الاتصال بين التطبيقات وواجهات برمجة التطبيقات الخلفية الخاصة بها. وذلك لأن تطبيقات الهاتف المحمول تستخدم اتصالات HTTPS المشفرة لنقل البيانات بشكل آمن.

إن مجرد استنشاق حركة مرور الشبكة لن يكشف عن المحتوى. أنت بحاجة إلى وسيلة لفك تشفير حركة المرور.

أدخل خوادم بروكسي man-in-the-middle (MITM).

في هذا الدليل الشامل المكون من 4,000 كلمة، ستتعلم ما يلي:

  • ما هو بالضبط وكيل MITM وكيف يعمل
  • خطوة بخطوة كيفية إعداد وكيل MITM الخاص بك لتحليل حركة مرور تطبيقات الهاتف المحمول
  • كيفية استخدام الوكيل لمراقبة واجهة برمجة التطبيقات لتطبيقات الهاتف المحمول وعكس هندستها
  • أدوات وتقنيات لاستخراج البيانات القيمة من واجهات برمجة التطبيقات لتطبيقات الهاتف المحمول
  • أفضل ممارسات وكيل MITM لجمع البيانات بشكل مسؤول

إذا كنت ترغب في الحصول على خبرة عملية في استخراج البيانات من تطبيقات مثل Tinder وAirbnb وYelp والمزيد، فقد وصلت إلى المكان الصحيح. هيا بنا نبدأ!

ما هو وكيل الرجل في الوسط (MITM)؟

لفهم كيف يسمح بروكسي MITM بجمع بيانات تطبيقات الهاتف المحمول، تحتاج أولاً إلى فهم ما يفعله تشفير HTTPS.

يستخدم HTTPS شهادات SSL/TLS لتشفير الاتصال بين العميل (مثل تطبيق الهاتف المحمول) والخادم (مثل الواجهة الخلفية لواجهة برمجة التطبيقات). وهذا يمنع أي شخص يتجسس على الشبكة من عرض حركة المرور أو التلاعب بها.

ولكن ماذا لو كان بإمكانك اعتراض حركة المرور هذه عن طريق وضع نفسك في المنتصف بين العميل والخادم الوجهة؟

وهذا هو بالضبط ما يفعله وكيل MITM. يعمل الوكيل كوسيط تمر عبره كل حركة المرور:

العميل <—-> وكيل MITM <—-> خادم الوجهة

يقوم الوكيل بإنشاء اتصالات SSL منفصلة مع العميل والخادم لفك تشفير حركة المرور الخاصة بهم. ويمكنه بعد ذلك فحص طلبات النص العادي وتحليلها وحتى تعديلها قبل إعادة تشفيرها وإرسالها.

من خلال تثبيت شهادة جذر الوكيل كمرجع موثوق به، يمكنه انتحال صفة أي مجال بشكل فعال. وهذا يسمح بالاعتراض السلس دون إطلاق تحذيرات أمان المتصفح.

تتضمن بعض وكلاء MITM المشهورين ما يلي:

الوكيلالانطلاقملاحظة
ميتمبروكسيماك ، ويندوز ، لينكسأداة قوية تعتمد على وحدة التحكم
تشارلز بروكسيماك ، ويندوز ، لينكسواجهة المستخدم الرسومية، دعم تكوين الجهاز
العابثWindowsيمكن تصحيح حركة المرور من تطبيقات Windows

في هذا الدليل، سوف نوضح استخدام ميتمبروكسي نظرًا لأنه مجاني ومفتوح المصدر وسريع الإعداد.

الآن دعونا نلقي نظرة على كيفية تكوين جهاز محمول لتوجيه حركة المرور الخاصة به من خلال وكيل MITM الخاص بك.

الخطوة 1: تثبيت mitmproxy على جهاز الكمبيوتر الخاص بك

الخطوة الأولى هي تثبيت وبدء تشغيل خادم وكيل mitmproxy على جهاز الكمبيوتر المكتبي أو المحمول. سوف يعترض الطلبات الواردة من الأجهزة التي تم تكوينها للتوجيه من خلالها.

التثبيت على نظام التشغيل MacOS

إذا كنت تستخدم جهاز Mac، فإن أسهل طريقة لتثبيت mitmproxy هي عبر Homebrew:

$ brew install mitmproxy

تثبيت على لينكس

في Linux، استخدم مدير الحزم الخاص بالتوزيعة، على سبيل المثال:

$ sudo apt install mitmproxy # Debian/Ubuntu
$ sudo dnf install mitmproxy # Fedora

قم بالتثبيت على الويندوز

يمكن لمستخدمي Windows تنزيل الإصدار الثنائي الرسمي من mitmproxy.org. تأكد من اختيار أحدث إصدار من mitmproxy، وليس الأداة المساعدة mitmdump.

ابدأ الوكيل

بمجرد التثبيت، ابدأ تشغيل mitmproxy على المنفذ الافتراضي 8080:

$ mitmproxy

من المفترض أن تشاهد الطلبات التي تم اعتراضها تظهر في وحدة تحكم mitmproxy:

وحدة التحكم mitmproxy

اترك هذا قيد التشغيل في الخلفية أثناء تكوين جهازك المحمول لاستخدام الوكيل.

الخطوة 2: قم بتكوين الجهاز المحمول للتوجيه عبر mitmproxy

نحن الآن بحاجة إلى تكوين الجهاز المحمول لتوجيه حركة المرور الخاصة به من خلال وكيل mitmproxy للاعتراض.

فيما يلي الخطوات الخاصة بأنظمة تشغيل الأجهزة المحمولة الشائعة:

على آيفون/iOS

  1. قم بتوصيل جهاز iPhone الخاص بك بنفس شبكة Wi-Fi المتصل بها جهاز الكمبيوتر الخاص بك الذي يقوم بتشغيل mitmproxy.

  2. انتقل إلى الإعدادات > Wi-Fi وحدد شبكتك الحالية.

  3. قم بالتمرير لأسفل ثم انقر فوق تكوين الوكيل.

  4. أختار كتيب لتعيين تفاصيل الوكيل الخاصة بك:

    • الخادم: عنوان IP لجهاز الكمبيوتر الخاص بك على الشبكة (على سبيل المثال 192.168.1.10)

    • الميناء: 8080

يؤدي هذا إلى توجيه كل حركة مرور الجهاز عبر جهاز الكمبيوتر الخاص بك وmitmproxy!

على Android

  1. قم بتوصيل جهاز Android الخاص بك بنفس شبكة Wi-Fi المتصل بها الوكيل.

  2. انتقل إلى الإعدادات > Wi-Fi > الخيارات المتقدمة > الوكيل وحدد كتيب.

  3. أدخل عنوان IP الخاص بجهاز الكمبيوتر الخاص بك في حقل اسم المضيف و8080 للمنفذ.

  4. انقر فوق حفظ لتطبيق تكوين الوكيل.

على هاتف ويندوز

  1. من شاشة البدء، اسحب لليسار للوصول إلى قائمة التطبيقات، ثم انقر فوق الإعدادات.

  2. نقر واي فاي واضغط لفترة طويلة على شبكتك المتصلة. يختار تعديل.

  3. نقر تظهر الخيارات المتقدمة then تعيين الوكيل إلى دليل.

  4. أدخل عنوان IP لجهاز الكمبيوتر الخاص بك و8080 للمنفذ.

  5. نقر حفظ للاتصال من خلال الوكيل.

وهذا كل شيء! يجب الآن على جهازك المحمول توجيه كل حركة المرور عبر mitmproxy للاعتراض.

الخطوة 3: تثبيت شهادة mitmproxy على الجهاز المحمول

عند هذه النقطة، سترى حركة المرور في وحدة تحكم mitmproxy من جهازك المحمول. ومع ذلك، تستخدم معظم التطبيقات HTTPS، لذا لن تتمكن من عرض المحتوى.

لفك تشفير حركة مرور HTTPS، تحتاج إلى تثبيت شهادة mitmproxy كمرجع مصدق جذر موثوق به على جهازك المحمول.

يوفر Mitmproxy موقعًا مفيدًا على http://mitm.it سيؤدي ذلك إلى إنشاء الشهادة للنظام الأساسي لجهازك المحدد.

ببساطة اذهب الى http://mitm.it في متصفح جهازك المحمول، ثم انقر فوق الرابط الخاص بنظام التشغيل لديك:

موقع mitm.it

ثم قم بتثبيت الشهادة التي تم تنزيلها على جهازك:

على iOS

  1. انتقل إلى الإعدادات > عام > حول > إعدادات الثقة بالشهادة

  2. تمكين ميتمبروكسي شهادة

على Android

  1. حفظ mitmproxy-ca-cert.pem ملف في مكان ما على مساحة تخزين الجهاز

  2. انتقل إلى الإعدادات > الأمان > التثبيت من وحدة التخزين

  3. إختار ال mitmproxy-ca-cert.pem ملف

على هاتف ويندوز

  1. انتقل إلى النظام > التشفير > استيراد الشهادة

  2. اختر ما تم تنزيله mitmproxy-ca-cert.crt

قد تحتاج إلى تعيين شهادة mitmproxy على أنها موثوقة لشبكة VPN أو التطبيقات. الآن يمكن لـ mitmproxy اعتراض حتى حركة المرور المشفرة بـ HTTPS من الجهاز.

قم بتمكين الشهادة فقط عندما تحتاج إلى تصحيح حركة المرور وتعطيلها عند الانتهاء! لا تكشف عن بيانات التطبيق الأخرى دون داع.

حسنًا، حان وقت الجزء الممتع... فلنلقِ نظرة على كيفية مراقبة حركة المرور لإجراء هندسة عكسية واستخراج واجهات برمجة تطبيقات تطبيقات الهاتف المحمول!

الخطوة 4: مراقبة وعكس واجهة برمجة تطبيقات تطبيقات الهاتف المحمول

افتح تطبيق الهاتف المحمول الذي تريد دراسته على الجهاز الذي تم تكوينه لاستخدام الوكيل. على سبيل المثال، سأستخدم تطبيق Swiggy لتوصيل الطعام.

في وحدة التحكم mitmproxy على جهاز الكمبيوتر الخاص بك، من المفترض أن ترى الطلبات الواردة من عنوان IP الخاص بجهازك المحمول.

قم بتصفية العرض حسب مجال واجهة برمجة التطبيقات (API) التي تريد تحليلها. بالنسبة لـ Swiggy، هذا هو prod-api.swiggy.com:

حركة مرور Swiggy API في mitmproxy

أثناء تفاعلك مع تطبيق الهاتف المحمول، ابحث عن الأنماط في طلبات واجهة برمجة التطبيقات. يمكنك توسيع الطلب لعرض التفاصيل الكاملة:

طلب API الموسع

يكشف اختبار تدفقات التطبيقات المختلفة عن نقاط النهاية الموجودة في واجهة برمجة التطبيقات الخلفية والبيانات التي تعيدها. للكشط، نحن مهتمون للحصول على الطلبات التي تقوم بإرجاع بيانات JSON.

بناءً على مراقبة حركة المرور من Swiggy، يمكننا أن نرى:

  • /restaurants/list/v5 إرجاع قائمة المطاعم لموقع ما
  • /menu/v4 يحصل على القائمة لمطعم معين
  • /geocode/v1 تحويل العناوين إلى إحداثيات خطوط العرض/LNG

وما إلى ذلك وهلم جرا. يتيح لنا ذلك فهم نقاط نهاية واجهة برمجة التطبيقات وتخطيطها.

يمكننا الآن تكرار طلبات واجهة برمجة التطبيقات (API) لاستخراج البيانات. على سبيل المثال، الدعوة /restaurants/list/v5 مع الالجائزة lat و lng تقوم المعلمات بإرجاع قائمة JSON للمطاعم:

import requests

api_url = ‘https://prod-api.swiggy.com/restaurants/list/v5‘

params = {
  ‘lat‘: 12.972442, 
  ‘lng‘: 77.580643 
}

response = requests.get(api_url, params=params)
data = response.json() 

for restaurant in data:
  print(restaurant[‘name‘], restaurant[‘area‘])

يؤدي هذا إلى طباعة أسماء ومناطق مطاعم Swiggy القريبة من موقع معين. يتيح لنا الوكيل معرفة كيفية عمل التطبيق وإجراء هندسة عكسية لواجهة برمجة التطبيقات لاستخراج البيانات.

استراتيجيات الاستخلاص لواجهات برمجة تطبيقات تطبيقات الهاتف المحمول

بمجرد قيامك بفحص حركة مرور واجهة برمجة التطبيقات (API) الخاصة بالتطبيق لفهم نقاط النهاية والمعلمات، يمكنك البدء في تجميع البيانات برمجيًا.

فيما يلي بعض أفضل الممارسات:

  • استخدم الوكلاء - قم بتدوير عناوين IP السكنية المختلفة لتجنب الحظر من تحديد المعدل.

  • عشوائية المدخلات - قم بتغيير الإحداثيات الجغرافية ومعرفات المستخدمين وما إلى ذلك لتبدو أكثر إنسانية.

  • طلبات الخنق - إضافة تأخيرات بين الطلبات للحد من الحجم.

  • بيانات ذاكرة التخزين المؤقت – تخزين الردود لتجنب الطلبات المكررة.

  • التعامل مع الأخطاء - أعد محاولة الطلبات الفاشلة وتعامل مع أخطاء HTTP بأمان.

  • بيانات ترقيم الصفحات - اتبع روابط ترقيم الصفحات في الردود لاستخراج جميع البيانات.

  • استخدم POST عند الحاجة - بعض الإجراءات مثل تقديم الطلب تتطلب طلبات POST.

  • تحليل بسرعة - قم باستخراج البيانات التي تحتاجها فقط بدلاً من تحليل كل شيء.

  • فرك البيانات الوصفية - قم بإزالة المعرفات الفريدة والطوابع الزمنية وما إلى ذلك التي يمكنها تحديد السجلات.

  • ابق على تواصل – التحقق من تغييرات واجهة برمجة التطبيقات بعد تحديثات التطبيق.

مع بعض الإبداع، يمكنك إنشاء أدوات استخراج البيانات لاستخراج جميع أنواع البيانات القيمة من واجهات برمجة تطبيقات تطبيقات الهاتف المحمول. فقط تأكد من اتباع شروط الخدمة بعناية واستخدام البيانات بطريقة مسؤولة!

المسؤول عن تجريف واجهة برمجة تطبيقات الهاتف المحمول

مثل أي شكل من أشكال استخراج البيانات من الويب، فإن جمع البيانات من واجهات برمجة تطبيقات الأجهزة المحمولة يأتي مع بعض الاعتبارات الأخلاقية:

  • لا تفرط في الخوادم – الحد من حجم الطلب لتقليل التأثير.

  • تقييد الاستخدام – اجمع فقط البيانات التي يمكنك تبرير الحاجة إليها.

  • احترام شروط الخدمة – تجنب انتهاك شروط الخدمة أو اتفاقيات عدم الإفصاح.

  • حماية البيانات – تخزين البيانات بشكل آمن وتقليل فترات الاحتفاظ بها.

  • إلغاء تحديد البيانات – إزالة المعلومات الشخصية غير المطلوبة لغرضك.

  • تحقق من القوانين – تنظم بعض المواقع أنواع جمع البيانات.

  • استخدم بحكمة - يجب أن توفر البيانات قيمة، وليس فقط أن يتم جمعها لأنك تستطيع ذلك.

الشفافية والأخلاق أمر بالغ الأهمية. مع البيانات العظيمة تأتي مسؤولية كبيرة!

وفي الختام

آمل أن يكون هذا الدليل قد قدم لك نظرة شاملة حول اعتراض بيانات تطبيقات الهاتف المحمول باستخدام وكلاء الوسيط. الوجبات الرئيسية:

  • تسمح لك وكلاء MITM باعتراض حركة مرور HTTPS من تطبيقات الهاتف المحمول عن طريق تثبيت شهادة الوكيل.

  • أدوات مثل mitmproxy تجعل فحص حركة المرور هذه أمرًا سهلاً لفهم كيفية تواصل التطبيق مع واجهات برمجة التطبيقات الخلفية.

  • تتيح الهندسة العكسية لنقاط نهاية واجهة برمجة التطبيقات تكرار الطلبات لاستخراج بيانات تطبيقات الهاتف المحمول.

  • يمكن استخدام الوكلاء والتقييد والتقنيات الأخرى لجمع بيانات تطبيقات الهاتف المحمول بكفاءة على نطاق واسع.

  • تأكد من التخلص من واجهات برمجة تطبيقات الأجهزة المحمولة بشكل أخلاقي وقانوني.

توفر تطبيقات الهاتف المحمول ثروة من البيانات في انتظار استغلالها. الآن بعد أن عرفت كيفية استخدام بروكسي MITM للوصول إليه، فإن الاحتمالات لا حصر لها!

ما هي التطبيقات الرائعة التي ستبدأ في استخراج البيانات منها؟ اسمحوا لي أن أعرف إذا كان لديك أي أسئلة أخرى حول تجريد وكيل الهاتف المحمول!

الانضمام إلى محادثة

لن يتم نشر عنوان بريدك الإلكتروني. الحقول المشار إليها إلزامية *