في 3 يناير 2024، تعرض مشروع Radiant Capital لهجوم قرض سريع من قبل أحد المهاجمين، حيث سرق المهاجم أكثر من 1900 ETH من خلال 3 معاملات، تبلغ قيمتها أكثر من 4.5 مليون دولار أمريكي، ولا تزال الأموال المسروقة مخزنة حاليًا في عنوان المهاجم .
** بقلم : بيوسين **
في 3 يناير 2024، وفقًا للمراقبة التي أجرتها منصة Beosin’s EagleEye لمراقبة المخاطر الأمنية والإنذار المبكر والحظر، تعرض مشروع **Radiant Capital لهجوم قرض سريع من أحد المهاجمين. سرق المهاجم أكثر من 1900 إيثريوم، بقيمة تزيد عن 4.5 مليون دولار أمريكي، من خلال 3 معاملات. ولا تزال الأموال المسروقة مخزنة في عنوان المهاجم. ** قام فريق Beosin الأمني بتحليل هذه الحادثة على الفور.
السبب الجذري لهذه الحادثة هو أن مشروع Radiant Capital استخدم التوسع الدقيق والتقريب في عملية حساب عدد الرموز المميزة، مما سمح للمهاجم بتوسيع الأرباح من خلال التحكم في الدقة ودمجها مع التقريب، انقر للهجوم. **

بمراقبة الكود أعلاه، تقوم دالة rayDiv بتمرير بيانات uint256 a وb، ويمكن اختصار العملية برمتها كـ (a*RAY+b/2)/b، حيث RAY هي البيانات الموسعة الدقيقة، وهي 10^27 ، وبالتالي تكون النتيجة تمامًا عند a*RAY/b+0.5، يتم تنفيذ وظيفة التقريب، ويأتي الخطأ في طريقة الحساب هذه بشكل أساسي من b. إذا كان b صغيرًا للغاية بالنسبة لـ a، فسيكون الخطأ ضئيلًا، ولكن إذا كان b له نفس حجم a، فقد يصل الخطأ إلى نفسه.
على سبيل المثال: إذا كان a*RAY=10000، b=3، فإن النتيجة المحسوبة هي 3333، وهي أصغر بنسبة 1/10000 من القيمة الفعلية؛ وإذا كانت a*RAY=10000، b=3000، فإن النتيجة المحسوبة هي 3، 1/10 أصغر من القيمة الفعلية.
في هذه الحادثة، تلاعب المهاجم بقيمة b بحيث تكون قيمة b وقيمة a لهما نفس الترتيب من حيث الحجم، مما يجعل الحساب يعادل 3/2.0001=1، والقيمة المحسوبة أصغر بنسبة 1/3 من القيمة الفعلية.
دعونا نلقي نظرة على عملية هجوم الهاكر:






4077000000000000000000000000000/271800000000999999999999998631966035920=1.49999999، ونتيجة التقريب هي 1، مما يجعل النتيجة أصغر بنسبة 1/3.
كما هو موضح في الصورة أدناه، كان من المفترض أن يتم تدمير 407,700 دولار أمريكي، ولكن بقي 271,800 دولار أمريكي، مما يشير إلى أنه تم تدمير 271,800 دولار أمريكي فقط، وقام المهاجم بسحب 407,700 دولار أمريكي.


اعتبارًا من وقت كتابة المقالة، تم تخزين 1902 إيثريوم مسروقة في عنوان المتسلل ولم يتم نقلها، وسيستمر Beosin Trace في مراقبة الأموال. **

مع بداية عام 2024، شهدنا بالفعل حالتين من السرقات واسعة النطاق. (مراجعة للحوادث الأمنية التي وقعت بالأمس: ماذا حدث للحالة الأولى لهذا العام، حادثة Orbit Chain المسروقة بقيمة 80 مليون دولار؟) تذكرنا سلسلة الأحداث هذه مرة أخرى أنه في نظام Web3 البيئي، لا تزال الاحتياطات الأمنية مهمة جدًا! **