
الجسر الجديد بين Burp Suite وFrida!
Brida هي إضافة لـ Burp Suite تعمل كجسر بين Burp Suite و Frida، مما يتيح لك استخدام ومعالجة أساليب التطبيق الخاصة أثناء التلاعب بالحركة المرورية المتبادلة بين التطبيقات وخدمات/خوادم الواجهة الخلفية الخاصة بها. وهي تدعم جميع المنصات التي يدعمها Frida (Windows، macOS، Linux، iOS، Android، و QNX).
هذه الفكرة هي حاجة تنشأ أثناء تحليل بعض تطبيقات الجوال التي تستخدم تشفيرًا متماثلًا قويًا باستخدام مفاتيح عشوائية، دون معرفة المفتاح الصحيح، لم تكن البيانات قابلة للتعديل عبر Burp ولا حتى باستخدام إضافة مخصصة. بشكل عام، قد يعتمد منطق التطبيقات على رموز تشفيرية، أو قد تستخدم خوارزمية معقدة من نوع التحدي والاستجابة، وما إلى ذلك. كيف يمكننا التلاعب بالرسائل؟ في معظم الأوقات، يكون الأسلوب الوحيد القابل للتطبيق هو تفكيك التطبيق، وتحديد الدوال أو الأساليب التي نهتم بها، وإعادة تنفيذها. من الواضح أن هذا الأسلوب يستغرق وقتًا طويلاً وليس دائمًا قابلًا للتطبيق حقًا: على سبيل المثال، قد يعتمد توليد الرموز و/أو إجراءات التشفير على مواد تشفيرية مرتبطة بشكل صارم بالجهاز (الحالة) أو مخزنة داخل مناطق محمية وبالتالي لا يمكن الوصول إليها مباشرة... وهنا يأتي دور Brida: بدلاً من محاولة استخراج المفاتيح/الشهادات وإعادة كتابة الإجراءات التي نهتم بها، لماذا لا ندع التطبيق يقوم بالعمل الشاق نيابة عنا؟
الإجابة المختصرة هي الجميع!
الإجابة الطويلة هي أن Brida هي مجموعة من الأدوات، بعضها تم إنشاؤه لتسريع التقييمات اليومية لتطبيقات الجوال ولمساعدة مستخدمي Frida الجدد، بينما البعض الآخر يهدف إلى معالجة المواقف المعقدة للغاية، حيث يمكن لـ Brida أن تحدث فرقًا حقيقيًا.
الأدوات التي يمكن أن تكون ذات قيمة للتعامل مع التقييمات اليومية لتطبيقات الجوال وتسريعها هي التالية:
ومع ذلك، الفكرة التي أدت إلى إنشاء Brida كانت مساعدة مختبري الاختراق/المحللين العكسيين/القراصنة في تحليل خدمات الويب لتطبيقات الجوال المستهدفة حيث توجد ميزات أمان معقدة لحماية سرية وسلامة طلبات HTTP والاستجابات. التشفير، التعتيم، إجراءات التوقيع التي تُنفذ على الطلبات والاستجابات يمكن أن تجعل عمل المختبرين صعبًا للغاية ويستغرق وقتًا طويلاً، لأنه عادة ما يكون من الضروري عكس آليات الأمان وتنفيذ إضافة Burp Suite أو أداة خارجية تقوم أولاً بفك تشفير/إزالة التعتيم لرسائل HTTP ثم في النهاية تشفير/تعتيم/توقيع الرسائل المعدلة. وينطبق الشيء نفسه أيضًا على بعض السيناريوهات غير الأمنية، مثل على سبيل المثال إذا تم استخدام بروتوكول ثنائي مخصص لتنسيق جسم طلبات/استجابات HTTP لأغراض التشغيل البيني أو الأداء.
تحاول Brida تسريع هذه الإجراءات قدر الإمكان، عن طريق الحد من جهد التحليل العكسي وإزالة جهد التطوير تمامًا (في معظم الحالات)، من خلال تقديم محرك يسمح لك بإنشاء إضافات مخصصة بيانيًا تقوم بفحص وتعديل طلبات HTTP واستجاباتها باستخدام نفس دوال الجوال التي يستخدمها تطبيق الجوال نفسه، بفضل Frida. كمثال على تطبيق جوال يقوم بتشفير/فك تشفير جميع الطلبات والاستجابات باستخدام خوارزمية تشفير مخصصة/غير معروفة، يسمح Brida لك بيانيًا بإنشاء إضافة مخصصة بسيطة تقوم بفك تشفير رسائل HTTP المشفرة باستخدام كود الجوال الذي يستخدمه تطبيق الجوال للقيام بالمهمة. مثال آخر يمكن أن يكون إضافة مخصصة تقوم بتحديث توقيعات الطلبات الموقعة بشكل شفاف عند إرسالها إلى الواجهة الخلفية باستخدام نفس وظيفة الجوال التي يستخدمها التطبيق نفسه.
بمزيد من التفصيل، يسمح Brida بإنشاء الإضافات بيانيًا التي:
وإذا لم يكن محرك الإضافات المخصصة لـ Brida كافيًا لمواقفنا فائقة التعقيد، فمن الممكن أيضًا كتابة إضافات Burp Suite خارجية بلغة Python/Java تترك لـ Brida مهمة تنفيذ دوال تطبيق الجوال المستهدف على بيانات الإضافة. أداة "Generate Stubs" في Brida تولد كود Java أو Python الذي يمكن لصقه في الإضافات الخارجية Python أو Java لاستخدام جسر Brida.
يجلب Frida 17 تحديثات رئيسية في الأداة نفسها وفي واجهات برمجة التطبيقات JavaScript الخاصة بها. كان من الضروري إعادة هيكلة كبيرة لكود JS، مما كسر التوافق مع إصدارات frida السابقة. وبالتالي، تتطلب الإصدارات الأخيرة من Brida إصدارًا من frida أكبر أو يساوي 17. إذا كنت بحاجة إلى استخدام إصدار أقدم من Frida، يمكنك تنزيل الإصدار 0.6pre من إصدارات GitHub.
المتطلبات:
pip install frida frida-tools pyro4)التركيب من GitHub:
التركيب من متجر BApp في Burp Suite:
التحديثات في متجر BApp تستغرق وقتًا. تحقق من GitHub للحصول على أحدث إصدار.
المتطلبات:
pip install frida frida-tools pyro4)التركيب من GitHub:
أخطاء المسار على MacOS شائعة؛ راجع هذا الرابط إذا كانت لديك مشكلات مع مسار النظام.
يمكنك بناء Brida باستخدام Gradle أو Maven. يستخدم Brida نسخة معدلة من RSyntaxTextArea، يمكنك العثور عليها في هذا الفورك.
البناء باستخدام Gradle أبسط. ستقوم مهمة "jar" بكل العمل، باستخدام نسخة مجمعة من RSyntaxTextArea المعدلة (مجلد "libs").
لكي تتمكن من بناء Brida باستخدام Maven، يجب عليك تثبيت نسخة RSyntaxTextArea المعدلة محليًا باستخدام Maven باستخدام المعاملات التالية:
يمكن العثور على ملاحظات التركيب والاستخدام في صفحة الويكي.
شرائح مؤتمرنا الذي قُدّم في HackInBo 2017 Winter Edition والذي يصف الإصدار الأول يمكن العثور عليها على:
الشرائح والفيديو الخاص بمؤتمرنا الذي قُدّم في Hack In The Box 2018 Amsterdam والذي يصف الميزات الجديدة في الإصدار 0.2 يمكن العثور عليها على:
فيديو مؤتمرنا الذي قُدّم في Hack In Paris 2020 2021 (تم تأجيله بسبب الوضع العالمي لـ COVID-19) والذي يصف الميزات الجديدة في الإصدار 0.4 0.5 يمكن العثور عليه على:
يمكن العثور على تطبيقين توضيحيين مختلفين في مجلد Demo، واحد لنظام Android وآخر لنظام iOS.
يحتوي مجلد العرض التوضيحي أيضًا على إضافات Brida التي يمكن استخدامها لتجاوز آليات التشفير التي تستخدمها التطبيقات!
يستخدم Brida الكثير من كود Frida للخطاف الديناميكي وفحص الثنائيات، بناءً على عمل:
علاوة على ذلك، يدمج Brida العديد من خطافات Frida التي طورها مؤلفون مختلفون لفحص/تجاوز العديد من ميزات الأمان. قائمة المشاريع (آمل أن تكون شاملة إلى حد ما) التي أخذت منها كود Frida لقسم "الخطافات والدوال" في Brida هي (ترتيب عشوائي):

حقوق الطبع والنشر (c) 2025 Brida
يُمنح الإذن، مجانًا، لأي شخص يحصل على نسخة من هذا البرنامج وملفات التوثيق المرتبطة به (يشار إليها باسم "البرنامج")، للتعامل مع البرنامج دون قيود، بما في ذلك دون حصر حقوق الاستخدام والنسخ والتعديل والدمج والنشر والتوزيع والترخيص و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين تم تزويدهم بالبرنامج بالقيام بذلك، مع مراعاة الشروط التالية:
يجب تضمين إشعار حقوق الطبع والنشر أعلاه وإذن هذا الإشعار في جميع النسخ أو الأجزاء الجوهرية من البرنامج.
يتم توفير البرنامج "كما هو"، دون أي ضمان من أي نوع، صريح أو ضمني، بما في ذلك لكن ليس على سبيل الحصر ضمانات القابلية للتسويق والملاءمة لغرض معين وعدم الانتهاك. في أي حال من الأحوال لا يكون المؤلفون أو أصحاب حقوق الطبع والنشر مسؤولين عن أي مطالبة أو أضرار أو مسؤولية أخرى، سواء كانت في إجراء تعاقدي أو تقصيري أو غير ذلك، الناشئة عن أو فيما يتعلق بالبرنامج أو استخدامه أو التعاملات الأخرى في البرنامج.