تاریخ بروز رسانی :
۱۴
اردیبهشت
۱۴۰۲
هکرها چگونه به بلاک چین حمله میکنند؟ آشنایی با مهم ترین حملات بلاک چینی
زمان مطالعه :
7 دقیقهفهرست
هک ۶۰۰ میلیون دلاری Ronin Bridge، به سرقت رفتن ۱۰۰ میلیون دلار از شبکه هارمونی و یا هک بیش از ۸ میلیون کیف پول از بلاک چین سولانا! این موارد تنها بخشی از حملاتی بودند که امنیت شبکههای بلاک چینی را به خطر انداختهاند.
شاید با خودتان تصور کنید که این اتفاقات به ندرت گریبان کاربران را میگیرند و یا به سالهای آغازین ظهور شبکههای بلاک چینی محدود میشود. امّا بد نیست یادآور شویم که تمامی حملات مذکور در سال ۲۰۲۲ اتفاق افتادهاند!
با وجود مشکلات امنیتی در انواع بلاک چینهای کوچک و بزرگ، نباید فراموش کنیم که با رعایت برخی نکات ساده، میتوانیم تا حد زیادی اطلاعات و داراییهای خود را از این گونه خطرات مصون نگهداریم.
برای انجام اقدامات پیشگیرانه، ابتدا نیاز داریم تا با ساختار کلی بلاک چینها آشنا شویم و سپس به سراغ حملات مختلف شبکهها برویم.
بلاک چین چیست؟
عبارت Blockchain از دو کلمه Block و Chain تشکیل میشود. به عبارتی، تکنولوژی بلاک چین از زنجیرهای از بلاکهای مختلف ایجاد شده که وظیفه ثبت اطلاعات را بر عهده دارند.
رمزنگاری (Cryptography)، تمرکززدایی (Decentralization) و اجماع (Consensus) اصولی هستند که پایه و اساس هر بلاک چین را تشکیل میدهند. اکنون ممکن است از خودتان بپرسید که چرا بلاکها یک زنجیره را تشکیل میدهند و آیا ضرورتی وجود دارد که این اطلاعات به صورت زنجیروار به یکدیگر متصل باشند؟ باید بگوییم که بله!
در کنار۳ اصلی که بالاتر ذکر کردیم، شفافیت (Transparency) هم از اهدافی است که بلاک چینهای غیرمتمرکز سعی دارند تا آن را محقق سازند.
تمامی افراد میتوانند از فعالیتهای شبکه و اطلاعات بلاک فعلی و بلاکهای قبلی آگاه باشند. با این حال، این اطلاعات تغییرناپذیر هستند و به دلیل پیوستگی بلاکها، امکان دستکاری دادهها وجود نخواهد داشت.
اصل سوم را که به خاطر دارید؟ برای تایید هر بلاک در شبکههای بلاک چینی، به یک مکانیزم اجماع (Consensus Mechanism) نیاز خواهد بود و به تاییدکنندگان بلاکها به اصطلاح ماینر گفته میشود. برای آشنایی با تاییدکنندگان بلاک چین و مفاهیمی مانند Node و Hash، شما را به مقاله بلاک چین چیست؟ توضیح به زبان ساده ارجاع میدهم.
مکانیزم امنیتی بلاک چینهای مختلف
کم و بیش با مفهوم بلاک چین آشنا شدیم و اکنون آمادگی آن را داریم که به ساز و کار امنیتی در بلاک چینهای مختلف بپردازیم. به عبارتی، نیاز داریم تا انواع گوناگون بلاک چین را بشناسیم.
بلاک چین عمومی (Public Blockchain)
بلاک چین عمومی را میتوان به آن دسته از گروههای موجود در شبکههای اجتماعی تشبیه کرد که هر فردی توانایی حضور در آن را دارد. به بیانی دیگر، این بلاک چینها رویکردی منبع باز (Open Source) دارند.
اتریوم از شناخته شده ترین نمونههای مربوط به این بلاک چینهاست. در این شبکهها، تمامی اعضا به کدها و الگوریتمها دسترسی دارند امّا امکان تغییر یا حذف دادهها وجود ندارد.
بلاک چین خصوصی (Private Blockchain)
برخلاف نوع قبلی از بلاک چینها، در این دسته از شبکهها ساز و کاری متفاوت را شاهد هستیم. به گونهای که امتیاز دسترسی به زیرساختهای شبکه در انحصار افراد یا گروههای خاصی قرار دارد.
به طور خلاصه، این بلاک چینها از رویکرد تایید انتخابی (Selective Endorsement) استفاده میکنند و تنها کاربران برگزیده شده امکان تایید تراکنشها را در اختیار دارند.
به بلاک چین عمومی و خصوصی به ترتیب Permissionless Blockchain و Permissioned Blockchain نیز گفته میشود.
انواع حملات بلاک چینها
اکنون که کم و بیش با تکنولوژی بلاک چین آشنا شدیم، نوبت آن رسیده تا نگاهی بیاندازیم بر موضوع بحث امروزمان؛ یعنی خطراتی که امنیت هر بلاک چین را تهدید میکنند.
حمله ۵۱ درصد
متوجه شدیم که برای تامین امنیت بلاک چین، ماینرها یا اعتبارسنجها (Validators) یک مکانیزم اجماع را به کار میگیرند.
فرایند تبدیل شدن به ماینر دشوار و پر هزینه خواهد بود. چرا که به تجهیزات پیشرفتهای برای حل مسائل بلاک چینها نیاز خواهیم داشت. با این حال، اگر فرد یا گروهی موفق به تامین این تجهیزات شود و آن را گسترش دهد، میتواند بخش زیادی از اختیارات شبکه را به دست بگیرد.
اگر این اختیارات از ۵۰ درصد فراتر رود، آن گروه توانایی نفوذ به شبکه و برهم زدن فعالیتهای شبکه را خواهد داشت. به این نوع از حملات اصطلاحا حمله ۵۱ درصد گفته میشود. از مهمترین دلایل این مشکل امنیتی، میتوان به آسیب پذیری نود در بلاک چین اشاره کرد.
عبارت ۵۱ درصد عموما به بلاک چینهای اثبات کار (PoW) اطلاق میشود. امّا در شبکههای اثبات سهام (PoS) هم وقوع این مشکل غیرممکن نیست. استیکینگ چیست؟
حمله فینی (Finney Attack)
همانند حمله ۵۱ درصد، این نوع حملات هم توسط ماینرهای هر پلتفرم انجام خواهد شد.
در حمله Finney، یک ماینر یا ولیدیتور میتواند تراکنش یک بلاک را از پیش تایید کند که اصطلاحا به آن Pre-mine گفته میشود. در این تراکنش، دو آدرس فرستنده و گیرنده به همین ماینر تعلق دارند.
پس از استخراج بلاک توسط این ماینر، وی تراکنش را به ماینر دیگری در یک بلاک مجزا ارسال میکند. در صورتی که گیرنده بدون بررسی این تراکنش را بپذیرد، بلاک جدید را تایید خواهد کرد. درحالی که اطلاعات موجود در بلاک به طور کامل تایید نشده و غیرمعتبر محسوب میشوند.
نام این حمله به توسعه دهنده نرم افزار آمریکایی یعنی هال فینی (Hal Finney) اشاره دارد. وی به عنوان نخستین دریافت کننده بیت کوین شناخته میشود. در اولین تراکنش بیت کوین، ساتوشی ناکاموتو ۱۰ واحد BTC را به حساب او منتقل کرد.
ناگفته نماند که این نوع حمله، منحصر به ماینرهایی است که تجهیزات محاسباتی قدرتمندی را در اختیار دارند. اگر فرایند Hashing آن استخراج کننده به سرعت انجام نشود، احتمالا باید آن حمله را شکست خورده بنامیم.
حمله رقابتی (Race Attack)
تا کنون با دو نوع از حملات بلاک چینی آشنا شدیم. موضوع این بخش از مطلب ما هم از ساز و کاری نسبتا مشابه با نمونههای پیشین برخوردار است.
در اینجا، دریافت کننده (Recipient) نیمی از مسئولیت حمله را به عهده میگیرد! یعنی همانند حمله فینی، مهاجم زمانی در انجام هک موفق میشود که آدرس مقصد، تراکنش تایید نشده را بپذیرد.
طی حمله رقابتی، هکر تراکنشی تایید نشده را به قربانی میفرستد و در همان حین، تراکنش دیگری را به طور موازی و همزمان در شبکه منتشر میکند. در این حالت، دریافت کننده تصور میکند که با پذیرش تراکنش، دارایی خود را دریافت خواهد کرد. امّا ای کاش اوضاع بدین شکل پیش میرفت!
به غیر از شخص گیرنده، دیگر تاییدکنندگان شبکه تراکنشی را میپذیرند که همزمان با تراکنش ابتدایی منتشر شده و در چنین موقعیتی، به احتمال زیاد پذیرنده دارایی خود را دریافت نخواهد کرد.
حمله فیشینگ (Phishing)
این حمله به شبکههای بلاک چینی و قرارداد هوشمند محدود نبوده و در حوزههای مختلفی، موانع دشواری را سد راه ما قرار میدهد.
در حملات فیشینگ، هکرها تلاش میکنند تا با ارسال پیامهایی، به اطلاعات کاربران از جمله عبارت ۱۲ کلمهای (Seed Phrase) دسترسی پیدا کنند. این نوع از پیامها اغلب در قالب ایمیل یا دیگر شبکههای اجتماعی فرستاده میشوند.
در جولای ۲۰۲۲، گروهی از افراد به ۷۳ هزار کاربر یونی سواپ توکن غیر واقعی UniswapLP را ارسال کردند. این توکنها تحت عنوان ایردراپ در اختیار کاربران قرار گرفته بودند و برای برداشت این پاداش، توکنهای UNI خود را به آن تبدیل کردند. طی این حمله بیش از ۴.۵ میلیون دلار از دارایی کاربران به سرقت رفت.
پیامهای فیشینگ عمدتا با اسامی کمپانیهای معتبر ارسال میشوند و با کلیک بر روی لینکهایی تقلبی، کاربران به صفحاتی انتقال مییابند. در این صفحات، اطلاعات شخصی کاربران مانند کلید خصوصی در معرض خطر قرار میگیرند.
حمله وام فوری (Flash Loan)
احتمالا تا کنون نام Flash Loan یا وام فوری را شنیدهاید. این وامها بدون وثیقه (Collateral) به متقاضیان اعطا میشوند و افراد موظف هستند تا در زمانی کوتاه آن مبلغ را برگردانند. در غیر این صورت، مالکیت دارایی از دسترس آنها خارج خواهد شد.
حمله Flash Loan زمانی رخ میدهد که شخص متقاضی مقدار زیادی از دارایی را در قالب وام دریافت میکند و پس از دستکاری قیمتها در پلتفرم مالی دیگر (مثلا یک صرافی غیرمتمرکز)، وام دریافت شده را در آن صرافی به فروش برساند. این حملات معمولا در چند ثانیه صورت میگیرند.
حملات Flash Loan، این پتانسیل را دارند که چندین زنجیره یا پروتکل مختف را درگیر کنند. تاکنون پلتفرمهایی چون dYdX و Cream Finance، گرفتار این گونه حملات مرتبط با وام فوری شدهاند.
برای آشنایی بیشتر با وام دهی و وام گیری در حوزه DeFi، مقاله آوه چیست؟ برای شما مفید خواهد بود.
در این قسمت از مطلب، به ۵ نوع از حملات در بلاک چین پرداختیم. جا دارد اضافه کنیم که ۳ آیتم ابتدایی یعنی حمله ۵۱ درصد، حمله فینی و حمله رقابتی، در گروه حملات Double Spending یا دوبار پرداخت قرار میگیرند.
پس از آشنایی با سیستم امنیتی در بلاک چینهای مختلف، به اقدامات پیشگیرانهای خواهیم پرداخت که میتوانند اطلاعات یا داراییهای ما را از تهدیدات احتمالی به دور نگه دارند.
چگونه با حملات بلاک چینی مقابله کنیم؟
هنگام تامین امنیت کیف پولها، نگهداری از Seed Phrase و رمز عبور، اقداماتی هستند که در بالای لیست ما قرار میگیرند. امّا برای در امان ماندن از حملات بلاک چین، فعالیتهای دیگری هم هستند که باید به آنها توجه داشت.
جلوگیری از حملات Double Spending
به منظور جلوگیری از حملات Double Spending از جمله حمله ۵۱ درصد، بلاک چینها از مکانیزمهای اجماع اثبات کار (PoW) و اثبات سهام (PoS) استفاده میکنند.
به نوعی میتوان گفت که به هنگام حملات Double Spending، کاربران بلاک چین از اختیارات قابل توجهی برخوردار نیستند و ایمن سازی شبکه بر عهده ماینرها و تیم فنی خواهد بود.
با استفاده از این نوع مکانیزمها، تمرکز زدایی در شبکه افزایش مییابد و برای تایید هر بلاک، به رقابت بیشتری نیاز خواهد بود. از طرفی، بهتر است معاملات خود را در صرافیهای مورد اطمینان انجام دهید تا پس از تایید هر تراکنش در کیف پول، با مشکل مواجه نشوید.
همچنین بلاک چینهایی مانند بیت کوین، محدودیتی را برای ماینرهای اعمال میکنند. به عنوان مثال، ماینری نمیتواند بیش از ۵۰ درصد از قدرت محاسباتی شبکه را در اختیار داشته باشد.
مقابله با حملات Phishing
حفظ امنیت داراییها در برابر حملات فیشینگ، تا حد زیادی بر عهده کاربران خواهد بود. بررسی دقیق ایمیلها، عدم کلیک برروی لینکهای ناشناس و نصب نسخههای معتبر اپلیکیشنها میتوانند تا حد زیادی ما را از این نوع حملات مصون نگه دارند.
علاوه بر موارد گفته شده، فعالسازی تایید ۲ مرحلهای، استفاده از رمز عبور مطمئن و به روز نگه داشتن اپلیکیشنها، به ما در مقابله با فیشینگ کمک خواهند کرد.
جلوگیری از حملات وام فوری (Flash Loan)
در مقایسه با موارد قبلی، شاید بتوان گفت که برای جلوگیری از حملات مربوط به Flash Loan پروسه به نسبت آسان تری را در پیش خواهیم داشت.
- استفاده از پلتفرمهای معتبر DeFi مانند آوه
- به کارگیری کیف پولهای غیر حضانتی (Non-Custodial) مثل تراست والت و متامسک
- به روز نگه داشتن اطلاعات و آگاهی از اخبار
سخن پایانی
در مطلب امروز، امنیت بلاک چینها را زیر ذره بین بردیم و انواع طعمههای هکرها را شناسایی کردیم. با این حال، باید بپذیریم که تمام مشکلات احتمالی تحت کنترل ما نبوده و شاید نتوان از همه چیز جلوگیری کرد!
علی رغم کنترل ناپذیری مشکلاتی چون حملات ۵۱ درصد، انجام برخی اقدامات ساده میتوانند تا حد زیادی از ریسک خطرات احتمالی بکاهند.
چنانچه به مشاوره رایگان علاقهمندید، پرسشها و نظرات خود را درباره این مقاله یا موضوعات مختلف حوزه بلاکچین و ارزهای دیجیتال مطرح کنید. برای پاسخگویی آمادهایم!
نظر بدهید
0