أعلنت سيسكو أن إطار تقييم FAITH التابع لفريقها Foundation AI صار يدعم التقييم الوكيلي، وأن أول اختبار مدمج فيه هو VulnLoc، أو VLoc Bench. الفكرة بسيطة وقاسية: أعطِ الوكيل مستودعاً حقيقياً ووصفاً لفئة ثغرة، واطلب منه تحديد الملفات المصابة. النتيجة كانت صادمة: أفضل نظام وصل إلى 0.229 فقط في مقياس File F1، وفي 38.4% من المهام لم يعثر أي نموذج من المقيَّمين على ملف صحيح واحد. في هذا المقال نشرح كيف يعمل الاختبار، وماذا تقول أرقامه، وكيف تستفيد منه إن كنت تعتمد وكلاء الذكاء الاصطناعي في فحص الكود.

ما هو VulnLoc ولماذا يختلف عن اختبارات الثغرات المعتادة؟

VulnLoc من سيسكو: لماذا يفشل وكلاء الأمان في العثور على الملف المصاب؟ — أدوات الذكاء الاصطناعي

أغلب اختبارات أمن الكود تعطي النموذج مقتطفاً صغيراً وتسأله: هل هذا الكود فيه ثغرة؟ هذا بعيد عن الواقع. في العمل الفعلي يواجه المحلل مستودعاً بآلاف الملفات، ولا يعرف أين يبدأ. يعكس VulnLoc هذا الواقع، فبحسب مدونة سيسكو تتألف كل مهمة من:

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

تتضمن مجموعة البيانات 500 ثغرة حقيقية من 290 مستودعاً عبر ست منظومات حزم و147 فئة CWE. هذا التنوع يجعل من الصعب على النموذج أن «يحفظ» الإجابات.

مرحلتان: العثور على الثغرة، ثم الاعتراف بغيابها

المرحلة الأولى: التحديد

يفحص الوكيل المستودع قبل الإصلاح، ويُقاس بمقياس File F1 الذي يعاقب على الملفات الفائتة وعلى الاختيارات الخاطئة معاً. في المستودع المفتوح للاختبار تُمنح هذه المرحلة ميزانية 15 استدعاء أدوات فقط، وهو قيد يحاكي ضيق الوقت والتكلفة في الاستخدام الحقيقي.

المرحلة الثانية: الإنذار الكاذب

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

ماذا تقول الأرقام؟

قيّمت سيسكو 27 نموذجاً لغوياً وأربع أدوات تحليل ساكن. أبرز ما خرجت به:

الملاحظة الرقم
أفضل File F1 لأي نظام 0.229
مهام لم يصب فيها أي نموذج ملفاً واحداً 38.4%
ترتيب Antares-3B (ثلاثة مليارات معامل) الثاني بـ0.223
عدد النماذج المقيَّمة 27 + 4 أدوات تحليل ساكن

أن يجد أفضل نظام أقل من ربع الملفات الصحيحة يعني أن «الوكيل الأمني» ما زال مساعداً للمحلل، لا بديلاً عنه.

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

بيئة التشغيل: العزل جزء من الاختبار

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

ماذا تفعل بهذه النتائج في فريقك؟

  1. لا تعتمد وكيلاً واحداً كبوابة أمنية. استعمله كطبقة فرز أولى ثم راجع نتائجه بشرياً أو بأداة ثانية.
  2. قِس الإنذارات الكاذبة قبل الاكتشافات. جرّب أداتك على نسخة مُصلَحة من كودك، فإن أكثرت من التنبيه فلن يثق بها أحد.
  3. حدّد الميزانية. إن كان الوكيل محدوداً بعدد استدعاءات الأدوات، فاختبره بالحد نفسه الذي ستستعمله في الإنتاج.
  4. جرّب النماذج الصغيرة المتخصصة. النتيجة التي حققها Antares-3B تعني أن الكلفة قد تنخفض كثيراً دون خسارة كبيرة في الدقة.
  5. اعزل التشغيل. اقرأ المستودع بصلاحية قراءة فقط ولا تمنح الوكيل مفاتيح أو شبكة مفتوحة.

يمكنك الاطلاع على مستودع الاختبار وتشغيله على كودك الخاص لقياس الفجوة بنفسك، وعلى التقرير التقني لتفاصيل المنهجية.

أسئلة شائعة

هل يعني ذلك أن الذكاء الاصطناعي لا ينفع في أمن الكود؟

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

لماذا يهمّ معدل السلبيات الصحيحة؟

لأنه يقيس قدرة الوكيل على ترك الكود السليم وشأنه. كثرة الإنذارات الكاذبة تستهلك وقت المراجعين وتُفقد الأداة مصداقيتها.

هل يمكنني تشغيل الاختبار على مشاريعي؟

المستودع مفتوح ويدعم التشغيل المحلي عبر Docker. استعمله للمقارنة بين نماذجك وأدواتك قبل أن تعتمدها في خط الإنتاج.

الخلاصة

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

المصادر: Cisco Blogs، VLoc Bench، arXiv.