در دنیای کریپتو، صرافیهای ارز دیجیتال یکی از مهمترین اهداف هکرها به شمار میآیند؛ جایی که میلیونها و حتی میلیاردها دلار از سرمایه کاربران نگهداری میشود. تنها در چند حمله اخیر به صرافیهایی مانند بینگاکس، وزیراکس و اوکیاکس میلیونها دلار از سرمایه کاربران به دلیل نقضهای امنیتی به دست هکرها افتاد. هکرها همواره، همگام با فناوری و حتی یک قدم جلوتر حرکت میکنند. بنابراین صرافیهای ارز دیجیتال برای حفظ سرمایههای کاربران باید تدابیر امنیتی پیشرفته و متنوعی را بهکار گیرند.
با توجه به اهمیت موضوع، در این مطلب نگاهی به روشهای مختلف هک صرافی ارز دیجیتال میاندازیم و تدابیر امنیتی صرافیها و اقدامات امنیتی را که ما بهعنوان کاربر باید برای حفظ سرمایه خود انجام دهیم بررسی میکنیم. با میهن بلاکچین همراه باشید.
بررسی انواع روشهای هک صرافی ارز دیجیتال
صرافیهای ارز دیجیتال هدف اصلی مجرمان سایبری هستند. در بین تمام حملههای سایبری که در فضای ارزهای دیجیتال اتفاق افتاده است، ۲۷٪ از آنها مستقیما صرافیها را هدف گرفتهاند. پژوهش مشترکی که توسط کریستال بلاکچین (Crystal Blockchain) و کوین تلگراف (Cointelegraph) انجام شده است، نشان میدهد در فاصله سالهای ۲۰۱۱ تا ۲۰۲۰ بیش از ۱۵.۶ میلیارد دلار از طریق هک صرافیهای ارز دیجیتال به سرقت رفته است. در این بازه زمانی بیش از ۵۰ صرافی، قربانی هکرها شدهاند و برخی از آنها چندین بار مورد حمله قرار گرفتهاند.
مجرمان سایبری برای نفوذ به صرافیهای کریپتویی و دسترسی غیرمجاز به داراییهای دیجیتال دنبال نقاط ضعف و آسیبپذیریهای موجود هستند. در اکثر موارد، دلیل اصلی هکها ضعف در تدابیر امنیتی کیف پول گرم صرافیها عنوان شده است. در ادامه برخی از روشهای مجرمان سایبری برای هک صرافی ارز دیجیتال را بررسی میکنیم:
حمله اسکریپتنویسی متقابل (Cross-Site Scripting attacks)
حمله اسکریپت نویسی متقابل (XSS) یک نوع رایج از حمله تزریق کد است که مهاجم با شناسایی نقاط ضعف امنیتی وبسایت، کدهای مخرب را در صفحات وب تزریق میکند. این کدها معمولا معاملهگران را به سایتهای شخص ثالث هدایت میکنند یا دستگاههایشان را با نرمافزارهای مخرب آلوده میکنند. در حقیقت، این نرمافزارها شامل ویروسهایی هستند که رمز عبور کیف پولهای دیجیتال را سرقت میکنند یا آدرسهای کپیشده در کیلپبورد را به آدرس موردنظر مهاجم تغییر میدهند.
پیکربندیهای نادرست امنیتی (Misconfiguration)
منظور از پیکربندی نادرست این است که ترمینالهای وب فاقد HTTP Headerهایی هستند که از آنها برای محافظت در برابر حملات خاص استفاده میشود. بهطور مثال، هدرهای زیر هرکدام وظیفه خاصی دارند که نبودن یا نادرست بودن تنظیمات آنها، زمینه حمله به سایت را فراهم میکند:
- Content-Security-Policy: از تزریق محتوای مخرب مانند حملات XSS جلوگیری میکند.
- X-Frame-Options: از حملات کلیک جکینگ (Clickjacking) جلوگیری میکند. حمله کلیک جکینگ کاربر را فریب میدهد تا روی عناصر مختلف وب که نامرئی هستند یا به یک عنصر دیگر تبدیل میشوند، کلیک کند.
- Strict-Transport-Security: با اعمال پروتکل امن انتقال ابر متن ( HTTPS) یک اتصال امن را تضمین میکند.
آسیبپذیری در کدهای صرافی
طبق گزارش کاوریتی اسکن (Coverity Scan) که ابزاری برای آنالیز کد است، در هر ۱٬۰۰۰ خط کد، تقریبا ۰.۳ خطا وجود دارد. این خطاها میتوانند امنیت پلتفرم را به خطر بیندازند. حتی اگر توسعهدهندگان صرافی، کدها را بدون خطا بنویسند، همیشه احتمال آسیبپذیری در نرمافزارهای شخص ثالث مانند حفرههای امنیتی در درگاه پرداخت، سیستمعامل یا پلتفرم پیامرسانی وجود دارد. مهاجمان میتوانند از این آسیبپذیریها برای انجام حملات فیشینگ (Phishing) یا نصب برنامههای مخرب روی دستگاههای کارکنان صرافی استفاده کنند.
آسیبپذیری قراردادهای هوشمند
هکرها میتوانند از آسیبپذیری کد قرارداد هوشمند کیف پولها برای دسترسی غیرمجاز به داراییهای دیجیتال قربانیان استفاده کنند. این آسیبپذیریها ممکن است منجر به حملات هدفمند به یک کیف پول خاص شوند یا اگر تعداد زیادی از کیف پولها دارای نقض امنیتی مشابهی باشند، احتمال دارد یک حمله گسترده اتفاق بیافتد. برخی از آسیبپذیریهای رایج در کد قراردادهای هوشمند عبارتند از:
- عدم اعتبارسنجی ورودی مناسب: در این حالت قراردادهای هوشمند ورودیهای دریافتی از کاربران یا سایر منابع را بهدرستی بررسی نمیکنند. این وضعیت منجر به رفتارهای غیرمنتظره یا سوء استفاده هکرها برای دستکاری عملکرد قرار داد میشود.
- حمله ورود مجدد (Reentrancy Attack): این حمله زمانی رخ میدهد که مهاجم با استفاده از مکانیزم فراخوان بازگشت قرارداد، بهطور مکرر و قبل از بهروزرسانی موجودیها اقدام به برداشت وجوه میکند.
- سرریز/ کمبود اعداد صحیح (Integer overflow/underflow): اگر محاسبات قرارداد هوشمند منجر به مقادیر غیرمنتظره یا خارج از محدوده (بیش از حد بزرگ یا کوچک) شود، عواقب پیشبینینشدهای اتفاق میافتد.
- درخواستهای خارجی ناامن: درخواستهایی که بهدرستی ایمنسازی نشده باشند، فرصتی را برای مهاجمان فراهم میکند تا کد دلخواهشان را اجرا کنند. در نتیجه یکپارچگی قرارداد به خطر میافتد.
مهندسی اجتماعی (Social engineering)
در حملات مهندسی اجتماعی، افراد مخرب خود را بهعنوان نمایندگان صرافیها یا شرکتها جا میزنند تا از طریق فریب و ایجاد اعتماد، اطلاعات محرمانه آنها مانند کلیدهای خصوصی را به دست آورند. در این نوع حمله معمولا از تاکتیک فیشینگ نیزهای (Spear Phishing) یا هدفمند استفاده میشود. مهاجمان پیامها یا ایمیلهایی را بهطور هدفمند به کارمندان ارسال میکنند تا در نهایت بتوانند به کلیدهای خصوصی دسترسی پیدا کنند. در این فرآیند، هکرها معمولا باید ماهها تلاش کنند تا بتوانند به نیت شوم خود برسند.
یکی دیگر از تکنیکهایی که این حملات را مؤثرتر میکند، استفاده از اپلیکیشنهای جعلی موبایل است. مهاجمان با طراحی این برنامههای جعلی، کاربران را تشویق به دانلود و نصب آنها میکنند. پس از نصب برنامه، میتوانند به اطلاعات حسابهای شخصی دسترسی پیدا کرده و حمله خود را بهسادگی اجرا کنند.
احراز هویت پیامکی
همانطور که میدانید در فرآیند احراز هویت پیامکی یک کد تایید بهصورت پیامک برای کاربر ارسال میشود تا احراز هویت یا بازیابی حساب انجام شود. ممکن است این روش توسط مهاجمان سایبری مورد سوء استفاده قراربگیرد، بهویژه اگر آنها بدانند که فرد خاصی بهعنوان معاملهگر یا مدیر صرافی ارز دیجیتال فعالیت میکند. افراد مهاجم میتوانند با رهگیری پیامکها، از کدهای ارسالشده برای دسترسی غیرمجاز به حسابهای کاربر استفاده کنند. برخی روشهای هککردن فرایند احراز هویت پیامکی شامل موارد زیر میشود:
- استراق سمع: مهاجمان میتوانند با استفاده از تجهیزات تخصصی، تلفن قربانی را به بدافزار آلوده کرده یا حتی با هک کردن سرور ارائهدهنده خدمات مخابراتی، پیامکهای قربانی را رهگیری کنند.
- شبیهسازی سیم کارت: افراد مهاجم میتوانند با شبیهسازی سیمکارت قربانی، کدهای پیامکی ارسالشده را دریافت کرده و از آنها برای دسترسی غیرمجاز به حساب به کاربر استفاده کنند.
- ایجاد ایستگاه مخابراتی جعلی: در این روش، مهاجمان با استفاده از تجهیزات گرانقیمت یک ایستگاه پایه مخابراتی را بهعنوان یک واسطه راهاندازی میکنند تا بتوانند پیامها را پیش از ارسال به مقصد اصلی دریافت کنند.
- هک پلتفرم وب شرکت مخابراتی: در این حالت، مهاجمان با نفوذ به حساب کاربری فرد در پلتفرم ارائهدهنده خدمات مخابراتی، تمامی پیامکها را به شماره تلفن یا ایمیل خودشان هدایت میکنند.
- حمله SS7: یکی دیگر از روشهای مهاجمان، سوء استفاده از آسیبپذیریهای موجود در پروتکلهای ارتباطی تلفن همراه مانند PSTN و PLMN است. در این حالت، مهاجم میتواند بدون دسترسی مستقیم به دستگاه به پیامکهای فرد قربانی دسترسی پیدا کند.
- فریب اپراتورهای مرکز تماس: در این حالت، مهاجمان ابتدا اطلاعات تماس قربانیان را از منابع عمومی و شبکههای اجتماعی جمعآوری میکنند، سپس با مراکز تماس ارائهدهنده خدمات مخابراتی تماس میگیرند و به جای کاربر اصلی درخواست بازیابی سیمکارت را میدهند.
تدابیر امنیتی صرافیهای ارز دیجیتال برای جلوگیری از هک شدن چیست؟
اکثر پلتفرمها و صرافیهای ارز دیجیتال برای حفظ داراییهای کاربران در برابر هکرها، تدابیر امنیتی مختلفی را اعمال میکنند. برخی از این اقدامات عبارتند از:
- احراز هویت چند عاملی: سادهترین و رایجتر سد دفاعی در برابر هکرها، احراز هویت چندعاملی (Multi Factor Authentication) است. در این روش کاربران باید برای تایید هر تراکنش، رمز یکبار مصرفی که معمولا به ایمیل یا تلفن آنها ارسال میشود را وارد کنند. روش پیشرفتهتری از این سیستم، استفاده از برنامههای تولید رمز یکبار مصرف مانند گوگل آتنتیکیتور (Google Authenticator) است که امنیت بیشتری را فراهم میکنند.
- کیف پولهای چندامضایی: یکی دیگر از روشهای امنیتی پرکاربرد، استفاده از کیف پولهای چند امضایی (Multi-Signature) است که برای تایید و انجام تراکنشها به بیش از یک کلید خصوصی نیاز دارند. کلیدهای مختلف توسط مالکان مختلف نگهداری میشوند و برای دسترسی به وجوه باید تمامی امضاهای االکترونیکی (کلیدها) جمعآوری شوند. این روش از امنیت بسیار بالایی برخودار است؛ اما به شرطی که همه امضاکنندگان مستقل از یکدیگر باشند.
- توزیع وجوه بین کیف پولهای سرد و گرم: یکی از امنترین روشهای محافظت از دارایی کاربران، توزیع آنها بین کیف پولهای سرد (Cold Wallet) و کیف پولهای گرم (Hot Wallet) است. ولتهای سرد یا سختافزاری (Hardware Wallet) بهدلیل اینکه دائما به اینترنت متصل نیستند، امنیت بالاتری دارند. برای محافظت از کیف پولهای سختافزاری علاوه بر تدابیر امنیتی فیزیکی مانند نگهبانهای مسلح، دوربینهای ویدئویی و اسکنرهای چشمی میتوان از سیستم چندامضایی هم استفاده کرد. هرچه درصد بیشتری از داراییهای صرافی در کیف پول سرد نگهداری شود، سطح امنیت بالاتر میرود. در حالت ایدهآل، کلیدهای رمزنگاری فقط در زمان انجام تراکنشها باید بهصورت آنلاین در دسترس باشند.
- قفل زمانی بیت کوین: یکی دیگر از تدابیر امنیتی صرافیها استفاده از ویژگی قفل زمانی بیت کوین (Bitcoin Timelocks) است که در پروتکل بیت کوین تعبیه شده است. این ویژگی شامل یک مکانیزم امنیتی دومرحلهای با دو کلید مجزا است. برای دسترسی به داراییها به یک کلید معمولی نیاز است؛ اما کنترل کامل وجوه فقط پس از یک بازه زمانی مشخص (معمولا ۲۴ ساعت) امکانپذیر میشود. در این مدت میتوان با استفاده از کلید دوم هر تراکنشی را لغو کرد. درصورتی که هکر هر دو کلید را بهدست بیاورد، صرافی میتواند وجوه موجود در کیف پول را حذف کند.
- بازبینی کدها: معمولا صرافیهای ارز دیجیتال برای افزایش امنیت خود، اقداماتی مانند بازبینی کد (Code Audit)، حسابرسیهای مستقل و تستهای آسیبپذیری نرمافزار را بهصورت دورهای توسط متخصصان امنیتی انجام میدهند. یکی از روشهای رایج برای شناسایی باگها، استفاده از هکرهای کلاه سفید (White Hacker) است. این هکرها با نفوذ به سیستمهای امنیتی، نقاط ضعف را شناسایی میکنند تا قبل از سوء استفاده هکرهای مخرب باگها برطرف شوند.
علاوهبر موارد بالا، صرافیها برای تامین امنیت خود باید رویکرد یکپارچه و جامعی را در پیش بگیرند که شامل تضمین امنیت کدهای صرافی، لایبرریهای شخص ثالث و محیط توسعه میشود. همچنین عامل انسانی هم باید درنظر گرفته شود؛ چراکه اشتباهات انسانی یکی از مهمترین عوامل در حملات هکری است.
اقدامات امنیتی کاربران برای مقابله با هک صرافیهای ارز دیجیتال چیست؟
با توجه به استقبال روزافزون کاربران از ارزهای دیجیتال، صرافیهای کریپتویی یکی از بهترین گزینهها برای هکرها است. حتی اگر صاحبان صرافیها با آگاهی از تمام روشهای اصلی هکرها، اقدامات موردنیاز را انجام داده باشند، بازهم نمیتوان پیشبینی کرد که در آینده چه اتفاقی میافتد. بهعلاوه، مجرمان سایبری بهطور مداوم تاکتیکهای خود را تغییر میدهند و از منابع بیشتری برای حمله به صرافیها استفاده میکنند. بنابراین هیچ تضمینی برای امنیت ۱۰۰٪ یک صرافی وجود ندارد.
یک نکته مهم دیگر این است که بهخطر افتادن حسابهای کاربری در صرافیهای ارز دیجیتال، اغلب نه به دلیل قصور صرافی؛ بلکه بهخاطر سهلانگاری کاربران در تامین امنیت وجوهشان است. به همین دلیل کاربران هم باید توصیههای زیر را جدی بگیرند:
- از نگهداری ارزهای دیجیتال در صرافیهای آنلاین برای طولانیمدت خودداری کنید.
- برای افزایش امنیت حساب کاربری از تدابیر امنیتی مختلف مانند احراز هویت چندعاملی و کیفپولهای چندامضایی استفاده کنید.
- از ذخیرهسازی کلیدهای خصوصی روی دستگاههای متصل به اینترنت خودداری کنید.
- درصورت امکان برای نگهداری داراییهایی که ارزش زیادی دارند از روشهای ذخیرهسازی آفلاین مانند کیف پولهای سرد استفاده کنید؛ بهویژه اگر قصد دارید آنها را برای بلندمدت نگهداری کنید.
جمعبندی
بخش بزرگی از سرقت رمزارزها مربوط به هک صرافیهای ارز دیجیتال است که اغلب به دلیل نقضهای امنیتی رخ میدهند. هکرها با شناسایی آسیبپذیریها و باگهای موجود، از آنها برای اجرای نقشههای شوم خود بهره میبرند. حملات مهندسی اجتماعی، نفوذ به کیفپولهای گرم صرافی، حملات اسکریپتنویسی متقابل، شناسایی آسیبپذیری کد قراردادهای هوشمند، نفوذ به پیکربندیهای نادرست امنیتی و هک فرآیند احراز هویت پیامکی کاربران از جمله روشهای متداول هکرهای صرافیهای ارز دیجیتال است.
در مقابل، صرافیها باید با اقدامات پیشگیرانه از قبیل استفاده از کیفپولهای سرد، سیستمهای تأیید چندمرحلهای و بازبینی مداوم کدها سد دفاعی خود در برابر هکرها را مقاومتر کنند. ما نیز به عنوان کاربر نباید مسئولیت امنیت سرمایه خود را نادیده بگیریم. فعالکردن احراز هویت چند مرحلهای، نگهداری رمزهای عبور در مکانهای امن و خودداری از ذخیره بلندمدت دارایی در صرافیها از جمله اقداماتی است که باید به آنها توجه ویژه داشته باشیم.