ثغرة تخزين مؤقت تؤدي إلى هجوم بقيمة 300,000 دولار على مشروع داخل السلسلة، تحليل الخبراء واقتراحات للوقاية

robot
إنشاء الملخص قيد التقدم

تحليل حادثة هجوم داخل السلسلة بقيمة 300000 دولار بسبب ثغرة التخزين اللحظي

في 30 مارس 2025، تعرض مشروع تداول الرافعة المالية داخل السلسلة لهجوم، مما أسفر عن خسارة تزيد عن 300,000 دولار من الأصول. قامت فريق الأمان بتحليل متعمق لهذه الحادثة، والآن تشارك النتائج على النحو التالي:

الخلفية

وقع الهجوم على شبكة Ethereum ، وكان الهدف هو مشروع تداول بالرافعة المالية. استغل المهاجمون ثغرة تتعلق بالتخزين المؤقت في عقد المشروع.

بقايا قاتلة: حادثة سطو بقيمة 300,000 دولار داخل السلسلة ناتجة عن التخزين اللحظي

المعرفة المسبقة

أدخلت النسخة 0.8.24 من Solidity ميزة التخزين اللحظي (transient storage)، وهو موقع جديد لتخزين البيانات. تشمل الميزات الرئيسية ما يلي:

  • تكلفة الغاز المنخفضة: تستهلك عمليات TSTORE و TLOAD 100 غاز ثابتة
  • استمرارية البيانات داخل الصفقة: تبقى البيانات سارية طوال فترة الصفقة
  • إزالة تلقائية: إعادة تعيين تلقائيًا إلى صفر بعد انتهاء الصفقة

بقايا قاتلة: عملية سطو بقيمة 300,000 دولار داخل السلسلة ناتجة عن التخزين العابر

سبب الثغرة

السبب الجذري للهجوم هو أن القيم المستخدمة في التخزين المؤقت المؤقت باستخدام tstore في العقد لم يتم مسحها بعد انتهاء استدعاء الدالة. وهذا يسمح للمهاجمين بالاستفادة من هذه الميزة لإنشاء عنوان معين، وتجاوز فحص الأذونات وتحويل الرموز.

بقايا مميتة: عملية سطو داخل السلسلة بقيمة 300,000 دولار ناتجة عن تخزين عابر

عملية الهجوم

  1. المهاجم ينشئ رمزين خبيثين A و B، ويقوم بإنشاء حوض سيولة لهما على أحد DEX.
  2. استدعاء دالة initialize للعقد المستهدف، لإنشاء سوق تداول ذي رافعة مالية باستخدام رمز A كضمان ورمز B كرمز دين.
  3. استدعاء دالة mint لإيداع رموز B لصك رموز الرافعة المالية، تم إجراء عمليتين للتخزين العابر خلال هذه العملية.
  4. إنشاء عقد خبيث بعنوان يساوي قيمة التخزين المؤقت الثانية.
  5. من خلال استدعاء دالة رد الاتصال للعقد المستهدف بواسطة العقد الخبيث، يتم تجاوز فحص الأذونات لسحب الرموز.
  6. وأخيرًا، من خلال هجوم على العقد (رمز A) يتم استدعاء دالة الاسترجاع مرة أخرى، وتحويل رموز أخرى (مثل WBTC، WETH) لتحقيق الربح.

بقايا قاتلة: سرقة داخل السلسلة بقيمة 300,000 دولار ناتجة عن تخزين مؤقت

بقايا قاتلة: عملية سطو داخل السلسلة بقيمة 300,000 دولار ناتجة عن التخزين المؤقت

بقايا قاتلة: عملية سطو داخل السلسلة بقيمة 300,000 دولار ناتجة عن تخزين عابر

بقايا قاتلة: عملية سطو داخل السلسلة بقيمة 300,000 دولار ناجمة عن تخزين عابر

بقايا مميتة: عملية سطو داخل السلسلة بقيمة 300,000 دولار ناتجة عن تخزين مؤقت

بقايا قاتلة: سرقة بقيمة 300,000 دولار داخل السلسلة ناتجة عن تخزين عابر

بقايا قاتلة: عملية سطو داخل السلسلة بقيمة 300,000 دولار ناجمة عن التخزين العابر

بقايا قاتلة: عملية سطو داخل السلسلة بقيمة 300,000 دولار ناتجة عن التخزين العابر

بقايا مميتة: عملية سطو داخل السلسلة بقيمة 300,000 دولار ناجمة عن التخزين المؤقت

بقايا مميتة: عملية سطو داخل السلسلة بقيمة 300000 دولار ناتجة عن التخزين العابر

البقايا القاتلة: عملية سطو داخل السلسلة بقيمة 300,000 دولار ناتجة عن تخزين مؤقت

بقايا قاتلة: عملية سطو داخل السلسلة بقيمة 300,000 دولار ناتجة عن تخزين عابر

تحليل تدفق الأموال

المهاجمون سرقوا حوالي 300,000 دولار من الأصول، بما في ذلك:

  • 17,814.8626 دولار أمريكي
  • 1.4085 WBTC
  • 119.871 WETH

ثم قام المهاجم بتبادل WBTC و USDC إلى WETH، وفي النهاية قام بتحويل 193.1428 WETH إلى خدمة خلط معينة.

تمويل المهاجم الأولي (0.3 ETH) يأتي أيضًا من هذه الخدمة لخلط العملات.

بقايا قاتلة: عملية سطو داخل السلسلة بقيمة 300,000 دولار ناجمة عن التخزين المؤقت

بقايا مميتة: عملية سطو داخل السلسلة بقيمة 300,000 دولار ناتجة عن تخزين عابر

ملخص وتوصيات

تتمثل جوهر الهجوم هذه المرة في استغلال خاصية الحفاظ على القيم ثابتة خلال فترة المعاملة، مما يجنب التحقق من صلاحيات العقد. لمنع هجمات مماثلة، يُنصح الجهات المعنية بالمشروع بـ:

  1. استخدم tstore(key على الفور بعد انتهاء استدعاء الوظيفة لمسح القيم من التخزين المؤقت.
  2. تعزيز تدقيق كود العقد واختبارات الأمان.
  3. استخدم الميزات اللغوية الجديدة بحذر وفهم المخاطر المحتملة بشكل كامل.
WBTC0.95%
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 6
  • مشاركة
تعليق
0/400
PensionDestroyervip
· منذ 16 س
又有حمقى寄了
شاهد النسخة الأصليةرد0
TestnetFreeloadervip
· منذ 17 س
آه، كم هو مجاني، حتى أنهم لا يستطيعون الاحتفاظ بمشاريعهم الخاصة.
شاهد النسخة الأصليةرد0
LootboxPhobiavip
· منذ 17 س
لقد حدث شيء سيء، لقد وقع أخ آخر في الفخ.
شاهد النسخة الأصليةرد0
BearMarketMonkvip
· منذ 17 س
تمت سرقة العقد أثناء استغلال العرض
شاهد النسخة الأصليةرد0
DeFiAlchemistvip
· منذ 17 س
آه، خروف آخر ضحية لفنون استغلال العقود الذكية... *يعدل كرة الكريستال* هذه الثغرات في التخزين المؤقت تشبه الشقوق في الختم المحكم لعلم بروتوكول الكيمياء.
شاهد النسخة الأصليةرد0
TestnetNomadvip
· منذ 17 س
يا للهول، تم سرقتي مرة أخرى.
شاهد النسخة الأصليةرد0
  • تثبيت