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