حمله Flash Loan چیست؟ وبرای مقابله با آن باید چه کرد؟
وام سریع به بخش مهمی از دیفای بدل شده است .اما همراه با محبوبیت روزافزون آن، تهدیدهای مرتبط با حمله وام فلش یا Flash Loan Attack نیز افزایش یافته است. افراد زیادی با استفاده از این نوع وام، ذخایر استخرهای نقدینگی را تخلیه کرده و ثروت زیادی را کسب میکنند.
میدانید که وجه ناخوشایند دیفای (Decentralized Finance) اواخر ماه گذشته بار دیگر نمایان شد؛ هنگامی که پروتکل پنکیکبانی (PancakeBunny) – که تجمیعکننده و بهینهساز ییلد فارمینگ بر بستر شبکه بایننس اسمارت چین است – مورد حمله وام سریع ۲۰۰ میلیون دلاری قرار گرفت و در طی این حمله ۷۰۰,۰۰۰ توکن بانی (BUNNY) و ۱۱۴,۰۰۰ BNB سرقت شد. علیرغم تلاشهای فعالین این صنعت نوپا، چنین ضررهایی غیرقابل بازگشت هستند.
حملات وام فلش به تهدیدی جدی در فضای رمزارزها و دیفای تبدیل شدهاند. در این یادداشت به چیستی این حملات، نحوه کارکرد آنها، چرایی شیوعشان و اینکه قابل پیشگیری هستند یا نه، میچردازیم.
نحوه حمله وام فلش
در حقیقت این حمله نوعی از حمله در فضای دیفای است که در آن دزد سایبری با گرفتن وام فلش (نوعی وام بدون نیاز به وثیقه) از یک پروتکل وامدهی، با استفاده از آن در کنار زنجیرهای دیگر از اعمال، سعی در تغییر بازار به نفع خود میکند. چنین حملاتی میتواند تنها در طی چند ثانیه رخ دهند با وجود اینکه پای چندین پروتکل وامدهی در میان باشد.
حملههای وام فلش رایجترین انواع حملات در فضای دیفای هستند چرا که کمترین هزینه را برای مهاجم در بر دارند و به راحتی میتوان از آن قسر در رفت. این حملهها از زمان اوجگیری دیفای در سال ۲۰۲۰ مدام در حال خبرسازیاند و به نظر میرسد در سال ۲۰۲۱ حتی خطرناکتر شدهاند و تاکنون صدها میلیون دلار ضرر به جا گذاشتهاند.
وام فلش چیست؟
وام فلش نوع تازهای از وامهای بدون وثیقهاند که توسط قراردادهای هوشمند کنترل میشوند. پروتکل وامدهی آوه (Aave)، از پیشتازان این حوزه در فضای دیفای است.
لازم است بدانید که به صورت سنتی دو نوع وام وجود دارد: وامهای با وثیقه که در آن احتیاج به قرار دادن دارایی با ارزشی به عنوان وثیقه است و وامهای بدون وثیقه که نیازی به این امر نیست. مثال خوبی از وامهای بدون وثیقه، پرداخت با کارت اعتباری است که در سالهای اخیر تلاشهایی در کشورمان برای ارائه این خدمت بانکی انجام شده است. در این نوع وام، بانک با استعلام وضعیت اعتباری مشتری و خوشحسابی وی، به او تا سقف اعتباری بدون وثیقه وام اعطا میکند.
اما اگر مبلغ وام درخواستی شما بالا باشد، ریسک اعطای تسهیلات برای موسسات مالی بالا میرود، حتی اگر پیشینه اعتباری پاکی داشته باشید. در این حالت بانکها برای کاستن از ریسک خود در اعطای وام، از شما وثیقه یا ضمانت طلب می کنند؛ ملک، اتومبیل، جواهرات و…
در واقع وامهای فلش ،وامهای بدون وثیقه دیوانهواری هستند که نه تنها وثیقهای در آن وجود ندارد، بلکه از استعلام اعتباری نیز در آن خبری نیست و محدودیتی بر روی مقداری که میتوانید وام بگیرید نیز وجود ندارد. تنها یک شرط بزرگ وجود دارد: بتوانید وام را در همان تراکنش تسویه کنید!
آربیتراژ مهمترین مورد استفاده چنین تسهیلاتی است. این قدرت مالی به معاملهگران این اجازه را میدهد تا از اختلاف قیمت یک دارایی در صرافیهای مختلف کسب درآمد کنند.
وامهای فلش به کاربر اجازه می دهد تا بدون سرمایه، هرچقدر که میخواهد وام بگیرد. برای مثال، اگر بخواهید معادل ۷۰۰۰۰ دلار، اتر قرض بگیرید، یک پروتکل وامدهی به شکل آنی آن را به شما میدهد اما این بدین معنی نیست که این مبلغ متعلق به شماست. شما باید با این دارایی کاری کنید تا شاید بتوانید ماحصلی کسب کنید و علاوه بر پرداخت اصل وام، سود کسب کنید.
برای اینکه چنین چیزی محقق شود، نیاز است که فرایند بسیار سریع انجام شود و قرض در زمان معین به پروتکل پرداخت شود در غیر این صورت تراکنش به حالت اولیه باز میگردد. تنها دلیلی که وامدهنده غیرمتمرکز از شما ضمانت طلب نمیکند این است که فرایند دریافت و پرداخت وام توسط بلاکچین کنترل و اجرا میشود. رمز موفقیت مهاجمان وام فلش در پیدا کردن راههایی برای دستکاری بازار در عین پایبندی به قوانین بلاکچین است.
چرا حملههای وام فلش در دیفای رایج هستند؟
وامهای فلش کمریسک، کمهزینه و پرسود هستند و این مساله آن را به هدفی جذاب برای تبهکاران تبدیل می کند:
وامهای فلش ارزانند
بر خلاف حمله ۵۱ درصد که احتیاج به منابع عظیمی برای انجام دارد، حمله وام فلش تنها به سه چیز احتیاج دارد: یک دستگاه رایانه، یک ارتباط اینترنت و مهمتر از همه، ذکاوت. هکرها باید نقشه حمله را به دقت بچینند اما مرحله اجرا تنها چند دقیقه طول میکشد. در نتیجه حتی از نظر هزینه زمان هم جذابیت ویژهای دارد.
وامهای سریع کمریسک هستند
انجام هر فعالیت مجرمانه با خود ریسک و خطر به همراه دارد اما تصور کنید بتوانید از بانکی سرقت کنید بدون اینکه لازم باشد در بانک حضور داشته باشید. تجربههای یک و سال نیم گذشته به خوبی ثابت کرده است که چقدر آسان میتوان پس از دزدی از پروتکلهای دیفای، قسر در رفت.
در واقع، تاکنون هیچکس در جرایم مربوط به وامهای سریع دستگیر نشده است. این به خاطر ذات شبکههای بدون نیاز به اجازه و ابزارهای در دسترس برای پاک کردن ردپای هویت همانند تورنادو کش (Tornado Cash) و سهولت استفاده از آن است.
جلوگیری از حملات وام فلش
با توجه به کثرت اینگونه حملات در روزهای اخیر، بدیهی است که هنوز راهحل نهایی برای جلوگیری از آن وجود ندارد اما چند گام موثر وجود دارد که میتوان آن را برای کاستن از احتمال این حملات به کار بست:
استفاده از اوراکلهای غیرمتمرکز برای استعلام قیمت
بهینهترین راه برای کاستن از دامنه آسیبپذیری در مقابل حملات وام فلش، استفاده از اوراکلهای عیرمتمرکز قیمت همچون چینلینک (Chainlink) و بند پروتکل (Band Protocol) به جای تکیه بر یک صرافی غیرمتمرکز برای استعلام قیمت است.
اجبار تراکنشهای حساس به انتقال طی دو بلوک
تیم پژوهشی دراگونفلای در تحقیقات خود پیشنهاد دادهاند که وامهای فلش طی دو بلوک انجام شوند. البته اگر این راهحل درست اجرا نشود، راهحل کاملی نخواهد بود چرا که مهاجم می تواند در هر دو بلوک حمله خود را تدارک بیند. همچنین این تمهید میتواند به شدت رابط کاربری پروتکلهای دیفای را تغییر دهد زیرا تراکنشها دیگر نمی توانند همزمان باشند.
استفاده از ابزارهای تشخیص حمله وام سریع
از جمله مهمترین عواملی که باعث میشود مهاجمان بتوانند نقشه خود را کامل کنند و متواری شوند، تاخیر در پاسخگویی از جانب توسعهدهندگان پلتفرمهای دیفای است. البته اگر کمی واقعبین باشیم، نمی توان چندان آنها را سرزنش کرد چرا که تشخیص این آسیبپذیریها بسیار مشکل است تا اینکه دیگر دیر شده است.
اپنزپلین
(OpenZeppelin – شرکت ارائهدهنده خدمات امنیت بر بستر بلاکچین) اخیرا برنامهای به نام اپنزپلین دیفندر (OpenZeppelin Defender) ارائه داده است که به مدیران پروژه کمک میکند تا آسیبپذیریهای قراردادهای هوشمند را کشف کنند و از فعالیتهای مشکوک مطلع شوند که به پروتکلها کمک شایانی خواهد کرد تا پاسخی به موقع به حملات دهند و آنها را خنثی سازند. بنابر پست بلاگ این شرکت، ابزار توسعهیافته آنها در پروژههای سینتتیکس (Synthetix)، یِرن (Yearn) و اوپین (Opyn) به کار گرفته شده است.
دیدگاهتان را بنویسید