المصدر: Shenzhen Lingshi Technology
الخلفية
في 25 فبراير 2024، رصدنا هجومًا على إيثريوم: https:// etherscan.io/tx/0xf0464b01d962f714eee9d4392b2494524d0e10ce3eb3723873afd1346b8b06e4، الذي استهدف BlueBerryProtocol، مع خسارة تبلغ حوالي 455 إيثريوم (1.4 مليون دولار أمريكي). لحسن الحظ، تم اعتراض الهجوم بواسطة قبعة بيضاء بمعرف c0ffeebabe (0xC0ffeEBABE5D496B2DDE509f9fa189C25cF29671[c0ffeebabe.eth])، وتم إرجاع 366.5 إيثريوم 1.2 مليون دولار أمريكي أخيرًا.
BlueBerryProtocol هو مشروع DeFi يعتمد على Compound fork، ويوفر الإقراض والرهن العقاري وغيرها من الخدمات. وضع التشغيل المحدد هو كما يلي:
تحليل الهجوم< / h2>
استعار المهاجم أولاً 1 WETH من Balancer من خلال قرض سريع.
وبعد ذلك، رهن المهاجم 1 WETH إلى BlueBerryProtocol في، والنعناع 1 بيث. بعد ذلك، استخدم المهاجم 1 bWETH كضمان واستعار 8616 أوم (عشري = 9)، 913262 USDC (عشري = 6)، و6.86 WBTC (عشري = 8) على التوالي.
أخيرًا، سيحصل المهاجم على OHM وUSDC و يتم تبادل WBTC مقابل 457 ETH.
تحليل الثغرات الأمنية
السبب الجذري للمشكلة هو أن الكود يتعامل مع الجزء العشري بشكل غير صحيح عند معالجة أصول مختلفة. العلامة العشرية لـ WETH هي 18، والعلامة العشرية لـ OHM هي 9، والعلامة العشرية لـ USDC هي 6، والعلامة العشرية لـ WBTC هي 8.
ومع ذلك، يتم قياس أوراكل سعر BlueberryProtocol وفقًا للعلامة العشرية = 18 عند معالجة سعر الرمز المميز.
ونتيجة لذلك، تقلصت قيمة أوم بمقدار 1e9، وتقلصت قيمة USDC بمقدار 1e12، وتقلصت قيمة WBTC بمقدار 1e10. ونتيجة لذلك، استولى المهاجم على أصول بقيمة 460 إيثريوم مع 1 إيثريوم فقط كضمان.
الملخص
تحدث مشكلة عدم الحصانة هذه بسبب استخدام المشروع لنفس التعليمات البرمجية لمعالجة الرموز المميزة المختلفة والفشل في مراعاة الكسور العشرية المختلفة للرموز المميزة المختلفة. ونتيجة لذلك، تقلصت الأصول ذات الأحجام العشرية الأصغر بشكل كبير وتم اقتراضها كضمان من قبل المهاجمين بتكلفة منخفضة للغاية. من المستحسن أن تقوم أطراف المشروع بإجراء عمليات تدقيق كافية وتدقيق شامل على العقود الذكية قبل أن تصبح العقود عبر الإنترنت لتجنب مثل هذه المشكلات الأمنية. ص>