هک ۶ میلیارد دلاری بایننس چگونه اتفاق افتاد؟ پشت پرده یک سرقت ۳۰ دقیقهای!
در ساعات پایانی شب گذشته، اتفاقی عجیب بازار ارزهای دیجیتال را تحتتأثیر قرار داد. احتمالاً اگر آن شب نمودار بیت کوین را مشاهده میکردید، با دیدن نوسانهای شدید بازار این سؤال برایتان پیش آمده که چه اتفاقی افتاده است. کمی بعد، خبرها از یک حمله سایبری گسترده به بایننس، بزرگترین صرافی ارز دیجیتال جهان، حکایت داشتند. مهاجم در عرض تنها ۳۱ دقیقه، حدود ۶.۱۵ میلیارد دلار دارایی را از کیف پولهای این صرافی خارج کرده بود.
بررسیهای اولیه نشان داد هکر برای این کار حتی به کلیدهای خصوصی کیف پولهای بایننس هم دسترسی پیدا نکرده بود. او توانسته بود سیستم داخلی صرافی را فریب دهد تا برداشتهای غیرمجاز را تأیید کند.
اما چنین حملهای چطور ممکن است و مهاجم چگونه توانست سیستم امنیتی بایننس را دور بزند؟ در ادامه، با تکیه بر گزارشی از بیاین کریپتو (BeInCrypto)، جزئیات بزرگترین هک تاریخ کریپتو را بررسی میکنیم.
۴ اصطلاح مهم که قبل از بررسی هک بایننس باید بدانید
برای درک بهتر جزئیات این حمله، ابتدا باید با چند مفهوم پایهای درباره نحوه نگهداری و انتقال داراییها در صرافیهای ارز دیجیتال آشنا شویم. این مفاهیم کمک میکنند بفهمیم مهاجم چطور توانست سیستم تأیید تراکنشهای بایننس را دور بزند و به داراییهای آن دسترسی پیدا کند:
- کیف پول گرم: کیف پول آنلاین صرافی است که برای پردازش سریع برداشت کاربران، به اینترنت متصل میماند.
- امضای تراکنش: هر انتقال دارایی باید با کلید خصوصی کیف پول تأیید شود. کلید خصوصی یک کد محرمانه است که اجازه تأیید تراکنش را میدهد. صرافیها از سامانههای خودکار برای امضای روزانه هزاران درخواست برداشت استفاده میکنند.
- نانس: شماره ترتیبی تراکنشهای یک کیف پول در شبکه اتریوم است. با انجام هر تراکنش، این شماره افزایش پیدا میکند. در کیف پولهایی که تراکنشهای زیادی انجام میدهند، نانس دائماً تغییر میکند.
- ارزهای قابل مسدودسازی: صادرکنندگان استیبلکوینهایی مانند تتر و یواسدی سی میتوانند آدرسهای مشخصی را مسدود کنند. اما هیچکس نمیتواند کوینهای بومی شبکههایی مانند بیت کوین، اتریوم و ترون را مسدود کند.
هکر پیش از حمله چه کارهایی انجام داد؟

برای فهمیدن نحوه اجرای هک صرافی بایننس، باید کمی به عقب برگردیم. بررسی تراکنشها نشان میدهد مهاجم از روز ۲۸ اکتبر (۶ آبان) برای اجرای نقشه خود آماده شده بود. او برای تأمین کارمزد تراکنشهای بلاک چینی از تورنادو کش استفاده کرد. تورنادو کش سرویسی است که داراییهای کاربران مختلف را با یکدیگر ترکیب میکند و ارتباط میان آدرس مبدأ و مقصد را دشوارتر میسازد. مهاجم با ۶ برداشت از این سرویس، کیف پول اصلی و دو کیف پول کمکی خود را شارژ کرد.
او سپس یک قرارداد هوشمند طراحی کرد تا بتواند دارایی کیف پولهایی را که به آن مجوز میدهند، خارج کند. قرارداد هوشمند در واقع برنامهای است که روی بلاک چین اجرا میشود و دستورات از پیش تعیینشدهای را انجام میدهد. مهاجم ابتدا نسخه آزمایشی این برنامه را روی دو کیف پول شخصی خود امتحان کرد. در این آزمایش، مقدار کمی تتر و یواسدیسی به کیف پولها واریز شد و پس از اعطای مجوز به قرارداد، تمام داراییها از آنها خارج شدند.
پس از موفقیت آزمایش اول، مهاجم نسخه نهایی قرارداد را منتشر کرد و بار دیگر آن را روی کیف پولهای خودش آزمایش کرد. نسخه جدید یک قابلیت مهم داشت. این قرارداد میتوانست بهجای انجام یک انتقال ساده، دستورات مختلفی را از طرف کیف پول اجرا کند. همین ویژگی بعدها به مهاجم اجازه داد یکی از کیف پولهای بایننس را وادار به انتقال ۸۲۳ میلیون دلار USDC کند. به گفته بیتاوکی، طراحی اختصاصی این ابزار نشان میداد مهاجم از قبل با ساختار کیف پولهای بایننس آشنایی داشته است.
سرقت میلیاردها دلار در کمتر از نیم ساعت
مهاجم در ۲۹ اکتبر (۷ آبان) و پس از آمادهسازی ابزارهای خود، به سیستم داخلی بایننس نفوذ کرد. طبق بررسیهای بیتاوکی، او به لپتاپ یکی از مهندسان دواپس (DevOps) این صرافی دسترسی پیدا کرد و از طریق یک کانتینر سرویس، دستورهای برداشت جعلی را به سیستم داخلی فرستاد. کانتینر سرویس محیطی بسته برای اجرای یک برنامه است که در این حمله بهعنوان مسیری برای ارسال دستورهای غیرمجاز استفاده شد.
از ساعت ۲۰:۰۴:۵۲ تا ۲۰:۳۵:۵۳ به وقت جهانی، کیف پولهای گرم بایننس در ۹ شبکه مختلف هدف قرار گرفتند. کیف پول گرم به کیف پولی گفته میشود که به اینترنت متصل است و صرافیها برای پردازش سریع برداشتهای کاربران از آن استفاده میکنند. در این حمله، شبکههای بیت کوین، اتریوم، سولانا، ترون، ریپل، بیس، آپتیمیزم، آربیتروم و آوالانچ درگیر شدند.
مهاجم در مجموع داراییهای قابلتوجهی از این کیف پولها خارج کرد که از جمله آنها میتوان به موارد زیر اشاره کرد:
- ۱۸٬۲۷۰.۲ واحد بیت کوین
- ۱۹۷٬۵۴۰ واحد اتریوم
- ۲.۴۹ میلیارد واحد تتر
- ۸۲۳ میلیون دلار یواسدیسی
- ۲۳۳.۴۶ میلیون واحد ریپل
- ۹۷۰٬۵۲۲ واحد سولانا
بررسی تراکنشها نشان داد تمام این انتقالها با امضای دیجیتال کیف پولهای خود بایننس انجام شدهاند. به بیان ساده، سیستم امنیتی صرافی این برداشتها را معتبر تشخیص داده و خودش آنها را تأیید کرده بود. با این حال، بیتاوکی چند نشانه غیرعادی در تراکنشها پیدا کرد. کارمزد برخی از آنها ۲ تا ۲.۷ برابر بیشتر از حالت معمول بود و قالب تعدادی از تراکنشها نیز با روش پرداختهای عادی بایننس مطابقت نداشت.
ترفند ۵۰ مجوز برای تصاحب کیف پول بایننس
یکی از پیچیدهترین بخشهای حمله، مربوط به کیف پولی به نام Binance ۱۴ روی شبکه اتریوم بود. مهاجم برای در اختیار گرفتن کنترل این کیف پول از قابلیت EIP-7702 اتریوم استفاده کرد. این قابلیت به یک کیف پول اجازه میدهد با امضای یک مجوز، بخشی از اختیارات خود را به یک قرارداد هوشمند واگذار کند تا قرارداد بتواند از طرف آن دستوراتی را اجرا کند.
اما یک مانع وجود داشت. هر کیف پول اتریوم برای تراکنشهای خود یک شماره ترتیبی به نام نانس (Nonce) دارد. این شماره با انجام هر تراکنش افزایش پیدا میکند. کیف پول Binance ۱۴ بهدلیل پردازش مداوم برداشتهای کاربران، مرتب نانس خود را تغییر میداد. بنابراین، اگر مهاجم مجوزی با شماره اشتباه دریافت میکرد، آن مجوز قابل استفاده نبود.
مهاجم برای دورزدن این مشکل، سیستم امضای بایننس را وادار کرد ۵۰ مجوز مختلف را بهصورت همزمان و با شمارههای ترتیبی متفاوت امضا کند. در واقع، او بهجای امتحانکردن یک کلید، ۵۰ کلید مختلف را برای بازکردن یک قفل در اختیار داشت. کافی بود یکی از آنها با شماره فعلی کیف پول مطابقت داشته باشد. در نهایت یکی از مجوزها پذیرفته شد و قرارداد هوشمند مهاجم توانست از طرف کیف پول Binance ۱۴ دستور صادر کند.
چند دقیقه بعد، مهاجم در یک تراکنش بیش از ۲.۲ میلیارد دلار دارایی شامل ۶۵ توکن مختلف را از این کیف پول خارج کرد. این داراییها شامل ۱.۶۱۵ میلیارد واحد USDT و ۱۶۷٬۴۶۴ واحد ETH بودند. او همچنین با ارسال ۹ دستور برداشت جعلی دیگر، از کیف پول Binance ۱۶ حدود ۲۸٬۰۰۵.۶ واحد ETH و ۵۵.۷ میلیون USDT خارج کرد.

هکر با داراییهای سرقتشده چه کرد؟
پس از خروج داراییها از کیف پولهای بایننس، مهاجم تلاش کرد بخشی از استیبل کوینهای سرقتشده را به ارزهایی تبدیل کند که امکان مسدودکردن آنها وجود ندارد. برای مثال، صادرکنندگان تتر و USDC میتوانند در شرایط خاص آدرسهای مشخصی را مسدود کنند و مانع جابهجایی داراییهای آنها شوند. اما ارزهایی مانند بیت کوین، اتریوم و ترون چنین سازوکاری ندارند و هیچ شرکت مرکزی نمیتواند مستقیماً آنها را مسدود کند.
مهاجم در شبکه اتریوم حدود ۴۳۵ میلیون دلار USDT را در صرافی غیرمتمرکز یونی سواپ به اتریوم تبدیل کرد. او همچنین ۶۰ میلیون دلار تتر را در پروتکل آوه سپردهگذاری کرد و در مقابل آن ۱۹٬۷۶۲ واحد ETH وام گرفت. با این روش، مهاجم بخشی از داراییهای خود را به اتریوم تبدیل کرد و وثیقه تتر را در پروتکل باقی گذاشت.
در شبکه ترون نیز مهاجم حدود ۲۳۴ میلیون دلار تتر را طی ۱۶ معامله در صرافی غیرمتمرکز سانسواپ به ۶۳۸.۲ میلیون واحد TRX تبدیل کرد. این جابهجاییها در حالی انجام شد که صادرکنندگان استیبل کوینها برای مسدودکردن داراییهای سرقتشده با یکدیگر رقابت میکردند.

تتر و سیرکل چگونه بخشی از داراییها را مسدود کردند؟
مسدودکردن تتر به تأیید چند امضا از کیف پول چندامضایی شرکت تتر نیاز داشت. این فرایند در هر مورد تا ۲ دقیقه و ۳۶ ثانیه زمان برد. از طرف دیگر، درخواستهای در انتظار مسدودسازی روی بلاک چین قابل مشاهده بودند و مهاجم میتوانست آنها را رصد کند. در نتیجه، او در برخی موارد پیش از نهاییشدن مسدودسازی، داراییها را به آدرس دیگری انتقال میداد. برای مثال، یک کیف پول فقط ۴۸ ثانیه پیش از مسدودشدن، ۱۳۰ میلیون دلار تتر را جابهجا کرد.

با این حال، همه تلاشهای مهاجم موفق نبود. او در یکی از آدرسها برای انتقال دارایی تعلل کرد و در نتیجه نزدیک به ۱۷۵ میلیون دلار را از دست داد. همچنین تمام ۸۲۳ میلیون دلار USDC در یک آدرس باقی مانده بود و شرکت سیرکل توانست آن را با یک تراکنش مسدود کند.
طبق گزارش بیتاوکی، تتر و سیرکل در مجموع حدود ۲.۵۹ میلیارد دلار دارایی را مسدود کردند. با احتساب توکنهایی که سایر صادرکنندگان مسدود یا سوزاندند و داراییهایی که شورای امنیت آربیتروم توقیف کرد، مجموع داراییهای مسدودشده، سوزاندهشده یا توقیفشده به حدود ۲.۷۹ میلیارد دلار رسید. با این حال، حدود ۶۶۹ میلیون دلار تتر پیش از این اقدامات به اتریوم و ترون تبدیل شده بود.
مهاجم تا چه زمانی کنترل کیف پول بایننس را در اختیار داشت؟
با وجود اقدامات امنیتی، مهاجم برای چند ساعت دیگر هم به کیف پول Binance ۱۴ دسترسی داشت. بایننس در جریان عملیات عادی خود، حدود ۲۰۰ میلیون دلار تتر به این کیف پول منتقل کرد. مهاجم تنها ۱۲ ثانیه بعد این مبلغ را به آدرس دیگری انتقال داد. هرچند تترهای منتقلشده به آدرسی رسیدند که قبلاً مسدود شده بود، نزدیک به ۳۷۰ واحد اتریوم از این جابهجایی خارج شد.
این اتفاق در ادامه نیز تکرار شد. مهاجم در ساعت ۲۲:۳۹ حدود ۱۲۸.۴۹ واحد ETH و در ساعت ۲۳:۵۶ نیز نزدیک به ۲٬۹۶۱.۹۱ واحد ETH را از کیف پول خارج کرد. در نهایت، بایننس در ساعت ۰۰:۱۰:۳۵ روز ۳۰ اکتبر توانست مجوز دسترسی مهاجم را لغو کند. به این ترتیب، مهاجم نزدیک به چهار ساعت کنترل این کیف پول را در اختیار داشت.
سرنوشت ۱۸ هزار بیت کوین سرقتشده چه شد؟
یکی از بخشهای مهم این سرقت، انتقال ۱۸٬۲۷۰.۲ واحد بیت کوین از کیف پول گرم بایننس بود. مهاجم این مقدار بیت کوین را در ۱۱ تراکنش به ۱۹ آدرس مختلف منتقل کرد. ۱۷ مورد از این آدرسها هرکدام حدود هزار بیت کوین دریافت کردند. طبق بررسی بیتاوکی تا زمان انتشار گزارش در ۳۰ اکتبر، این داراییها همچنان در همان آدرسها باقی مانده بودند.
ردیابی بیت کوینهای سرقتشده از این جهت امکانپذیر است که تمام تراکنشهای این شبکه بهصورت عمومی ثبت میشوند. با این حال، برخلاف تتر و USDC، امکان مسدودکردن مستقیم بیت کوینها وجود ندارد. بنابراین، حتی با مشخصبودن مسیر انتقال داراییها، جلوگیری از جابهجایی آنها به سازوکار دیگری نیاز دارد.
آیا هک بایننس به حمله قبلی بیتگت ارتباط دارد؟
یکی از یافتههای مهم بیتاوکی، ارتباط میان مسیر انتقال بخشی از داراییهای سرقتشده از بایننس و وجوه مرتبط با حمله سپتامبر ۲۰۲۶ به صرافی بیتگت (Bitget) بود. بررسیها نشان داد داراییهای مربوط به هر دو حمله در نهایت به یک آدرس اتریومی مشترک رسیدهاند.
مهاجم برای انتقال داراییها از ترون و تتر به شبکه اتریوم، از تورچین استفاده کرده بود. این پروتکل امکان مبادله ارزهای دیجیتال میان شبکههای مختلف را فراهم میکند. بیتاوکی اعلام کرد تا ساعت ۰۶:۲۰ روز ۳۰ اکتبر، این آدرس هشت انتقال مرتبط با هک بیتگت به ارزش ۳۴۹.۴۶ واحد ETH و پنج انتقال مرتبط با هک بایننس به ارزش ۱۳.۶۳ واحد ETH دریافت کرده بود. سپس داراییهای ترکیبشده به کیف پولهای جدید انتقال پیدا کردند.
این شباهت باعث شد احتمال ارتباط دو حمله مطرح شود. بیتاوکی برخی از ویژگیهای عملیات، از جمله آزمایش قبلی ابزارها، استفاده از تورنادو کش و تبدیل سریع استیبل کوینها به ارزهای غیرقابل مسدودسازی را با روشهای منتسب به گروههای هکری کره شمالی مرتبط دانست. با این حال، این شرکت تأکید کرد که ارتباط میان آدرسها و شباهت روشهای حمله، بهتنهایی هویت عاملان را اثبات نمیکند.
واکنش بایننس به سرقت ۶ میلیارد دلاری
بایننس پس از شناسایی حمله، حدود ساعت ۲۰:۳۶ برداشت از کیف پولهای گرم بیت کوین و ترون خود را متوقف کرد، اما واریز داراییها همچنان ادامه داشت. ریچارد تنگ، مدیرعامل این صرافی، در پیامی اعلام کرد که دارایی کاربران در امنیت است و بایننس تمام خسارتها را از محل صندوق اضطراری SAFU و منابع مالی خود جبران میکند.
طبق آخرین اطلاعات منتشرشده از سوی بیتاوکی در ساعت ۰۶:۲۰ روز ۳۰ اکتبر (۸ آبان)، داراییهای باقیمانده در آدرسهای مرتبط با مهاجم شامل موارد زیر بود:
- اتریوم: حدود ۱۹۷٬۴۶۰ واحد
- بیت کوین: بیش از ۱۸٬۲۷۰ واحد
- ریپل: حدود ۲۳۳.۴۶ میلیون واحد
- سولانا: نزدیک به ۹۷۰٬۵۰۰ واحد
- ترون: حدود ۶۷۵.۹ میلیون واحد
- آوالانچ: حدود ۱.۶۱ میلیون واحد
ارزش مجموع بیت کوین، اتریوم، ریپل و سولانای موجود در این آدرسها بهتنهایی حدود ۲.۹۵ میلیارد دلار برآورد شده است.
این حمله همچنین نشان داد که امنیت کلیدهای خصوصی بهتنهایی برای محافظت از داراییهای صرافیها کافی نیست. مهاجمان در این پرونده توانستند به سیستم صدور مجوز و تأیید برداشتها نفوذ کنند و از زیرساخت خود بایننس برای انتقال داراییها استفاده کنند. به همین دلیل، بیتاوکی بر ضرورت کنترل دقیق مجوزهای امضا، شناسایی دستورهای برداشت مشکوک، لغو سریع دسترسیهای غیرمجاز و نظارت مداوم بر جابهجایی داراییها در شبکههای مختلف تأکید کرده است.

لطفا در صورت مشاهده دیدگاههای حاوی توهین و فحاشی یا خلاف عرف جامعه با گزارش سریع آنها، به ما در حفظ سلامت بستر ارتباطی کاربران کمک کنید.