المصدر: مجتمع CertiK الصيني
في 16 كانون الثاني (يناير) 2024، تعرضت شركة Socket Tech لهجوم، مما تسبب في خسارة ما يقرب من 3.3 مليون دولار أمريكي. استغل المهاجم ثغرة أمنية في رابط التحقق من البيانات لعقد مأخذ التوصيل وسرق أموال المستخدم من العقد المصرح به من خلال إدخال بيانات ضارة. تسبب هذا الهجوم في خسائر إجمالية بلغت 230 عنوانًا، وبلغت أكبر خسارة لعنوان واحد حوالي 656000 دولار أمريكي.
مقدمة أساسية
Socket هو بروتوكول قابلية التشغيل البيني الذي يخدم الأمان عبر السلاسل ونقل البيانات والأصول بكفاءة. يعتبر عقد Switch Gateway بمثابة نقطة الوصول لجميع التفاعلات مع طبقة سيولة المقبس، حيث تتقارب جميع جسور الأصول و DEXs في جسر تعريف واحد واختيار أفضل المعاملات بناءً على تفضيلات المستخدم مثل التكلفة أو زمن الوصول أو توجيه الأمان.
قبل ثلاثة أيام من هجوم المتسللين، نفذ مسؤول عقد المقبس أمر addRoute لإضافة مسار جديد إلى النظام. الغرض من إضافة التوجيه هو توسيع وظائف بوابة المقبس، ولكنه يؤدي عن غير قصد إلى ظهور ثغرة أمنية خطيرة.
والصورة التالية توضح سجل إضافة التوجيه من خلال مسؤول العقد:
مخطط الحادث
1. في الساعة 15:03 يوم 16 يناير بتوقيت بكين، حولت محفظة المهاجم الأموال المستخدمة في الهجوم يُظهر تحليلنا الزمني أن الأموال جاءت من 0xe620 وكانت مرتبطة بسحب 10 BNB من Tornado Cash.
2.تم استخدام هذه الأموال لإنشاء وتنفيذ عقدين لاستغلال ثغرات المقبس. العقد الأول مخصص لـ USDC في العنوان المعتمد من قبل شركة SwitchGateway (لقطة الشاشة أدناه). تم الاحتيال على 127 ضحية بحوالي 2.5 مليون دولار.
3. بعد ذلك، العقد الثاني سيكون الهدف هو WETH وUSDT وWBTC وDAI وMATIC في عنوان الضحية. ونتيجة لذلك، فقد 104 ضحايا آخرين الأصول التالية تقريبًا:
-42.48 WETH
-347,005.65 USDT
-2.89 WBTC
-13,821.01 DAI
-165,356.99 MATIC
4. قام المهاجم بتحويل USDC وUSDT إلى ETH.
مصدر الضعف h2>
توجد الثغرة الأمنية التي استغلها المهاجمون في وظيفة بيرفورماكشن في عنوان التوجيه المُضاف حديثًا RouteAddress.
الوظيفة الأصلية لوظيفة بيرفورماكشن في هذا العنوان هي المساعدة في وظائف التغليف وإلغاء التغليف.
ومع ذلك، تظهر ثغرة أمنية حرجة في هذه الوظيفة: يقوم المستخدم باستدعاء البيانات الخارجية مباشرة من خلال SwapExtraData في .call() دون التحقق. وهذا يعني أنه يمكن للمهاجم تنفيذ عمليات عشوائية وظائف ضارة.
في هذه الحادثة، أنشأ المهاجم مدخلات SwapExtraData ضارة يؤدي إلى تشغيل وظيفة النقل من. استغلت المكالمة الخبيثة ترخيص المستخدم لعقد SwitchGateway وسرقت الأموال منه.
على الرغم من أن العقد سيضمن أن رصيد المستخدم سيتغير بشكل صحيح بعد استدعاء fromToken.call() عن طريق التحقق من الرصيد، إلا أن هذه الوظيفة لا تأخذ في الاعتبار الموقف الذي يقوم فيه المهاجم بتعيين المبلغ على 0.
استعادة عملية الهجوم< /h2>
1. باستخدام عقد الهجوم، قام المهاجم باستدعاء 0x00000196() على عقد بوابة المقبس.
2.fallback() يستخدم التوقيع السداسي العشري 196 الضعيفة تم استدعاء عقد عنوان التوجيه (routerAddress).
3. في لقطة الشاشة أدناه، يمكننا أن نرى الإدخال المزيف الذي يستخدمه المهاجم، رقم المبادلة هو 0.
4. بعد ذلك، سيكون WrappedTokenSwapperImpl.performAction() يسمى إجراء المبادلة.
5. بدون أي تحقق، يتم قبول False SwapExtraData و تم تنفيذه بواسطة fromToken (WETH).
6. يكرر المهاجم العملية المذكورة أعلاه حتى الأصول الضحية استنفدت. بعد حدوث المعاملة الضارة، سرعان ما اتصلت شركة Switch بـ DisableRoute، مما أدى إلى حظر المسارات المعرضة للخطر سابقًا ومنع الهجمات الأوسع.
7. في 23 يناير، أعلنت شركة سوكيت أنها استعادت 1032 إيثريوم، وأعلنت في 25 يناير أنها ستعوض جميع الخسائر بالكامل. وقد تم حل هذا الحادث.
ملخص الحدث h2>
في عقود التوجيه ذات ترخيص المستخدم غير المحدود، تعد هجمات بيانات المكالمات الضارة أمرًا شائعًا.
تتضمن الهجمات المشابهة السابقة Dexible وHector Bridge.
في 17 فبراير 2023، تعرضت البورصة اللامركزية Dexible للهجوم، مما تسبب في خسائر تزيد عن 1.5 مليون دولار. يقوم المستغل بإدخال بيانات الاتصال الضارة في وظيفة fill() الخاصة بـ Dexible لسرقة أصول المستخدم.
في 2 يونيو 2023، تعرض بروتوكول شبكة هيكتور للهجوم. نشر المهاجم عقدًا مزيفًا لـ USDC وقام بتحويل 652000 USDC حقيقي من عقد الضحية من خلال بيانات مكالمات ضارة.
عادةً ما تعمل منصات تجميع Blockchain على تحسين السيولة وتقليل الخسائر من خلال تغليف سلسلة من عقود الجسر والتوجيه. ومع ذلك، فإن هذا التغليف المعقد يخلق المزيد من التحديات الأمنية. ص>