مؤخراً، تعرض بروتوكول التشغيل البيني عبر السلاسل Poly Network لهجوم هاكر، مما أثار اهتمامًا واسعًا. وفقًا لتحليل فريق الأمان، لم يكن هذا الهجوم نتيجة لتسرب مفتاح keeper الخاص، بل استغل المهاجمون ثغرات العقد لتعديل عنوان keeper لعقد EthCrossChainData من خلال بيانات تم إنشاؤها بذكاء.
مبدأ الهجوم
النقطة الأساسية في الهجوم هي أن وظيفة verifyHeaderAndExecuteTx في عقد EthCrossChainManager يمكنها تنفيذ معاملات عبر السلاسل. نظرًا لأن مالك عقد EthCrossChainData هو عقد EthCrossChainManager، فإن الأخير يمكنه استدعاء وظيفة putCurEpochConPubKeyBytes في الأول لتغيير keeper.
استغل المهاجمون دالة verifyHeaderAndExecuteTx لإدخال بيانات مصممة بعناية، من خلال استدعاء داخلي للدالة _executeCrossChainTx، مما أدى في النهاية إلى تنفيذ دالة putCurEpochConPubKeyBytes لعقد EthCrossChainData، وتغيير دور keeper إلى العنوان الذي حدده المهاجم.
بعد استبدال دور keeper، يمكن للمهاجمين تكوين معاملات حسب رغبتهم وسحب أي كمية من الأموال من العقد.
عملية الهجوم
المهاجم أولاً من خلال استدعاء دالة verifyHeaderAndExecuteTx لعقد EthCrossChainManager استدعى دالة putCurEpochConPubKeyBytes، مما غير keeper.
بعد ذلك، نفذ المهاجم سلسلة من معاملات الهجوم، وسحب الأموال من العقد.
بسبب تعديل الـ keeper، تم رفض تنفيذ المعاملات العادية لمستخدمين آخرين.
هجمات مشابهة تحدث أيضًا على شبكة الإيثيريوم، وتستخدم نفس أسلوب الهجوم.
!
الاستنتاج
السبب الجذري لهذا الهجوم هو أن keeper لعقد EthCrossChainData يمكن تعديله بواسطة عقد EthCrossChainManager، بينما يمكن لدالة verifyHeaderAndExecuteTx تنفيذ البيانات التي يقدمها المستخدم. استغل المهاجم هذه الثغرة في التصميم من خلال بناء بيانات معينة لتعديل عنوان keeper لعقد EthCrossChainData، وبالتالي تحقيق هدف الهجوم.
تُذكّرنا هذه الحادثة مرة أخرى بأنه يجب الانتباه بشكل خاص لإدارة الأذونات والتحقق من البيانات عند تصميم بروتوكولات跨链، لتجنب استغلال ثغرات الأمان المماثلة. في الوقت نفسه، يُبرز ذلك أهمية إجراء تدقيقات أمنية منتظمة وبرامج مكافآت الثغرات، لاكتشاف وإصلاح المخاطر الأمنية المحتملة في الوقت المناسب.
شاهد النسخة الأصلية
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
تسجيلات الإعجاب 24
أعجبني
24
5
مشاركة
تعليق
0/400
MetaDreamer
· 07-04 18:08
تمت سرقة بخبز آخر
شاهد النسخة الأصليةرد0
CoffeeNFTs
· 07-02 15:50
العقود الذكية مرة أخرى؟ هل لا يزال بإمكانك تخزين عملة في هذه الأيام؟
شاهد النسخة الأصليةرد0
ShitcoinConnoisseur
· 07-02 15:48
تم اختراق عقد ذكي آخر
شاهد النسخة الأصليةرد0
LayoffMiner
· 07-02 15:47
ثغرة أمنية أخرى جاءت، هربت هربت
شاهد النسخة الأصليةرد0
HodlVeteran
· 07-02 15:31
كل عام هناك حمقى يتم خداع الناس لتحقيق الربح، لقد اعتدنا على ذلك.
تعرضت شبكة Poly لهجوم هاكر: ثغرة في عقد EthCrossChainManager أدت إلى خسارة الأموال
تحليل حادثة الهجوم على شبكة بولي
مؤخراً، تعرض بروتوكول التشغيل البيني عبر السلاسل Poly Network لهجوم هاكر، مما أثار اهتمامًا واسعًا. وفقًا لتحليل فريق الأمان، لم يكن هذا الهجوم نتيجة لتسرب مفتاح keeper الخاص، بل استغل المهاجمون ثغرات العقد لتعديل عنوان keeper لعقد EthCrossChainData من خلال بيانات تم إنشاؤها بذكاء.
مبدأ الهجوم
النقطة الأساسية في الهجوم هي أن وظيفة verifyHeaderAndExecuteTx في عقد EthCrossChainManager يمكنها تنفيذ معاملات عبر السلاسل. نظرًا لأن مالك عقد EthCrossChainData هو عقد EthCrossChainManager، فإن الأخير يمكنه استدعاء وظيفة putCurEpochConPubKeyBytes في الأول لتغيير keeper.
استغل المهاجمون دالة verifyHeaderAndExecuteTx لإدخال بيانات مصممة بعناية، من خلال استدعاء داخلي للدالة _executeCrossChainTx، مما أدى في النهاية إلى تنفيذ دالة putCurEpochConPubKeyBytes لعقد EthCrossChainData، وتغيير دور keeper إلى العنوان الذي حدده المهاجم.
بعد استبدال دور keeper، يمكن للمهاجمين تكوين معاملات حسب رغبتهم وسحب أي كمية من الأموال من العقد.
عملية الهجوم
المهاجم أولاً من خلال استدعاء دالة verifyHeaderAndExecuteTx لعقد EthCrossChainManager استدعى دالة putCurEpochConPubKeyBytes، مما غير keeper.
بعد ذلك، نفذ المهاجم سلسلة من معاملات الهجوم، وسحب الأموال من العقد.
بسبب تعديل الـ keeper، تم رفض تنفيذ المعاملات العادية لمستخدمين آخرين.
هجمات مشابهة تحدث أيضًا على شبكة الإيثيريوم، وتستخدم نفس أسلوب الهجوم.
!
الاستنتاج
السبب الجذري لهذا الهجوم هو أن keeper لعقد EthCrossChainData يمكن تعديله بواسطة عقد EthCrossChainManager، بينما يمكن لدالة verifyHeaderAndExecuteTx تنفيذ البيانات التي يقدمها المستخدم. استغل المهاجم هذه الثغرة في التصميم من خلال بناء بيانات معينة لتعديل عنوان keeper لعقد EthCrossChainData، وبالتالي تحقيق هدف الهجوم.
تُذكّرنا هذه الحادثة مرة أخرى بأنه يجب الانتباه بشكل خاص لإدارة الأذونات والتحقق من البيانات عند تصميم بروتوكولات跨链، لتجنب استغلال ثغرات الأمان المماثلة. في الوقت نفسه، يُبرز ذلك أهمية إجراء تدقيقات أمنية منتظمة وبرامج مكافآت الثغرات، لاكتشاف وإصلاح المخاطر الأمنية المحتملة في الوقت المناسب.