Vulnerability Detection with Interprocedural Context in Multiple Languages: Assessing Effectiveness and Cost of Modern LLMs
تُقيّم هذه الدراسة تجريبيًا أربعة من النماذج اللغوية الكبيرة الحديثة عبر 509 ثغرات أمنية عابرة للإجراءات في لغات C وC++ وPython، مما يثبت أن دمج سياق المستدعي والمستدعى يعزز بشكل كبير من فعالية الكشف، وأن نموذج Gemini 3 Flash يقدم أفضل جدوى من حيث التكلفة بينما يتفوق نموذج Claude Haiku 4.5 في دقة التحديد والشرح.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل أنك محقق يحاول حل جريمة في مدينة ضخمة ومزدحمة (كود البرمجيات). مهمتك هي العثور على "الثغرات الأمنية" — تلك الفخاخ الخفية أو الأقفال المكسورة التي يمكن للأشرار استخدامها للاختراق.
لفترة طويلة، كان المحققون (وبرامج الكمبيوتر) يبحثون في مسرح الجريمة غرفة بغرفة. كانوا يدخلون إلى غرفة واحدة (دالة برمجية واحدة - function)، يتفحصون ما حولهم، ثم يقولون: "هذا يبدو آمنًا"، أو "هذا يبدو خطيرًا".
لكن هذه هي المشكلة: الجريمة غالبًا ما تحدث بين الغرف.
ربما لم يكسر اللص قفل المطبخ؛ بل خدع الشخص الموجود في غرفة المعيشة ليدلي له بالمفاتيا. إذا نظرت إلى المطبخ فقط، فستفقد القصة بأكملها. هذا ما يسمى بـ الثغرة الأمنية عبر الإجراءات (interprocedural vulnerability) — وهي خلل لا يظهر إلا عندما ترى كيف تتواصل الأجزاء المختلفة من الكود مع بعضها البعض.
هذه الورقة البحثية هي تجربة كبيرة لمعرفة ما إذا كان استخدام المحققين الآليين (نماذج اللغات الكبيرة أو LLMs) يعمل بشكل أفضل عندما نعطيهم القصة كاملة (المستدعي والمستدعى) بدلاً من مجرد غرفة واحدة.
طاقم الشخصيات (نماذج الذكاء الاصطناعي)
اختبر الباحثون أربعة محققين آليين مختلفين، لكل منهم شخصية وتكلفة مختلفة:
- Claude Haiku 4.5: الخبير الدقيق والمكلف الذي يكتب تقارير مفصلة للغاية.
- Gemini 3 Flash: العامل السريع وفعال التكلفة الذي ينجز العمل جيدًا دون استنزاف الميزانية.
- GPT-4.1 Mini: الخيار الاقتصادي الذي يرتبك أحيانًا عندما يُعطى الكثير من المعلومات.
- GPT-5 Mini: خيار اقتصادي أحدث وأذكى قليلاً، لكنه لا يزال عرضة للارتباك عند امتلاء المهام.
التجربة: ثلاث طرق للنظر إلى مسرح الجريمة
أخذ الباحثون 509 "جريمة" حقيقية (ثغرات أمنية) من مجموعة بيانات ReposVul (مكتبة من أخطاء البرمجيات المعروفة) وطلبوا من الذكاء الاصطناعي العثور عليها باستخدام ثلاث استراتيجيات مختلفة:
- الاستراتيجية (أ) (الكود فقط): "إليك الغرفة التي حدثت فيها الجريمة. هل هي آمنة؟"
- الاستراتيجية (ب) (الكود + المستدعين/Callers): "إليك الغرفة، وَإليك الشخص الذي دخل وسلم المفاتيح للص اللص."
- الاستراتيجية (ج) (الكود + المستدعى لهم/Callees): "إليك الغرفة، وَإليك الشخص الذي اتصل به اللص لطلب المساعدة."
المفاجآت الكبرى
1. "المزيد من المعلومات" لا يعني دائمًا "الأفضل"
قد تعتقد: "إذا أعطيت المحقق المزيد من الأدلة، فسيحل الجريمة بشكل أسرع!"
الواقع: بالنسبة لبعض المحققين، جعلهم الحصول على مزيد من الأدلة يجعلهم أسوأ.
- القياس: تخيل أنك تحاول العثัง عن إبرة في كومة قش. إذا قدمت للمحقق كومة قش ثانية أكبر (سياق كود إضافي)، فقد يتشتت انتباهه بالقش الإضافي ويضيع الإبرة.
- النتيجة: نماذج GPT (خاصة نسخ Mini) ارتبكت. عندما أضاف الباحثون سياقًا إضافيًا، انخفضت دقة GPT-4.1 Mini بنسبة هائلة بلغت 25%. كان الأمر وكأن طالبًا، عندما يُعطى كتابًا دراسيًا من 10 صفحات بدلًا من ورقة غش من صفحة واحدة، نسي الإجابة تمامًا.
- الفائزون: كان Claude و Gemini هما المحققان "الأذكياء". استطاعا النظر إلى المعلومات الإضافية، وتجاهل الضجيج، ومع ذلك وجدا الخطأ. ظل أداؤهما ثابتًا بغض النظر عن مقدار السياق الذي حصلوا عليه.
2. تكلفة "التفكير بعمق"
في كل مرة تطلب من الذكاء الاصطناعي قراءة المزيد من الكود، فإن ذلك يكلف مالاً (بناءً على عدد "الرموز" أو الكلمات التي يعالجها).
- القياس: قراءة غرفة واحدة تكلف 0.50 دولارًا. قراءة المنزل بأكمله (مع كل السياق الإضافي) تكلف 1.00 دولار.
- النتيجة: إضافة السياق ضاعف التكلفة للجميع تقريبًا. ولكن هل ضاعفت النتائج؟ لا. في الواقع، بالنسبة لنماذج GPT، جعلها الأمر أسوأ بينما كلف أكثر.
- أفضل قيمة: كان Gemini 3 Flash هو الفائز الواضح لمحفظتك. لقد وجد الأخطاء بدقة شبه مثالية (97.8%) مقابل حوالي 0.50 دولار لكل فحص. لقد كان النموذج "المثالي": ليس باهظ الثمن، وليس مرتبكًا.
3. اللغة تفرق
اختبرت التجربة ثلاث لغات: C، و C++، و Python.
- C/C++: هي مثل الآلات القديمة والمعقدة حيث يمكن لترس واحد مكسور أن يعطل المحرك بالكامل. "الضجيج" الناتج عن السياق الإضافي أضر بنماذج GPT أكثر هنا.
- Python: هي مثل تطبيق حديث ومنعزل. الكود عادة ما يكون أنظف وأكثر استقلالية. كانت النتائج مختلطة نوعًا ما، لكن عمومًا، أدى الذكاء الاصطناعي عمله بشكل جيد بغض النظر عن السياق.
4. "لماذا" تهم (التفسيرات)
العثور على الخطأ أمر جيد، لكن شرح لماذا هو خطأ هو أمر أفضل.
- القياس: الطبيب الذي يخبرك "لديك كسر في الساق" مفيد. أما الطبيب الذي يخبرك "لديك كسر في الساق لأنك تعثرت في سجادة غير ثابتة، وإليك كيفية إصلاح السجادة" فهو رائع.
- النتيجة: كان Claude Haiku 4.5 هو المعلم الأفضل. لقد شرح الأخطاء بشكل صحيح وواضح بنسبة 93.6% من المرات. أما نماذج GPT، فقد كانت أحيانًا تشخص الخطأ بشكل خاطئ وتعطي تفسيرًا مربكًا.
الخلاصة
إذا كنت تبني أداة أمنية لفحص الكود بحثًا عن الأخطاء:
- لا تلق بكل شيء في وجه الذكاء الاصطناعي. إعطاء الذكاء الاصطناعي التاريخ الكامل لدالة ما (جميع المستدعين والمستدعى لهم) قد يربكه، خاصة إذا كنت تستخدم نموذجًا أصغر وأرخص. أحيانًا، النظر إلى الدالة المحددة بمعزل عن غيرها يكون أفضل بالفعل.
- اختر محققك بناءً على ميزانيتك.
- إذا كنت تريد أفضل توازن بين السعر والأداء، استخدم Gemini 3 Flash.
- إذا كنت بحاجة إلى تفسير مفصل وعالي الجودة ليقرأه البشر، استخدم Claude Haiku 4.5.
- تجنب استخدام نماذج GPT Mini إذا كنت تنوي إعطاءها الكثير من السياق الإضافي؛ فهي تميل إلى الارتباك.
- السياق سلاح ذو حدين. في عالم أمن الذكاء الاصطناعي، "المزيد من البيانات" ليس دائمًا "بيانات أفضل". أحيانًا، القليل هو الكثير.
باخت-القول: تظهر لنا الدراسة أن الذكاء الاصطناعي قوي، لكنه ليس سحرًا. يجب أن تعرف أي ذكاء اصطناعي تستخدم، وكم من المعلومات تقدم له، وكم أنت مستعد لدفعه للحصول على المهمة بشكل صحيح.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.