في الآونة الأخيرة، تعرض بروتوكول التشغيل البيني عبر السلاسل Poly Network لهجوم هاكر، مما أثار اهتمامًا واسعًا في الصناعة. قامت فرق الأمان بتحليل عميق لهذا الحدث، وكشفت عن الأساليب المحددة التي استخدمها المهاجمون وعملية الهجوم.
مبدأ الهجوم
جوهر الهجوم يكمن في استغلال الثغرة في عقد EthCrossChainManager. قام المهاجمون من خلال وظيفة verifyHeaderAndExecuteTx بتمرير بيانات مصممة بعناية، ونجحوا في تعديل keeper لعقد EthCrossChainData ليكون عنوانًا محددًا. هذا يتعارض مع ما تم تداوله سابقًا حول تسرب مفتاح keeper.
تفاصيل الهجوم
يمكن لدالة verifyHeaderAndExecuteTx لعقد EthCrossChainManager تنفيذ معاملات عبر السلاسل من خلال دالة _executeCrossChainTx.
عقد EthCrossChainData يمتلكه عقد EthCrossChainManager، لذلك يمكن للأخير استدعاء دالة putCurEpochConPubKeyBytes لتعديل keeper.
المهاجم يستخدم دالة verifyHeaderAndExecuteTx، ويمرر بيانات مخصصة، مما يجعل دالة _executeCrossChainTx تنفذ دالة putCurEpochConPubKeyBytes لعقد EthCrossChainData، وبالتالي تغيير keeper إلى عنوان يتحكم به المهاجم.
بعد استبدال دور keeper، يمكن للمهاجمين إنشاء معاملات بحرية وسحب أي مبلغ من الأموال من العقد.
عملية الهجوم
المهاجم أولاً من خلال استدعاء دالة verifyHeaderAndExecuteTx لعقد EthCrossChainManager استبدل دالة putCurEpochConPubKeyBytes لتغيير keeper.
بعد ذلك، قام المهاجم بتنفيذ سلسلة من معاملات الهجمات، وسحب الأموال من العقد.
بعد الانتهاء من الهجوم، وبسبب تعديل الـ keeper، تم رفض تنفيذ المعاملات العادية للمستخدمين الآخرين.
تم تنفيذ تقنيات هجوم مماثلة على شبكة الإيثيريوم، حيث استخدم المهاجمون نفس خطوات العملية.
!
الاستنتاج
تكمن نقطة ضعف هذا الهجوم في أنه يمكن تعديل keeper لعقد EthCrossChainData بواسطة عقد EthCrossChainManager، حيث يمكن لوظيفة verifyHeaderAndExecuteTx تنفيذ البيانات التي يقدمها المستخدم. واستغل المهاجمون هذه الثغرة من خلال إنشاء بيانات معينة، مما أدى إلى تغيير keeper لعقد EthCrossChainData بنجاح، وبالتالي تنفيذ سرقة الأموال.
تُذكّرنا هذه الحادثة مرة أخرى بأنه يجب الانتباه بشكل خاص إلى إدارة الأذونات وآليات التحقق من الأمان عند تصميم وتنفيذ بروتوكولات السلاسل المتعددة، لمنع حدوث هجمات مماثلة. في الوقت نفسه، ينبغي أن تكون تدقيق العقود الذكية واكتشاف الثغرات أكثر شمولاً وعمقاً، خاصةً في الوظائف التي تتعلق بالأدوار الرئيسية وتغيير الأذونات.
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تسجيلات الإعجاب 19
أعجبني
19
8
مشاركة
تعليق
0/400
DefiPlaybook
· منذ 22 س
تم سرقة عقد ذكي آخر... هل عبر السلاسل هو حفرة جحيم؟
شاهد النسخة الأصليةرد0
TestnetScholar
· 08-04 02:59
عليهم أن يبدأوا في إصلاح الثغرات مرة أخرى، أليس كذلك؟
تعرضت شبكة بولي لهجوم هاكر، مما أدى إلى فقدان الأموال بسبب ثغرة في عقد EthCrossChainManager.
تحليل حادثة تعرض شبكة Poly لهجوم هاكر
في الآونة الأخيرة، تعرض بروتوكول التشغيل البيني عبر السلاسل Poly Network لهجوم هاكر، مما أثار اهتمامًا واسعًا في الصناعة. قامت فرق الأمان بتحليل عميق لهذا الحدث، وكشفت عن الأساليب المحددة التي استخدمها المهاجمون وعملية الهجوم.
مبدأ الهجوم
جوهر الهجوم يكمن في استغلال الثغرة في عقد EthCrossChainManager. قام المهاجمون من خلال وظيفة verifyHeaderAndExecuteTx بتمرير بيانات مصممة بعناية، ونجحوا في تعديل keeper لعقد EthCrossChainData ليكون عنوانًا محددًا. هذا يتعارض مع ما تم تداوله سابقًا حول تسرب مفتاح keeper.
تفاصيل الهجوم
يمكن لدالة verifyHeaderAndExecuteTx لعقد EthCrossChainManager تنفيذ معاملات عبر السلاسل من خلال دالة _executeCrossChainTx.
عقد EthCrossChainData يمتلكه عقد EthCrossChainManager، لذلك يمكن للأخير استدعاء دالة putCurEpochConPubKeyBytes لتعديل keeper.
المهاجم يستخدم دالة verifyHeaderAndExecuteTx، ويمرر بيانات مخصصة، مما يجعل دالة _executeCrossChainTx تنفذ دالة putCurEpochConPubKeyBytes لعقد EthCrossChainData، وبالتالي تغيير keeper إلى عنوان يتحكم به المهاجم.
بعد استبدال دور keeper، يمكن للمهاجمين إنشاء معاملات بحرية وسحب أي مبلغ من الأموال من العقد.
عملية الهجوم
المهاجم أولاً من خلال استدعاء دالة verifyHeaderAndExecuteTx لعقد EthCrossChainManager استبدل دالة putCurEpochConPubKeyBytes لتغيير keeper.
بعد ذلك، قام المهاجم بتنفيذ سلسلة من معاملات الهجمات، وسحب الأموال من العقد.
بعد الانتهاء من الهجوم، وبسبب تعديل الـ keeper، تم رفض تنفيذ المعاملات العادية للمستخدمين الآخرين.
تم تنفيذ تقنيات هجوم مماثلة على شبكة الإيثيريوم، حيث استخدم المهاجمون نفس خطوات العملية.
!
الاستنتاج
تكمن نقطة ضعف هذا الهجوم في أنه يمكن تعديل keeper لعقد EthCrossChainData بواسطة عقد EthCrossChainManager، حيث يمكن لوظيفة verifyHeaderAndExecuteTx تنفيذ البيانات التي يقدمها المستخدم. واستغل المهاجمون هذه الثغرة من خلال إنشاء بيانات معينة، مما أدى إلى تغيير keeper لعقد EthCrossChainData بنجاح، وبالتالي تنفيذ سرقة الأموال.
تُذكّرنا هذه الحادثة مرة أخرى بأنه يجب الانتباه بشكل خاص إلى إدارة الأذونات وآليات التحقق من الأمان عند تصميم وتنفيذ بروتوكولات السلاسل المتعددة، لمنع حدوث هجمات مماثلة. في الوقت نفسه، ينبغي أن تكون تدقيق العقود الذكية واكتشاف الثغرات أكثر شمولاً وعمقاً، خاصةً في الوظائف التي تتعلق بالأدوار الرئيسية وتغيير الأذونات.