مؤخراً، تعرض بروتوكول التشغيل البيني عبر السلاسل Poly Network لهجوم هاكر، مما أثار اهتماماً واسعاً. وفقاً لتحليل فريق الأمان، لم يكن هذا الهجوم ناتجاً عن تسرب مفتاح keeper، بل استخدم المهاجمون بيانات تم تكوينها بمهارة، واستغلوا ثغرة في العقد لتعديل عنوان keeper لعقد EthCrossChainData.
هجوم جوهر
تكمن أهمية الهجوم في دالة verifyHeaderAndExecuteTx الموجودة في عقد EthCrossChainManager. يمكن تنفيذ معاملات عبر السلاسل المحددة من خلال دالة _executeCrossChainTx. نظرًا لأن مالك عقد EthCrossChainData هو عقد EthCrossChainManager، فإن الأخير لديه الحق في استدعاء دالة putCurEpochConPubKeyBytes لعقد EthCrossChainData لتغيير keeper.
استغل المهاجمون هذه الآلية، من خلال تمرير بيانات مصممة بعناية إلى دالة verifyHeaderAndExecuteTx، مما أدى إلى تنفيذ دالة _executeCrossChainTx لاستدعاء دالة putCurEpochConPubKeyBytes لعقد EthCrossChainData، وبالتالي تغيير دور keeper إلى العنوان الذي حدده المهاجم.
عملية الهجوم
قام المهاجم أولاً باستدعاء دالة putCurEpochConPubKeyBytes من خلال دالة verifyHeaderAndExecuteTx لعقد EthCrossChainManager، مما غير keeper.
بعد استبدال عنوان دور keeper، يمكن للمهاجم إنشاء معاملات عشوائية وسحب أي مبلغ من الأموال من العقد.
بعد الانتهاء من الهجوم، وبسبب تعديل الـ keeper، تم رفض تنفيذ المعاملات العادية للمستخدمين الآخرين.
هذه نمط الهجوم ليس فقط تم تنفيذه على سلسلة BSC، ولكن حصلت عمليات مشابهة أيضًا على شبكة إيثريوم.
خاتمة
السبب الجذري لهذا الهجوم هو أن keeper لعقد EthCrossChainData يمكن تغييره بواسطة عقد EthCrossChainManager، بينما يمكن لدالة verifyHeaderAndExecuteTx في عقد EthCrossChainManager تنفيذ البيانات المدخلة من قبل المستخدم. لقد استغل المهاجم هذا العيب التصميمي من خلال بناء بيانات محددة لتغيير عنوان keeper لعقد EthCrossChainData، وليس كما تم الإبلاغ سابقًا عن تسرب مفتاح keeper.
تسلط هذه الحادثة الضوء مرة أخرى على أهمية تصميم الأمان لبروتوكولات سلسلة الكتل، وكذلك المتطلبات الصارمة لإدارة صلاحيات العقود. كما تذكرنا أنه في نظام سلسلة الكتل البيئي، حتى الوظائف التي تبدو غير ضارة، إذا تم استغلالها بشكل خبيث، قد تؤدي إلى ثغرات أمان خطيرة.
!
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تعرضت شبكة بولي لهجوم هاكر: ثغرة في العقد أدت إلى تعديل keeper
تحليل حادثة تعرض شبكة بولي لهجوم هاكر
مؤخراً، تعرض بروتوكول التشغيل البيني عبر السلاسل Poly Network لهجوم هاكر، مما أثار اهتماماً واسعاً. وفقاً لتحليل فريق الأمان، لم يكن هذا الهجوم ناتجاً عن تسرب مفتاح keeper، بل استخدم المهاجمون بيانات تم تكوينها بمهارة، واستغلوا ثغرة في العقد لتعديل عنوان keeper لعقد EthCrossChainData.
هجوم جوهر
تكمن أهمية الهجوم في دالة verifyHeaderAndExecuteTx الموجودة في عقد EthCrossChainManager. يمكن تنفيذ معاملات عبر السلاسل المحددة من خلال دالة _executeCrossChainTx. نظرًا لأن مالك عقد EthCrossChainData هو عقد EthCrossChainManager، فإن الأخير لديه الحق في استدعاء دالة putCurEpochConPubKeyBytes لعقد EthCrossChainData لتغيير keeper.
استغل المهاجمون هذه الآلية، من خلال تمرير بيانات مصممة بعناية إلى دالة verifyHeaderAndExecuteTx، مما أدى إلى تنفيذ دالة _executeCrossChainTx لاستدعاء دالة putCurEpochConPubKeyBytes لعقد EthCrossChainData، وبالتالي تغيير دور keeper إلى العنوان الذي حدده المهاجم.
عملية الهجوم
قام المهاجم أولاً باستدعاء دالة putCurEpochConPubKeyBytes من خلال دالة verifyHeaderAndExecuteTx لعقد EthCrossChainManager، مما غير keeper.
بعد استبدال عنوان دور keeper، يمكن للمهاجم إنشاء معاملات عشوائية وسحب أي مبلغ من الأموال من العقد.
بعد الانتهاء من الهجوم، وبسبب تعديل الـ keeper، تم رفض تنفيذ المعاملات العادية للمستخدمين الآخرين.
هذه نمط الهجوم ليس فقط تم تنفيذه على سلسلة BSC، ولكن حصلت عمليات مشابهة أيضًا على شبكة إيثريوم.
خاتمة
السبب الجذري لهذا الهجوم هو أن keeper لعقد EthCrossChainData يمكن تغييره بواسطة عقد EthCrossChainManager، بينما يمكن لدالة verifyHeaderAndExecuteTx في عقد EthCrossChainManager تنفيذ البيانات المدخلة من قبل المستخدم. لقد استغل المهاجم هذا العيب التصميمي من خلال بناء بيانات محددة لتغيير عنوان keeper لعقد EthCrossChainData، وليس كما تم الإبلاغ سابقًا عن تسرب مفتاح keeper.
تسلط هذه الحادثة الضوء مرة أخرى على أهمية تصميم الأمان لبروتوكولات سلسلة الكتل، وكذلك المتطلبات الصارمة لإدارة صلاحيات العقود. كما تذكرنا أنه في نظام سلسلة الكتل البيئي، حتى الوظائف التي تبدو غير ضارة، إذا تم استغلالها بشكل خبيث، قد تؤدي إلى ثغرات أمان خطيرة.
!