Poolz تعرضت لهجوم تجاوز حسابي، خسارة حوالي 66.5 ألف دولار
مؤخراً، تعرض مشروع Poolz على عدة شبكات بلوكشين لهجمات، مما أدى إلى سرقة كميات كبيرة من الرموز بقيمة إجمالية تبلغ حوالي 665,000 دولار أمريكي. وقعت هذه الهجمات في 15 مارس 2023، وأثرت على عقود Poolz على عدة شبكات مثل إيثيريوم و BNB وشبكة بوليغون.
استغل المهاجمون ثغرة في تدفق الأعداد في عقد Poolz الذكي. على وجه التحديد، كانت المشكلة في دالة getArraySum في دالة CreateMassPools. كانت هذه الدالة عند حساب السيولة الأولية للبركة، تتسبب في ظهور عدد كبير من السيولة بسبب تجاوز العدد الصحيح، مما يسمح للمهاجمين بإنشاء وهم كبير من السيولة من خلال تحويل كميات قليلة جداً من الرموز.
تكون عملية الهجوم كما يلي:
قام المهاجم أولاً بتبادل كمية صغيرة من رموز MNZ على بعض DEX.
ثم تم استدعاء دالة CreateMassPools التي تحتوي على ثغرات. هذه الدالة تسمح للمستخدمين بإنشاء برك السيولة بكميات كبيرة وتوفير سيولة أولية.
عند حساب المبلغ الأولي من السيولة، حدث تجاوز عددي في دالة getArraySum. مجموع المصفوفة الذي أرسله المهاجم يتجاوز القيمة القصوى التي يمكن أن تمثلها uint256، مما يؤدي إلى أن تصبح قيمة إرجاع الدالة 1.
ومع ذلك، لا يزال العقد يستخدم القيم الأصلية لمصفوفة _StartAmount عند تسجيل خصائص المسبح. وهذا أدى إلى أن المهاجمين قاموا بتحويل 1 رمز فقط، ومع ذلك تم تسجيلهم على أنهم يمتلكون سيولة ضخمة.
أخيرًا، قام المهاجم باستدعاء دالة السحب لسحب الأموال، مُكملًا الهجوم.
كشفت هذه الحادثة عن خطورة تجاوز السعة في العقود الذكية. لمنع حدوث مشكلات مماثلة، ينبغي على المطورين النظر في استخدام إصدارات أحدث من مترجم Solidity، حيث تقوم بإجراء فحوصات التجاوز تلقائيًا. بالنسبة للمشاريع التي تستخدم إصدارات أقدم من Solidity، يمكن استخدام مكتبة SafeMath من OpenZeppelin لمعالجة العمليات الحسابية الصحيحة لتجنب مخاطر التجاوز.
هذه الهجمة تؤكد مرة أخرى على الحاجة إلى الانتباه بشكل خاص لسلامة العمليات الحسابية عند تطوير وتدقيق العقود الذكية. في الوقت نفسه، يجب على الفريق المعني بالمشروع إجراء تدقيقات أمنية بشكل دوري لاكتشاف وإصلاح الثغرات المحتملة في الوقت المناسب لحماية أصول المستخدمين.
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تسجيلات الإعجاب 16
أعجبني
16
6
مشاركة
تعليق
0/400
OnChainDetective
· منذ 3 س
رصدت هذا نمط الهجوم من قبل... خطأ مبتدئ في تجاوز سعة العدد الصحيح. متى سيتعلم المطورون استخدام safeMath smh
شاهد النسخة الأصليةرد0
AirdropGrandpa
· منذ 3 س
مرة أخرى، تجاوز المكدس، إنه حقًا سيء.
شاهد النسخة الأصليةرد0
CryptoSurvivor
· منذ 3 س
هذه الثغرات الصغيرة يمكن اكتشافها حقًا، إنها حقًا تدل على الفساد.
تعرض Poolz لهجوم على تجاوز السعة الحسابية مما أدى إلى خسارة قدرها 665000 دولار أمريكي وتأثر المشاريع متعددة السلاسل.
Poolz تعرضت لهجوم تجاوز حسابي، خسارة حوالي 66.5 ألف دولار
مؤخراً، تعرض مشروع Poolz على عدة شبكات بلوكشين لهجمات، مما أدى إلى سرقة كميات كبيرة من الرموز بقيمة إجمالية تبلغ حوالي 665,000 دولار أمريكي. وقعت هذه الهجمات في 15 مارس 2023، وأثرت على عقود Poolz على عدة شبكات مثل إيثيريوم و BNB وشبكة بوليغون.
استغل المهاجمون ثغرة في تدفق الأعداد في عقد Poolz الذكي. على وجه التحديد، كانت المشكلة في دالة getArraySum في دالة CreateMassPools. كانت هذه الدالة عند حساب السيولة الأولية للبركة، تتسبب في ظهور عدد كبير من السيولة بسبب تجاوز العدد الصحيح، مما يسمح للمهاجمين بإنشاء وهم كبير من السيولة من خلال تحويل كميات قليلة جداً من الرموز.
تكون عملية الهجوم كما يلي:
قام المهاجم أولاً بتبادل كمية صغيرة من رموز MNZ على بعض DEX.
ثم تم استدعاء دالة CreateMassPools التي تحتوي على ثغرات. هذه الدالة تسمح للمستخدمين بإنشاء برك السيولة بكميات كبيرة وتوفير سيولة أولية.
عند حساب المبلغ الأولي من السيولة، حدث تجاوز عددي في دالة getArraySum. مجموع المصفوفة الذي أرسله المهاجم يتجاوز القيمة القصوى التي يمكن أن تمثلها uint256، مما يؤدي إلى أن تصبح قيمة إرجاع الدالة 1.
ومع ذلك، لا يزال العقد يستخدم القيم الأصلية لمصفوفة _StartAmount عند تسجيل خصائص المسبح. وهذا أدى إلى أن المهاجمين قاموا بتحويل 1 رمز فقط، ومع ذلك تم تسجيلهم على أنهم يمتلكون سيولة ضخمة.
أخيرًا، قام المهاجم باستدعاء دالة السحب لسحب الأموال، مُكملًا الهجوم.
كشفت هذه الحادثة عن خطورة تجاوز السعة في العقود الذكية. لمنع حدوث مشكلات مماثلة، ينبغي على المطورين النظر في استخدام إصدارات أحدث من مترجم Solidity، حيث تقوم بإجراء فحوصات التجاوز تلقائيًا. بالنسبة للمشاريع التي تستخدم إصدارات أقدم من Solidity، يمكن استخدام مكتبة SafeMath من OpenZeppelin لمعالجة العمليات الحسابية الصحيحة لتجنب مخاطر التجاوز.
هذه الهجمة تؤكد مرة أخرى على الحاجة إلى الانتباه بشكل خاص لسلامة العمليات الحسابية عند تطوير وتدقيق العقود الذكية. في الوقت نفسه، يجب على الفريق المعني بالمشروع إجراء تدقيقات أمنية بشكل دوري لاكتشاف وإصلاح الثغرات المحتملة في الوقت المناسب لحماية أصول المستخدمين.