Scallop یک اکسپلویت هدفمند را تأیید کرد: ۱۵۰,۰۰۰ توکن SUI از استخر جوایز sSUI تخلیه شد.
پروتکل دیفای مبتنی بر Sui به نام Scallop تأیید کرد که هدف یک اکسپلویت قرار گرفته که تقریباً ۱۵۰,۰۰۰ SUI را از استخر جوایز sSUI آن تخلیه کرده و در عین حال یک باگ چندینساله را که در داخل یک قرارداد هوشمند منسوخ پنهان بوده، آشکار ساخته است.
طبق بیانیه رسمی پروتکل، آنها متوجه شدند که مهاجم بهطور کامل پایگاه کد فعال و رابطهای استاندارد SDK آنها را نادیده گرفت. در عوض، او نسخه منسوخ پکیج V2 را که به نوامبر ۲۰۲۳ برمیگشت فراخوانی کرد، که هنوز آنچین بود اما ماهها بلااستفاده مانده بود.
این سطح از دقت توجه قابل توجهی را در سراسر اکوسیستم به خود جلب کرده است. این اکسپلویت یا نشاندهنده مهندسی معکوس عمیق است یا اینکه کسی آشنایی زیادی با معماری قرارداد داشته است.
مهمتر از همه، این آسیبپذیری تقریباً ۱۷ ماه ناشناخته ماند زیرا اکوسیستم به نسخههای جدید قرارداد منتقل شده بود. Scallop در توییتر این حادثه را تأیید کرد و گفت کاربران در حال حاضر در امنیت هستند زیرا اقدامات مهار فوری اجرا شده است.
این اکسپلویت یک نقص حیاتی در منطق محاسبه جایزه قرارداد منسوخ را نشان میدهد. این قرارداد از چیزی به نام «spool index» استفاده میکند که یک مقدار همیشه در حال افزایش است و نشاندهنده کل جوایز انباشته شده در آن استخر در طول زمان است.
در عملیات عادی، هر حساب کاربری هنگام استیکینگ یک last_index نگه میدارد. جوایز بر اساس تفاوت بین اندکس لحظه جاری و مقدار ذخیره شده محاسبه میشود تا هیچ کاربری نتواند قبل از شروع استیکینگ جایزه کسب کند.
اما در پکیج قدیمی V2، حسابهای spool جدید هرگز مقداردهی اولیه نمیشدند؛ last_index همیشه صفر بود. و این خطا یک حفره بزرگ ایجاد کرد.
نتایج این باگ آنی و فاجعهبار بود. spool index در طول حدود ۲۰ ماه به نزدیک ۱.۱۹ میلیارد رسیده بود. مهاجم ۱۶۲ تریلیون امتیاز جایزه اغراقآمیز دریافت کرد که با ۱۳۶,۰۰۰ sSUI استیک شده بهطور مساوی تنظیم شده بود.
این وضعیت را تشدید کرد که استخر جوایز نسبت تبدیل ۱:۱ داشت به طوری که هر امتیاز جایزه مستقیماً به توکنهای SUI تبدیل میشد. این امر به مهاجم اجازه داد تا بهراحتی امتیازات به دست آمده از طریق تورم مصنوعی را به داراییهای واقعی تبدیل کند.
این اکسپلویت منجر به تخلیه استخر جوایز شد که در آن زمان حدود ۱۵۰,۰۰۰ SUI داشت. علیرغم اینکه جوایز محاسبهشده مهاجم بسیار بیشتر از موجودی استخر بود، تنها نقدینگی موجود استخراج شد.
این حادثه یکی از چالشهای سیستمیک پکیجهای مستقر در اکوسیستم Sui را نشان میدهد: پکیجهای مستقر تغییرناپذیر هستند. و وقتی یک قرارداد هوشمند آنچین میشود، نمیتوان آن را حذف یا اصلاح کرد. تمام نسخهها، گذشته و حال، برای همیشه قابل فراخوانی باقی میمانند.
در حالی که Scallop کاربران را از طریق SDK خود به یک پکیج جدید و امنتر هدایت کرد، قرارداد قدیمی V2 همچنان قابل مشاهده بود. اشیاء Spooled و RewardsPool به اشتراک گذاشته شدهاند، بنابراین مهاجم توانست منطق بهروزشده را کاملاً دور بزند زیرا هیچ محدودیت نسخهای روی آنها اعمال نشده بود.
این نوع آسیبپذیری که به عنوان ریسک «پکیج کهنه» طبقهبندی مجدد شده، نقطه کور مهمی را برای بسیاری از سیستمهای دیفای آشکار میکند. قراردادهای قدیمی میتوانند بردارهای حمله دائمی باشند زیرا هیچ بررسی نسخه صریحی در اشیاء مشترک تعبیه نشده است.
اکسپلویت Scallop یک رویداد است، نه نتیجه بیپایان یک روند بزرگتر که در طول آوریل ادامه داشته است. چندین حمله اخیر نه از منطق اصلی پروتکل، بلکه از جنبههای پیرامونی یا نادیده گرفتهشده نشأت گرفتهاند. آسیبپذیریها در زیرساخت RPC KelpDAO، لایه حریم خصوصی (MWEB) برای Litecoin و باگهای کنترل دسترسی در سیستمهای آداپتور Aethir تنها چند نمونه هستند.
در تمام موارد، منشأ خارج از قرارداد اصلی و در ماژولهای ثانویه یا قدیمی بود. استفاده از چنین الگویی نشاندهنده تغییر تاکتیکهای مهاجمان است. هکرها زمان کمتری را صرف قراردادهای اصلی که بسیار حسابرسی میشوند میکنند و زمان بیشتری را صرف حمله به لبههای اکوسیستم میکنند که نظارت بسیار ضعیفی بر محیط پیرامونی آنها وجود دارد. این امر نیازمند تغییر پارادایم برای توسعهدهندگان و حسابرسان است. تنها ایمنسازی استقرارهای جدید کافی نیست؛ تمام قراردادهای تاریخی، نقاط یکپارچهسازی و اجزای زیرساخت باید به عنوان سطح تهدید فعال در نظر گرفته شوند.
Scallop در پاسخ به اکسپلویت رویکردی سریع و قاطعانه اتخاذ کرد. قرارداد مورد حمله بلافاصله پس از حادثه منجمد شد، به این معنا که تنها یک استخر جوایز توسط این حمله به خطر افتاده بود.
گروه تأیید کرد که قراردادهای اصلی همچنان ایمن هستند و هیچ سپرده کاربری به خطر نیفتاده است. سایر استخرها دستنخورده باقی ماندهاند و عملکردهای اصلی پروتکل به محض اینکه بخشهای تحت تأثیر نگرفته از انجماد خارج شدند، فعال هستند.
قابل توجه است که Scallop متعهد شده ۱۰۰ درصد ضررهای ناشی از اکسپلویت را جبران خسارت کند. این تعهد مسئولیتپذیری در رفع حفرههای امنیتی غیرمنتظره را نشان میدهد و هدف آن بازگرداندن اعتماد کاربران است.
واریز و برداشت از سر گرفته شده که نشاندهنده بازگشت ثبات سیستم است.
حادثه Scallop یک درس کلیدی برای اکوسیستم دیفای به طور کلی را تجسم میبخشد. اگر در محیط قرارداد هوشمند تغییرناپذیر اجرا میکنید، امنیت هرگز یک کار یکبار مصرف نیست.
هر نسخه از قرارداد مستقر شما بخشی از سیستم زنده است. حتی کد غیرفعال میتواند ماهها یا سالها بعد یک نقطه شکست واحد باشد، اگر موانع مناسب به راحتی قابل دور زدن باشند.
در آینده، اکوسیستم باید شیوههای کنترل نسخه سختگیرانهتر، نظارت مستمر بر قراردادهای قدیمی و گسترش حوزه حسابرسی برای پوشش تمام استقرارهای قبلی را اتخاذ کند. همانطور که اکسپلویت نشان میدهد، مهاجمان آمادهاند تا عمیقاً در تاریخچه یک پروتکل کاوش کنند تا نقاط ضعفی را که میتوانند از آنها بهرهبرداری کنند پیدا کنند.
در نهایت، امور مالی غیر متمرکز با نام اختصاری دیفای تنها به اندازه پروتکلهایی که میتوانند با این چشمانداز تهدید در حال تغییر سازگار شوند، ماندگار خواهد بود.
افشا: این مشاوره معاملاتی یا سرمایهگذاری نیست. همیشه قبل از خرید هر ارز دیجیتال یا سرمایهگذاری در هر خدماتی تحقیقات خود را انجام دهید.
ما را در توییتر @themerklehash دنبال کنید تا از آخرین اخبار Crypto، NFT، AI، امنیت سایبری و متاورس بهروز بمانید!
این مطلب با عنوان Scallop Exploit Drains 150K SUI Through Deprecated Contract As Hidden Vulnerability Lurks For 17 Months اولین بار در The Merkle News منتشر شد.


