بواسطة: فريق الأمن Jiujiu@slowmist
الخلفية
< p style="text-align: left;"> وفقًا لمعلومات استخباراتية من فريق SlowMist الأمني، في 4 سبتمبر 2024، تعرض مشروع دخل السيولة اللامركزية Penpie للهجوم، وحصل المهاجم على ما يقرب من 30 مليون دولار أمريكي. قام فريق أمان SlowMist بتحليل الحادثة وشارك النتائج على النحو التالي:
(https://x.com/Penpiexyz_io/status/1831058385330118831)
< strong>المعرفة الأساسية
Pendle Finance هو بروتوكول تداول دخل مالي لامركزي بقيمة إجمالية مقفلة تزيد عن 4.5 مليار دولار. تم دمج البروتوكول بنجاح مع Magpie بهدف تحسين فرص الإيرادات وتعزيز نموذج veTokenomics الخاص به. على هذا الأساس، قدم مشروع Penpie وظيفة تعدين السيولة لتمكين سوق Pendle Finance من تحقيق الدخل السلبي.
يتضمن Pendle Finance المفاهيم المهمة التالية:
PT (الرمز الرئيسي): يمثل المبلغ الرئيسي في وقت معين في المستقبل. إن الاحتفاظ بـ PT يعني أنك تملك أصل المبلغ ويمكنك استرداده بعد الاستحقاق. على سبيل المثال، إذا كنت تمتلك خيار PT-stETH الذي تنتهي صلاحيته خلال عام واحد، فستتمكن من استرداد قيمة stETH بقيمة 1 ETH بعد عام واحد.
YT (رمز العائد): يمثل الأرباح المستقبلية. يعني الاحتفاظ بـ YT أنك تمتلك جميع العوائد في الوقت الفعلي الناتجة عن الأصول الأساسية، ويمكنك المطالبة بالعائدات المتراكمة على Pendle يدويًا في أي وقت. إذا كنت تمتلك 1 YT-stETH وكان متوسط العائد على stETH هو 5%، ففي نهاية العام سيكون لديك 0.05 stETH.
SY (العائد البسيط): يستخدم لتغليف أي عائد فائدة عقد العملة. يوفر واجهة موحدة للتفاعل مع آلية توليد العائد لأي رمز مميز يحمل فائدة.
LPT (رمز موفر السيولة): يمثل سوق السيولة، كشهادة توفر السيولة للأصول الأساسية.
PRT (رمز مكافأة المجمع): يمثل المستخدمين في Penpie إيصال الإيداع الجماعي لإيداع رموز LPT.
السبب الجذري
جوهر هذا الحادث هو أن Penpie افترضت خطأً أن جميع الأسواق التي أنشأتها Pendle Finance كانت مشروعة عند تسجيل أسواق Pendle الجديدة. ومع ذلك، فإن عملية إنشاء السوق لدى Pendle Finance مفتوحة، مما يسمح لأي شخص بإنشاء سوق، ويمكن للمستخدمين تخصيص المعلمات الرئيسية، مثل عنوان عقد SY. للاستفادة من ذلك، أنشأ المهاجم عقد سوق يحتوي على عقد SY ضار، واستخدم الآلية التي يحتاجها مجمع Penpie لاستدعاء عقد SY الخارجي عند الحصول على المكافآت، واستخدم القروض السريعة لإضافة كمية كبيرة من السيولة إلى السوق والتجميع، وتضخيم بشكل مصطنع زيادة مبلغ المكافأة وتحقيق الربح.
تحليل خطوات الهجوم
الهجوم المسبق -إعداد الموضع
تجزئة المعاملة: 0x7e7f9548f301d3dd863eac94e6190cb742ab6aa9d7730549ff743bf84cbd21d1
1 يقوم المهاجم بإنشاء عقود دخل PT وYT من خلال وظيفة createYieldContract لعقد PendleYieldContractFactory، وتعيين SY كعنوان عقد الهجوم، واستخدام هذا لاستدعاء وظيفة createNewMarket لعقد PendleMarketFactoryV3 لإنشاء عقد السوق المقابل 0x5b6c_PENDLE-LPT.
2. بعد ذلك، يستخدم المهاجم RegisterPenpiePool لعقد PendleMarketRegisterHelper لتسجيل تجمع Penpie. في هذه العملية، يتم إنشاء عقد الرمز المميز لشهادة الإيداع PRT وعقد المكافأة ذي الصلة، ويتم تسجيل معلومات المجمع في Penpie.
3. بعد ذلك، يستدعي المهاجم وظيفة mintPY لعقد YT لسك كمية كبيرة من YT وPT، ويعتمد المبلغ على سعر الصرف الذي يعيده العقد المهاجم (عقد SY).
4. بعد ذلك مباشرة، يقوم المهاجم بإيداع PT في السوق 0x5b6c_PENDLE-LPT ويقوم بإصدار رموز LP المميزة.
5. وأخيرًا، يقوم المهاجم بإيداع رموز LP المميزة في مجموعة Penpie مقابل رموز شهادة إيداع PRT المميزة.
هجوم رسمي
تجزئة المعاملة: 0x42b2ec27c732100dd9037c76da415e10329ea41598de453bb0c0c9ea7ce0d8e5
1. قام المهاجم أولاً بإقراض كمية كبيرة من رموز ageTH وrswETH من خلال قروض سريعة.
2. قم باستدعاء وظيفة BatchHarvestMarketRewards الخاصة بمجمع Penpie لجمع المكافآت من السوق المحدد على دفعات. تؤدي هذه العملية إلى تشغيل وظيفة redeemRewards لعقد السوق 0x5b6c_PENDLE-LPT.
3. في وظيفة الاسترداد، يتم استدعاء وظيفة المطالبة بالمكافآت لعقد SY (عقد الهجوم) خارجيًا. خلال هذه الفترة، يستخدم المهاجم أموال القروض السريعة لزيادة سيولة رموز المكافأة (يتم تعيين رموز المكافآت المميزة عمدًا) إلى نوعين في عقد الهجوم). رموز السوق 0x6010_PENDLE-LPT و0x038c_PENDLE-LPT)، وقم بإيداع رموز السوق التي تم الحصول عليها في مجمع Penpie للحصول على الرموز المميزة لشهادة الإيداع المقابلة.
4. بعد ذلك، سيتم استخدام رموز السوق المودعة حديثًا في مجموعة Penpie كمكافآت محسوبة، وبعد ذلك سيتم نقل هذه الرموز المميزة إلى عقد المكافأة من خلال وظيفة queueNewRewards الخاصة بالعقد.
نظرًا لأن المهاجم هو الشخص الوحيد الذي يقوم بإيداع الأموال في سوق 0x5b6c_PENDLE-LPT، فيمكن استدعاء وظيفة المطالبات المتعددة لعقد MasterPenpie على الفور لسحب هذا الجزء من رموز LPT المميزة في عقد Rewarder.
5. أخيرًا، قام المهاجم بحرق شهادة الإيداع PRT التي تم الحصول عليها في الخطوة الثالثة من خلال وظيفة drawMarket الخاصة بعقد PendleMarketDepositHelper، واسترداد رموز السوق، وإزالة سيولة رموز السوق هذه بالإضافة إلى المكافآت المستخرجة في الخطوة السابقة وأخيرًا احصل على رموز الأصول الأساسية (ageTH وrswETH) لتحقيق الأرباح.
الملخص
كشف هذا الحادث الأمني عن عدم كفاية التحقق من Penpie في عملية تسجيل السوق واعتمادها المفرط على Pendle Finance السوق يسمح منطق الإنشاء للمهاجمين بالتحكم في آلية توزيع المكافآت من خلال العقود الضارة، وبالتالي الحصول على مكافآت زائدة. يوصي فريق أمان SlowMist بأن تقوم أطراف المشروع بإضافة آلية تحقق صارمة في القائمة البيضاء عند التسجيل في السوق لضمان قبول الأسواق التي تم التحقق منها فقط. بالإضافة إلى ذلك، بالنسبة لمنطق الأعمال الرئيسي الذي يتضمن مكالمات العقود الخارجية، يجب تعزيز التدقيق والاختبار الأمني لتجنب وقوع حوادث مماثلة مرة أخرى. ص>