ماذا حدث
في 28 يناير 2022، تعرضت Qubit Finance لاستغلال بلغت قيمته حوالي 80 مليون دولار أمريكي من الأصول المشفرة. ويظل هذا من أكبر عمليات الاختراق في تاريخ DeFi. لم يتم إرجاع أي أموال على الإطلاق.
الخلفية
Section titled “الخلفية”كانت Qubit Finance بروتوكول إقراض DeFi على Binance Smart Chain، بنته الشركة الكورية الجنوبية Mound Inc. — وهو نفس الفريق الذي يقف وراء PancakeBunny، الذي سبق أن تعرض لاستغلال بقيمة ~45 مليون دولار في مايو 2021. كانت Qubit محاولتهم الثانية.
تضمّن البروتوكول QBridge — جسر عبر السلاسل يتيح للمستخدمين إيداع ETH على Ethereum والحصول على رموز qXETH مكافئة على BSC، يمكن استخدامها كضمان لاقتراض أصول أخرى.
حظيت Qubit Finance بتأييد صريح من Binance وعملت على Binance Smart Chain.
الاستغلال
Section titled “الاستغلال”الخطوة 1 — دالتان، حدث واحد
Section titled “الخطوة 1 — دالتان، حدث واحد”كان لدى QBridge طريقتان لإيداع ETH:
depositETH()— الدالة الصحيحة. تتطلب ETH فعلي (msg.value > 0). تُصدر حدثDeposit.deposit()— مصممة لرموز ERC-20. تستدعيsafeTransferFrom()على عقد الرمز. تُصدر أيضاً حدثDeposit— نفس النوع بالضبط.
لم يكن لدى المُرحّل (relayer) خارج السلسلة الذي يعالج أحداث الجسر أي طريقة للتمييز بينهما.
الخطوة 2 — العنوان الصفري كان في القائمة البيضاء
Section titled “الخطوة 2 — العنوان الصفري كان في القائمة البيضاء”بالنسبة لـ ETH، نظراً لأن ETH الأصلي لا يملك عنوان عقد ERC-20، استخدم QBridge العنوان الصفري (0x0000000000000000000000000000000000000000) كعنصر نائب. وأُضيف العنوان الصفري إلى القائمة البيضاء للعقد.
الخطوة 3 — استدعاء عنوان EOA ينجح بصمت
Section titled “الخطوة 3 — استدعاء عنوان EOA ينجح بصمت”عندما استُدعيت deposit() مع resourceID الخاص بـ ETH، حلّ العقد عنوان الرمز إلى العنوان الصفري واستدعى safeTransferFrom() عليه.
في EVM، استدعاء أي دالة على عنوان لا يحتوي على كود عقد (EOA) ينجح بصمت — لا تراجع، لا خطأ، لا تحويل فعلي. العنوان الصفري هو EOA. لذا “نجحت” safeTransferFrom()، ولم يتحرك شيء، وأصدر العقد حدث Deposit مطابقاً لإيداع ETH شرعي.
كان هذا السلوك في EVM موثقاً في تحديث أمني من 0x Protocol في 2019. إما أن فريق Qubit لم يكن يعلم بذلك، أو تجاهله.
الخطوة 4 — المُرحّل سكّ رموزاً حقيقية على BSC
Section titled “الخطوة 4 — المُرحّل سكّ رموزاً حقيقية على BSC”رأى المُرحّل حدث Deposit، ولم يكن لديه طريقة لمعرفة أنه مزيف، فسكّ رموز qXETH على BSC للمهاجم — دون أي غطاء.
كرر المهاجم هذه العملية مراراً، مراكماً كمية هائلة من qXETH المزيفة.
الخطوة 5 — ضمانات مزيفة، قروض حقيقية
Section titled “الخطوة 5 — ضمانات مزيفة، قروض حقيقية”باستخدام qXETH المسكوكة بطريقة احتيالية كضمان، اقترض المهاجم ما يقرب من 80 مليون دولار من أصول حقيقية من مجمعات إقراض Qubit Finance على BSC: WETH وBTCB وBNB وMATIC وCAKE وBUSD وغيرها.
تحقق عقد الإقراض بشكل صحيح من قيمة الضمان — لكن الاحتيال كان قد وقع بالفعل على مستوى الجسر.
التغيير المشبوه في المعاملات
Section titled “التغيير المشبوه في المعاملات”اكتشف المحققون شيئاً لم يُفسَّر أبداً.
في الأصل، كانت دالة deposit() مع resourceID الخاص بها تُستخدم لربط WETH — رمز ERC-20 حقيقي بعنوان عقد حقيقي. وكان هذا يعمل بشكل صحيح.
في مرحلة ما قبل الاختراق، تم استدعاء دالة مقيدة بالمالك (onlyOwner) لإعادة تعيين ربط resourceID — مبدّلةً عنوان عقد WETH بـالعنوان الصفري. كان هذا هو التغيير الذي جعل الاستغلال ممكناً.
حقائق رئيسية:
- فقط مالك العقد كان بإمكانه إجراء هذا التغيير
- لم يكن هناك قفل زمني — دخل حيز التنفيذ فوراً
- لم يكن هناك إعلان عام
- لم يُقدَّم أي تفسير على الإطلاق
استجابة الفريق
Section titled “استجابة الفريق”ما فعلته Mound Inc. بعد ذلك:
- عرضت على المخترق 250,000 دولار لإعادة 80 مليون دولار (لم يكن هناك رد)
- ادّعت تقديم بلاغات للشرطة — لم تقدم أبداً أرقام القضايا
- أزالت الضحايا من Telegram عبر المشرف @moleh
- حذف المدير التقني حسابه على LinkedIn في 1 فبراير 2022، بعد أربعة أيام من الاختراق
- لم تتواصل مع فريق أمان Binance أو البورصات الكبرى لإدراج محفظة المخترق في القائمة السوداء
- لم تردّ على أعضاء المجتمع الذين تقدموا بمعلومات عن المخترق
للاطلاع على السجل الكامل، راجع استجابة الفريق وتسعة أسئلة بلا إجابة.
محفظة المخترق
Section titled “محفظة المخترق”0xd01ae1a708614948b2b5e0b7ab5be6afa01325c7الأصول المسروقة المقدّرة
Section titled “الأصول المسروقة المقدّرة”| الأصل | القيمة التقريبية بالدولار |
|---|---|
| WETH | ~26.6 مليون دولار |
| BTCB | ~15.3 مليون دولار |
| BNB | ~9.5 مليون دولار |
| MATIC | ~5.6 مليون دولار |
| CAKE | ~8 مليون دولار |
| BUSD + أخرى | ~15 مليون دولار |
| الإجمالي | ~80 مليون دولار |