بروتوكول DeFi Abracadabra فقد 1.8 مليون دولار بعد أن استغل مهاجم خطأ بسيط في منطق دالة الدفعة. يقول المحللون في Hacken إن المهاجم قد غسّل الأموال بالفعل عبر Tornado Cash.
ملخص
فقدت Abracadabra ما يقرب من $2 مليون بعد أن استغل مهاجم خطأ منطقي بسيط في وظيفة الدُفعة الخاصة بها، مشابهًا لهجوم على مشروع متفرع قبل أيام.
قام المهاجم بتجاوز علامة الأمان التي كانت تهدف إلى التحقق مما إذا كان لدى المقترضين ما يكفي من الضمانات واستنزف ستة Cauldrons دفعة واحدة قبل أن يقوم بتبادل MIM المسروق مقابل ETH وتوجيهه عبر Tornado Cash.
هذه ليست المرة الأولى التي يتم فيها استهداف كود Abracadabra، لكن الحادث يسلط الضوء على كيفية تمكين وظيفة صغيرة غير المنفذة القراصنة من الاستفادة، حتى عندما كانت نفس الثغرة مرئية في fork.
في أوائل أكتوبر، تعرضت Abracadabra، بروتوكول إقراض DeFi الذي يسمح للناس باقتراض عملته المستقرة MIM باستخدام الرموز المودعة كضمان، لعدة هجمات من قراصنة سابقاً، وهذه المرة مرة أخرى فقدت حوالي 1.8 مليون دولار بعد أن استخدم مهاجم خطأ منطقي بسيط في وظيفة الدفعة للبروتوكول للاقتراض دون تقديم أي ضمان، بنفس الطريقة التي تعرض لها مشروع تم تفرعه قبل أيام، حسبما قال محللو شركة الأمن السيبراني Hacken في مذكرة بحثية تم مشاركتها مع crypto.news.
أبركادابرا أُطلقت كوسيلة للناس لاستخدام الرموز المولدة للفائدة كضمان ولاقتراض رمز مرتبط بالدولار الأمريكي يسمى المال السحري على الإنترنت، أو MIM. النظام مبني حول عنصرين: القدور، التي تتعامل مع قواعد الاقتراض، وDegenBox، الخزنة المشتركة التي تحتفظ فعليًا بالرموز. باختصار: تضع ضمانًا في وعاء، وDegenBox تتعقب الأموال خلف الكواليس.
النسخة المختصرة مما حدث خطأ هي كالتالي: علم الأمان الذي من المفترض أن يجبر على إجراء فحص نهائي لمعرفة ما إذا كان المقترض لديه ضمانات فعلية تم إيقاف تشغيله داخل معاملة واحدة. كما يوضح تقرير Hacken، فإن المهاجم "استغل عيبًا منطقيًا في وظيفة cook() في Abracadabra حيث كان بإمكانهم اقتراض رموز MIM ثم إعادة تعيين علم التحقق الذي من المفترض أن يتحقق مما إذا كان لديهم ضمانات كافية على الفور." وقد سمح ذلك باقتراض غير مضمون بلمسة واحدة عبر عدة Cauldrons.
تحت المجهر
إليك كيف عملت العملية، بلغة بسيطة. تستخدم Abracadabra دالة مجمعة تسمى cook() بحيث يمكن للمستخدمين القيام بعدة إجراءات في معاملة واحدة. على سبيل المثال، إيداع الضمان واقتراض في نفس النقر. واحدة من تلك الإجراءات، مثل خطوة "الاقتراض"، تضبط علامة باسم needsSolvencyCheck إلى صحيحة، مما يعني "في نهاية هذه المعاملة، تحقق مما إذا كان المقترض آمناً."
واحدة من Cauldrons القابلة للاختراق | المصدر: Hackenلكن هناك إجراء آخر يمكن تنفيذه داخل نفس الدفعة يسمى “_additionalCookAction(…).” كما تشير Hacken، تم إعلان تلك الوظيفة كـ “افتراضية” ولم يتم تنفيذها أبداً، لذلك بشكل افتراضي كانت تعيد كائن فارغ حيث تم تعيين كل شيء على false، بما في ذلك needsSolvencyCheck العلم.
نتيجة لذلك، قام المهاجم باستدعاء إجراء الاقتراض، ثم استدعى إجراء الافتراضي الذي أعاد تعيين العلامة، وفي النهاية، لم يتحقق البروتوكول أبدًا من السيولة.
يقول المحللون إن المهاجم هاجم ستة أوعية في مرة واحدة، وأخذ حوالي 1.79 مليون MIM وقام بتبادله مقابل ETH. استغل المهاجمون الثغرة، ومروا بشكل منهجي عبر ستة أوعية مختلفة واستنزفوا كل واحد منها "باستخدام نفس التقنية مع استدعاء دالة الطهي المخصصة"، كما أوضح المحللون.
الأموال المغسولة من اختراق Abracadabra | المصدر: Hackenبعد عملية التبادل، قام المهاجم بتوجيه الأموال من خلال Tornado Cash، بروتوكول خلط العملات المشفرة، معظمها 10 ETH لكل عملية، مرسلة تدريجياً على مدار اليوم التالي.
وليس هذه هي المرة الأولى التي يكون فيها كود CauldronV4 الخاص بأبركادابرا متورطًا في مشاكل. فقد تم استخدام حالات حافة مختلفة في نفس عائلة العقود في حوادث أخرى في وقت سابق من هذا العام. ما هو مثير للاهتمام الآن هو مدى سرعة استجابة النشر المتشعب.
وفقًا للتقرير، قام فورك يُدعى Synnax بإيقاف أو إزالة قائمة CauldronV4 الرئيسية الخاصة به على DegenBox قبل أيام من سحب Abracadabra، لذلك في الأساس قام فريق الفورك بسحب فرامل الطوارئ بعد اكتشاف نفس النمط الضعيف، مما يشير إلى أن الخطر كان مرئيًا للفرق التي تراقب الشيفرة، إن لم يتم إصلاحه.
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
أبركادابرا $1.8m هاك يكرر عيب الفوك السابق، هاكن يكشف
بروتوكول DeFi Abracadabra فقد 1.8 مليون دولار بعد أن استغل مهاجم خطأ بسيط في منطق دالة الدفعة. يقول المحللون في Hacken إن المهاجم قد غسّل الأموال بالفعل عبر Tornado Cash.
ملخص
في أوائل أكتوبر، تعرضت Abracadabra، بروتوكول إقراض DeFi الذي يسمح للناس باقتراض عملته المستقرة MIM باستخدام الرموز المودعة كضمان، لعدة هجمات من قراصنة سابقاً، وهذه المرة مرة أخرى فقدت حوالي 1.8 مليون دولار بعد أن استخدم مهاجم خطأ منطقي بسيط في وظيفة الدفعة للبروتوكول للاقتراض دون تقديم أي ضمان، بنفس الطريقة التي تعرض لها مشروع تم تفرعه قبل أيام، حسبما قال محللو شركة الأمن السيبراني Hacken في مذكرة بحثية تم مشاركتها مع crypto.news.
أبركادابرا أُطلقت كوسيلة للناس لاستخدام الرموز المولدة للفائدة كضمان ولاقتراض رمز مرتبط بالدولار الأمريكي يسمى المال السحري على الإنترنت، أو MIM. النظام مبني حول عنصرين: القدور، التي تتعامل مع قواعد الاقتراض، وDegenBox، الخزنة المشتركة التي تحتفظ فعليًا بالرموز. باختصار: تضع ضمانًا في وعاء، وDegenBox تتعقب الأموال خلف الكواليس.
النسخة المختصرة مما حدث خطأ هي كالتالي: علم الأمان الذي من المفترض أن يجبر على إجراء فحص نهائي لمعرفة ما إذا كان المقترض لديه ضمانات فعلية تم إيقاف تشغيله داخل معاملة واحدة. كما يوضح تقرير Hacken، فإن المهاجم "استغل عيبًا منطقيًا في وظيفة cook() في Abracadabra حيث كان بإمكانهم اقتراض رموز MIM ثم إعادة تعيين علم التحقق الذي من المفترض أن يتحقق مما إذا كان لديهم ضمانات كافية على الفور." وقد سمح ذلك باقتراض غير مضمون بلمسة واحدة عبر عدة Cauldrons.
تحت المجهر
إليك كيف عملت العملية، بلغة بسيطة. تستخدم Abracadabra دالة مجمعة تسمى cook() بحيث يمكن للمستخدمين القيام بعدة إجراءات في معاملة واحدة. على سبيل المثال، إيداع الضمان واقتراض في نفس النقر. واحدة من تلك الإجراءات، مثل خطوة "الاقتراض"، تضبط علامة باسم needsSolvencyCheck إلى صحيحة، مما يعني "في نهاية هذه المعاملة، تحقق مما إذا كان المقترض آمناً."
نتيجة لذلك، قام المهاجم باستدعاء إجراء الاقتراض، ثم استدعى إجراء الافتراضي الذي أعاد تعيين العلامة، وفي النهاية، لم يتحقق البروتوكول أبدًا من السيولة.
يقول المحللون إن المهاجم هاجم ستة أوعية في مرة واحدة، وأخذ حوالي 1.79 مليون MIM وقام بتبادله مقابل ETH. استغل المهاجمون الثغرة، ومروا بشكل منهجي عبر ستة أوعية مختلفة واستنزفوا كل واحد منها "باستخدام نفس التقنية مع استدعاء دالة الطهي المخصصة"، كما أوضح المحللون.
وليس هذه هي المرة الأولى التي يكون فيها كود CauldronV4 الخاص بأبركادابرا متورطًا في مشاكل. فقد تم استخدام حالات حافة مختلفة في نفس عائلة العقود في حوادث أخرى في وقت سابق من هذا العام. ما هو مثير للاهتمام الآن هو مدى سرعة استجابة النشر المتشعب.
وفقًا للتقرير، قام فورك يُدعى Synnax بإيقاف أو إزالة قائمة CauldronV4 الرئيسية الخاصة به على DegenBox قبل أيام من سحب Abracadabra، لذلك في الأساس قام فريق الفورك بسحب فرامل الطوارئ بعد اكتشاف نفس النمط الضعيف، مما يشير إلى أن الخطر كان مرئيًا للفرق التي تراقب الشيفرة، إن لم يتم إصلاحه.