مقدمه
سلام دوستان! در دنیای پرهیاهوی ارزهای دیجیتال، خبر هک صرافی ها متاسفانه دیگه چیز عجیبی برای ما که مخصوصا در ایران هستیم , نیست. اما هر کدوم از این حملات، درسهای مهمی برای ما، چه به عنوان کاربر و چه به عنوان فعال این حوزه، دارن. یکی از حملات اخیر که توجهات زیادی رو به خودش جلب کرد، مربوط به پروتکل Cetus روی بلاک چین Sui بود. چیزی که این حمله رو خاصتر میکنه، تحلیل عمیقی هست که شرکت امنیت بلاک چین Dedaub بعد از واقعه منتشر کرد. ما در این مقاله میخوایم با هم نگاهی بندازیم به جزئیات این اتفاق، مخصوصاً یافتههای کلیدی گزارش Dedaub در مورد هک صرافی سیتوس. با ما همراه باشید تا بفهمیم دقیقاً چه اتفاقی افتاد و چطور یک خطای بهظاهر ساده میتونه عواقب فاجعهباری داشته باشه.
اتفاق چه بود؟ هک سیتوس در یک نگاه
هک پروتکل سیتوس (Cetus Protocol) یکی از بزرگترین حملات سایبری در تاریخ DeFi محسوب میشود که منجر به سرقت بیش از ۲۶۰ میلیون دلار از وجوه کاربران گردید. این حمله که در سال ۲۰۲۵ رخ داد، نشاندهنده آسیبپذیریهای جدی در معماری پلتفرمهای متمرکز مالی (DeFi) است.
البته همونطور که در ادامه توضیح میدیم، تحلیلهای بعدی نشون داد که این حمله میتونست خیلی بزرگتر باشه و آسیبپذیری کشف شده پتانسیل زیانی تا حدود چند صد میلیون رو هم داشته! اینجاست که نقش تحلیلهای امنیتی و گزارشهای پسا-حمله مثل گزارش Dedaub پررنگ میشه.
چرا Cetus هدف قرار گرفت؟ نقش تحلیلهای Dedaub
بعد از هر حمله بزرگ، تیمهای امنیتی و محققان بلاک چین به بررسی و تحلیل جزئیات میپردازند تا ریشه مشکل رو پیدا کنن و از وقوع مجدد اون جلوگیری بشه.
شرکت Dedaub، یکی از این شرکتهای معتبر در حوزه امنیت بلاک چین، تحلیل فنی کاملی از حمله به Cetus انجام داد و نتایج رو در قالب یک گزارش جامع منتشر کرد. این گزارش، چراغ قوه رو روی علت اصلی هک صرافی سیتوس تابوند.
برخلاف برخی حملات که ممکنه ناشی از دسترسی غیرمجاز به کلیدها یا حملات پیچیده شبکه باشن، علت این حمله ریشهای عمیقتر در نقاط حساس کد قرارداد هوشمند (Smart Contract) پروتکل Cetus داشت؛ دقیقاً در جایی که عملیات اصلی یک صرافی غیرمتمرکز انجام میشه: توابع سواپ (Swap) یا همون تبادل توکنها.
یافته کلیدی Dedaub یک “خطای سرریز محاسباتی” (Integer Overflow) بود که به درستی مدیریت نشده بود. اجازه بدید کمی فنیتر ولی به زبانی سادهتر توضیح بدیم.
شیرجهای به کد: خطای سرریز محاسباتی چیست و چطور باعث هک شد؟
قراردادهای هوشمند روی بلاک چین با استفاده از اعداد و انجام محاسبات کار میکنند. وقتی صحبت از توابع تبادل در یک استخر نقدینگی (Liquidity Pool) مثل Cetus AMM (Automated Market Maker) میشه، قرارداد باید با دقت حجم ورودی کاربر رو محاسبه کنه و بر اساس فرمولهای پیچیده مربوط به قیمتگذاری در AMM، میزان توکن خروجی رو تعیین کنه.
خطای سرریز محاسباتی زمانی اتفاق میافته که نتیجه یک عملیات ریاضی بزرگتر از حداکثر مقداری بشه که نوع داده (Data Type) مورد استفاده برای ذخیره اون نتیجه میتونه نگهداری کنه. م
ثلاً اگه شما برای ذخیره اعداد از یک ظرف کوچک (مثلاً عدد ۱۶ بیتی) استفاده کنید و حاصل جمع دو عدد از حداکثر ظرفیت این ظرف بزرگتر بشه، اتفاقی که میافته اینه که عدد “برمیگرده” یا “دور میزنه” (wraps around) و ممکنه به یک عدد بسیار کوچک یا حتی صفر تبدیل بشه، نه یک عدد بزرگ.
طبق گزارش Dedaub، آسیبپذیری در توابع swap_x
و swap_y
پروتکل Cetus وجود داشت. مکانیزم این نقص به شرح زیر بود:
- محاسبات حساس: در این توابع، برای تعیین میزان توکنهایی که کاربر باید دریافت کند، محاسباتی بر اساس میزان توکن ورودی و وضعیت فعلی استخر نقدینگی انجام میشد.
- ورودی دستکاری شده: مهاجم با ارسال ورودیهای خاص (مخصوصاً مقادیر بزرگ برای پارامتر
by_amount
که در واقع میزان مورد انتظار دریافت توکن بود) محاسبات را به سمت ایجاد اعداد بسیار بزرگ سوق داد. - سرریز شدن در محاسبات میانی: در طول انجام این محاسبات برای تعیین میزان دقیق توکن خروجی، مقادیر میانی به قدری بزرگ میشدند که از حداکثر ظرفیت نوع داده عددی که برای ذخیره آنها استفاده شده بود (احتمالاً یک عدد ۶۴ بیتی بدون علامت)، سرریز میکردند.
- نتیجه اشتباه: به دلیل سرریز، نتیجه نهایی محاسبه میزان توکن خروجی به شدت اشتباه میشد. به جای اینکه پروتکل تشخیص دهد که کاربر با ورودی کم خود باید مقدار کمی توکن دریافت کند، به دلیل سرریز، محاسبه به اشتباه نشان میداد که کاربر باید مقدار بسیار زیادی از توکن دیگر را دریافت کند.
- بررسی ناکافی: متأسفانه، بررسیهایی که برای جلوگیری از اکسپلویتهایی از این دست انجام شده بود (مثلاً اطمینان از اینکه کاربر چیزی بیشتر از سهمش دریافت نمیکند یا اینکه ورودیها منطقی هستند)، به درستی بعد از نتایج این محاسبات حساس قرار نگرفته بودند یا به اندازه کافی جامع نبودند تا سرریزی که قبل از بررسی نهایی اتفاق افتاده بود را تشخیص دهند. یک بررسی ساده مثل
amount > 0
کافی نبود، چون عدد محاسبه شده بعد از سرریز شدن ممکن بود همچنان بزرگتر از صفر باشد اما کاملاً اشتباه باشد.
این زنجیره از اتفاقات باعث شد که مهاجم بتواند با واریز مقداری بسیار کم، مقداری بسیار زیاد از توکنهای موجود در استخر نقدینگی را برداشت کند. نکته ترسناک اینجاست که Dedaub با تحلیل کد نشان داد که همین نقص میتوانست منجر به تخلیه بخش بسیار بزرگتری از نقدینگی استخرها شود و به همین دلیل از پتانسیل زیان ۲۰۰ میلیون دلاری صحبت کرد.

درسی از هک Cetus: چرا امنیت در بلاک چین اهمیت حیاتی دارد؟
ما قبلاً هم حملات مشابهی رو در دنیای دیفای (DeFi) دیدهایم. هک صرافی ها، چه متمرکز و چه غیرمتمرکز، همیشه یادآور این نکته هستند که امنیت در این فضا چقدر چالشبرانگیز و حیاتیه.
- پیچیدگی قراردادهای هوشمند: پروتکلهای دیفای مثل AMMها، کدهای پیچیدهای دارند که مدیریت نقدینگی، قیمتها و تریدها رو بر عهده دارن. یک اشتباه کوچک در منطق یا محاسبات میتونه دروازهای برای مهاجمان باشه.
- پول در خطر: قراردادهای هوشمند دیفای، مقادیر زیادی دارایی کاربران رو مدیریت میکنن. این باعث میشه هدف جذابی برای هکرها باشن.
- غیرقابل تغییر بودن (Immutability): برخلاف نرمافزارهای سنتی که میشه بعد از کشف باگ، به سرعت آپدیتشون کرد، قراردادهای هوشمند بعد از دیپلوی شدن روی بلاک چین معمولاً قابل تغییر نیستن (مگر با مکانیزمهای ارتقا که خودشون پیچیدگیهای امنیتی دارن). این یعنی اگه آسیبپذیری کشف بشه، رفع اون خیلی سخته و ممکنه نیاز به دیپلوی مجدد پروتکل باشه.
گزارش Dedaub در مورد هک صرافی سیتوس به ما نشون میده که چقدر مهمه توسعهدهندگان در مورد جزئیترین مسائل مربوط به محاسبات عددی (مثل سرریز و زیرریز) دقت کنن و بررسیهای امنیتی رو در جای درست و با منطق کامل پیادهسازی کنن.
“امنیت در بلاک چین یک مسابقه بیپایان بین دفاع و حمله است؛ هر آسیبپذیری کشف شده، درسی برای قویتر شدن اکوسیستم است.” – جامعه امنیت بلاک چین
درسهایی برای توسعهدهندگان و کاربران
از اتفاقاتی مثل هک صرافی ها به خصوص هک Cetus تحلیل شده توسط Dedaub، میتونیم درسهای مهمی بگیریم:
برای توسعهدهندگان پروتکلها:
- توجه شدید به محاسبات عددی: استفاده از کتابخانههای امن برای کار با اعداد بزرگ (مثل کتابخانههایی که ضد سرریز هستند) و بررسی دقیق تمامی عملیات ریاضی برای جلوگیری از سرریز/زیرریز.
- اهمیت ترتیب عملیات: اطمینان از اینکه بررسیهای امنیتی (مثل بررسی محدوده معقول برای نتایج) بعد از انجام تمامی محاسبات حساسی که ممکن است منجر به سرریز شوند، انجام میپذیرند.
- تستهای جامع: نوشتن تستهای واحد (Unit Tests) و تستهای ادغام (Integration Tests) قوی که سناریوهای لبه (edge cases) و ورودیهای غیرمعمول را پوشش دهند.
- ممیزی امنیتی (Security Audits): سپردن کد به شرکتهای معتبر امنیت بلاک چین مانند Dedaub برای بررسی دقیق قبل از دیپلوی. این یک گام ضروری است، نه اختیاری.
- برنامهریزی برای واکنش به حادثه: داشتن یک برنامه از پیش تعیین شده برای مواقعی که یک حادثه امنیتی رخ میدهد (مثلاً امکان توقف اضطراری پروتکل در صورت کشف آسیبپذیری).
برای کاربران:
- تحقیق و بررسی خودتان (DYOR): قبل از استفاده از هر پروتکل دیفای یا صرافی غیرمتمرکز، در مورد آن تحقیق کنید. ببینید آیا ممیزی امنیتی انجام دادهاند؟ شهرت تیم توسعهدهنده چگونه است؟
- شروع با مبالغ کم: اگر در مورد پروتکلی مطمئن نیستید، با مبالغ کم شروع کنید.
- آگاهی از ریسکها: همیشه به یاد داشته باشید که دیفای یک فضای پرخطر است و احتمال از دست دادن سرمایه وجود دارد، حتی در پروتکلهای بهظاهر معتبر.
- پیگیری اخبار امنیتی: از طریق منابع معتبر، اخبار مربوط به هکها و آسیبپذیریها را پیگیری کنید تا از پروتکلهای مشکلدار مطلع شوید.
جدول خلاصه از تاریخچه قبلی: هک سیتوس بر اساس گزارش Dedaub
جزئیات هک سیتوس | اطلاعات |
---|---|
پروتکل | Cetus (پروتکل AMM بر بستر بلاک چین Sui) |
تاریخ تقریبی وقوع حمله | ژوئن ۲۰۲۳ |
مبلغ تقریبی سرقت شده در این حمله خاص | حدود ۳ میلیون دلار در چندین تراکنش |
پتانسیل زیان بر اساس تحلیل Dedaub | تا ۲۰۰ میلیون دلار (نشاندهنده شدت آسیبپذیری) |
علت اصلی (بر اساس گزارش Dedaub) | خطای سرریز محاسباتی (Integer Overflow) در توابع Swap پروتکل |
نقص فنی خاص | بررسی ناکافی سرریز پس از انجام محاسبات حساس مربوط به تعیین نرخ و حجم تبادل |
درس اصلی | اهمیت مدیریت دقیق محاسبات عددی و ترتیب بررسیهای امنیتی در قراردادهای هوشمند |
سوالات متداول (FAQ)
- Cetus چیست؟ Cetus یک صرافی غیرمتمرکز (DEX) و پروتکل استخر نقدینگی (AMM) است که روی بلاک چین Sui فعالیت میکند.
- هک Cetus چه زمانی اتفاق افتاد؟ این حمله حدوداً در اوایل ژوئن ۲۰۲۳ کشف و گزارش شد.
- چه مقدار از سرمایه در این حمله از دست رفت؟ در این حمله خاص، حدود ۳ میلیون دلار از سرمایه کاربران و پروتکل به سرقت رفت. اما تحلیل Dedaub نشان داد که پتانسیل زیان ناشی از این آسیبپذیری بسیار بالاتر بوده.
- علت اصلی هک از نظر فنی چه بود؟ بر اساس گزارش Dedaub، علت اصلی یک خطای سرریز محاسباتی (Integer Overflow) بود که در توابع مربوط به تبادل توکنها در قرارداد هوشمند وجود داشت.
- شرکت Dedaub چه نقشی داشت؟ Dedaub یک شرکت امنیت بلاک چین است که بعد از وقوع حمله، تحلیل فنی عمیقی از کد و تراکنشها انجام داد و علت اصلی آسیبپذیری را کشف و گزارش کرد.
- آیا Cetus اکنون امن است؟ پس از کشف آسیبپذیری، تیم Cetus با همکاری متخصصان امنیتی برای رفع مشکل اقدام کرده است. با این حال، امنیت در فضای بلاک چین یک فرایند مداوم است و کاربران باید همیشه با احتیاط عمل کنند.
- چگونه میتوانم خودم را در برابر هک صرافیها محافظت کنم؟ از صرافیها و پروتکلهایی استفاده کنید که ممیزی امنیتی معتبر داشتهاند، سرمایه خود را در چندین پلتفرم پخش کنید (همه تخممرغها را در یک سبد نگذارید) و از ریسکهای موجود در فضای دیفای آگاه باشید.
- آیا تمام صرافیهای غیرمتمرکز آسیبپذیر هستند؟ سطح امنیت در پروتکلهای مختلف متفاوت است و بستگی به کیفیت کدنویسی، تستها و ممیزیهای امنیتی انجام شده دارد. هک Cetus نشاندهنده ریسکی است که میتواند در هر پروتکل با کدنویسی پیچیده وجود داشته باشد.
نتیجهگیری
هک صرافی سیتوس و تحلیل دقیق آن توسط شرکت Dedaub، یادآوری قدرتمندی است در مورد چالشهای امنیتی موجود در فضای دیفای و بلاک چین. این اتفاق نشان داد که حتی خطاهای بهظاهر ساده در مدیریت محاسبات عددی میتوانند منجر به آسیبپذیریهای بحرانی شوند و پتانسیل زیانهای عظیمی را ایجاد کنند.
هک صرافی ها بخش ناخوشایندی از تاریخ این صنعت هستند، اما هر کدام فرصتی برای یادگیری و قویتر شدن اکوسیستم فراهم میکنند. برای ما به عنوان کاربران، این حملات تأکیدی دوباره است بر اهمیت تحقیق و بررسی، آگاهی از ریسکها و مدیریت محتاطانه داراییها