تحليل هجوم إعادة دخول القروض السريعة على شبكة جارفيش
في 15 يناير 2023، تعرض مشروع Jarvis_Network لهجوم من قراصنة، مما أدى إلى خسارة 663101 من MATIC. من خلال تحليل بيانات المعاملات، تم اكتشاف أن هذا الهجوم شمل القروض السريعة وثغرات إعادة الإدخال.
استغل المهاجمون ثغرة في دالة remove_liquidity. عند إزالة السيولة، ستقوم هذه الدالة بإرجاع الرموز المضافة من قبل المستخدم. نظرًا لأن Polygon و EVM هما سلسلتان متجانستان، فإن تحويل MATIC إلى العقد سيؤدي إلى تفعيل منطق إعادة الإدخال للعقد.
ركز على عملية استدعاء دالة getUnderlyingPrice. تتضمن هذه الدالة تفاعل العديد من العقود، وبعض هذه العقود ليست مفتوحة المصدر. من خلال التحليل، وجد أن المشكلة تكمن في قيمة الإرجاع لدالة get_virtual_price. هناك اختلاف كبير في قيمة الإرجاع لهذه الدالة قبل وبعد إعادة الدخول.
بشكل محدد، يتم تحديث متغير self.D بعد تحويل الرمز. عند إزالة السيولة، يتم نقل MATIC إلى عقد المهاجم. عند استدعاء دالة fallback، استعلم المهاجم أولاً عن سعر رمز معين. نظراً لأن تحديث self.D يتأخر عن التحويل، فإن ذلك يؤدي إلى خطأ في الحصول على السعر السابق.
تتضمن عملية إزالة السيولة ما يلي: 1) تدمير رموز LP الخاصة بالمستخدم؛ 2) إرسال أموال الرهن إلى المستخدم؛ 3) تحديث القيمة self.D. تُستخدم self.D لحساب الأسعار، ويتم تحديثها عند إضافة وإزالة السيولة. استغل المهاجمون ثغرة في توقيت تحديث السيولة الكبيرة وself.D، وأعادوا الدخول في الخطوة 2، وقاموا بالاقتراض بسعر 10 أضعاف السعر الأصلي.
'lock'( لمنع إعادة الدخول، إلا أن المهاجمين قد تجاوزوا هذه الآلية الوقائية من خلال الاقتراض عبر العقود.
![تحليل حادثة هجوم إعادة إدخال القروض السريعة لشبكة جارفيز])https://img-cdn.gateio.im/webp-social/moments-9b2de9b00c52d3ff96d5a361df65769a.webp(
![تحليل حادثة هجوم إعادة إدخال القروض السريعة على شبكة جارفيز])https://img-cdn.gateio.im/webp-social/moments-88f9283ee0923cff2a22405715721cd2.webp(
لقد كشفت هذه الهجمة عن أوجه القصور في منطق تعديل المتغيرات وأمان استدعاءات العقود الذكية في المشروع. لمنع هجمات مماثلة، يُنصح الفريق القائم على المشروع باتخاذ التدابير التالية:
إجراء تدقيق أمني صارم.
ضع تعديل المتغيرات قبل الاستدعاء الخارجي.
استخدام طريقة متعددة المصادر للحصول على الأسعار.
اتبع معيار الترميز "التحقق - التأثير - التفاعل" (Checks-Effects-Interactions).
![تحليل حادثة هجوم إعادة الدخول على القروض السريعة لشبكة جارفي])https://img-cdn.gateio.im/webp-social/moments-d41ac025ee561569cce3b941d7e07967.webp(
![تحليل حادثة هجوم إعادة دخول القروض السريعة لشبكة جارفيس])https://img-cdn.gateio.im/webp-social/moments-2c4474781d661306bc8c432dad3942c0.webp(
من خلال هذه التدابير، يمكن تحسين أمان واستقرار المشروع بشكل كبير، ومنع حدوث مثل هذه الهجمات مرة أخرى.
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تسجيلات الإعجاب 22
أعجبني
22
6
مشاركة
تعليق
0/400
NFTHoarder
· منذ 13 س
اختبار هذا المشروع كان ضعيفًا للغاية، تم كسره بخطوة واحدة.
شاهد النسخة الأصليةرد0
RektDetective
· 07-19 06:12
مرة أخرى حدث خطأ، لم يتم إجراء أي فحص على تحويل الماتيك، مبتدئ يكتب الكود؟
شاهد النسخة الأصليةرد0
DuskSurfer
· 07-18 23:29
ما زلت مستلقيًا وأقوم بنسخ العقد، حتى إعادة الإدخال لم أفهمها بعد~
شاهد النسخة الأصليةرد0
StableGenius
· 07-18 23:29
هههه يوم آخر وقرصنة أخرى... كما توقعت بصراحة
شاهد النسخة الأصليةرد0
HypotheticalLiquidator
· 07-18 23:18
لقد عادت العادة القديمة مرة أخرى. لماذا لا يتم قفل قفل إعادة الدخول؟
شاهد النسخة الأصليةرد0
failed_dev_successful_ape
· 07-18 23:11
فريق المشروع أثناء النوم، الآخرون يفتحون الباب بالمفاتيح~
تعرضت شبكة جارفيز لهجوم إعادة إدخال القروض السريعة وخسرت 660،000 MATIC
تحليل هجوم إعادة دخول القروض السريعة على شبكة جارفيش
في 15 يناير 2023، تعرض مشروع Jarvis_Network لهجوم من قراصنة، مما أدى إلى خسارة 663101 من MATIC. من خلال تحليل بيانات المعاملات، تم اكتشاف أن هذا الهجوم شمل القروض السريعة وثغرات إعادة الإدخال.
استغل المهاجمون ثغرة في دالة remove_liquidity. عند إزالة السيولة، ستقوم هذه الدالة بإرجاع الرموز المضافة من قبل المستخدم. نظرًا لأن Polygon و EVM هما سلسلتان متجانستان، فإن تحويل MATIC إلى العقد سيؤدي إلى تفعيل منطق إعادة الإدخال للعقد.
ركز على عملية استدعاء دالة getUnderlyingPrice. تتضمن هذه الدالة تفاعل العديد من العقود، وبعض هذه العقود ليست مفتوحة المصدر. من خلال التحليل، وجد أن المشكلة تكمن في قيمة الإرجاع لدالة get_virtual_price. هناك اختلاف كبير في قيمة الإرجاع لهذه الدالة قبل وبعد إعادة الدخول.
بشكل محدد، يتم تحديث متغير self.D بعد تحويل الرمز. عند إزالة السيولة، يتم نقل MATIC إلى عقد المهاجم. عند استدعاء دالة fallback، استعلم المهاجم أولاً عن سعر رمز معين. نظراً لأن تحديث self.D يتأخر عن التحويل، فإن ذلك يؤدي إلى خطأ في الحصول على السعر السابق.
تتضمن عملية إزالة السيولة ما يلي: 1) تدمير رموز LP الخاصة بالمستخدم؛ 2) إرسال أموال الرهن إلى المستخدم؛ 3) تحديث القيمة self.D. تُستخدم self.D لحساب الأسعار، ويتم تحديثها عند إضافة وإزالة السيولة. استغل المهاجمون ثغرة في توقيت تحديث السيولة الكبيرة وself.D، وأعادوا الدخول في الخطوة 2، وقاموا بالاقتراض بسعر 10 أضعاف السعر الأصلي.
'lock'( لمنع إعادة الدخول، إلا أن المهاجمين قد تجاوزوا هذه الآلية الوقائية من خلال الاقتراض عبر العقود.
![تحليل حادثة هجوم إعادة إدخال القروض السريعة لشبكة جارفيز])https://img-cdn.gateio.im/webp-social/moments-9b2de9b00c52d3ff96d5a361df65769a.webp(
![تحليل حادثة هجوم إعادة إدخال القروض السريعة على شبكة جارفيز])https://img-cdn.gateio.im/webp-social/moments-88f9283ee0923cff2a22405715721cd2.webp(
لقد كشفت هذه الهجمة عن أوجه القصور في منطق تعديل المتغيرات وأمان استدعاءات العقود الذكية في المشروع. لمنع هجمات مماثلة، يُنصح الفريق القائم على المشروع باتخاذ التدابير التالية:
![تحليل حادثة هجوم إعادة الدخول على القروض السريعة لشبكة جارفي])https://img-cdn.gateio.im/webp-social/moments-d41ac025ee561569cce3b941d7e07967.webp(
![تحليل حادثة هجوم إعادة دخول القروض السريعة لشبكة جارفيس])https://img-cdn.gateio.im/webp-social/moments-2c4474781d661306bc8c432dad3942c0.webp(
من خلال هذه التدابير، يمكن تحسين أمان واستقرار المشروع بشكل كبير، ومنع حدوث مثل هذه الهجمات مرة أخرى.