HyperAIHyperAI
منذ 13 أيام

تجنب فعّال للثغرات في كود العقود الذكية التي تم إكمالها تلقائيًا باستخدام تفكير مُحدَّد بالثغرات

André Storhaug, Jingyue Li, Tianyuan Hu
تجنب فعّال للثغرات في كود العقود الذكية التي تم إكمالها تلقائيًا باستخدام تفكير مُحدَّد بالثغرات
الملخص

تمكّن ميزة إكمال الشفرة تلقائيًا المطورين من تسريع عملية البرمجة بشكل كبير. وقد تم تطبيق التطورات الحديثة في تقنيات النماذج الكبيرة للغة القائمة على المحولات (LLM) على توليد الشفرة البرمجية. ومع ذلك، تُظهر الدراسات أن العديد من الشفرات المولدة بهذه الطرق تحتوي على ثغرات أمنية. نقترح منهجية جديدة تُسمى "الاستنتاج المُقيَّد بالثغرات" لتقليل كمية الشفرة المُولَّدة التي تحتوي على ثغرات. وباستخدام مجموعة بيانات صغيرة مُعلَّمة تحتوي على أسطر شفرة مُعرَّفة كمُعرَّضة للثغرات، نُعدِّل نموذج LLM لتشمل تسميات ثغرات أثناء إنشاء الشفرة، بحيث تعمل ك Classifier مدمج. ثم، أثناء عملية الاستنتاج (decoding)، نمنع النموذج من إنتاج هذه التسميات لتجنب توليد شفرة تحتوي على ثغرات. لاختبار هذه الطريقة، اخترنا إكمال الشفرات البرمجية للعقود الذكية في بلوك تشين إيثريوم (Ethereum Blockchain) كحالة دراسة، نظرًا لمتطلبات الأمان الصارمة لهذه العقود. أولاً، قمنا بتعديل نموذج GPT-J ذي 6 مليار معلمة باستخدام 186,397 عقدًا ذكية من إيثريوم، بعد حذف التكرارات من إجمالي 2,217,692 عقدة. استغرق التعديل أكثر من أسبوع باستخدام عشر وحدات معالجة رسومية (GPU). أظهرت النتائج أن النموذج المُعدَّل يمكنه توليد عقود ذكية بدرجة متوسطة من التشابه (BLEU) تبلغ 0.557. ومع ذلك، كانت العديد من الشفرات في العقود المكتملة تُعَدُّ مُعرَّضة للثغرات. وباستخدام الشفرة السابقة للسطر المُعرَّف كمُعرَّض للثغرات في 176 عقدة ذكية تحتوي على أنواع مختلفة من الثغرات، وجدنا أن أكثر من 70% من الشفرات المكتملة تُعد غير آمنة. لذلك، قمنا بتعديل النموذج إضافيًا على 941 عقدة ذكية أخرى تحتوي على نفس أنواع الثغرات، وتطبيق طريقة الاستنتاج المُقيَّد بالثغرات. استغرق التعديل الإضافي ساعة واحدة فقط باستخدام أربع وحدات معالجة رسومية (GPU). ثم قمنا بإكمال العقود الذكية الـ176 مرة أخرى، ووجدنا أن منهجيتنا تمكنت من تحديد 62% من الشفرة التي كان من المُحتمل أن تكون مُعرَّضة للثغرات، وتجنبت توليد 67% منها، مما يدل على فعالية وكمية عالية في تجنب الثغرات في الشفرات المُكتملة تلقائيًا.

تجنب فعّال للثغرات في كود العقود الذكية التي تم إكمالها تلقائيًا باستخدام تفكير مُحدَّد بالثغرات | أحدث الأوراق البحثية | HyperAI