حمله وام سریع (Flash Loan Attack) چیست و چرا رخ میدهد؟
وام سریع به بخش مهمی از دیفای بدل شده است و همراه با محبوبیت روزافزون آن، تهدیدهای مرتبط با حمله وام فلش یا Flash Loan Attack نیز افزایش یافته است. افراد زیادی با استفاده از این نوع وام، ذخایر استخرهای نقدینگی را تخلیه کرده و ثروت زیادی را کسب میکنند. در این مقاله با این نوع حملهها آشنا خواهیم شد.
وجه ناخوشایند دیفای (Decentralized Finance) اواخر ماه گذشته بار دیگر نمایان شد؛ هنگامی که پروتکل پنکیکبانی (PancakeBunny) – که تجمیعکننده و بهینهساز ییلد فارمینگ بر بستر شبکه بایننس اسمارت چین است – مورد حمله وام سریع ۲۰۰ میلیون دلاری قرار گرفت و در طی این حمله ۷۰۰,۰۰۰ توکن بانی (BUNNY) و ۱۱۴,۰۰۰ BNB سرقت شد. علیرغم تلاشهای فعالین این صنعت نوپا، چنین ضررهایی غیرقابل بازگشت هستند.
حملات وام فلش به تهدیدی جدی در فضای رمزارزها و دیفای تبدیل شدهاند. در این یادداشت نگاهی به چیستی این حملات، نحوه کارکرد آنها، چرایی شیوعشان و اینکه قابل پیشگیری هستند یا نه، میاندازیم. با ما همراه باشید.
حمله وام فلش چیست؟
حمله وام فلش نوعی از حمله در فضای دیفای است که در آن دزد سایبری با گرفتن وام فلش (نوعی وام بدون نیاز به وثیقه) از یک پروتکل وامدهی، با استفاده از آن در کنار زنجیرهای دیگر از اعمال، سعی در تغییر بازار به نفع خود میکند. چنین حملاتی میتواند تنها در طی چند ثانیه رخ دهند با وجود اینکه پای چندین پروتکل وامدهی در میان باشد.
حملههای وام فلش رایجترین انواع حملات در فضای دیفای هستند چرا که کمترین هزینه را برای مهاجم در بر دارند و به راحتی میتوان از آن قسر در رفت. این حملهها از زمان اوجگیری دیفای در سال ۲۰۲۰ مدام در حال خبرسازیاند و به نظر میرسد در سال ۲۰۲۱ حتی خطرناکتر شدهاند و تاکنون صدها میلیون دلار ضرر به جا گذاشتهاند.
وام فلش چیست؟
وام فلش نوع تازهای از وامهای بدون وثیقهاند که توسط قراردادهای هوشمند کنترل میشوند. پروتکل وامدهی آوه (Aave)، از پیشتازان این حوزه در فضای دیفای است.
به صورت سنتی دو نوع وام وجود دارد: وامهای با وثیقه که در آن احتیاج به قرار دادن دارایی با ارزشی به عنوان وثیقه است و وامهای بدون وثیقه که نیازی به این امر نیست. مثال خوبی از وامهای بدون وثیقه، پرداخت با کارت اعتباری است که در سالهای اخیر تلاشهایی در کشورمان برای ارائه این خدمت بانکی انجام شده است. در این نوع وام، بانک با استعلام وضعیت اعتباری مشتری و خوشحسابی وی، به او تا سقف اعتباری بدون وثیقه وام اعطا میکند.
اما اگر مبلغ وام درخواستی شما بالا باشد، ریسک اعطای تسهیلات برای موسسات مالی بالا میرود، حتی اگر پیشینه اعتباری پاکی داشته باشید. در این حالت بانکها برای کاستن از ریسک خود در اعطای وام، از شما وثیقه یا ضمانت طلب می کنند؛ ملک، اتومبیل، جواهرات و…
وامهای فلش در واقع وامهای بدون وثیقه دیوانهواری هستند که نه تنها وثیقهای در آن وجود ندارد، بلکه از استعلام اعتباری نیز در آن خبری نیست و محدودیتی بر روی مقداری که میتوانید وام بگیرید نیز وجود ندارد. تنها یک شرط بزرگ وجود دارد: بتوانید وام را در همان تراکنش تسویه کنید!
آربیتراژ مهمترین مورد استفاده چنین تسهیلاتی است. این قدرت مالی به معاملهگران این اجازه را میدهد تا از اختلاف قیمت یک دارایی در صرافیهای مختلف کسب درآمد کنند. برای مثال اگر لینک در صرافی الف ۳۰ دلار باشد و در صرافی ب با قیمت ۳۵ دلار ارائه شود، کاربر میتواند با گرفتن وامی سریع معادل ۳۰۰۰ دلار، ۱۰۰ لینک از صرافی الف بخرد و به مبلغ ۳۵۰۰ دلار در صرافی ب بفروشد و وام گرفته شده را تسویه کند. در این حالت کاربر ۵۰۰ دلار منهای هزینههای انتقال سود کسب کرده است.
حملههای وام فلش چگونه کار می کنند؟
وامهای فلش به کاربر اجازه می دهد تا بدون سرمایه، هرچقدر که میخواهد وام بگیرد. برای مثال، اگر بخواهید معادل ۷۰۰۰۰ دلار، اتر قرض بگیرید، یک پروتکل وامدهی به شکل آنی آن را به شما میدهد اما این بدین معنی نیست که این مبلغ متعلق به شماست. شما باید با این دارایی کاری کنید تا شاید بتوانید ماحصلی کسب کنید و علاوه بر پرداخت اصل وام، سود کسب کنید.
برای اینکه چنین چیزی محقق شود، نیاز است که فرایند بسیار سریع انجام شود و قرض در زمان معین به پروتکل پرداخت شود در غیر این صورت تراکنش به حالت اولیه باز میگردد. تنها دلیلی که وامدهنده غیرمتمرکز از شما ضمانت طلب نمیکند این است که فرایند دریافت و پرداخت وام توسط بلاکچین کنترل و اجرا میشود. رمز موفقیت مهاجمان وام فلش در پیدا کردن راههایی برای دستکاری بازار در عین پایبندی به قوانین بلاکچین است.
چند مطالعه موردی
بیایید چند حمله واقعی وام فلش را برای توصیف بهتر چگونگی انجام اینگونه حملات بررسی کنیم:
حمله پنکیکبانی
بیایید نگاهی دوباره به پنکیکبانی بیاندازیم. در حمله ۳۰ اردیبهشت مهاجمان به این سرویس از طریق یک آسیبپذیری، علاوه بر دزدیده شدن مبلع ۲۰۰ میلیون دلار از این تجمیعکننده، قیمت توکن این سرویس نیز با سقوط آزاد ۹۵ درصدی در طی ۲۴ ساعت بعد از حمله روبرو شد.
در طی این حمله، مهاجم در ابتدا مقادیر زیادی BNB از طریق پنکیکسواپ قرض گرفت و از آن برای دستکاری قیمت جفت داراییهای تتر/بایننسکوین (USDT/BNB) و بانی/بایننسکوین (BUNNY/BNB) در استخرهای پنکیکبانی استفاده کرد. این مساله به هکرها این فرصت را داد تا مقادیر زیادی بانی بربایند که به سرعت آن را در بازار خالی کردند و باعث شدند تا قیمت به سرعت کاهش یابد. هکر سپس بدهی خود را به پنکیکسواپ تسویه نمود.
آسیبپذیری آلفا هومورا (Alpha Homora)
بزرگترین هک مرتبط با وام سریع در سال ۲۰۲۱ در فوریه (۲۵ بهمن ۱۳۹۹) رخ داد؛ طی آن پروتکل آلفا هومورا با استفاده وامی که از سرویس آیرن بنک (Iron Bank) متعلق به پلتفرم وامدهی Cream، مورد حمله قرار گرفت و مبلغ ۳۷ میلیون دلار مورد سرقت قرار گرفت. پروتکل ییلد فارمینگ آلفا هومورا چندین بار مورد حمله وامهای سریع قرار گرفت.
هکر ابتدا به شکل متناوب مقادیری sUSD (توکن دلار سنتتیک – استیبلکوینی همارز با دلار متعلق به گروه Synthetix) از آیرن بنک (از طریق اپ غیرمتمرکز آلفا هومورا) وام گرفت و هر بار، دو برابر مبلغ قبلی این کار را انجام داد. این کار طی دو تراکنش انجام گرفت و هکر هر بار مبالع قرض گرفته شده را در خود سرویس آیرن بنک سرمایهگذاری میکرد و در ازای آن توکن cySUSD (Yearn Synth sUSD) دریافت کرد.
سپس فرد مهاجم ۱.۸ میلیون USDC (یواسدی کوین – استیبلکوینی همارز با دلار بر روی شبکه اتریوم متعلق به گروه Circle) در قالب وام فلش از سرویس آوه (Aave) دریافت کرد و آنها را صرافی غیرمتمرکز کرو (Curve) به sUSD تبدیل کرد. از sUSD برای بازپرداخت وام گرفته شده و سرمایهگذاری (قرض دادن) دوباره در آیرن بنک استفاده شد. این کار سبب شد تا مهاجمان بتوانند بارها و بارها مبالغ بیشتری قرض گیرند و قرض دهند و در این میان توکن cySUSD را به عنوان سود دریافت نمایند.
پس از اینکه هکرها بارها این عمل را انجام دادند و مقادیر هنگفتی cySUSD به دست آوردند، از آن توکنها برای قرض گرفتن رمزارزهای دیگر از آیرن بنک استفاده کردند. آنها موفق شدند ۱۳ هزار توکن WETH (Wrapped Ethereum – توکن معادل؛ توکنی که هر عدد از آن همارز با یک اتر است و نوعی توکن ERC-20 است تا استفاده از آن در برخی سرویسها و قراردادهای هوشمند سادهتر باشد)، ۳.۶ میلیون USDC، ۵.۶ میلیون تتر و ۴.۲ میلیون دای (DAI) قرض بگیرند.
همانطور که متوجه شدید، این پروسه می تواند پیچیده و بغرنج باشد و نیازمند مراحل متنوعی است که باید بسیار سریع اتفاق افتند.
چرا حملههای وام فلش در دیفای رایج هستند؟
وامهای فلش کمریسک، کمهزینه و پرسود هستند و این مساله آن را به هدفی جذاب برای تبهکاران تبدیل می کند:
وامهای فلش ارزانند
بر خلاف حمله ۵۱ درصد که احتیاج به منابع عظیمی برای انجام دارد، حمله وام فلش تنها به سه چیز احتیاج دارد: یک دستگاه رایانه، یک ارتباط اینترنت و مهمتر از همه، ذکاوت. هکرها باید نقشه حمله را به دقت بچینند اما مرحله اجرا تنها چند دقیقه طول میکشد. در نتیجه حتی از نظر هزینه زمان هم جذابیت ویژهای دارد.
وامهای سریع کمریسک هستند
انجام هر فعالیت مجرمانه با خود ریسک و خطر به همراه دارد اما تصور کنید بتوانید از بانکی سرقت کنید بدون اینکه لازم باشد در بانک حضور داشته باشید. تجربههای یک و سال نیم گذشته به خوبی ثابت کرده است که چقدر آسان میتوان پس از دزدی از پروتکلهای دیفای، قسر در رفت.
در واقع، تاکنون هیچکس در جرایم مربوط به وامهای سریع دستگیر نشده است. این به خاطر ذات شبکههای بدون نیاز به اجازه و ابزارهای در دسترس برای پاک کردن ردپای هویت همانند تورنادو کش (Tornado Cash) و سهولت استفاده از آن است.
چگونه از حملات وام فلش جلوگیری کنیم؟
با توجه به کثرت اینگونه حملات در روزهای اخیر، بدیهی است که هنوز راهحل نهایی برای جلوگیری از آن وجود ندارد اما چند گام موثر وجود دارد که میتوان آن را برای کاستن از احتمال این حملات به کار بست:
استفاده از اوراکلهای غیرمتمرکز برای استعلام قیمت
بهینهترین راه برای کاستن از دامنه آسیبپذیری در مقابل حملات وام فلش، استفاده از اوراکلهای عیرمتمرکز قیمت همچون چینلینک (Chainlink) و بند پروتکل (Band Protocol) به جای تکیه بر یک صرافی غیرمتمرکز برای استعلام قیمت است. آلفا هومورا مجبور شد بهای گزافی برای این درس بپردازد. آنها ۲۰ اردیبهشت امسال، سرویس تجمیعکننده آلفا اوراکل (Alpha Oracle) خود را برای همین مقصود افتتاح کردند.
اجبار تراکنشهای حساس به انتقال طی دو بلوک
تیم پژوهشی دراگونفلای در تحقیقات خود پیشنهاد دادهاند که وامهای فلش طی دو بلوک انجام شوند. البته اگر این راهحل درست اجرا نشود، راهحل کاملی نخواهد بود چرا که مهاجم می تواند در هر دو بلوک حمله خود را تدارک بیند. همچنین این تمهید میتواند به شدت رابط کاربری پروتکلهای دیفای را تغییر دهد زیرا تراکنشها دیگر نمی توانند همزمان باشند.
استفاده از ابزارهای تشخیص حمله وام سریع
یکی از مهمترین عواملی که باعث میشود مهاجمان بتوانند نقشه خود را کامل کنند و متواری شوند، تاخیر در پاسخگویی از جانب توسعهدهندگان پلتفرمهای دیفای است. البته اگر کمی واقعبین باشیم، نمی توان چندان آنها را سرزنش کرد چرا که تشخیص این آسیبپذیریها بسیار مشکل است تا اینکه دیگر دیر شده است.
اپنزپلین (OpenZeppelin – شرکت ارائهدهنده خدمات امنیت بر بستر بلاکچین) اخیرا برنامهای به نام اپنزپلین دیفندر (OpenZeppelin Defender) ارائه داده است که به مدیران پروژه کمک میکند تا آسیبپذیریهای قراردادهای هوشمند را کشف کنند و از فعالیتهای مشکوک مطلع شوند که به پروتکلها کمک شایانی خواهد کرد تا پاسخی به موقع به حملات دهند و آنها را خنثی سازند. بنابر پست بلاگ این شرکت، ابزار توسعهیافته آنها در پروژههای سینتتیکس (Synthetix)، یِرن (Yearn) و اوپین (Opyn) به کار گرفته شده است.
نتیجهگیری
حمله وام فلش به نرم جدید دنیای دیفای تبدیل شده است و حداقل تا مدتی ماندگار است. علیرغم تمامی راهحلهای پیشنهاد شده، باید توجه کنیم که تکنولوژی دیفای هنوز آنقدر بالغ نشده است که بتوانیم سهلانگارانه عمل کنیم. هر هفته آسیبپذیریهای جدیدی پیش از آنکه ترمیم شوند، مورد سوء استفاده قرار میگیرند.
کاربران این حوزه نباید از شرکت در بخشهای مختلف دیفای همچون استیکینگ، ییلد فارمینگ و استخرهای نقدینگی نومید شوند چرا که فرصتهای زیادی پیش روی آنان قرار میدهد لیکن باید به خاطر داشته باشند که ریسکهای این حوزه را به درستی در نظر گیرند و به هیچ عنوان با بخشی از دارایی خود که توان از دست دادن آن را ندارند، وارد این وادی نشوند. مدیریت ریسک بخش مهمی از سرمایهگذاری است و حوزه دیفای از این قاعده مستثنی نیست.