پروتکلهای دیفای به دلیل ایجاد فرصتهای سرمایهگذاری غیرمتمرکز و حذف واسطهها، طرفداران زیادی پیدا کردهاند. با این حال، همین ویژگیها و ساختارهای پیچیده قراردادهای هوشمند، آنها را به اهداف جذابی برای هکرها تبدیل کردهاند. در یکی از تازهترین حملات، پروتکل Curve Finance که یکی از پرکاربردترین پروتکلهای دیفای است، هدف حملهای قرار گرفت که منجر به سرقت ۷۰ میلیون دلار دارایی شد. این حمله، نگرانیها را در مورد امنیت قراردادهای هوشمند افزایش داد. در این مقاله، جزئیات حمله به قرارداد Curve، چگونگی اجرای آن و درسهایی که میتوان از این حمله آموخت، بررسی میکنیم.
Curve Finance چیست و چرا هدف حمله قرار گرفت؟
Curve Finance یکی از محبوبترین پروتکلهای مبادله استیبلکوینها و داراییهای مشابه در بستر دیفای است که امکان معامله با حداقل هزینهها و لغزش قیمت پایین را فراهم میکند. با اینکه این پروتکل بر پایه قراردادهای هوشمند طراحی شده و به دلیل امنیت و عملکرد بالای خود شناخته شده است، همچنان به دلیل ارزش بالای داراییهای قفل شده در آن، هدف جذابی برای هکرهاست.
جزئیات حمله به قرارداد هوشمند Curve
در این حمله، مهاجم از یک آسیبپذیری امنیتی در کد قرارداد هوشمند پروتکل Curve استفاده کرد تا وجوه کاربران را به سرقت ببرد. این نوع حمله در دسته حملات بازگشت مجدد (Reentrancy Attack) و آسیبپذیری در کنترل دسترسیها قرار میگیرد. در ادامه مراحل اجرای این حمله به تفصیل بررسی شده است.
مراحل اجرای حمله
شناسایی آسیبپذیری در قرارداد: مهاجم ابتدا یک آسیبپذیری در قرارداد هوشمند Curve شناسایی کرد که به او امکان اجرای چندباره یک تابع خاص را قبل از بهروزرسانی موجودی حساب میداد.
استفاده از حمله بازگشت مجدد: با استفاده از این آسیبپذیری، مهاجم توانست تابع برداشت را چندین بار به اجرا درآورد، بدون اینکه موجودی واقعی حسابش بهروزرسانی شود. این نوع حمله امکان برداشت وجوه بیش از حد مجاز را فراهم میکند.
انتقال وجوه به حسابهای دیگر: در نهایت، مهاجم وجوه سرقتشده را به چندین حساب مختلف منتقل کرد تا ردیابی و بازگرداندن آنها برای Curve دشوار شود.
چرا این حمله رخ داد؟
با توجه به بررسیهای انجام شده، چند عامل کلیدی در وقوع این حمله نقش داشتند:
آسیبپذیری در کد قرارداد: کد قرارداد هوشمند Curve بهخوبی ممیزی نشده بود و همین امر امکان شناسایی آسیبپذیری را برای مهاجم فراهم کرد.
عدم استفاده از کتابخانههای امنیتی بهروز: Curve در این بخش میتوانست از کتابخانههای امن مانند OpenZeppelin استفاده کند تا از بروز حملات بازگشت مجدد جلوگیری کند.
عدم انجام تستهای امنیتی مداوم: در قراردادهای هوشمند با حجم بالای داراییهای قفلشده، انجام تستهای امنیتی مداوم و بازبینیهای منظم کد ضروری است که در این حمله، این موارد نادیده گرفته شده بود.
پیامدهای حمله برای پروتکل Curve و کاربران
این حمله تنها موجب سرقت ۷۰ میلیون دلار دارایی از پروتکل Curve نشد، بلکه اعتماد کاربران را نیز تحت تأثیر قرار داد. این حادثه به عنوان یکی از بزرگترین حملات دیفای به ثبت رسید و نگرانیهای بسیاری را در مورد امنیت قراردادهای هوشمند و پروتکلهای دیفای ایجاد کرد. پس از این حمله، بسیاری از کاربران نسبت به امنیت داراییهای خود در دیفای بدبینتر شدند و از دیگر پروتکلها درخواست کردند که ممیزیهای امنیتی دقیقتری انجام دهند.
درسهایی از حمله Curve برای امنیت دیفای
حمله به پروتکل Curve نشاندهنده نیاز به تدابیر امنیتی بالاتر در دنیای دیفای است. در ادامه چندین درس کلیدی که میتوان از این حمله آموخت، بررسی میشود:
1. انجام ممیزیهای امنیتی منظم
یکی از نکات اصلی در حفظ امنیت قراردادهای هوشمند، انجام ممیزیهای امنیتی منظم توسط متخصصان امنیتی است. قراردادهای هوشمند باید پیش از راهاندازی و بهصورت دورهای بازبینی شوند تا آسیبپذیریهای احتمالی شناسایی و رفع شوند.
2. استفاده از کتابخانههای امن
بسیاری از کتابخانههای معتبر و امن مانند OpenZeppelin و SafeMath به توسعهدهندگان کمک میکنند تا از بروز آسیبپذیریهای شایع در قراردادهای هوشمند جلوگیری کنند. استفاده از این کتابخانهها میتواند به کاهش ریسکهای امنیتی کمک کند.
3. آموزش و آگاهیبخشی به توسعهدهندگان
آموزش و آگاهیبخشی به توسعهدهندگان قراردادهای هوشمند در مورد تهدیدات امنیتی و راههای مقابله با آنها میتواند از وقوع حملات مشابه جلوگیری کند. توسعهدهندگان باید با الگوهای حمله و تکنیکهای پیشرفته مقابله با آنها آشنا باشند.
4. پیادهسازی تستهای خودکار امنیتی
قراردادهای هوشمند باید بهطور خودکار مورد تستهای امنیتی قرار بگیرند تا با شناسایی زودهنگام آسیبپذیریها از بروز حملات جلوگیری شود. ابزارهای تست خودکار میتوانند مشکلات منطقی و امنیتی را به سرعت تشخیص دهند.
حمله به قرارداد هوشمند Curve یک هشدار جدی برای کل صنعت دیفای است. این حمله نشان داد که حتی پروتکلهای بزرگ و معتبر نیز از تهدیدات امنیتی در امان نیستند و نیاز به تدابیر امنیتی بیشتری دارند. با استفاده از ممیزیهای امنیتی، کتابخانههای امن و آموزش و آگاهیبخشی به توسعهدهندگان، میتوان خطرات امنیتی را به حداقل رساند و امنیت قراردادهای هوشمند را افزایش داد. این حادثه بهویژه اهمیت تحلیل مداوم و بهروزرسانی کدهای قراردادهای هوشمند را برای حفظ امنیت داراییهای کاربران به ما یادآوری میکند.