← أحدث الأبحاث
💻 computer science

SDLLMFuzz: Dynamic-static LLM-assisted greybox fuzzing for structured input programs

يُعدّ SDLLMFuzz إطار عمل جديد للفحص الرمادي (greybox fuzzing) يعمل على تعزيز اكتشاف الثغرات الأمنية في البرامج ذات المدخلات المهيكلة من خلال دمج توليد بذور صالحة نحوياً قائمة على النماذج اللغوية الكبيرة مع التحليل الساكن للانهيارات لإنشاء حلقة تغذية راجعة ديناميكية-ساكنة لاستكشاف المسارات العميقة بكفاءة.

المؤلفون الأصليون: Yihao Zou, Tianming Zheng, Futai Zou, Yue Wu

نُشر 2026-04-21
📖 4 دقيقة قراءة☕ قراءة في استراحة قهوة

المؤلفون الأصليون: Yihao Zou, Tianming Zheng, Futai Zou, Yue Wu

البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل

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

هذه هي مشكلة "الفحص العشوائي التقليدي" (Fuzzing) (وهي تقنية تُستخدم لإيجال الثغرات البرمجية). الفاحص التقليدي يشبه إلقاء آلاف الصخور العشوائية على جدران القلعة. معظم الصخور ترتد لأنها لا تبدو مثل المفاتيح الصحيحة، مما يمنعها من الدخول أبداً لرؤية المشكلات العميقة والمخفية.

SDLLMFuzz هو طريقة أذكى وأحدث للقيام بذلك. فهو يجمع بين أداتين قويتين: مهندس معماري فائق الذكاء (LLM) ومحقق جنائي (تحليل ثابت/Static Analysis).

إليك كيف يعمل الأمر، مقسماً إلى خطوات بسيطة:

1. المشكلة: نهج "الصخور العشوائية"

تخيل أنك تحاول فتح خزنة عالية التقنية.

  • الطريقة القديمة: تمسك بمطرقة وتضرب الأزرار بشكل عشوائي. في 99% من الحالات، لن يحدث شيء لأن الخزنة ترفض الضجيج العشوائي. أنت تضيع الوقت والطاقة.
  • المشكلة: البرمجيات الحديثة (مثل مستعرضات الصور أو محللات XML) تشبه تلك الخزنة تماماً؛ فهي تتطلب بنية مثالية. المدخلات العشوائية يتم رفضها ببساطة قبل أن يبدأ البرنامج في العمل حتى.

2. الحل: "المهندس المعماري الذكي" (النموذج اللغوي الكبير - LLM)

بدلاً من إلقاء صخور عشوائية، يستخدم SDLLMFuzz نموذجاً لغوياً كبيراً (LLM). فكر في الـ LLM كمهندس معماري ماهر قرأ مخططات القلعة.

  • ماذا يفعل: هو لا يخمن فحسب، بل يفهم القواعد. هو يعرف بالضبط كيف يبدو "الزي الرسمي" و"الخريطة".
  • النتيجة: يقوم بإنشاء مدخلات اختبار ذات تنسيق مثالي. تبدو وكأنها مفاتيح صالحة، لذا يسمح لها الحراس بالدخول. وهذا يعني أن الفاحص يمكنه فعلياً استكشاف الغرف العميقة والمعقدة للقلعة حيث تختبئ الثغرات عادةً.

3. القطعة المفقودة: "المحقق الجنائي"

هنا تفشل معظم الأدوات الذكية الأخرى. إذا تسبب مدخل اختبار ما في تعطل البرنامج (Crash)، فإن الأدوات التقليدية تكتفي بالقول: "أوه، لقد تعطل! لنحاول مرة أخرى". إنهم يرمون القطعة المكسورة وينسونها.

يضيف SDLLMFuzz محللاً ثابتاً للأعطال (Static Crash Analyzer). فكر في هذا كـ محقق جنائي يصل إلى مسرح الحادث.

  • التحقيق: بدلاً من مجرد رؤية العطل، يقوم المحقق بفحص "الجثة" (تقرير العطل). يفحص مسار الاستدعاء (Call Stack)، وقيم الذاكرة، واللحظة الدقيقة التي ساءت فيها الأمور.
  • الرؤية المستخلصة: يكتشف المحقق لماذا تعطل البرنامج. "آه، لقد تعطل البرنامج لأن المدخل كان ينقصه فاصلة معينة في السطر الثالث".

4. الحلقة السحرية: "التعلم والتحسين"

هذا هو السر وراء نجاح العملية. يربط SDLLMFuzz بين المهندس المعماري والمحقق في حلقة مستمرة.

  1. التوليد: ينشئ المهندس المعماري مفتاحاً مثالياً وصالحاً.
  2. الاختبار: يتم تجربة المفتاح داخل القلعة.
  3. هل حدث عطل؟ إذا حدث عطل، يقوم المحقق بتحليل السبب.
  4. التغذية الراجعة: يخبر المحقق المهندس المعماري: "المفتاح الأخير كان جيداً، لكنه كان ينقصه فاصلة. في المرة القادلة، حاول صنع مفتاح مثالي تقريباً ولكن به خطأ صغير ومحدد في ذلك الموضع".
  5. التكرار: يستخدم المهندس المعماري هذه المعلومات الجديدة لبناء مفتاح أفضل (أو مفتاح مكسور بشكل أكثر تحديداً).

لماذا يعد هذا أمراً هاماً؟

  • الفاحصات القديمة: مثل طفل يرمي السهام وهو معصوب العينين. قد يصيب الهدف في النهاية، لكن الأمر يستغرق وقتاً طويلاً جداً.
  • الفاحصات "الذكية" الأخرى: مثل طفل يمكنه رؤية اللوحة ولكنه لا يتعلم من أخطائه. يستمر في ارتكاب نفس الأخطاء.
  • SDLLMFuzz: مثل لاعب شطرنج محترف. كل حركة محسوبة بناءً على القواعد، وكل خطأ يتم تحليله لتحسين الحركة التالية.

النتائج

اختبر الباحثون هذه التقنية على برمجيات حقيقية (مثل مكتبات الصور ومحللات XML). ووجدوا أن SDLLMFuzz:

  • وجد المزيد من الثغرات مقارنة بالطرق التقليدية.
  • وجدها بشكل أسرع (لم يضع الوقت في المدخلات غير الصالحة).
  • توغل بشكل أعمق في منطق البرنامج، حيث وجد ثغرات معقدة فاتتها الأدوات الأخرى.

باخت-اختصار

SDLLMFuzz يشبه توظيف فريق للعثور على إبرة في كومة قش.

  • الـ LLM هو الخبير الذي يعرف تماماً كيف تبدو الإبرة وكيف يصنع مغناطيساً يجذبها.
  • محلل الأعطال هو العالم الذي يدرس في كل مرة يفشل فيها المغناطيس في التقاط الإبرة، ليعرف بالضبط ما هي الحقول المغناطيسية المطلوبة تالياً.
  • معاً، هم لا يكتفون بإلقاء المغناطيسات على كومة القش؛ بل يتعلمون، ويتكيفون، ويصقلون استراتيجيتهم حتى يجدوا كل إبرة، بشكل أسرع من أي شخص آخر.

غارق في أبحاث مجالك؟

تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.

جرّب Digest →