LLAMAFUZZ: Large Language Model Enhanced Greybox Fuzzing
يُعد LLAMAFUZZ أداة فحص (fuzzer) جديدة من نوع الـ greybox تستفيد من المعرفة المسبقة والقدرات المضبوطة بدقة للنماذج اللغوية الكبيرة لتوليد وتعديل المدخلات المهيكلة بفعالية، مما يتفوق بشكل كبير على الأدوات الحالية مثل AFL++ في تغطية الكود واكتشاف الأخطاء عبر مختلف البرامج الواقعية.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل أنك تحاول العثور على فخاخ مخفية (أخطاء برمجية/Bugs) داخل صندوق كنز معقد ومغلق (برنامج حاسوبي). لفتح الصندوق، يتعين عليك إدخال مفاتيح محددة (بيانات مدخلة). إذا كان المفتاح خاطئاً ولو بنسبة ضئيلة جداً، سيرفض الصندوق المدخلات، ولن تتعلم منه أي شيء.
لسنوات، استخدم الباحثون الأمنيون طريقة تسمى "الفحص العشوائي" (Fuzzing) للبحث عن هذه الفخاخ. إنهم يلقون آلاف المفاتيح العشوائية على الصندوق ليروا أي منها سيفتحه.
المشكلة: نهج "المعصوب العينين"
أدوات الفحص التقليدية (مثل AFL++) تشبه قرداً معصوب العينين يرمي السهام على لوحة أهداف.
- كيف تعمل: تقوم بتغيير البتات (الأصفار والآحاد) بشكل عشوائي في البيانات.
- المشكلة: تتطلب معظم البرامج الحديثة بيانات ذات تنسيقات محددة للغاية (مثل ملف JSON، أو مستند XML، أو صورة PNG).
- التشبيه: تخيل أن صندوق الكنز يتطلب مفتاحاً مصنوعاً من الذهب وبشكل محدد. القرد المعصوب العينين يقوم فقط بنحت صخرة بشكل عشوائي، آملاً أن ينحت بالصدفة مفتاحاً ذهبياً. قد يحدث ذلك، لكن الأمر يستغرق وقتاً طويلاً جداً، وفي معظم الأوقات، تتحول الصخرة مجرد غبار (بيانات غير صالحة) يتجاهله الصندوق.
الحل: "المهندس الذكي" (LLAMAFUZZ)
قرر مؤلفو هذه الورقة البحثية، LLAMAFUZZ، استبدال القرد المعصوب العينين بـ مهندس ذكي (نموذج لغوي كبير - LLM).
فكر في النموذج اللغوي الكبير (LLM) كحرفي ماهر قد قرأ الملايين من المخططات الهندسية. إنه يفهم تماماً كيف يجب أن يبدو المفتاح الذهبي، وكيف تتداخل القطع مع بعضها، وماذا يحدث إذا قمت بتغيير جزء واحد منها.
إليك كيف يعمل LLAMAFUZZ، مقسماً إلى خطوات بسيطة:
1. مرحلة التدريب (تعليم المهندس)
قبل بدء عملية البحث، يعرض الباحثون على النموذج اللغوي الكبير آلاف الأمثلة على "المفاتيح الجيدة" و"المفاتيح المكسورة التي كادت أن تنجح".
- لقد علموه: "إذا قمت بتغيير هذا الجزء من ملف XML، حافظ على توازن الوسوم. إذا غيرت ترويسة هذه الصورة، حافظ على التوقيع سليماً."
- النتيجة: تعلم النموذج اللغوي الكبير "قواعد" البيانات. فهو يعرف أنه إذا حذفت وسماً مغلقاً
</tag>، فإن الملف بأكمله سيتعطل، لذا لن يفعل ذلك.
2. الفريق الهجين (الرقصة غير المتزامنة)
أدرك الباحثون أن المهندس الذكي بارع ولكنه بطيء (يستغرق وقتاً للتفكير)، بينما القرد المعصوب العينين سريع ولكنه غبي.
- الإعداد: أنشأوا فريقاً. القرد (AFL++) يعمل على وحدة المعالجة المركزية (CPU)، ويرمي السهام بأقصى سرعة ممكنة. أما المهندس (LLM) فيعمل على وحدة معالجة رسومات (GPU) قوية في الخلفية.
- سير العمل:
- يجد القرد مفتاحاً "واعداً" (مفتاحاً جعل الصندوق يتفاعل).
- يرسل القرد هذا المفتاح إلى المهندس.
- يفكر المهندس للحظة ويقوم بإنشاء نسخة جديدة من ذلك المفتاح "بنية مثالية".
- يأخذ القرد هذا المفتاح الجديد ويعود ليرميه على الصندوق.
- السحر: هم لا ينتظرون انتهاء المهندس قبل أن يستمر القرد في عمله. إنهم يعملون بالتوازي، مثل سباق تتابع حيث يتم تمرير العصا دون توقف العدائين.
لماذا يهم هذا الأمر (النتائج)
اختبر الباحثون هذا الفريق الجديد ضد أفضل أدوات الفحص التقليدية على برمجيات حقيقية (مثل عارضات الصور، قارئات PDF، وخوادم الويب).
- الطريقة القديمة: وجد القرد المعصوب العينين ما بين 31 إلى 46 خطأً (Bug).
- الطريقة الجديدة (LLAMAFUZZ): وجد فريق المهندس الذكي 47 خطأً فريداً، بما في ذلك بعض الأخطاء التي لم يستطع أحد غيرهم العثور عليها.
- السرعة: وجدوا هذه الأخطاء بسرعة أكبر لأنهم لم يضيعوا الوقت في رمي آلاف المفاتيح غير الصالحة وغير المجدية.
مثال من الواقع: صورة PNG
تقدم الورقة البحثية مثالاً رائعاً باستخدام ملف صورة PNG.
- القرد: يغير بايت (Byte) بشكل عشوائي في ترويسة الصورة. الآن تقول الملف "أنا ملف JPEG" بدلاً من "أنا ملف PNG". يتوقف البرنامج فوراً لأنه مرتبك، لكن القرد لم يتعلم أي شيء عميق عن الكود.
- المهندس: يعرف أن ترويسة الصورة يجب أن تظل سليمة. بدلاً من ذلك، يقوم بعناية بتغيير حجم كتلة الصورة أو عمق الألوان بطريقة تبدو صالحة للبرنامج ولكنها تدفع الكود إلى أقصى حدوده. هذا يسمح للبرنامج بالعمل بشكل أعمق، مما يكشف عن شقوق خفية في المنطق البرمโปรما لم يكن القرد ليراها أبداً.
الخلاصة
LLAMAFUZZ يشبه الترقية من رش الرصاص العشوائي بآلة رش، إلى استخدام بندقية قنص يوجهها خبير. من خلال استخدام الذكاء الاصطناعي لفهم بنية البيانات، يمكن للأداة توليد حالات اختبار أكثر ذكاءً وصلاحية. وهذا يعني العثور على المزيد من الثغرات الأمنية، وبسرعة أكبر، وبجهد أقل ضائعاً.
إنه يثبت أنه في عالم الأمن البرمجي، فهم قواعد اللعبة لا يقل أهمية عن لعب اللعبة نفسها.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.