اثر برخی از حملات سایبری بلافاصله پس از رخ دادن بر روی قربانی قابلرؤیت است؛ اما انواع دیگری از این حملات بهطور پنهانی یک سازوکار را تحت تأثیر قرار میدهند و نمیتوان بلافاصله آنها را پیگیری کرد. حملات Eclipse، یکی از آن دسته حملاتی است که بهصورت پنهانی عمل میکنند. در این حمله یک مهاجم خرابکار، کاربر یا گره (node) خاصی از درون شبکهای همتا به همتا (P2p) را موردحمله قرار داده و او را از شبکه اصلی منزوی یا ایزوله میکند. در ادامه بیشتر با این حملات و راهکارهای مقابله با آن آشنا خواهید شد.
در این حمله مهاجم تلاش میکند تا ارتباطات ورودی و خروجی کاربر قربانی را با گرههای همسایهاش مختل کند. او این ارتباط را به سوی گرهای که در کنترل مهاجم است؛ بازگردانی (redirect) میکند. درنتیجه قربانی در شبکهای متناوب و کاملاً جداگانه از آنچه در شبکه واقعی در حال رخ دادن است؛ گرفتار میشود. اما مهاجم در چنین حملهای چه طور وارد عمل میشود و چگونه بلاکچین را تهدید میکند؟
مهاجم میتواند به روشهای مختلفی با به هم ریختن وضعیت فعلی دفتر کل توزیعشده (لدجر) بلاکچین، دادههای دریافتی گره قربانی را دستکاری کند. این مسئله میتواند منجر به تائید تراکنشهای غیرقانونی و یا باعث اختلالاتی در فرایند استخراج بلوکها شود.
ازآنجاکه حملات Eclipse متکی بر سوءاستفاده از گرههای همسایه هدف هستند؛ موفقیت این حملات تا حد زیادی به ساختار زیربنایی شبکه بلاکچین هدف وابسته است.
به دلیل محدودیتهای پهنای باند، گرههای یک شبکه غیرمتمرکز نمیتوانند بهصورت همزمان به تمامی گرههای موجود در شبکه متصل شوند. بنابراین گرهها به مجموعهای محدود از گرههای همسایه خود وصل هستند. بنابراین یک مهاجم تنها کافی است تا برای حمله و تهدید یک شبکه به یک گره خاص حمله کند. همانطور که میبینید؛ برخلاف حمله sybil در حملات Eclipse کل شبکه موردحمله قرار نمیگیرد.
مهاجم معمولاً برای منزوی و ایزوله کردن گره هدف از یک باتنت یا شبکه فانتوم که از آی پی آدرسهای موردنظر هکر است؛ استفاده میکند. او گره هدف را با این آیپیها غرق میکند تا گره مجدداً به شبکه بلاکچین وصل شود. سپس مهاجم منتظر خواهد ماند تا قربانی در نهایت به گرههای مخرب متصل شود. علاوه بر این ممکن است از حمله DDoS استفاده کند تا هدف را مجبور به اتصال مجدد به شبکه کند.
ممکن است یک مهاجم این فرایند را چندین بار تکرار کند تا در نهایت یک گره هک شود. اما زمانی که قربانی از همهجا بیخبر، به گرههای تحت کنترل مهاجم وصل شود؛ اطلاعات نادرست را به جای اطلاعات لازم دریافت خواهد کرد.
رایجترین پسلرزههایی که پس از حمله Eclipse در پروژههای رمزارزها رخ میدهد عبارتاند از:
حملات دو بار خرج کردن یا Double spending: هنگامیکه ارتباط قربانی با شبکه قطع شود؛ مهاجم ممکن است قربانی را به سمت پذیرش تراکنشهای مشکوک هدایت کند. این ورودی این تراکنشها ممکن است نامعتبر باشد و یا مشابه تراکنشی باشند که پیشازاین در شبکه قانونی اعتبارسنجی و تائید شده است. حملات Double spending انواع مختلفی دارد که تبهکاران از زمان ظهور فناوری بلاکچین تا به امروز از آن استفاده کردهاند. این حمله تنها در ارزهای دیجیتال دیده میشود.
اختلال در عملیات استخراج ماینر: مهاجم میتواند با دستکاریهای مختلف، ماینر قربانی را گمراه کند. به این صورت که یک بلوک استخراجشده را از ماینر پنهان کرده و یا توان محاسباتی ماینر را به سوی یک بلوک Orphan که درواقع از بلاکچین اصلی جداشده است؛ هدایت کند. بنابراین منابع و زمان ماینر بر روی بلوکی که هیچ منفعتی برایش ندارد؛ تلف میشود. این عمل باعث میشود تا مهاجم نرخ هش ریت (Hashrate) نسبی خود را در شبکه افزایش داده و در رقابت استخراج بلوک از شانس بالاتری برخوردار شود. علاوه بر این، ازآنجاییکه ماینر قربانی اساساً از شبکه قانونی جدا و ایزوله شده است؛ مهاجمان میتوانند برای حمله ۵۱ درصدی اقدام کنند. برای این کار لازم است تا ماینرهای دیگری درون شبکه نیز قربانی شده و توان محاسباتی آنها در خارج از شبکه اصلی به هدر رود. بهاینترتیب سختی شبکه کاهش پیداکرده و حمله ۵۱ درصد بهصورت موفقیتآمیز به کل شبکه امکانپذیر خواهد بود.
اگر مهاجمی به آی پی آدرسهای زیادی دسترسی داشته باشد؛ میتواند گرهها را موردحمله Eclipse قرار دهد. سادهترین راه برای جلوگیری از این کار این است که گره اتصالات ورودی را محدود کرده و برای هرگونه اتصال ایجادشده با گرههای دیگر، بهصورت دقیق و هوشمندانه عمل کرد. البته این رویکرد نیز خالی از اشکال نیست. این روش، کار را برای پیوستن گرههای جدید به شبکه بلاکچین دشوار میکند و زمانی این کار عملی است که همه گرهها از این مورد پیروی کنند.
به دلیل ماهیت عمومی و منبع باز بودن اکثر پروژههای بلاکچینی برای هکرها، ارزیابی و بررسی زیرساختهای بنیادی پروژهها کار نسبتاً آسانی است و آنها میتوانند نقاط آسیبپذیر شبکه را بهراحتی شناسایی کنند. ازآنجاییکه توافق بر سر اجرای تغییرات بنیادین در اواسط راه یک بلاکچین بسیار دشوار است؛ بهترین راه برای جلوگیری از حمله Eclipse آن است که از ابتدا پیکربندی گرههای شبکه بلاکچین در برابر این حمله مقاوم طراحی شوند.
از جمله راههای مبارزه با حمله Eclipse میتوان به راههای زیر اشاره کرد:
انتخاب گره بهصورت تصادفی: این روش به این شکل عمل میکند که در یک شبکه همتا به همتا هر گره هر بار که با شبکه همگامسازی (sync) شود و به مجموعهای تصادفی از آی پی آدرسها متصل خواهد شد. در این راهحل معماری شبکه بلاکچین بهگونهای نخواهد بود که بتوان الگویی تکراری از ارتباط گرهها مشاهده کرد. بنابراین میتوان بهطور قابلتوجهی احتمال اتصال گرهها به گره تحت کنترل مهاجم را حتی اگر اخیراً متصل شده باشد؛ کاهش داد.
انتخاب گره بهصورت انتخابی: این رویکرد کاملاً برعکس انتخاب گره تصادفی است. انتخاب گره بهصورت انتخابی، شامل قرار دادن آی پی آدرسهای گرههای خاص بهصورت ثابت و از پیش تعیینشده است. گرهها در هر بار همگامسازی شبکه، تنها به گرههای مشخصشده وصل میشوند. با این راهحل ترفندها و روشهای مهاجم برای حمله Eclipse به گرهها بسیار دشوارتر میشود.
همچنین یک بلاکچین میتواند به جای ارائه دادههای عینی مانند تمبرهای زمانی و در دسترس بودن گرهها، شناسههای گره و سطح اعتماد به یک گره را در معیارهای اتصال شبکه خود بگنجاند تا ارتباط با همتایان قانونی با امتیاز بالاتر آسانتر و مشخصتر باشد. با این رویکرد شبکه بلاکچینی ایمنتر خواهد بود و تأثیر کارهای تخریبی اشخاص ثالث بر شبکه اصلی کمتر میشود. بااینوجود، اگر تنها اتصال به گرههای خاص که از قبل توسط سایر همتایان تائید شدهاند امکانپذیر باشد؛ شبکه میتواند از نظر مقیاسپذیری دچار مشکل شود.
اگرچه حملات Eclipse معمولاً متمرکز بر یک کاربر یا مجموعه محدودی از اهداف است؛ اما حملات مکرر میتواند اعتماد را از شبکه بلاکچین سلب کرده و در نهایت یک شبکه بدون دفاع مناسب را از بین ببرد. به همین خاطر است که علاوه بر بررسی موارد استفاده بالقوه و توکنومیک یک پروژه بلاکچینی، باید به درک درستی از مکانیسمهای اساسی اجماع و زیربنایی شبکه آن پروژه نیز رسید. درحالیکه هر پروژه ارز دیجیتالی برای بقای طولانیمدت نیازمند ارائه برنامهای خاص در دنیای واقعی است؛ بدون اتصال گرههای قدرتمند و مقاوم در برابر دستکاری، دوام یک پروژه تا زمانی که بتواند خود را اثبات کند؛ بعید به نظر میرسد.