← أحدث الأبحاث
🤖 AI

SecRepoBench: Benchmarking Code Agents for Secure Code Completion in Real-World Repositories

تقدم هذه الورقة SecRepoBench، وهو معيار قياسي يتكون من 318 مهمة عبر 27 مستودعاً حقيقياً للغات C/C++ لتقييم وكلاء الكود، مما يكشف أنه بينما تعاني النماذج اللغوية الكبيرة الحديثة في مجال الإكمال الآمن للكود، فإن وكلاء الكود يتفوقون عليها بشكل ملحوظ ويقدمون اتجاهات واعدة لتعزيز البرمجة الآمنة في السيناريوهات الواقعية.

المؤلفون الأصليون: Chihao Shen, Connor Dilgren, Purva Chiniya, Luke Griffith, Yu Ding, Yizheng Chen

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

المؤلفون الأصليون: Chihao Shen, Connor Dilgren, Purva Chiniya, Luke Griffith, Yu Ding, Yizheng Chen

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

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

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

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

إليك تفصيل الورقة البحثية باستخدام تشبيهات بسيطة:

١. المشكلة: الامتحانات القديمة كانت سهلة للغاية

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

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

٢. الحل: SecRepoBench (امتحان "القلعة الحقيقية")

أنشأ المؤلفون معياراً يسمى SecRepoBench.

  • الإعداد: أخذوا ٢٧ مشروعاً برمجياً حقيقياً وشائعاً (مثل FFmpeg أو Hevc) ووجدوا ٣١٨ موضعاً محدداً اضطر فيه مطور بشري لإصلاح ثغرة أمنية.
  • المهمة: قاموا بـ "مسح" الإصلاح وطلبوا من الذكاء الاصطناعي ملء الفراغ.
  • القواعد:
    1. الصحة الوظيفية: هل الكود الجديد يعمل بالفعل؟ (هل يفتح باب القلعة؟)
    2. الأمن: هل يحتوي الكود الجديد على باب سري للمخترقين؟ (هل يقفل الباب بشكل صحيح؟)
    3. السياق: يمكن للذكاء الاصطناعي النظر إلى القلعة بأكملها (المستودع/Repository) ليعرف كيف يؤدي المهمة، تماماً كما يفعل المطور الحقيقي.

٣. المتنافسون: الفنانون المنفردون مقابل الفريق

اختبرت الورقة نوعين من الذكاء الاصطناعي:

  • نماذج اللغات الكبيرة المستقلة (Standalone LLMs): هؤلاء يشبهون مهندساً معمارياً ذكياً جداً يعمل بمفرده. يحصل على وصف للغرفة وبعض المخططات، لكن لا يمكنه التجول في القلعة للتحقق من الأنابيب.
  • وكلاء الكود (Code Agents): هؤلاء يشبهون مهندساً معمارياً ذكياً بالإضافة إلى فريق من المساعدين. يمكن للذكاء الاصطناعي استخدام أدوات للتجول في القلعة، وقراءة المخططات، وفحص التمديدات، وطلب المساعدة. إنه إطار عمل "وكيل" أكثر تقدماً.

٤. النتائج: الحقيقة المرة

كانت النتائج مفاجئة ومخيفة بعض الشيء لعشاق الذكاء الاصطناعي:

  • الفنانون المنفردون تعثروا: حتى أذكى ذكاء اصطناعي "منفرد" (GPT-5) نجح في حوالي ٣٩٪ فقط من المهام بشكل صحيح وآمن. غالباً ما بنوا باباً يبدو رائعاً ولكنه لا يُقفل، أو اخترعوا مقبض باب غير موجود أصلاً (الهلوسة).
  • الفريق كان أفضل، ولكن ليس مثالياً: حققت "وكلاء الكود" (نهج الفريق) نتائج أفضل بكثير، حيث وصلت إلى حوالي ٥٣٪. كانوا أفضل في فهم سياق القلعة.
  • العقدة الكبرى: كان الوكلاء بارعين في جعل الكود يعمل (إصلاح الباب بحيث يفتح)، لكنهم كانوا لا يزالون سيئين في جعل الكود آمناً (التأكد من عدم وجود ثقب لفتح الأقفال للمخترقين). لقد أعطوا الأولوية لـ "إنجاز المهمة" على حساب "جعلها آمنة".

٥. لماذا هذا الامتحان أصعب من غيره

قارن المؤلفون امتحانهم بامتحان صعب سابق يسمى BaxBench.

  • BaxBench كان يشبه طلب بناء كوخ مستقل وجديد من الصفر.
  • SecRepoBench يشبه طلب إصلاح تسريب في أنبوب معين داخل مبنى مكون من ١٠ طوابق بينما المبنى مأهول بالسكان.
  • الحكم: كان أداء الذكاء الاصطناعي أسوأ بكثير في SecRepoBench. وهذا يثبت أن البرمجة في بيئة حقيقية أصعب بكثير من البرمجة في بيئة تجريبية معزولة (Sandbox).

٦. أين يفشل الذكاء الاصطناعي (الـ "هلوسات")

عندما فشل الذكاء الاصطناعي، كان يفعل ذلك بطريقتين مضحكتين ولكن خطيرتين:

  1. مشكلة "الطوبة المزيفة": كان الذكاء الاصطناعي يخترع أداة أو اسم متغير يبدو حقيقياً ولكنه غير موجود في الكود البرمجي. تسبب هذا في انهيار المشروع بأكمله (أخطاء التجميع/Compilation errors).
  2. مشكلة "نسيان القفل": كان الذكاء الاصطناعي يبني باباً مثالياً، لكنه ينسى إضافة فحص الأمان (مثل التحقق مما إذا كان المستخدم مسموحاً له بالدخول). لقد ركز على وظيفة الباب، وليس على سلامته.

الخلاصة

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

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

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

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

جرّب Digest →