Reentrancy Detection in the Age of LLMs
تقيم هذه الورقة مدى فعالية أدوات التحليل الساكنة التقليدية، ونماذج تعلم الآلة، والنماذج اللغوية الكبيرة في اكتشاف ثغرات إعادة الدخول في العقود الذكية الحديثة بلغة Solidity 0.8+ باستخدام معيارين مرجعيين جديدين، كاشفةً أن النماذج اللغوية الكبيرة الرائدة تتفوق بشكل كبير على الأدوات الحالية وتسلط الضوء على الفجوات الحرجة في متانة الكشف الحالية.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل عالم العقود الذكية لشبكة إيثيريوم كأنه بنك رقمي ضخم وعالي المخاطر. في هذا البنك، تُكتب القواعد بلغة برمجية (Solidity)، وبمجرد إغلاق الأبواب، لا يمكن تغييرها بسهولة.
إحدى أخطر الطرق لسرقة هذا البنك هي خدعة تسمى "إعادة الدخول" (Reentrancy).
عملية سطو "الازدواجية"
لفهم المشكلة، تخيل صرافًا في بنك يتبع قاعدة صارمة: "تحقق من الرصيد، ثم أعطِ العميل النقد، ثم حدّث حسابك".
يسير لص ماكر (المخترق) نحو الصراف ويطلب سحب مبلغ.
- يتحقق الصراف من الرصيد: 100 دولار.
- يسلم الصراف النقد: 100 دولار.
- قبل أن يقوم الصراف بتحديث السجل ليقول "الرصيد الآن 0 دولار"، يقوم اللص بحيلة سحرية. يطلب من الصراف إعطاءه المزيد من المال فورًا.
- ولأن السجل لم يُحدّث بعد، لا يزال الصراف يعتقد أن لدى اللص 100 دولار. لذا، يسلمه الصراف 100 دولار أخرى.
- يكرر اللص هذه الحلقة حتى يتم إفراغ البنك، وبعد ذلك يقوم الصراف أخيرًا بتحديث السجل إلى 0 دولار.
هذه هي إعادة الدخول (Reentrancy): حيث "يعيد اللص الدخول" إلى منطق البنك قبل انتهاء المعاملة الأولى، مما يخدع النظام ويجعله يظن أن شيئًا لم يتغير.
المشكلة: حراس الأمن القدامى
لسنوات، امتلكنا "حراس أمن" (أدوات برمجية) مصممين للإيقاع بهؤلاء اللصوص. ينظر هؤلاء الحراس إلى الكود ويصرخون: "توقف! أنت تُحدّث الرصيد بعد تسليم النقد! هذا فخ إعادة دخول!"
ومع ذلك، اكتشف مؤلفو هذه الورقة البحثية مشكلة مخيفة: حراس الأمن هؤلاء قدامى، معطلون، ومشتتون.
- اللغة تغيرت: "اللغة" التي يستخدمها البنك (Solidity) قد تطورت. الأمر يشبه انتقال البنك من التحدث بالإنجليزية إلى لهجة جديدة ومعقدة. الحراس القدامى يتحدثون اللهجة القديمة فقط. عندما يرون الكود الجديد، إما أن يتعطلوا، أو يتجمدوا، أو يتجاهلون الخطر ببساطة.
- إنهم يختلفون: إذا سألت 12 حارسًا مختلفًا للتحقق من نفس الخزنة، فقد يقول 11 منهم "آمن"، بينما يقول الـ 12 "خطير". لا يمكنهم حتى الاتفاق على شكل "النمط الخطير".
- بيانات التدريب هي مجرد نفايات: حراس التعلم الآلي (الذكاء الاصطناعي) تم تدريبهم بواسطة الحراس القدامى المعطلين. لذا، تعلموا القواعد الخاطئة. الأمر يشبه تعليم طالب باستخدام كتاب مدرسي من عام 1990 عن عالم يستخدم تقنيات عام 2025.
التجربة: اختبار جهد جديد
قرر الباحثون إصلاح ذلك عبر بناء "ميداني تدريب" جديدين لاختبار الحراس:
- خزنة "العالم الحقيقي" (المعيار المجمع): أخذوا 432 عقدًا حقيقيًا من الإنترنت وجعلوا خبراء بشريين يفحصونها يدويًا لمعرفة ما إذا كانت آمنة حقًا أم خطيرة. كان هذا هو "المعيار الذهبي".
- "غرفة الفخاخ" (مجموعة بيانات سيناريوهات إعادة الدخول): بنوا 143 مثالاً صغيرًا ومثاليًا لكل طريقة ممكنة يحاول بها اللص "الازدواجية". بعض الفخاخ كانت واضحة؛ والبعض الآخر كان مخفيًا خلف حيل برمجية معقدة، مثل استخدام "mutex" (قفل رقمي) أو إخفاء الحيلة داخل حلقة تكرارية.
النتائج: الحراس القدامى مقابل الذكاء الاصطناعي الجديد
اختبروا ثلاثة أنواع من المدافعين:
- المحللات الساكنة التقليدية (Static Analyzers): حراس المدرسة القديمة الذين يتبعون القواعد بجمود.
- نماذج التعلم الآلي (Machine Learning Models): طلاب الذكاء الاصطناعي الذين تدربوا على بيانات قديمة.
- النماذج اللغوية الكبيرة (LLMs): مساعدو الذكاء الاصطناعي الجدد فائقو الذكاء (مثل تلك التي تدردش معها اليوم).
النتيجة:
- الحراس القدامى: فشل الكثير منهم تمامًا. لم يستطيعوا حتى العمل على الكود الجديد. أما الذين عملوا، فكانوا غير متسقين، وغالبًا ما تفوتهم الفخاخ أو يطلقون إنذارات كاذبة على كود آمن.
- نماذج التعلم الآلي: أبلوا بلاءً حسنًا في المهام البسيطة، لكنهم عانوا عندما أصبح الكود معقدًا أو استخدم ميزات جديدة.
- الذكاء الاصطناعي الجديد (LLMs): لقد فازوا.
- لم يحتاجوا إلى إعادة تدريب.
- لم يتعطلوا عند مواجهة كود جديد.
- فهموا معنى الكود، وليس فقط قواعد كتابته.
- في أصعب اختبارات "غرفة الفخاخ"، نجح أفضل نموذج LLM في كشف 82% من اللصوص، بينما كشف أفضل أداة قديمة 76% فقط.
ميزة "اشرح عملك"
إليك الجزء الأكثر روعة: الحراس القدامى يعطون مجرد إجابة "نعم/لا". إذا قالوا "خطير"، فغالبًا لا يستطيعون شرح لماذا بطريقة يفهمها البشر.
أما النماذج اللغوية الكبيرة (LLMs)، فقد تصرفوا كمحققين. فعندما يكتشفون عقدًا مشبوهًا، يكتبون شرحًا واضحًا: "لقد وجدت ثغرة إعادة دخول هنا لأن الكود يسلم المال قبل تحديث الرصيد، ويمكن للصوص استدعاء الوظيفة مرة أخرى قبل حدوث التحديث".
ساعد هذا الباحثين البشريين على إدراك أن بعض تصنيفاتهم في "المعيار الذهبي" كانت في الواقع خاطئة! لقد ساعد الذكاء الاصطناعي في تصحيح مجموعة البيانات.
الخلاصة الكبرى
تخبرنا هذه الورقة البحثية أنه في عالم بلوكشين سريع الحركة، أدواتنا القديمة أصبحت عتيقة وغير صالحة للاستخدام. إنها تشبه استخدام خريطة من عام 1990 للتنقل في مدينة أُعيد بناؤها بالكامل.
بينما كنا نعتمد سابقًا على أدوات جامدة قائمة على القواعد، فإن مستقبل العثور على هذه الثغرات الأمنية يكمن في ذكاء اصطناعي ذكي وقابل للتكيف يمكنه فهم القصد من الكود، وشرح منطقه للبشر، ومواكبة تغيرات اللغة دون الحاجة إلى تحديث يدوي كل أسبوع.
باختًا: حراس الأمن القدامى يتقاعدون. لقد حان الوقت لتوظيف المحققين الجدد من الذكاء الاصطناعي الذين يمكنهم بالفعل التحدث بلغة المستقبل.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.