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