حمله ساندویچی چیست؟
حملات ساندویچی (Sandwich Attack) در دیفای رواج پیدا کرده است. در این نوع حمله، مهاجمان با شناسایی تراکنشی معلق و انجام تکنیکهایی خاص، سعی در کسب سود از این معامله را دارند.
حملات ساندویچی بیشتر صرافیهای غیرمتمرکز را تهدید میکند؛ چرا که گفته میشود امنیت این نوع صرافیهای نسبت به صرافیهای متمرکز کمتر است. از طرفی، هنوز هیچ قانونی برای چنین حملاتی وضع نشده و در واقع، نمیتوان این نوع حمله را غیرقانونی دانست؛ ازاینرو، مهاجمان با خیال آسودهتری دست به این جرم میزنند. درحالیکه این کار بسیار غیراخلاقی بوده و شامل سوءاستفاده از تریدرهای عادی است؛ اما اصلاً تله Sandwich Attack چیست و چگونه انجام میشود؟
در این مقاله توضیحی کاملی از حملات ساندویچی ارائه داده و تکنیکهای بهکاررفته در آن را معرفی میکنیم. علاوهبرآن، بهترین استراتژیها برای جلوگیری از حملات ساندویچی را پوشش میدهیم. تا انتهای مقاله همراه ما باشید.
حمله ساندویچی چیست؟
حمله ساندویچی شکلی از عملیات مجرمانهای است که در درجه اول پروتکلها و خدمات مالی غیرمتمرکز را هدف قرار میدهد.
در یک Sandwich Attack، تریدری بدجنس که نامش را میگذاریم مهاجم، در شبکه مورد نظر خود مثل بیت کوین، به دنبال تراکنشی معلق میگردد. در صورت پیدا کردن آن، مهاجم، دو سفارش را در بلاک چین ثبت میکند؛ یکی درست قبل از معامله مربوطه، و دومی درست پس از آن؛ بهطوری که تراکنش معلق اصلی دقیقاً بین این دو سفارش قرار بگیرد.
هدف از ارسال دو سفارش و محاصره تراکنش معلق، دستکاری قیمت داراییهاست. ابتدا، مهاجم داراییای را که کاربر با آن مبادله میکند، خریداری میکند؛ بهعنوانمثال، مهاجم با آگاهی از این موضوع که در آینده قیمت بیت کوین بیشتر خواهد شد، پیشبینی میکند که کاربر رمزارزهای LINK خود را به BTC تبدیل خواهد کرد (به این حالت، فرانت رانینگ میگویند).
ازاینرو، مهاجم پیش از کاربر موردنظر، BTC را با قیمت پایینتری میخرد و سپس تراکنش کاربر با قیمتی بالاتر برای خرید بیت کوین تأیید میشود. این موضوع باعث میشود تا مهاجم بلافاصله پس از این تراکنش، بتواند بیت کوین خود را با قیمت بیشتری بفروشد (به این حالت، بک رانینگ گفته میشود). در واقع، در عرض چند ثانیه، چندین برابر سود میکند.
به عبارت دیگر، حمله ساندویچی بر مقدار BTC که کاربر اولیه خریداری میکند، تأثیر میگذارد. ازآنجاییکه مهاجم موفق شد سفارش خود را با قیمت پایینی تکمیل کند، معامله بعدی از نظر هزینه بالاتر خواهد بود. این توالی باعث افزایش قیمت بیت کوین میشود و به مهاجم اجازه میدهد تا با مدیریت معامله یک تریدر و ایجاد افزایش مصنوعی قیمت، سود خوبی به جیب بزند.
فاکتورها و عوامل مؤثر در حمله ساندویچی
در تئوری، حمله ساندویچی بسیار ساده به نظر میرسد. متأسفانه باید بگوییم که در عمل هم همینطور است. مهاجمان به راحتی میتوانند دست به چنین حملههایی بزنند و سودهای قابلتوجهی را بدون عواقب مالی یا قضایی، دریافت کنند.
بیایید نگاه دقیقتری به Sandwich Attack داشته باشیم و عوامل آن را تجزیهوتحلیل کنیم.
- بازارساز خودکار (AMM): بازارساز خودکار الگوریتم قیمتگذاری از پیش تعریف شدهای است که به طور خودکار، کشف قیمت و بازارسازی را بر اساس داراییهای موجود در استخرهای نقدینگی انجام میدهد. AMM به ارائهدهندگان نقدینگی اجازه میدهد تا بازار را تماشا و دنبال کرده و سپس قیمتهای پیشنهادی و درخواستی خود را تعیین کنند.
- اسلیپیج قیمت: اسلیپیج یا لغزش قیمت به معنای تغییر در قیمت یک دارایی در طول معامله است. لغزش قیمت مورد انتظار عبارت است از افزایش یا کاهش مورد انتظار قیمت بر اساس حجم مورد معامله و نقدینگی موجود؛ انتظاری که در ابتدای معامله شکل میگیرد. در مقابل، اسلیپیج غیرمنتظره قیمت، افزایش یا کاهش قیمتی است که در طول فرایند تراکنش به دلایلی ناشناخته یا پیشبینینشده رخ میدهد.
- قیمت اجرای مورد انتظار: هنگامی که یک تیکر نقدینگی در حالت X/Y ترید میکند، میخواهد معامله را با قیمت اجرایی مورد انتظار (بر اساس الگوریتم AMM و حالت X/Y) با توجه به لغزش مورد انتظار انجام دهد.
سناریوهای مختلف در بروز تله ساندویچ اتک
با درنظرگرفتن تمام موارد فوق، یک مهاجم سودجو میتواند به دو صورت حمله ساندویچی را انجام دهد.
تیکر نقدینگی در مقابل تیکر
غیرعادی نیست که شاهد حمله نقدینگیهای مختلف به یکدیگر باشیم.
به عنوان مثال، اگر یک مارکت تیکر معمولی تراکنش AMM معلقی در بلاک چین داشته باشد، مهاجم میتواند سفارشها و تراکنشهای بعدی – فرانت رانینگ و بک رانینگ – را ارسال کند. زمانی که استخر نقدینگی و جفت دارایی ارز دیجیتال، با سه تراکنش معلق مواجه میشود، ماینرها با دودوتاچهارتایی که میکنند، تصمیم میگیرند که کدام یک اولازهمه تأیید شود.
اگر مهاجم کارمزد تراکنش بالاتری را نسبت به قربانی بپردازد، شانس بیشتری برای دریافت تراکنش مخرب وجود دارد. این نتیجه تضمین شده نیست، بلکه صرفاً نشاندهنده این است که انجام حمله ساندویچی چقدر آسان است.
تأمینکننده نقدینگی در مقابل تیکر
تأمینکننده نقدینگی میتواند به روشی بسیار مشابه به تیکر نقدینگی حمله کند. روند انجام کار مشابه قبلی است، با این تفاوت که مهاجم این بار باید سه کار انجام دهد.
- اول، نقدینگی را بهخاطر افزایش میزان اسلیپیج قربانی حذف کند.
- دوم، نقدینگی را مجدداً برای بازگرداندن تعادل اولیه استخر، اضافه کند.
- سوم، دارایی Y را با X مبادله کند تا تعادل دارایی X را به حالت قبل از حمله بازگرداند.
برداشت نقدینگی قبل از انجام معامله قربانی، کارمزد آن معامله را منتفی میکند. از طرفی، ارائهدهندگان نقدینگی برای فعالیتهایی که در استخرشان اتفاق میافتد، کارمزد کمی دریافت میکنند. حالا در صورتی که هیچ کارمزدی اعطا نشود، آسیب مالی جدی به تیکر وارد میشود.
در Sandwich Attack مهاجمان از چه تکنیکهایی برای حمله استفاده میکنند؟
در بخش قبلی، دو سناریویی که مهاجمان طبق آن عمل میکنند و سود به دست میآورند، گفته شد. اکنون بیایید تکنیکهایی که در این سناریوها به کار میرود را بازگو کنیم:
فرانت رانینگ (Front-Running)
مهاجمان از تکنیک فرانت رانینگ استفاده میکنند تا قبل از اجرای تراکنشی خاص، بهسرعت تراکنش مشابهی با حجم بالاتر را ارسال کنند. همانطور که گفتیم، این کار باعث افزایش قیمت دارایی موردنظر میشود و مهاجم از این تغییرات به منفعت خود استفاده میکند.
بک رانینگ (Back-Running)
اجرای تکنیک بک رانینگ نیز به معنای اجرای سریع تراکنشی با حجم کمتر و قیمت بالاتر پس از تراکنش اصلی قربانی است. این کار نیز بر قیمت دارایی تأثیر میگذارد. بهاینترتیب که با افزایش قیمت آن، سود قابلتوجهی در انتظار مهاجمان است.
استفاده از ترفندهای اسلیپیج قیمت
مهاجمان از تکنیکهای مختلفی برای تحریک اسلیپیج قیمت در زمان اجرای تراکنشها استفاده میکنند. این ترفندها شامل ارسال تراکنشها با حجم بالا یا تراکنشهای متعدد به صورت همزمان است.
چگونه مهاجم از حملات ساندویچی سود میبرد؟
حملات ساندویچی یکی از هوشمندانهترین نوع حمله بوده و گاهی تشخیص آن بهخصوص برای مبتدیان حوزه ارزهای دیجیتال سخت است. مهاجمان زمانی از این کار سود میبرند که تمامی تکنیکهایشان را به خوبی عملی کرده و با موفقیت به انتهای سناریو خود برسند.
به عبارت بهتر، تراکنشهای درستی را قبل و بعد از تراکنش اصلی ارسال کنند. اگر هر دو تراکنش آنها تأیید شده و در این میان تراکنش معلق نیز دقیقاً مابین آنها تأیید شود، حمله مهاجمان موفقیتآمیز بوده است. مهاجمان با انجام تکنیکهای خود میتوانند سودی کسب کنند و رمزارزهای خود را با قیمت بالاتری بفروشند.
شناسایی حمله ساندویچی
در تله Sandwich Attack، مهاجم ابتدا تکنیک فرانت رانینگ را در پیش گرفته و سپس بک رانینگ میکنند. این کار باعث ایجاد نوسانات قیمت و به دنبال آن، ایجاد سود برای مهاجم میشود؛ اما چگونه حملات ساندویچی را شناسایی کنیم؟
- نظارت بر حجم معاملات: زمانی که مهاجمان اقدام به Sandwich Attack میکنند، حجم معاملات دارایی خاصی به طور ناگهانی افزایش مییابد. این افزایش ناگهانی میتواند نشانهای از حمله ساندویچی باشد.
- توجه به نوسانات قیمت: همانطور که گفتیم، مهاجم ابتدا با قیمت پایینی رمزارزی را میخرد و سپس در مدتزمان کمی با قیمت بیشتری میفروشد. این موضوع باعث نوسان قیمت قابلتوجهی میشود؛ بنابراین، هر موقع شاهد نوسانات قیمت دارایی در بازه زمان بسیار کوتاهی مشاهده کردید، به حمله ساندویچی بودن آن شک کنید.
- بررسی نمودار قیمت: بررسی نمودار قیمت میتواند به شما کمک کند تا الگوهای معاملاتی مشکوک را شناسایی کنید.
- استفاده از ابزارهای تحلیل تکنیکال: شما برای معامله و همچنین تشخیص حمله ساندویچی میتوانید از ابزارهای تحلیل تکنیکال استفاده کنید. برخی از ابزارهای تحلیل تکنیکال میتوانند به شما در شناسایی الگوهای معاملاتی مشکوک کمک کنند.
چه کسانی قادر به انجام حمله ساندویچی هستند؟
هرکسی که دانش کافی در زمینه ارزهای دیجیتال داشته باشد و صرافیهای رمزارزی به خوبی بشناسد، میتواند دست به حمله ساندویچی بزند.
هکرها در صدر متهمان برای انجام حمله ساندویچی هستند؛ چرا که هیچوقت فرصت به این خوبی را از دست نمیدهند؛ بهخصوص که تشخیص آن برای مردم عادی و تازهکار دشوار است و از طرفی، عواقبی جدی شامل حال مهاجمان نمیشود. در واقع، میتوان Sandwich Attack را کاری مجرمانه اما بدون مجازات در نظر گرفت.
تریدرهای حرفهای نیز میتوانند از حمله ساندویچی برای کسب سود استفاده کنند. همانطور که گفتیم، این کار نیازمند دانش فنی در حوزه مالی و ارزهای دیجیتال است. کسی که چنین دانشی دارد، بهراحتی میتواند حمله و از کاربران عادی سوءاستفاده کند.
میزان سودآوری این نوع از حملات دیفای برای مهاجمان چقدر است؟
به طور دقیق نمیتوان میزان سود مهاجمان از حملات ساندویچی را بیان کرد؛ اما طبق حملاتی که تابهحال انجام شده و بررسیهایی که توسط کارشناسان صورتگرفته، گفته میشود که برخی از مهاجمان روزانه ۱۰۰ الی ۲۰۰ دلار از این طریق درآمد داشتهاند. از طرفی، گزارشها حاکی از آن است که یکی از مهاجمان ربات ساندویچی را طراحی کرده بود که به کمک آن توانست تنها در طول سه روز ۱.۵ میلیون دلار به جیب بزند.
در واقع، اگر مهاجمان تراکنشهایی با حجم بالا را ردیابی کنند و حمله خود را با محاصره آن پیش ببرند، میتوانند به سودهای کلانی دست پیدا کنند. درحالیکه اگر تراکنش حجم معامله کمی داشته باشد، میتواند سود کمی به همراه داشته باشد.
عواقب حمله ساندویچی برای تریدرها و اکوسیستم دیفای چیست؟
حملات DeFi عواقب مختلفی دارد که میتواند هم روی کاربران و هم روی اکوسیستم تأثیر گذارد. برخی از این عواقب شامل موارد زیر است:
- ضرر مالی: کاربران دیفای که قربانی حملات ساندویچی میشوند، اغلب ضررهای مالی قابلتوجهی را تجربه میکنند. آنها برای معاملات خود ارزش کمتری از آنچه انتظار میرود دریافت میکنند و در نتیجه فرصتهای سود را ازدستداده و بازدهیشان کاهش مییابد.
- ازدستدادن اعتمادبهنفس در دیفای: حملات ساندویچی مکرر، اصول و پتانسیلهای دیفای را تضعیف میکند. این حملات منجر به تجربیات بد کاربر (مانند هزینههای بالای گس در مورد اتریوم) میشود و ممکن است کاربران بالقوه را از شرکت در Defi منصرف کند و مانع از رشد و پذیرش آن شود.
- مقررات سختگیرانهتر: درحالیکه صنعت دیفای تحت مقررات محدود عمل میکند، حوادث ناگوار مانند حملات ساندویچی میتواند باعث تشدید اقدامات نظارتی اعضای حکومت بر صنعت دیفای شود. افزایش میزان نظارت نیز به نوبه خود میتواند محدودیتهای سختتری در فعالیتهای DEFI ایجاد کند که به طور بالقوه مانع مشارکت در اکوسیستم میشود.
چگونه میتوان از بروز تله حمله ساندویچی جلوگیری کرد؟
برای محافظت از معاملات خود و بهحداقلرساندن خطر حملات ساندویچ در دیفای، اجرای استراتژیهای زیر را در نظر بگیرید:
از اسلیپیج کم استفاده کنید
میزان آسیبپذیری تله سادویچ اتک هنگامی افزایش مییابد که تریدری عمداً اسلیپیج بالایی را برای معامله خود تعیین کند. معاملهگران غالباً برای اطمینان از اجرای معاملات آنها در دورههای نوسان بالا یا نقدینگی پایین، بهویژه برای داراییهایی مانند پپه و میم کوینها، از اسلیپیج بالا استفاده میکنند. این عمل فرصت فوقالعادهای را برای مهاجمان جهت سوءاستفاده و دستکاری در معاملات فراهم میکند و باعث میشود تریدهایی را با قیمتهای قابلتوجهی انجام دهند.
در نتیجه، از تنظیم اسلیپیج زیاد برای معاملات خود خودداری کنید. با پایین نگهداشتن اسلیپیج، پاداشهای احتمالی را برای مهاجمانی که سعی در دستکاری معاملات دارند، حدود ۲٪ کاهش میدهید. این امر بهویژه در شبکههایی با هزینههای معامله بالا مانند اتریوم از اهمیت ویژهای برخوردار است.
از معاملات Flashbot استفاده کنید
معاملات Flashbot راهحل نوآورانهای برای مقابله با حملات ساندویچی است. برخلاف معاملات سنتی که در Mempools شکل میگیرند و برای تأیید به ماینرها یا اعتبارسنجها متکی هستند، Flashbot معاملات را مستقیماً به ماینرها یا اعتبارسنجها ارسال میکند.
روش Flashbot تضمین میکند که دادههای معامله، افشا نشده و مهاجمان قادر به دستکاری نیستند. معاملهگران میتوانند از مبادلات غیرمتمرکز مانند 1Inch استفاده کنند تا به فرصتهای منحصربهفرد برای شروع معاملات Flashbot که برای مهاجمان غیرقابلدسترسی است، دسترسی پیدا کنند.
از سفارشات محدود استفاده کنید
سفارشات محدود میزان کنترل و پیشبینی معاملات را در مقایسه با سفارشات بازار، افزایش میدهد و باعث کاهش آسیبپذیری در حملات ساندویچی میشود.
اگرچه سفارشات محدود معمولاً در صرافیهای متمرکز (CEX) به کار میرود، اما DEXهایی مانند Polkadex گزینهای را برای سفارشات محدود نیز ارائه میدهند. استفاده از سفارشات محدود در DEX به شما امکان میدهد تا نتایج ترید مورد انتظار را بهتر بشناسید و احتمال سوءاستفاده از خود را به حداقل برساند.
معاملات بزرگ را تجزیه کنید
معاملهای بزرگ بهراحتی میتواند توجه مهاجمان را به خود جلب کند. بهجای اجرای تریدی بزرگ، توصیه میکنیم آن را به معاملات کوچکتری تجزیه کنید. انجام این کار احتمال هدف قرارگرفتن در اثر حملات ساندویچی را به حداقل میرساند و سطح بالاتری از امنیت را برای فعالیتهای دیفایتان برقرار میکند.
مثال و نمونههایی از حملات ساندویچی اتفاق افتاده
حملات ساندویچی در بسیاری از صرافیهای غیرمتمرکز مانند Uniswap ،Bancor و Sushiswap در دیفای اتفاق افتاده است. این سیستمعاملها از بازارساز خودکار (AMM) برای تأمین نقدینگی و ایجاد قیمتگذاری برای مبادلات توکن استفاده میکنند. در اینجا چند نمونه از حملات ساندویچی که در برخی از سیستمعاملها اتفاق افتاده است، شرح میدهیم:
حمله Uniswap
یونی سواپ، صرافی غیرمتمرکزی است که با یکی از بزرگترین حملات ساندویچی مواجه شد. از این صرافی، داراییهایی به ارزش ۲۵.۲ میلیون دلار از هشت استخر مجزای Uniswap، به دلیل هک، به سرقت رفت. این حادثه بر خطرات استفاده از صرافیهای غیرمتمرکز و لزوم رعایت احتیاط در تعامل با چنین سیستمهایی تأکید دارد.
مهاجمان از نقص قرارداد هوشمند Uniswap استفاده کردند که به آنها اجازه داد تا یک سری معاملاتی را انجام دهند که در نهایت به آنها امکان برداشت پول از استخرهای آسیبپذیر را میداد. پول سرقت شده در هشت آدرس مختلف ردیابی شد که نشان میدهد گروهی از افراد احتمالاً این جرم را مرتکب شدهاند؛ اما هنوز این مهاجمان ناشناخته باقیماندهاند و نتوانستهاند شناساییشان کنند.
حمله SushiSwap
در سپتامبر ۲۰۲۰، هکری حملهای هوشمندانه اما بحثبرانگیزی را به صرافی غیرمتمرکز SushiSwap، معروف به «حمله ساندویچ سوشی سواپ» انجام داد. این حادثه کیس استادی بسیار خوبی برای درک آسیبپذیریهای اکوسیستم کریپتو و اهمیت اقدامات امنیتی است.
در این حمله، هکر تراکنش بزرگی را در سوشی سواپ برای توکن MISO شناسایی و سپس هکر دو تراکنش را زیر را ارسال کرد:
- سفارش خریدی بزرگ برای MISO که باعث افزایش قیمت آن شد.
- سفارش فروشی برای MISO که بلافاصله پس از تأیید تراکنش اصلی، انجام شد.
هکر بهسرعت دستور فروش خود را اجرا کرد و از قیمت متورم شده مصنوعی سود برد و نقدینگی را از استخر MISO خارج کرد.
حمله سوشی سواپ به دلیل ماهیت دستکاری آن و آسیب احتمالی که به کاربران ناآگاه وارد کرد، جنجال برانگیخت. همچنین خطرات مرتبط با پلتفرمهای DEX را که اغلب فاقد اقدامات امنیتی هستند، نشان میدهد.
گفتار پایانی
حملات ساندویچی نشان داد که دامنه مشکلات امنیتی دیفای با سرعت زیادی در حال گسترش است. تا زمانی که این مشکلات برطرف نشدهاند، بهتر است که هر تریدر بشخصه این حملات را شناسایی و از آنها جلوگیری کند.
توجه به سناریوهای مختلف حملات ساندویچی در کنار درک نقش نقدینگی در فعالکردن چنین حملاتی مهم است. استفاده از اسلیپیج کم، معامله Flashbot، تجزیهکردن معاملههای بزرگ و بهکارگیری سفارشات محدود، از جمله کارهایی است که میتوانید برای درامانماندن از Sandwich Attack انجام دهید.
آیا شما نمونه حمله ساندویچی دیگری را میشناسید؟ داستان این حمله را در بخش کامنتها برایمان تعریف کنید.