أظهرت نماذج اللغة الكبيرة (LLMs) وعدًا في مهام هندسة البرمجيات، لكن تقييم فعاليتها في الكشف عن الثغرات يمثل تحديًا بسبب نقص مجموعات البيانات عالية الجودة. معظم مجموعات البيانات الحالية محدودة بتسميات على مستوى الدالة، متجاهلة أنماط الثغرات الأكثر تفصيلاً والمعلومات السياقية الحيوية. كما أن جودة البيانات السيئة مثل التسمية الخاطئة، والتعليقات غير المتسقة، والازدواجيات يمكن أن تؤدي إلى تضخيم الأداء وضعف التعميم. علاوة على ذلك، من خلال تضمين الدوال فقط، تفقد هذه المجموعات سياق البرنامج الأوسع، مثل اعتمادات البيانات/التحكم والتفاعلات بين الإجراءات، التي تعتبر ضرورية لفهم عيوب الأمان بشكل دقيق. بدون هذا السياق، تُقيم نماذج الكشف تحت افتراضات غير واقعية. لمعالجة هذه القيود، يقدم هذا البحث SecVulEval، معايير مصممة لدعم تقييم دقيق لنماذج LLMs وطرق الكشف الأخرى مع معلومات سياقية غنية. يركز SecVulEval على الثغرات الواقعية في C/C++ على مستوى العبارات. هذه الدقة تمكن من تقييم أكثر دقة لقدرة النموذج على تحديد مواقع الثغرات، بعيدًا عن التصنيف الثنائي البسيط على مستوى الدالة. من خلال دمج معلومات سياقية غنية، يضع SecVulEval معيارًا جديدًا لمعايير الكشف عن الثغرات في سيناريوهات واقعية. يتضمن هذا المعيار 25,440 عينة دالة تغطي 5,867 CVE فريد في مشاريع C/C++ من 1999 إلى 2024. قمنا بتقييم نماذج LLMs الحالية باستخدام نهج قائم على العديد من الوكلاء. أظهرت التقييمات على مجموعة البيانات الخاصة بنا أن النماذج لا تزال بعيدة عن التنبؤ بدقة بالعبارات الضعيفة في دالة معينة. حقق النموذج الذي حقق أفضل أداء، Claude-3.7-Sonnet، نسبة F1-score تبلغ 23.83% للكشف عن العبارات الضعيفة مع الاستدلال الصحيح. أخيرًا، نقوم بتحليل مخرجات LLM ونقدم رؤى حول سلوكها في الكشف عن الثغرات لـ C/C++.
درس أحمد وآخرون (الإثنين) هذا السؤال.