
در جامعه بیت کوین گفته میشود که ثابت قدمترین رقبای بیت کوین، بزرگترین منتقدان آن به ویژه در میان توسعهدهندگان هستند. توسعهدهندگان میدانند که بیت کوین چگونه ایجاد شده است؛ در نتیجه از نحوه پردازش و سازوکار بهروزرسانیهای جدید آگاه هستند. البته اینطور نیست که این توسعهدهندگان یا بیت کوین مخالف باشند، بلکه صرفا واقعبین هستند. این شرایط را به طور خاص میتوان برای آنتوان ریارد (Antoine Riard) عنوان کرد. ریارد که توسعهدهنده شرکت Chaincode Labs است در سال جاری چندین مقاله درباره الگوهای حمله به شبکه لایتنینگ و آسیبپذیری های شبکه لایتنینگ بیت کوین نوشته است. او در پست بلاگ جدید خود به بیان این آسیبپذیریها پرداخته و گفته است که علیرغم تمام تبوتابهای موجود، همچنان اقدامات زیادی باید انجام شود تا شبکه ثانویه بیت کوین برای انجام پرداختهای ارزانتر و سریعتر، بتواند از اجرای گسترده و عمومی پشتیبانی کند. البته ریارد تنها توسعهدهندهای نیست که چنین نظری دارد.
آسیب پذیری های شبکه لایتنینگ
جوست جَگِر (Joost Jager) یکی از توسعهدهندگان Independent Lightning بیان کرده است که در الگوی این حملات میتوان متوجه نکات مثبت و منفی طراحی شبکه لایتنینگ و توازن بین عملکرد و امنیت آن شد. بعضی از ویژگیها نظیر نوترینو (Neutrino) که ایجاد کیف پولهای موبایل مطمئنتر و کاربرپسندتر را امکانپذیر میسازند نیز انواع جدیدی از حملات را به وجود میآورند.
با هر بهروزرسانی، فرصت جدیدی برای بهبود پروتکل و سوءاستفاده از مشکلات ناشی از راهکارهای جدید به وجود میآید.
جوست جَگِر یکی از مهندسان شبکه لایتنینگ که سابقه کار در Lightning Labs را نیز دارد، در توییت اخیر خود گفته است:
لایتنینگ بسیار عالی است، اما نمیتوان گفت که آزمایش خود را پس داده است. اگر توسعهدهندگان تمایل داشته باشند، میتوانند با هزینه ناچیز و بدون مشکل به کانالهای شبکه لایتنینگ حمله کنند و آنها را از کار بیاندازند.
در ادامه به ۴ مورد از حملات نگرانکننده میپردازیم که میتوان آنها را در شبکه لایتنینگ اجرا کرد.
۱. حمله گریفینگ (Griefing)
جوست جَگِر به بیان جزییات حملهای به اسم حمله گریفینگ (Griefing Attack) پرداخته که از ابتدای پیدایش شبکه لایتنینگ وجود داشته است و بر روی کانالهای عادی و جدید وومبو (Wumbo) تاثیرگذار است.
کانالهای لایتنینگ با استفاده از یک تابع رمزنگاری به اسم قراردادهای قفل زمانی هش (Hash-time-locked contract یا HTLC) به اجرای پرداختها در شبکه میپردازند. کانالهای لایتنینگ میتوانند شامل چند صد HTLC باشند. پس از رسیدن به سقف این تعداد، کانال مورد نظر دیگر نمیتواند هیچ گونه پرداختی را پردازش کند. در نتیجه، سرمایهها در کانال مسدود میشوند و کانال نیز باید بسته شود.
گریفینگ چگونه میتواند مشکلساز شود؟
جوست جَگِر گفته است حملهکننده میتواند با ارسال ریز تراکنشهای اسپم به کانال مورد نظر، منجر به مسدودسازی بیتکوینهای واریز شده به کانال پرداخت لایتنینگ شود. اگر چه از این حمله نمیتوان برای سرقت سرمایه کاربران دیگر استفاده کرد، اما برای خرابکاری و دستکاری قابلیت رقیب برای هدایت پرداختها قابل استفاده است.
مقدار خسارت: حداقل
مقیاس خطر گریفینگ در مقایسه با سایر آسیبپذیریهای شبکه لایتنینگ بسیار کم است؛ زیرا فقط میتواند سرمایهها را مسدود کند و توانایی سرقت آنها را ندارد. هرچند به صورت تئوری، این حمله میتواند توسط ارائهدهندگان سرویس لایتنینگ (LSP) مورد استفاده قرار بگیرد؛ LSPها، کسبوکارهایی بر بستر شبکه لایتنینگ هستند که بخش زیادی از نقدینگی این شبکه را مدیریت میکنند، تا باعث خرابکاری در کسبوکار رقیب شوند.
برای کانالهای وومبو این موضوع بسیار مهم است؛ زیرا هزینه انجام این حمله بسیار اندک است، اما میتواند باعث از کار افتادن کانالهایی با سرمایه بیت کوین بسیار زیاد شود. حملهکننده همچنین میتواند با استفاده از این روش، چندین کانال را مسدود کند.
توسعهدهندگان برای اصلاح این مشکل چه اقدامی انجام میدهند؟
از آنجایی که این حمله آنچنان مهم و جدی نیست، هرگز اقدام بزرگی در خصوص اصلاح این مشکل از جانب توسعهدهندگان لایتنینگ صورت نگرفته است. البته جوست جَگِر در حال نوشتن پیشنویسی از راهکار فایروال به اسم مدارشکن (CircuitBreaker) است، تا اپراتور نودها بتوانند در خصوص تعداد پرداختها و کانالهایی که همتایان میتوانند با نود خود ایجاد کنند، محدودیتهایی اعمال کند.
۲. حمله سیل و غارت (Flood And Loot)
سیل و غارت (Flood and Loot) همانند حمله گریفینگ است که توسط جوست جَگِر مطرح شده و ملزم به ارسال تراکنشهای اسپم به کانال پرداخت است. البته در این مورد سرمایهها واقعا در معرض خطر قرار میگیرند.
سیل و غارت چگونه میتواند مشکلساز شود؟
در این نوع حمله، مهاجم کانالهایی با یک یا چند قربانی ایجاد میکند و سپس پرداختها را بدون تایید دریفت، به نود دیگری که تحت کنترل دارد ارسال میکند. هر کدام از این کانالها طوری کدنویسی شدهاند تا همزمان بسته شوند.
هنگامی که چنین شرایطی رخ میدهد، مقداری زیادی از این تراکنشهای در حال بسته شدن اجرا نخواهند شد؛ زیرا تراکنشهای بسیار زیادی به طور همزمان به بلاک چین بیت کوین ارسال میشود. اگر چه تعدادی از این تراکنشها منتظر تایید میمانند، اما حملهکننده میتواند تراکنشها را با کارمزد بیشتر به شبکه ارسال کند، تا سرمایه موجود در آنها را در اختیار بگیرد.
این حمله که توسط رنه پیکهارت (Rene Pickhardt) کشف شده است، به مهاجم امکان میدهد که موجودی کانال را در کارمزدهای تراکنشها مسدود کند و از قربانی اخاذی کند، تا این مشکل برطرف شود.
مقدار خسارت: متوسط تا شدید
سیل و غارت جدیتر و مهمتر از حمله گریفینگ است؛ زیرا ممکن است قربانی سرمایه خود را از طریق این آسیبپذیری شبکه لایتنینگ از دست بدهد. انجام این حمله از سایر آسیبپذیریهای مطرح شده در این مقاله آسانتر است، اما به شناخت بسیار زیاد و کاملی از شبکه لایتنینگ نیاز دارد.
توسعهدهندگان برای اصلاح این مشکل چه اقدامی انجام میدهند؟
بهروزرسانی اخیر کانالهای لایتنینگ، که به کاربران امکان میدهد تا کارمزدها را هنگام بستن کانال تغییر دهند، گام بسیار بزرگ و مهمی در جهت اصلاح این آسیبپذیری است.
۳. حمله گسترش زمانی (Time-Dilation Eclipse)
حملههای پیچیدهتر دیگری نظیر حمله گسترش زمانی (time-dilation) وجود دارند که توسط ریارد و گلب نامنکو (Gleb Naumenko) مطرح شدهاند. این حمله شامل حمله سیبل (Sybil attack) بر روی نودهای لایتنینگ است که در طی آن، از چند هویت برای تسلط بر شبکه استفاده میشود. این حمله به طور ویژه در مقابل نودهایی موثر و کارآمد است، که به کلاینتهای سبک سرویس میدهند.
این حمله چگونه میتواند مشکلساز شود؟
اگر مهاجم، صدها نود را مشغول کند و ارتباط تمام نودهای کامل را به صورتی در اختیار بگیرد که قربانی دیگر نتواند به کاربران مطمئن متصل شود، حملهکننده در این شرایط میتواند نود مورد نظر را از دریافت اطلاعات واقعی شبکه محروم کند.
با پنهانسازی ارتباط نود مورد نظر، مهاجم میتواند با سرعت کمتری اطلاعات تراکنش نود را به شبکه ارائه دهد. پس از آن که حملهکننده کانالهای لایتنینگ خود با قربانی را ببندد، میتواند سرمایه موجود در کانال را سرقت کند؛ زیرا نود میزبان به دلیل عدم دریافت به موقع اطلاعات، نخواهد توانست تراکنشهای پایانی کانال را مشاهده کند.
مقدار خسارت: شدید
این حمله به طور خاص، کلاینتهای سبک را تهدید میکند؛ زیرا این کیف پولهای لایتنینگ، در هر بلاک فقط یک بار اطلاعات بلاک چین را دریافت میکنند، دقیقا بر خلاف کلاینتهای کامل لایتنینگ که همواره نسخهای از تاریخچه تراکنشهای بلاک چین را در اختیار دارند.
کلاینتهای سبک شامل مجموعهای از کیف پولهای مشتریان در شبکه لایتنینگ هستند؛ کیف پولهایی نظیر لایتنینگ لبز، فینیکس و بلو والت. ریارد و گلب نامنکو تخمین زدهاند که حمله موفق به این روش، میتواند ۴۷ درصد کلاینتهای سبک را شامل شود.
این حمله بسیار جدی و مهم است؛ زیرا میتواند منجر به از دست دادن سرمایه قربانی شود. بدین ترتیب، حملهکننده باید صدها نود را مدیریت و هماهنگ کند، تا به طور موفق بتواند قربانی را پنهان کند. این حمله امکانپذیر است، اما به هکر بسیار ماهر، با تعداد زیادی بیت کوین و البته تسلط زیاد به شبکه لایتنینگ نیاز دارد.
توسعهدهندگان برای اصلاح این مشکل چه اقدامی انجام میدهند؟
این حمله پیچیدهتر از سایر حملات است؛ زیرا هیچگونه راهکاری برای آن در پروتکل لایتنینگ وجود ندارد. از آنجایی که این حمله به دستکاری اطلاعات درون زنجیرهای متکی است، به هماهنگی با توسعهدهندگان بلاک چین بیت کوین نیاز دارد تا راهکار مناسبی برای آن حاصل شود.
۴. حمله پینینگ (Pinning)
حمله دیگری که به اطلاعات تراکنش ناهمخوان نیاز دارد، حمله پینینگ (Pinning attack) است.
این حمله چگونه میتواند مشکلساز شود؟
به منظور بهره بردن از این آسیبپذیری، حملهکننده با انتشار تراکنشهای متناقض، تراکنش پایانی کانال را مسدود میکند تا نودهایی با ممپولهای متفاوت را تفکیک کند. این نکته را به خاطر داشته باشید که هیچگونه استخر واحدی برای تراکنشهای در انتظار در شبکه بیت کوین وجود ندارد؛ بعضی از نودها به دریافت تراکنش میپردازند و بعضی از نودهای دیگر نیز تراکنشی دریافت نمیکنند. این موضوع بر اساس توزیع ارتباط همتا به همتای شبکه است. بنابراین Mempoolها متفاوت هستند.
مهاجم با استفاده از روشهای مختلفی نظیر تعیین کارمزد بسیار کم برای تراکنش پایانی جهت تایید نشدن تراکنش، قبل از منقضی شدن قفل زمانی کانال، میتواند قربانی را فریب دهد تا کانال را به صورت نامناسبی ببندد و بتواند به سرقت تراکنشها بپردازد.
مقدار خسارت: متوسط
با استفاده از این حمله میتوان به سرقت سرمایهها پرداخت؛ اما همانند حملات “سیل و غارت” و “گسترش زمانی”، این حمله نیز به دانش فنی بسیار زیادی از جانب هکر نیاز دارد.
توسعهدهندگان برای اصلاح این مشکل چه اقدامی انجام میدهند؟
تا حدی، بهروزرسانی خروجیها میتواند به کاهش این الگوی حمله کمک کند. اما همانند حمله گسترش زمانی، این حمله نیز به هماهنگسازی با بلاک چین بیت کوین متکی است. بنابراین راهکار مناسب برای این حمله باید هر دو شبکه را مدنظر قرار دهد.
جمع بندی
ارسال پرداختها توسط شبکه لایتنینگ ارزانتر از شبکه معمولی بیت کوین است؛ اما از ارورهای مسیریابی در کانالها و باگهای کیف پولها رنج میبرد. این برای کاربران غیرحرفهای و حتی برخی کاربران حرفهای، نامناسب است.
بعضی از این آسیبپذیری های شبکه لایتنینگ امکانپذیرتر و در عین حال هزینهبر هستند؛ اما خبر خوب این است که تاکنون هیچ هکری از آنها استفاده نکرده است.
شبکه لایتنینگ یک پروتکل جدید است و هنوز از نظر فنی آسیب پذیر است. اما با پیشرفت تکنولوژی، کم کم این آسیب پذیریها پوشش داده میشود؛ اکنون شرکتهای لایتنینگ لبز، بلاک استریم و ACINQ در حال کار بر روی توسعه شبکه لایتنینگ و پوشش این آسیب پذیریها هستند.