Securing AI-Generated Code: A Just-in-Time Vulnerability Detection and Remediation Pipeline
تقدم هذه الورقة وتقيم مساراً أمنياً مؤتمتاً وفورياً (just-in-time) يكتشف الثغرات في كود بايثون المُنشأ بواسطة الذكاء الاصطناعي، ويُثريها بسياق التهديدات، ويعالجها، مما يثبت أن نهجاً متعدد المراحل يجمع بين التحليل الساكن والتحقق والتوليد القائم على النماذج اللغوية الكبيرة يقلل بشكل كبير من النتائج الأمنية المتبقية عبر نماذج مختلفة، حتى عندما لا يعتمد المسار الأفضل أداءً على نموذج توليد الكود الأعلى جودة.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
في عالم البرمجيات الحديث، يمثل الكود البرمجي الأساس غير المرئي لكل شيء تقريباً نستخدمه، من تطبيقات المصارف إلى الأجهزة الطبية. ولعقود من الزمن، كانت عملية كتابة هذا الكود مسعىً بشرياً، حيث يقوم مبرمج بكتابة التعليمات ويقوم إنسان آخر، أو أداة متخصصة، بالتحقق من الأخطاء. ولكن قوة جديدة دخلت الورشة: الذكاء الاصطناعي. يمكن لهذه الأنظمة الآن كتابة كود برمجي بسرعة وحجم لا يمكن للبشر مضاهاتهما، حيث تولد آلاف الأسطر من البرمجيات في ثوانٍ معدودة. ومع ذلك، تأتي هذه السرعة بتكلفة خفية. فتماماً كما قد يعطي مطبخ الوجبات السريعة الأولوية للسرعة على حساب النظافة، غالباً ما تنتج أدوات الذكاء الاصطناعي هذه كوداً يعمل ولكنه يحتوي على ثغرات أمنية، مما يترك الباب مفتوحاً للمخترقين. المشكلة ليست فقط في أن الكود معيب، بل في أن الأدوات التي نستخدمها للعثور على تلك العيوب وإصلاحها قد بُنيت لعصر أكثر بطئاً، بافتراض وجود إنسان هناك لمراجعة العمل. وعندما يصل العمل بسرعة تفوق القدرة على فحصه، وعندما يحمل الكود نفسه تحيزاً خفياً يجعل المطورين يثقون به بسهولة مفرطة، فإن خطر حدوث خرق أمني يزداد بشكل كبير.
لقد سعى الباحثون في معهد جورجيا للتكنولوجيا لحل هذه المشكلة تحديداً من خلال بناء نوع جديد من شبكة الأمان للكود الناتج عن الذكاء الاصطناعي. لقد أنشؤوا مسار عمل مؤتمتاً (pipeline)، وهو عملية خطوة بخطوة تعمل مثل محطة مراقبة جودة صارمة. أولاً، يطلب النظام من الذكاء الاصطناعي كتابة كود بلغة بايثون بناءً على طلب محدد، مثل "إنشاء نموذج تسجيل دخول". وفوراً، يقوم النظام بمسح هذا الكود الجديد باستخدام أداتين أمنيتين مؤتمتتين تبحثان عن أنماط ضعف معروفة، مثل باب تُرِك دون قفل أو نافذة لا تُغلق بإحكام. وفي الوقت نفسه، يقوم ذكاء اصطناعي ثانٍ، يعمل كمُحقِّق (validator)، بقراءة الكود ومحاولة رصد المشكلات التي قد تغفل عنها الأدوات المؤتمتة.
يكمن الابتكار في هذا البحث في كيفية تعامل النظام مع الأخطاء التي يجدها. فبدلاً من مجرد إخبار الذكاء الاصطناعي بأن "هذا خطأ"، يقوم النظام بإثراء التغذية الراجعة بسياق من العالم الحقيقي؛ إذ يربط الخطأ المحدد بأساليب الهجوم المعروفة التي يستخدمها المجرمون، ويوفر أمثلة حول كيفية استغلال ثغرات مماثلة في الماضي. ثم يغذي الذكاء الاصطناعي بهذا الشرح المفصل والغني بالسياق، طالباً منه إعادة كتابة الكود لإصلاح المشكلة. اختبر الباحثون نسختين من هذه العملية: في الأولى، تلقى الذكاء الاصطناعي التغذية الراجعة المُثرية من المُحقِّق فقط. وفي الثانية، تلقى الذكاء الاصطناعي تلك التغذية الراجعة الغنية بالإضافة إلى التقارير التفصيلية سطر بسطر من الماسحات الأمنية المؤتمتة.
أظهرت النتائج أن إضافة السياق تُحدث فرقاً ملموساً. فعندما تم تزويد الذكاء الاصطناعي بالتغذية الراجعة المُثرية وحدها، انخفض عدد الثغرات الأمنية بشكل كبير عبر جميع نماذج الذكاء الاصطناعي المختلفة التي اختبروها. ولكن عندما أضافوا تقارير الماسح الضوئي المحددة إلى المزيج، أصبح التحسن أكثر عمقاً. فالنظام الذي جمع بين السياق الغني وبيانات الماسح الضوئي المحددة قلل عدد الثغرات المتبقية بنسبة تقارب ستين بالمائة مقارنة بالكود الأصلي غير المصحح. وهذا يشير إلى أن إعطاء الذكاء الاصطناعي صورة أوضح عن التهديد، مستندة إلى تقنيات الهجوم في العالم الحقيقي، يساعده على كتابة كود أكثر أماناً من مجرد إخباره بأن يكون آمناً.
وقد برز اكتشاف مفاجئ من البيانات فيما يتعلق بأفضل نماذج الذكاء الاصطناعي أداءً. وجد الباحثون أن نموذج الذكاء الاصطناعي الذي كتب الكود الأكثر أماناً من المحاولة الأولى لم يكن بالضرورة هو النموذج الذي قدم أفضل نتيجة نهائية بعد عملية الإصلاح. أحد النماذج بدأ بكود نظيف ولكن انتهى به الأمر بوجود المزيد من العيوب المتبقية بعد الإصلاح الآلي. بينما نموذج آخر بدأ بمزيد من الأخطاء، ولكن عند تزويده بتعليمات الإصلاح التفصيلية، تمكن من إصلاحها بدقة شديدة لدرجة أنه انتهى بمنتج نهائي أكثر أماناً. يشير هذا إلى أن القدرة على توليد كود جيد والقدرة على إصلاح الكود عند إعطاء تعليمات تفصيلية هما مهارتان مختلفتان. وبالنسبة لأي شخص يبني أنظمة تعتمد على الذكاء الاصطناعي لكتابة البرمجيات، فإن هذا يعني أن اختيار نموذج بناءً على مدى جودة مسودته الأولى فقط قد لا يكون الاستراتيجية المثلى؛ فالقدرة على التعلم من التغذية الراجعة التفصيلية لا تقل أهمية.
كما سلطت الدراسة الضوء على واقع حرج للإصلاح الآلي: وهو أن إصلاح الكود يمكن أن يؤدي أحياناً إلى كسره بطرق جديدة. ففي حوالي خمسة عشر إلى اثنين وعشرين بالمائة من الحالات، تسببت عملية إصلاح ثغرة أمنية في إدخال نوع جديد ومختلف من الثغرات. وهذا يؤكد أنه على الرغم من قوة الأدوات المؤتمتة، إلا أنها ليست مثالية، وأن الفحص النهائي ضروري دائماً. وأشار الباحثون إلى أن نسخة المسار التي تضمنت تقارير الماسح الضوئي المحددة كانت أفضل في منع هذه الأخطاء الجديدة لمعظم النماذج التي تم اختبارها.
في نهاية المطاف، يوضح هذا العمل أنه يمكننا بناء نظام يواكب سرعة الكود الناتج عن الذكاء الاصطناعي من خلال ترسيخ عملية الإصلاح في معرفة التهديدات الواقعية. فمن خلال ربط سطر معين من الكود بكيفية استغلاله من قبل مهاجم حقيقي، يوجه النظام الذكاء الاصطناعي للقيام بإصلاحات أكثر ذكاءً. وتشير النتائج إلى أن مستقبل تطوير البرمجيات الآمنة لن يعتمد على ذكاء اصطناي واحد مثالي، بل على مسار يجمع بين التوليد، والتغذية الراجعة الغنية بالسياق، والتحقق الصارم لضمان بقاء الكود الذي نعتمد عليه آمناً.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.