مروری بر حادثه
در 22 مه، در دنیای بلاکچین SUI حادثه نگرانکنندهای رخ داد: قیمتها در صرافی غیرمتمرکز Cetus ناگهان سقوط کرد و استخرهای نقدینگی آن خالی شد. مجموع زیان تخمینی بیش از ۲۳۰ میلیون دلار بود.
چگونگی کشف باگ توسط SlowMist
تیم امنیتی معروف بلاکچین SlowMist به بررسی حادثه پرداخت. تحلیل عمیق آنها نشان داد هسته مشکل در کد قرارداد هوشمند Cetus بود؛ بهویژه تابعی به نام checked_shlw که نتوانست خطای overflow در تابع get_delta_a را تشخیص دهد.
این باگ باعث شد سیستم مقادیر توکن را بهاشتباه محاسبه کند. وقتی اعداد بیش از حد بزرگ میشدند، سیستم متوجه نمیشد و گمان میکرد مهاجم مقادیر زیادی نقدینگی افزوده است، در حالی که در واقع تنها ۱ توکن اضافه شده بود.
مراحل حمله
۱. دریافت وام فوری: مهاجم با استفاده از وام فوری بیش از ۱۰ میلیون توکن haSUI قرض گرفت و قیمت توکن در استخر را ۹۹.۹٪ کاهش داد.
۲. ایجاد موقعیت باریک لیکوئیدیتی: او یک محدوده قیمت بسیار باریک ایجاد کرد تا سیستم فکر کند حجم زیادی نقدینگی افزوده شده است.
۳. سوءاستفاده از باگ overflow: مهاجم باگ overflow را به کار گرفت تا ادعا کند تریلیونها واحد نقدینگی افزوده، اما تنها ۱ توکن ارسال کرد. قرارداد تناقض را تشخیص نداد.
۴. نقد کردن سود: مهاجم در سه مرحله نقدینگی ساختگی را خارج و وام فوری را بازپرداخت کرد.
۵. کسب سود چشمگیر: او با کمترین سرمایه اولیه، ۱۰ میلیون haSUI و ۵.۷ میلیون SUI برداشت کرد.
پیامدها و هشدار SlowMist
این حادثه نشان داد یک اشتباه کوچک در کد میتواند منجر به زیانهای مالی بزرگ شود، بهویژه در پلتفرمهای DeFi که تمام عملکردها توسط قراردادهای هوشمند مدیریت میشوند. SlowMist تأکید میکند اگر توابع حیاتی مانند checked_shlw نتوانند خطاهایی مثل overflow را تشخیص دهند، مهاجمان میتوانند منطق سیستم را بهکلی مختل کنند.
این تیم امنیتی هشدار داد توسعهدهندگان DeFi باید توابع ریاضی و فرمولهای مربوط به محاسبات توکن و نقدینگی را چندین بار بازبینی کنند. تنها یک خط کد بدون بررسی کافی کافی بود تا مهاجمی با میلیونها دلار سود فرار کند.