فريق أمان CoinEx:يتحدث عن المخاطر الأمنية لـ THORChain (RUNE)
وفقًا لتقرير خزانة THORChain (RUNE) للربع الأول من عام 2022 الصادر في 1 أبريل ، سجلت السلسلة نموًا في الإيرادات على الرغم من التأثير المزدوج لتباطؤ السوق المستمر والعوامل الجيوسياسية غير المستقرة للغاية. تُظهر البيانات العامة أن THORChain سجلت إيرادات بقيمة 2.17 مليار دولار في الربع الأول من عام 2022. اكتسبت THORChain ، التي اشتهرت بأنها “نسخة عبر سلسلة من UniSwap” ، موطئ قدم في سوق التداول عبر السلاسل بالاعتماد على مزاياها الفريدة وحصلت على تقدير واسع بين المستثمرين.
وراء كل هذه البهجة ، تشعر THORChain أيضًا بانزعاج عميق من القرصنة. تعرضت السلسلة لانتهاكات أمنية متكررة منذ إطلاقها على Ethereum ، وهي حقيقة تلقي بظلال من الشك على أمنها. في 11 أبريل ، غردت THORChain حول هجمات التصيد الاحتيالي ، محذرة المستخدمين من التفاعل مع [DeTHOR] أو الرموز المميزة الأخرى غير المعروفة داخل محافظهم ، الأمر الذي أثار مرة أخرى مخاوف بشأن مشكلاتها الأمنية.
أثناء بناء نظام أمان سليم لمنتجات CoinEx ، يتتبع فريق أمان CoinEx أيضًا الحوادث الأمنية في مساحة blockchain لمساعدة المستخدمين على فهم أمان المشاريع المختلفة بشكل أفضل من منظور الأمان التقني وتخفيف مخاطر الاستثمار. بهدف تحسين معايير الأمان لقطاع blockchain ، قام فريق أمان CoinEx بتحليل المخاطر الأمنية لـ THORChain (RUNE).
يأمل الفريق أن تتمكن THORChain من ملاحظة المخاطر التالية والتخفيف من حدتها من خلال تحسين رموز العقود الذكية ذات الصلة. بالإضافة إلى ذلك ، تعد هذه المقالة أيضًا تحذيرًا للمستخدمين ، لتذكيرهم بأن يكونوا أكثر وعياً بأمان الأصول وتجنب خسائر الأصول.
ما مدى أمان THORChain (RUNE)؟
من خلال تحليل رمز العقد ومنطق THORChain (RUNE) ، وجد فريق أمان CoinEx المخاطر التالية:
للبدء ، دعنا نتحقق من رمز عقد THORChain (RUNE):
https://etherscan.io/address/0x3155ba85d5f96b2d030a4966af206230e46849cb#code
يمكننا أن نقول أن RUNE هو رمز مميز من طراز ERC-20. تجدر الإشارة إلى أنه بصرف النظر عن واجهة ERC-20 ، توفر THORChain (RUNE) واجهة إضافية:
وفقًا لـ transferTo (كما هو موضح في الصورة أعلاه) ، تستخدم THORChain (RUNE) tx.origin ، وهو أحد الأسباب الكامنة وراء مخاطر الأمان. هنا ، يجب أن نشرح الفرق بين tx.origin و msg.sender:
توضح الصورة أدناه ما يحدث عندما يتصل العنوان العادي بالعقد الذكي:
في مثل هذه الحالات ، msg.sender = account.address و tx.origin = account.address ، مما يعني أن msg.sender هو نفسه tx.origin.
ومع ذلك ، في العقد B ، msg.sender = ContractA.address، while tx.origin = account.address. لذلك ، يشبه tx.origin متغيرًا شاملاً يجتاز مكدس الاستدعاءات بالكامل ويعيد عنوان الحساب الذي أرسل المعاملة في الأصل. هذه هي المشكلة الرئيسية: حتى الآن ، ترتبط جميع الهجمات المعروفة تقريبًا ضد THORChain (RUNE) بـ tx.origin.
دعنا الآن نكتشف كيف يسرق المهاجمون رموز RUNE للمستخدمين من خلال tx.origin:
الهجوم رقم 1: ilfer a Goat from a Herd
يتم تقسيم العناوين الموجودة على Ethereum إلى عناوين خارجية وعناوين عقود. يختلف نقل ETH إلى هذين النوعين من العناوين من خلال عناوين خارجية اختلافًا جوهريًا. تنص الوثائق الرسمية للصلابة على أن عنوان العقد يجب أن ينفذ وظيفة استلام إيثر قبل إجراء التحويلات.
في ضوء ميزات tx.origin ، يمكن للقراصنة إنشاء عقد هجوم:
عندما يتلقى عقد Attack تحويل ETH من مستخدم ، فإنه “ilfer a Goat from a Herd” – سوف يسرق العقد رموز RUNE للمستخدم في هذه العملية.
الهجوم رقم 2: هجوم داخلي
الهجوم الداخلي هو نوع خاص من الهجوم. عند محاولة سرقة RUNE للمستخدم من خلال هجوم داخلي ، يجب أن يمتلك المخترق رمزًا مميزًا للوسيط. علاوة على ذلك ، يجب أن يستدعي الرمز أيضًا عقود الطرف الثالث. وفقًا لسجلات نقل RUNE على Ethereum ، اخترق بعض المهاجمين RUNE من خلال عمليات نقل AMP Token.
يستخدم رمز AMP القياسي ERC-1820 لإدارة تسجيل الخطاف وفحص ما إذا كان الخطاف مسجلاً عند كل عملية نقل. إذا تم تسجيل الخطاف ، فسيتم استدعاء الخطاف.
يوضح رمز العقد الخاص برمز AMP أن التنفيذ النهائي للنقل هو: _transferByPartition. في غضون ذلك ، هناك مكالمتان تتضمنان TransferHook: _callPreTransferHooks (قبل النقل) و _callPostTransferHooks (بعد التحويل). على وجه الخصوص ، فإن _callPreTransferHooks مخصص للعنوان من ، بينما _callPostTransferHooks هو لعنوان to (أي عنوان الاستلام).
بالنسبة للمستخدمين العاديين ، فإن سرقة الرموز المميزة من أنفسهم أمر لا طائل منه. لذلك ، قد يستغل المهاجمون _callPostTransferHooks. دعنا الآن نتحقق من أكواد _callPostTransferHooks
يمكننا أن نقول أن رد الاتصال الوحيد الذي يمكن للمهاجمين استغلاله هو IAmpTokensRecipient (تطبيق المتلقي).
بعد ذلك ، سنوضح كيف يمكن استخدام هذه المكالمة لتحويل RUNE للمستخدم أثناء إجراء تحويل AMP Token.
الخطوة 1: مطلوب عقد اتصال (كما هو موضح أدناه):
و الخطوة 2: نشر العقد للحصول على عنوان الهجوم.
الخطوة 3: اتصل بواجهة عقد ERC-1820 (setInterfaceImplementer) لتسجيل الواجهة.
ERC-1820 Address: 0x1820a4B7618BdE71Dce8cdc73aAB6C95905faD24
واجهة العقد: setInterfaceImplementer(address toAddr, bytes32 interfaceHash, address implementer)
على وجه الخصوص ، toAddr هو عنوان استلام تحويل AMP ،
الواجهة هي تجزئة AmpTokensRecipient:
0xfa352d6368bbc643bcf9d528ffaba5dd3e826137bc42f935045c6c227bd4c72a
المنفذ هو عنوان الهجوم الذي تم الحصول عليه في الخطوة 2.
الخطوة 4: قم بإغراء المستخدم بنقل AMP إلى toAddr لتشغيل رد اتصال ، وسرقة RUNE الخاص به في نفس الوقت.
الهجوم رقم 3: هجوم التصيد
كما يوحي اسمها ، في هجوم التصيد الاحتيالي ، يعد المهاجم بالتخلي عن فوائد لا تصدق لجذب المستخدمين إلى أداء عمليات تعاقدية معينة. هنا ، سنقدم هجوم تصيد شائع.
الخطوة 1: يُصدر المهاجم رمزًا مميزًا ERC-20 ، وقد يكتبه في أي واجهة عقد تتضمن توقيعات.
الخطوة 2: قم بإنشاء زوج تداول على Uniswap أو أي مقايضة أخرى ؛
ثم نأتي الخطوة 3: تقديم إنزال جوي لجميع المستخدمين / العناوين الذين يحملون رموز RUNE ؛
يكتمل العمل الأولي لهجوم التصيد بشكل أساسي من خلال الخطوات المذكورة أعلاه. بعد ذلك ، يتعين على المهاجم فقط انتظار المستخدمين للتداول على المقايضة ، ويخاطر المستخدمون بفقدان RUNE بمجرد قيامهم بعمليات مثل الموافقة ، والنقل ، وما إلى ذلك.
كيف يجب على فريق المشروع RUNE تحسين رمز العقد لجعل نفسه أكثر أمانًا وحماية أصول المستخدمين ؟
الجواب الوحيد هو توخي الحذر بشأن استخدام tx.origin.
كيف يمكن للمستخدمين العاديين التخفيف من المخاطر وحماية أصولهم في مواجهة الهجمات التي يبدو أنه لا يمكن تجنبها؟ يقدم فريق أمان CoinEx الاقتراحات التالية:
1. للهجوم رقم 1: عند إجراء التحويل ، تتبع استهلاك الغاز المقدر. بالنسبة لتحويل ETH المنتظم ، فإن رسوم الغاز البالغة 21000 أكثر من كافية. كن حذرًا إذا تجاوز استهلاك الغاز هذا الرقم كثيرًا.
2. للهجوم رقم 2: اعزل الرموز المميزة الخاصة بك عن طريق اعتماد محافظ مختلفة. يمكنك تخزين رموز مختلفة في عناوين مختلفة. هناك حاجة إلى مزيد من الحذر عندما يتعلق الأمر بعنوان المحفظة الساخنة الذي توفره البورصات.
3. للهجوم رقم 3: الجشع هو مصدر كل شر. لا تشارك بشكل أعمى في أي حدث إنزال جوي.
لطالما كان الأمن مصدر قلق كبير في قطاع blockchain. يجب على جميع اللاعبين ، بما في ذلك فرق المشروع والتبادلات ، إعطاء الأولوية للأمان أثناء تشغيل المشروع ، والحفاظ على أصول المستخدمين آمنة ومأمونة ، وتعزيز النمو السليم لصناعة blockchain بشكل مشترك.