تحليل المبدأ لحدث هجوم BNO

金色财经_

في 18 يوليو 2023 ، بتوقيت بكين ، عانت شركة Ocean BNO من هجوم قرض سريع ، وحقق المهاجم ربحًا بنحو 500 ألف دولار أمريكي.

! [20230718161919783image.png] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-38970f9230-dd1a6f-7649e1)

أجرى SharkTeam تحليلًا تقنيًا لهذه الحادثة لأول مرة ، ولخص الاحتياطات الأمنية ، على أمل أن تتعلم مشاريع المتابعة منه ، وأن يبني بشكل مشترك خط دفاع أمني لصناعة blockchain.

** 1. تحليل الأحداث **

عنوان المهاجم:

0xa6566574edc60d7b2adbacedb71d5142cf2677fb

عقد الهجوم:

0xd138b9a58d3e5f4be1cd5ec90b66310e241c13cd

العقد المهاجم:

0xdCA503449899d5649D32175a255A8835A03E4006

هجوم المعاملات:

0x33fed54de490797b99b2fc7a159e43af57e9e6bdefc2c2d052dc814cfe0096b9

عملية الهجوم:

(1) اقترض المهاجم (0xa6566574) 286449 عملة BNO من خلال قرض فلاش pancakeSwap.

! [20230718161449018image.png] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-f469426182-dd1a6f-7649e1)

(2) ثم قم باستدعاء وظيفة ال stockNft للعقد المهاجم (0xdCA50344) لتعهد اثنين من nft.

! [20230718161457306image.png] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-04edd0e58c-dd1a6f-7649e1)

(3) ثم اتصل بوظيفة التعهد للعقد المهاجم (0xdCA50344) لتعهد عملات 277856 BNO.

! [20230718161633397image.png] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-869690e6f1-dd1a6f-7649e1)

(4) استدعاء وظيفة سحب الطوارئ من العقد المهاجم (0xdCA50344) لاستخراج جميع BNO

! [20230718161641122image.png] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-f71a2770dd-dd1a6f-7649e1)

(5) ثم قم باستدعاء وظيفة unstakeNft للعقد المهاجم (0xdCA50344) ، واسترجع الرقمين المتعهد بهما واحصل على رموز BNO الإضافية.

! [20230718161732948image.png] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-029563c095-dd1a6f-7649e1)

(6) كرر العملية المذكورة أعلاه للحصول باستمرار على رموز BNO إضافية

! [20230718161752651image.png] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-97713b8e2d-dd1a6f-7649e1)

(7) بعد سداد القرض السريع ، استبدل جميع رموز BNO بـ 50.5W BUSD واترك السوق مع الربح.

! [20230718161800166image.png] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-32ec4d3c8e-dd1a6f-7649e1)

** ثانيًا ، تحليل الضعف **

السبب الجذري لهذا الهجوم هو: هناك مشكلة في آلية حساب المكافأة ومنطق التفاعل لوظيفة السحب الطارئ في العقد المهاجم (0xdCA50344) ، مما يتسبب في حصول المستخدم على رمز مكافأة إضافي بعد سحب المبلغ الأساسي.

! [20230718161812689image.png] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-0a81429476-dd1a6f-7649e1)

! [20230718161820027image.png] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-924ee76fca-dd1a6f-7649e1)

يوفر العقد وظيفة EmergencyWithdraw لسحب الرموز في حالات الطوارئ ، ويمسح إجمالي الرهن العقاري والمكافأة للديون للمهاجم ، ولكنه لا يمسح متغير nftAddition الخاص بالمهاجم ، ويتم أيضًا حساب متغير nftAddition من خلال متغير allstake.

! [20230718161834850image.png] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-5a2de1b17c-dd1a6f-7649e1)

في وظيفة unstakeNft ، سيستمر احتساب المكافأة الحالية للمستخدم ، وإذا لم تتم إعادة تعيين متغير nftAddition إلى الصفر ، فستظل الدالة انتظارًا تعيد قيمة إضافية لمكافأة BNO ، مما يتسبب في حصول المهاجم على رموز BNO إضافية.

! [20230718161842539image.png] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-a4c8cc20c9-dd1a6f-7649e1)

** ثالثًا ، التوصيات الأمنية **

ردًا على هذا الهجوم ، يجب اتباع الاحتياطات التالية أثناء عملية التطوير:

(1) عند حساب المكافآت ، تحقق مما إذا كان المستخدم قد سحب رأس المال.

(2) قبل بدء المشروع عبر الإنترنت ، من الضروري طلب المساعدة الفنية من فريق تدقيق محترف تابع لجهة خارجية.

إخلاء المسؤولية: قد تكون المعلومات الواردة في هذه الصفحة من مصادر خارجية ولا تمثل آراء أو مواقف Gate. المحتوى المعروض في هذه الصفحة هو لأغراض مرجعية فقط ولا يشكّل أي نصيحة مالية أو استثمارية أو قانونية. لا تضمن Gate دقة أو اكتمال المعلومات، ولا تتحمّل أي مسؤولية عن أي خسائر ناتجة عن استخدام هذه المعلومات. تنطوي الاستثمارات في الأصول الافتراضية على مخاطر عالية وتخضع لتقلبات سعرية كبيرة. قد تخسر كامل رأس المال المستثمر. يرجى فهم المخاطر ذات الصلة فهمًا كاملًا واتخاذ قرارات مدروسة بناءً على وضعك المالي وقدرتك على تحمّل المخاطر. للتفاصيل، يرجى الرجوع إلى إخلاء المسؤولية.
تعليق
0/400
لا توجد تعليقات