A Comprehensive Evaluation of Code Language Models for Security Patch Detection
تقدم هذه الورقة إعادة تقييم صارمة لنماذج لغة الأكواد البرمجية للكشف عن التعديلات (commits) الخاصة بإصلاح الثغرات الأمنية باستخدام إطار عمل موحد يضم 20 مجموعة بيانات و270 نموذجاً، كاشفةً أن النماذج الحالية تعاني من تسرب البيانات وأخطاء في التصنيف، وتفشل في النهاية في تحديد الإصلاحات الأمنية بشكل موثوق تحت قيود صارمة لنسبة الإيجابيات الكاذبة.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل الإنترنت كمدينة صاخبة وضخمة مبنية بالكامل من الأكواد البرمجية. في كل يوم، تُبنى مبانٍ جديدة، وتُرمم مبانٍ قديمة، وأحياناً تظهر شقوق خفية في الأساسات قد تسمح للملصين بالدخول. في هذه المدينة، تعتبر "التصحيحات الأمنية" (security patches) هي الإصلاحات الطارئة التي تعالج تلك الشقوق قبل أن يجدها الأشرار. لفترة طويلة، حاول الناس بناء روبوت محقق فائق الذكاء يمكنه مسح ملايين التحديثات الإنشائية اليومية (التي تسمى "commits") والصراخ فوراً: "مهلاً، هذا واحد من الإصلاحات الأمنية!". كان الأمل أن يتمكن هذا الروبوت من رصد الإصلاحات بشكل أسرع مما يمكن للوحات الإعلات الشرطية الرسمية (قواعد بيانات الثغرات) كتابتها حتى، مما يحافظ على سلامة المدينة في الوقت الفعلي. ولكن لتدريب هذا الروبوت، احتاج العلماء إلى مكتبة ضخمة من الأمثلة التي توضح بالضبط أي التحديثات كانت إصلاحات وأيها كانت مجرد تغييرات عادية. المشكلة هي أن هذه المكتبة كانت مبعثرة عبر عشرات الرفوف المختلفة، ومكتوبة بلغات مختلفة، ومصنفة من قبل أشخاص مختلفين باستخدام قواعد مختلفة، مما جعل مقارنة النتائج كابوساً.
هذه الورقة البحثية تشبه فريقاً من المحققين الذين قرروا تنظيف تلك المكتبة الفوضوية، وبناء خزانة ملفات موحدة وعملاقة واحدة، ثم إخضاع الروبوت المحقق لأقسى اختبار يمكن تخيله. لقد جمعوا أكثر من 180,000 تحديث برمجي من 20 مجموعة بيانات مختلفة، ودربوا 270 نسخة مختلفة من الروبوت، تتراوح من النماذج الصغيرة الرشيقة إلى النماذج الضخمة والذكية التي تحتوي على 80 مليار معامل (parameter). أرادوا معرفة ما إذا كان بإمكان هذه الربارات "فهم" الكود البرمجي للعثور على الإصلاحات الأمنية، أم أنها كانت تعتمد فقط على رسائل التحديث (الملاحظات التي كتبها المبرمجون) أو حفظ أسماء المشاريع التي جاءت منها.
كانت النتائج بمثابة صدمة للواقع. وجد الفريق أن الروبوتات كانت تعتمد بشكل أساسي على رسائل التحديث بدلاً من النظر إلى تغييرات الكود الفعلية. وعندما أجبر الباحثون الروبوتات على النظر في الكود فقط، انخفض أداؤها بشكل كبير. وحتى أكبر نماذج الروبوتات وأكثرها قوة فشلت في تحديد الإصلاحات الأمنية بشكل موثوق عندما كانت القواعد صارمة: عند معدل منخفض جداً من الإنذارات الكاذبة (0.5%)، فشلت كل النماذج في اكتشاف 80% على الأقل من الإصلاحات الأمنية الفعلية. كما اكتشفت الدراسة أن تسميات "الحقيقة الأرضية" (ground truth) المستخدمة لتدريب الروبوتات كانت غالباً خاطئة، خاصة بالنسبة للإصلاحات التي لا تحمل رقم CVE (الثغرات الأمنية والتعرضات الشائعة) رسمياً. في الواقع، كانت الأخطاء مركزة جداً في هذه الإصلاحات غير المتحقق منها لدرجة أنها شوهت التقييم بأكمله، مما جعل الروبوتات تبدو أفضل مما هي عليه في الواقع.
في النهاية، تشير الورقة إلى أن مجرد جعل الروبوتات أكبر أو منحها سياقاً أكثر (مثل إضافة أسطر كود إضافية من الملفات المجاورة) لا يحل المشكلة. يبدو أن الروبوتات تعاني لأن الدليل الحقيقي على الإصلاح الأمني غالباً ما يكمن خارج أسطر الكود التي يتم تغييرها، مما يتطلب فهماً أعمق للنظام بأكل، وهو ما تفتقر إليه النماذج الحالية. ويخلص المؤلفون إلى أنه ما لم نتمكن من معرفة كيفية اختيار واستخدام السياق الصحيح بفعالية، وإلى أن نصلح عملية التسمية الفوضوية لبيانات التدريب الخاصة بنا، فإن هذه الأنظمة الآلية ليست جاهزة تماماً لتحل محل الخبراء البشريين في رصد التصحيحات الأمنية. لقد بنوا إطار اختبار أفضل وأطلقوا أدواتهم لمساعدة الباحثين المستقبليين على تجنب نفس العثرات، ولكن في الوقت الحالي، لا يزال "السحر" المتمثل في الكشف الآلي الكامل عن التصحيحات الأمنية بعيد المنال.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.