بقايا قاتلة: هجوم بقيمة 300,000 دولار داخل السلسلة ناتج عن تخزين عابر
في 30 مارس 2025، اكتشف نظام مراقبة الأمان هجومًا على مشروع تداول الرافعة المالية داخل السلسلة Ethereum، مما أدى إلى خسائر بأصول تزيد عن 300,000 دولار أمريكي. قامت فريق الأمان بتحليل متعمق لهذا الحادث، والآن نشارك النتيجة كما يلي:
الخلفية
تم تقديم إصدار Solidity 0.8.24 (المقرر إصداره في يناير 2024) ميزة التخزين المؤقت المستندة إلى EIP-1153. هذه طريقة جديدة لتخزين البيانات تهدف إلى توفير وسيلة تخزين مؤقت فعالة من حيث التكلفة وفعالة خلال فترة المعاملة للمطورين.
تشمل الميزات الرئيسية للتخزين المؤقت:
تكلفة الغاز المنخفضة: تكلفة الغاز لعمليات TSTORE و TLOAD ثابتة عند 100.
الاستمرارية داخل المعاملة: تبقى البيانات صالحة طوال فترة المعاملة.
الإزالة التلقائية: بعد انتهاء الصفقة، يتم إعادة تعيين التخزين المؤقت إلى الصفر تلقائيًا.
مصدر الهجوم
السبب الجذري لهذا الحدث هو أن القيم المخزنة مؤقتًا باستخدام tstore في الوظيفة لم يتم مسحها بعد انتهاء استدعاء الوظيفة. وهذا يمكّن المهاجمين من الاستفادة من هذه الميزة لإنشاء عناوين ضارة محددة لتجاوز فحص الأذونات وسحب الرموز.
عملية الهجوم
المهاجم ينشئ رمزين خبيثين A و B، ويقوم بإنشاء بركة لهذين الرمزين على DEX معين ويضخ السيولة، حيث يكون رمز A هو عقد الهجوم.
يقوم المهاجم باستدعاء دالة initialize لعقد Vault، باستخدام العملة A كعملات ضمان، والعملة B كعملات دين لإنشاء سوق تداول بالرافعة المالية APE-21.
يقوم المهاجم باستدعاء دالة mint لعقد Vault، ويقوم بإيداع رمز الدين B لصك رمز الرفع APE. تتضمن هذه العملية عمليتين مؤقتتين للتخزين: أولاً تخزين عنوان حوض DEX معين، ثم تخزين كمية الرموز المُصنعة.
يقوم المهاجم بإنشاء عقد خبيث بطريقة خاصة، بحيث يكون عنوانه هو نفس قيمة التخزين المؤقت الثانية.
المهاجم يقوم باستدعاء وظيفة الاسترجاع لعقد Vault مباشرة من خلال العقد الخبيث، مما يؤدي إلى تحويل الرموز. نظرًا لعدم مسح القيم في التخزين المؤقت، يتم تمرير فحص هوية المستدعي بشكل خاطئ.
أخيرًا، يقوم المهاجم من خلال هجوم العقد (رمز A) باستدعاء دالة الاسترجاع لعقد Vault، مما يؤدي إلى تحويل رموز أخرى (مثل WBTC، WETH) من عقد Vault لتحقيق الربح.
تحليل تدفق الأموال
وفقًا لتحليل أدوات داخل السلسلة، قام المهاجمون بسرقة أصول تقدر بنحو 300,000 دولار، بما في ذلك 17,814.8626 USDC، 1.4085 WBTC و119.871 WETH. تم دمج هذه الأصول بعد ذلك وتحويلها إلى WETH، وتم تحويلها في النهاية إلى بروتوكول تداول خاص.
تمويل المهاجم الأولي يأتي من 0.3 ETH المدفوعة في بروتوكول المعاملات الخاصة.
الملخص والتوصيات
تكمن جوهر الهجوم في استغلال المهاجم لخاصية التخزين المؤقت التي تحافظ على القيمة ثابتة طوال فترة المعاملة، مما سمح له بتجاوز التحقق من أذونات دالة الاستدعاء لتحقيق الربح. لمنع حدوث حالات مماثلة، يُوصى بأن تقوم الجهات المعنية بالمشروع:
وفقًا للمنطق التجاري، استخدم tstore(key على الفور بعد انتهاء استدعاء الوظيفة، و0) لمسح القيم من التخزين المؤقت.
تعزيز تدقيق كود العقد واختبار الأمان.
استخدم الميزات الجديدة بحذر، وافهم المخاطر المحتملة بشكل كامل.
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
حدث هجوم داخل السلسلة بقيمة 300,000 دولار: ثغرة في التخزين المؤقت تؤدي إلى معاناة مشروع تداول الهامش
بقايا قاتلة: هجوم بقيمة 300,000 دولار داخل السلسلة ناتج عن تخزين عابر
في 30 مارس 2025، اكتشف نظام مراقبة الأمان هجومًا على مشروع تداول الرافعة المالية داخل السلسلة Ethereum، مما أدى إلى خسائر بأصول تزيد عن 300,000 دولار أمريكي. قامت فريق الأمان بتحليل متعمق لهذا الحادث، والآن نشارك النتيجة كما يلي:
الخلفية
تم تقديم إصدار Solidity 0.8.24 (المقرر إصداره في يناير 2024) ميزة التخزين المؤقت المستندة إلى EIP-1153. هذه طريقة جديدة لتخزين البيانات تهدف إلى توفير وسيلة تخزين مؤقت فعالة من حيث التكلفة وفعالة خلال فترة المعاملة للمطورين.
تشمل الميزات الرئيسية للتخزين المؤقت:
مصدر الهجوم
السبب الجذري لهذا الحدث هو أن القيم المخزنة مؤقتًا باستخدام tstore في الوظيفة لم يتم مسحها بعد انتهاء استدعاء الوظيفة. وهذا يمكّن المهاجمين من الاستفادة من هذه الميزة لإنشاء عناوين ضارة محددة لتجاوز فحص الأذونات وسحب الرموز.
عملية الهجوم
المهاجم ينشئ رمزين خبيثين A و B، ويقوم بإنشاء بركة لهذين الرمزين على DEX معين ويضخ السيولة، حيث يكون رمز A هو عقد الهجوم.
يقوم المهاجم باستدعاء دالة initialize لعقد Vault، باستخدام العملة A كعملات ضمان، والعملة B كعملات دين لإنشاء سوق تداول بالرافعة المالية APE-21.
يقوم المهاجم باستدعاء دالة mint لعقد Vault، ويقوم بإيداع رمز الدين B لصك رمز الرفع APE. تتضمن هذه العملية عمليتين مؤقتتين للتخزين: أولاً تخزين عنوان حوض DEX معين، ثم تخزين كمية الرموز المُصنعة.
يقوم المهاجم بإنشاء عقد خبيث بطريقة خاصة، بحيث يكون عنوانه هو نفس قيمة التخزين المؤقت الثانية.
المهاجم يقوم باستدعاء وظيفة الاسترجاع لعقد Vault مباشرة من خلال العقد الخبيث، مما يؤدي إلى تحويل الرموز. نظرًا لعدم مسح القيم في التخزين المؤقت، يتم تمرير فحص هوية المستدعي بشكل خاطئ.
أخيرًا، يقوم المهاجم من خلال هجوم العقد (رمز A) باستدعاء دالة الاسترجاع لعقد Vault، مما يؤدي إلى تحويل رموز أخرى (مثل WBTC، WETH) من عقد Vault لتحقيق الربح.
تحليل تدفق الأموال
وفقًا لتحليل أدوات داخل السلسلة، قام المهاجمون بسرقة أصول تقدر بنحو 300,000 دولار، بما في ذلك 17,814.8626 USDC، 1.4085 WBTC و119.871 WETH. تم دمج هذه الأصول بعد ذلك وتحويلها إلى WETH، وتم تحويلها في النهاية إلى بروتوكول تداول خاص.
تمويل المهاجم الأولي يأتي من 0.3 ETH المدفوعة في بروتوكول المعاملات الخاصة.
الملخص والتوصيات
تكمن جوهر الهجوم في استغلال المهاجم لخاصية التخزين المؤقت التي تحافظ على القيمة ثابتة طوال فترة المعاملة، مما سمح له بتجاوز التحقق من أذونات دالة الاستدعاء لتحقيق الربح. لمنع حدوث حالات مماثلة، يُوصى بأن تقوم الجهات المعنية بالمشروع: