Triggering and Detecting Exploitable Library Vulnerability from the Client by Directed Greybox Fuzzing
تقدم هذه الورقة LiveFuzz، وهو نهج فحص رمادي (greybox fuzzing) موجه يكتشف ثغرات المكتبات القابلة للاستغلال من برامج العملاء دون الاعتماد على نماذج إثبات المفهوم (proof-of-concepts)، وذلك عبر استخدام توبل مستهدف (target tuple)، وآلية تخطيط مسار مجردة، وطفرات تكيفية قائمة على المخاطر لتحسين إمكانية الوصول إلى المسارات وسرعة التعرض للثغرات.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل أنك تملك مصنعاً ضخماً وعالي التقنية (برنامج العميل الخاص بك). لكي تجعل منتجاتك أسرع وأرخص، تقوم باستئجار مقاولين من الباطن لبناء أجزاء محددة لك. هؤلاء المقاولون هم (المكتبات الخارجية - Third-Party Libraries). هم رائعون، لكن أحياناً يكون لديهم عيوب خفية أو آلات معطلة (ثغرات أمنية) في ورش عملهم.
المشكلة الكبيرة؟ أنت لا تملك مصانع هؤلاء المقاولين. لا يمكنك ببساطة الدخول وإصلاح آلاتهم المعطلة. عليك فقط إرسال تعليمات (مدخلات) من مصنعك لترى ما إذا كانت آلاتهم ستتعطل بالفعل عند استخدامها.
الطريقة القديمة: "التخمين والتحقق" (Fuzzing)
تقليدياً، حاول باحثو الأمن العثور على هذه الآلات المعطلة باستخدام طريقة تسمى "الفوزينج" (Fuzzing). تخيل أنك ترمي آلاف الصخور عشوائياً على جدار المصنع لترى ما إذا كانت نافذة ستنكسر.
- الفوزينج الرمادي الموجه (DGF): هو نسخة أذكى: لديك خريطة للمصنع وتحاول رمي الصخور خصيصاً على نقطة ضعف معروفة.
- العقبة: لكي تفعل ذلك بفعالية، تحتاج عادةً إلى "إثبات مفهوم" (PoC). فكر في الـ PoC كأنه ورقة غش أو مخطط هندسي يقول: "إذا ضغطت على هذا الزر المحدد في آلة المقاول، فإنها ستنفجر".
- الواقع: غالباً، لا توجد أوراق الغش هذه. الثغرة معروفة، لكن لم يكتشف أحد بعد كيف يمكن تفعيلها بدقة من خلال إعدادات مصنعك الخاصة. بدون ورقة الغش، تضيع أدوات الفوزينج القديمة، وترمي الصخور على الجدر st الخاطئة وتفشل في إصابة الانفجار تماماً.
الحل الجديد: LiveFuzz
قام مؤلفو هذه الورقة البحثية ببناء أداة جديدة تسمى LiveFuzz. فكر فيها كأنها سائق توصيل ذكي ومتكيف لا يحتاج إلى ورقة غش للعثور على الآلة المعطلة.
إليك كيف يعمل LiveFuzz، باستخدام تشبيهات بسيطة:
1. نظام "محطتي التوقف" (Target Tuple)
في الأيام الخوالي، كان السائق يعرف فقط الوجهة النهائية (الآلة المعطلة في المكتبة). لكن الرحلة معقدة: يجب أن تقود عبر مصنعك أولاً، ثم تعبر جسراً، وبعد ذلك تدخل إلى المكتبة.
- خدعة LiveFuzz: إنه ينشئ نظام GPS بمحطتين.
- المحطة أ: الباب المحدد في مصنعك حيث تخرج الطلبات.
- المحطة ب: الآلة المعطلة في المكتبة.
- من خلال تتبع كلتا المحطتين، يعرف السائق بالضبط كم يبعد عن الهدف في كل خطوة، حتى لو كان لا يزال داخل مصنعك. هذا يمنع السائق من الارتباك بسبب التصميم المعقد للمبنيين المختلفين.
2. "خريطة السباق العادل" (Abstract Path Mapping)
تخيل ثلاثة عدائين (البذور/Seeds) يحاولون الوصول إلى الآلة المعطلة.
- العداء أ: يسلك طريقاً قصيراً ومباشراً لكنه يعلق عند طريق مسدود.
- العداء ب: يسلك طريقاً أطول قليلاً ويقترب من الهدف.
- العداء ج: يسلك طريقاً طويلاً ومتعرجاً جداً، لكنه في الواقع يسلك المسار الوحيد الذي يؤدي إلى الانفجار.
- المشكلة: أدوات الفوزينج القديمة نفد صبرها. ترى العداء (ج) بعيداً وتقول: "بعيد جداً! لنركز على العداء (ب)". يتجاهلون العداء (ج)، رغم أن العداء (ج) هو الوحيد الذي يمكنه الفوز.
- إصلاح LiveFuzz: يستخدم خريطة سباق عادلة. بدلاً من قياس "المسافة" فقط، يقيس "التقدم بالنسبة للمسار". يدرك أن العداء (ج) في الواقع قريب جداً من خط النهاية بالنسبة لمساره الخاص. يتوقف عن تجاهل المسارات الطويلة ويعطي العداء (ج) دفعة، مما يضمن عدم تفويت أي انفجار محتمل لمجرد أن المسار كان طويلاً.
3. "المطرقة الدقيقة" (Risk-Based Adaptive Mutation)
بمجرد اقتراب السائق من الآلة المعطلة، يحتاج إلى ضربها.
- الطريقة القديمة: يلوح السائق بمطرقة ضخمة (تغيير عشوائي خشن). قد يكسر الباب، لكنه أيضاً يحطم الجدران، مما يدمر المسار ويجعل السائق يبدأ من جديد.
- طريقة LiveFuzz: يقيم المخاطر. إذا كان السائق قريباً جداً من الانفجار، فإنه ينتقل إلى مشرط دقيق (تغيير دقيق). يقوم بإجراء تعديلات صغيرة ودقيقة على المدخلات (مثل تدوير برغي بجزء من المليمتر) لتفعيل الانفجار دون كسر المسار. إذا كان السائق بعيداً، فإنه يستخدم المطرقة الضخمة لاستكشاف مناطق جديدة.
لماذا يهم هذا الأمر؟
اختبر الباحثون LiveFuzz في 61 سيناريو واقعياً يتضمن مكتبات برمجية شهيرة (مثل تلك المستخدمة في معالجة الفيديو، ومعالجة الصور، والشبكات).
- النتيجة: وجد LiveFuzz آلات معطلة أكثر ووجدها بسرعة أكبر بكثير (بما يصل إلى 7 أضعاف) من أفضل الأدوات الموجودة حالياً.
- النجاح الكبير: في ثلاث حالات، استسلمت الأدوات القديمة تماماً، لكن LiveFuzz وجد الثغرة. فعل ذلك دون الحاجة إلى ورقة الغش (PoC).
الملخص
LiveFuzz يشبه سائق توصيل فائق الذكاء:
- يعرف بالضبط أين توجد الآلة الخطيرة، حتى لو كانت في مبنى آخر.
- لا يستسلم للمسارات الطويلة والمتعرجة لمجرد أنها تبدو بعيدة.
- ينتقل من المطرقة الضخمة إلى المشرط الدقيق بناءً على مدى قربه من الهدف.
هذا يسمح للمطورين بمعرفة ما إذا كان برنامجهم في خطر حقيقي من خلل في مكتبة ما، حتى يتمكنوا من اتخاذ قرار بشأن تحديثها أو لا، دون إضاعة الوقت في الإنذارات الكاذبة أو تفويت التهديدات الحقيقية.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.