ARQ: Agentic CodeQL Query Refinement for C/C++ Vulnerability Detection
إن ARQ هو إطار عمل وكيل (agentic framework) يقوم تلقائياً بتحسين استعلامات CodeQL للغات C/C++ باستخدام أدلة مستندة إلى التنفيذ من البرامج المُخلّقة والنماذج اللغوية الكبيرة (LLMs) لتقليل الإيجابيات الكاذبة والسلبيات الكاذبة بشكل كبير دون الحاجة إلى مجموعات بيانات مصنفة، محققاً ما يصل إلى 119.8% أكثر من اكتشافات الإيجابيات الحقيقية ومعالجاً مشكلات طويلة الأمد في المستودعات الرسمية.
البحث الأصلي مُهدى إلى الملك العام بموجب CC0 1.0 (http://creativecommons.org/publicdomain/zero/1.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
غالبًا ما تُبنى البرمجيات التي تشغل حواسيبنا، وهواتفنا، وسياراتنا باستخدام لغات مثل C وC++. تمنح هذه الأدوات المبرمجين تحكمًا دقيقًا في كيفية استخدام الآلة لذاكرتها، لكن هذه القوة ذاتها تجعل من السهل الوقوع في الخطأ. فخطأ صغير في كيفية تعامل البرنامج مع الذاكرة يمكن أن يترك بابًا مفتوحًا للمهاجمين لتعطيل الأنظمة أو سرقة البيانات. ولإمساك هذه الأخطاء قبل أن تسبب ضررًا، يستخدم خبراء الأمن ماسحات ضوئية آلية تقرأ الكود وتبحث عن أنماط خطيرة. وتعتمد هذه الماسحات على مجموعة من القواعد، كتبها البشر، تخبرهم بالضبط كيف يبدو الجزء الضعيف من الكود. وإذا كانت القواعد صارمة للغاية، فإن الماسح سيفقد بعض المخاطر الحقيقية؛ وإذا كانت فضفاضة للغاية، فستصرخ بوجود مشكلات ليست موجودة بالفعل، مما يهدر الوقت والثقة.
لسنوات، كان تحسين هذه القواعد مهمة بطيئة ويدوية. يتعين على الخبراء قراءة الكود، وتخمين أين قد يفشل الماسح، وإعادة كتابة القواعد يدويًا. هذه العملية صعبة لأن القواعد يجب أن تكون مثالية، والكود الذي تمسحه واسع ومعقد. يغير نهج جديد يسمى ARQ طريقة القيام بهذا العمل. فبدلاً من الاعتماد فقط على الحدس البشري، يستخدم ARQ الذكاء الاصطناعي لاختبار وإصلاح هذه القواعد تلقائيًا. هو لا يكتفي بالتخمين؛ بل يقوم بتشغيل الكود الذي ينشئه ليرى ما إذا كانت القواعد تعمل بالفعل. ومن خلال بناء حلقة حيث يقوم النظام بإنشاء برامج اختبار، وتشغيلها، ثم استخدام النتائج لتحسين القواعد، يجد ARQ ويصلح الأخطاء التي فات البشر لسنوات.
بدأ الباحثون وراء ARQ بفكرة بسيطة ولكنها قوية: القاعدة تكون جيدة بقدر قدرتها على التمييز بين الكود الآمن والكود الخطير. لقد أعطوا ذكاءً اصطناعيًا قاعدة محددة من ماسح أمني شهير وطلبوا منه إنشاء برنامجين متشابهين جدًا. صُمم أحد البرنامجين ليكون آمنًا، والآخر ليكون خطيرًا. ثم راقب الذكاء الاصطناعي رد فعل الماسح تجاه كل منهما. إذا اعتبر الماسح البرنامج الآمن خطيرًا، فقد كانت القاعدة فضفاضة للغاية. وإذا أغفل البرنامج الخطير، فقد كانت القاعدة صارمة للغاية. هذا التباين بين ما قاله الماسح وما حدث بالفعل عند تشغيل الكود أصبح الدليل الذي احتاج إليه الذكاء الاصطناد لإصلاح القاعدة.
وللتأكد من أن الذكاء الاصطناعي لا يخمن فحسب، استخدم النظام أداة خاصة تسمى "المطهر" (sanitizer). تعمل هذه الأداة كحساس عالي الدقة يراقب البرنامج أثناء تشغيله. إذا حاول البرنامج القيام بشيء غير آمن، مثل استخدام ذاكرة تم تحريرها بالفعل، فإن المطهر يوقف البرنامج ويبلغ عن الخطأ فورًا. منح هذا الباحثين "حقيقة مطلقة". استطاعوا مقارنة حكم الماسح ضد تقرير المطهر. إذا قال الماسح إن برنامجًا ما آمن، ولكن المطهر وجد عطلاً، عرف الباحثون أن الماسح قد ارتكب خطأً. استخدم الذكاء الاصطناعي بعد ذلك هذا الخطأ المؤكد لإعادة كتابة القاعدة، مما جعلها أكثر ذكاءً.
حدثت هذه العملية في حلقة مستمرة. يقوم الذكاء الاصطناعي بإنشاء زوج جديد من برامج الاختبار، وتشغيلها، وفحص النتائج، وتحسين القاعدة مرة أخرى. ومن الأهمية بمكان أنه في كل مرة تتغير فيها القاعدة، يعيد النظام اختبارها مقابل جميع الأمثلة السابقة لضمان أن الإصلاح لم يفسد أي شيء كان يعمل بالفعل. منع هذا الذكاء الاصطناعي من الإفراط في التصحيح وخلق مشكلات جديدة أثناء حل المشكلات القديمة. اختبر الفريق هذه الطريقة على اثنتي عشرة قاعدة أمنية مختلفة تُستخدم في برمجيات واقعية. قاموا بتشغيل هذه القواعد ضد مجموعتين كبيرتين من الكود المصمم لاختبار الأدوات الأمنية. أظهرت النتائج أن القواعد التي تم تحسينها بواسطة الذكاء الاصطناعي وجدت ثغرات حقيقية أكثر بكثير من القواعد الأصلية التي كتبها البشر. وفي بعض الحالات، تضاعف عدد التهديدات المكتشفة، بينما ظل معدل الإنذارات الكاذبة منخفضًا للغاية، وبقيت الدقة فوق اثنين وتسعين بالمائة.
تجاوز تأثير هذا العمل بيانات الاختبار. طبق الباحثون قواعدهم المحسنة على مكتبات برمجية حقيقية ومستخدمة على نطاق واسع تشغل جزءًا كبيرًا من الإنترنت، مثل أدوات ضغط البيانات وعرض الصور. كشفت القواعد المحسنة عن خطأين كانا يختبئان في هذه المكتبات لسنوات، بانتظار العثور عليهما. علاوة على ذلك، نجح النظام في إصلاح ثلاث مشكلات محددة تم الإبلاغ عنها في مستودع برمجيات عام ولكنها ظلت دون حل لمدة تصل إلى سبعة وعشرين شهرًا. هذه المشكلات استعصت على الخبراء البشريين لأكثر من عامين، ومع ذلك حلها النظام الآلي من خلال اختبار وتعديل قواعد الكشف بشكل منهجي.
يشير هذا النهج إلى طريقة جديدة للحفاظ على سلامة بنيتنا التحتية الرقمية. فبدلاً من انتظار البشر للعثور على خلل وكتابة إصلاح يدوي، يمكن للأنظمة الآن اختبار قواعدها باستمرار ضد التنفيذ الحقيقي. لا يتطلب هذا الأسلوب قواعد بيانات ضخمة من الأخطاء المصنفة أو سنوات من البيانات التاريخية ليعمل. إنه يحتاج ببساطة إلى القدرة على تشغيل الكود والتحقق من النتائج. ومن خلال ترسيخ الذكاء الاصطناعي في واقع كيفية سلوك البرامج فعليًا، وليس فقط كيف تبدو على الورق، خلق الباحثون أداة يمكنها إبقاء الماسحات الأمنية حادة وفعالة مع تطور البرمجيات. يوضح العمل أنه عندما يقترن الذكاء الاصطناعي بالأدلة الملموسة من تشغيل الكود، فإنه يمكنه حل المشكلات الهندسية المعقدة التي استعصت طويلاً على الجهد البشري.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.