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

SAFuzz: Semantic-Guided Adaptive Fuzzing for LLM-Generated Code

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

المؤلفون الأصليون: Ziyi Yang, Kalit Inani, Keshav Kabra, Vima Gupta, Anand Padmanabha Iyer

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

المؤلفون الأصليون: Ziyi Yang, Kalit Inani, Keshav Kabra, Vima Gupta, Anand Padmanabha Iyer

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

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

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

إليك كيف يعمل SAFUZZ، مشروحاً عبر تشبيهات بسيطة:

1. الطريقة القديمة: نهج "الرش والترجي" (Spray and Pray)

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

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

2. حل SAFUZZ: "المحقق الذكي"

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

القدرة الخارقة الأولى: "المطالبة الحرباء" (رؤية زوايا مختلفة)

يمكن لنماذج الذكاء الاصطناعي أن تتأثر بالحالة المزاجية قليلاً. إذا سألتهم سؤالاً بطريقة معينة، فقد يعطون إجابة آمنة. أما إذا سألتهم بطريقة مختلفة قليلاً، فقد يتعثرون ويكشفون عن خطأ (Bug).

  • التشبيه: تخيل أنك تسأل مشتبهاً به: "هل سرقت الكعكة؟" فيقول "لا". ثم تسأله: "هل أكلت الكعكة؟" فيقول "لا". ولكن بعد ذلك تسأله: "هل أكلت كعكة رقائق الشوكولاتة؟" فيصاب بالذعر ويعترف.
  • ما يفعله SAFUZZ: يأخذ مشكلة برمجية واحدة ويطلب من الذكاء الاصطناعي حلها بـ 12 "أسلوباً" مختلفاً (مثلاً: "ركز على الحالات الحدية"، "استخدم حلقة تكرارية/Loop"، "كن حذراً جداً مع الأرقام الكبيرة"). هذا يجبر الذكاء الاصطناعي على إظهار نقاط ضعفه من زوايا مختلفة.

القدرة الخارقة الثانية: "باني الفخاخ المخصصة" (الحزام/Harness)

تستخدم أدوات الاختبار القديمة فخاخاً عامة. الأمر يشبه محاولة اصطياد سمكة بشبكة مصنوعة لصيد سرطان البحر.

  • التشبيه: إذا كنت تريد اصطياد نوع معين من الأسماك التي تسبح فقط في المياه العميقة، فأنت بحاجة إلى شبكة للمياه العميقة. إذا استخدمت شبكة ضحلة، فلن تصطاد شيئاً.
  • ما يفعله SAFUZZ: يقرأ القواعد الخاصة بالمشكلة (مثلاً: "المدخلات يمكن أن تصل إلى مليون") ويبني فخاً مخصصاً لتلك المشكلة تحديداً. هو يعرف بالضبط نوع "اختبار الإجهاد" الذي يجب تطبيقه لكسر الكود. إنه يتحقق من أشياء محددة مثل:
    • الانتهاء الزمني (Timeouts): "هل علق الكود في حلقة تكرارية لانهائية؟"
    • تجاوز السعة (Overflows): "هل أصبحت الأرقام كبيرة جداً لدرجة أنها كسرت الآلة الحاسبة؟"
    • الأخطاء المنطقية (Logic Errors): "هل أخطأ الكود في إجراء العملية الحسابية؟"

القدرة الخارقة الثالثة: "رادار المخاطر" (التخصيص التكيفي)

هذا هو الجزء الأهم. يستخدم SAFUZZ "رادار مخاطر" (متنبئ بالذكاء الاصطناعي) لتخمين مدى خطورة قطعة من الكود قبل البدء بالاختبار الثقيل.

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

النتائج: لماذا يهم ذلك؟

اختبرت الورقة البحثية SAFUZZ على مجموعة ضخمة من المشكلات الخوارزمية (مثل الألغاز الرياضية للحواسيب). إليكم ما وجدوه:

  1. إنه أذكى: لقد حدد الكود الآمن بنسبة 85.7% من المرات (مقارنة بـ 77.9% للطرق الأقدم). لقد توقف عن إضاعة الوقت على الكود "الآمن".
  2. إنه أسرع: وجد الأخطاء (Bugs) بسرعة أكبر بـ 1.7 مرة من أفضل الأدوات الموجودة لأنه لم يضع وقته في الكود الآمن.
  3. إنه أفضل معاً: عندما دمجوا SAFUZZ مع اختبار الوحدة القياسي (التحقق مما إذا كان الكود يقوم بما يفترض به القيام به)، وجدوا أخطاءً أكثر (حيث قفزت نسبة الكشف من 67% إلى ما يقرب من 80%).

الخلاصة

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

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

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

جرّب Digest →