حمله ساندویچی (Sandwich Attack) یکی از حملات رایج در دنیای دیفای است. این نوع حملات به منابع و انرژی کم‌تری نسبت به حملات بدافزار نیاز دارند و به عنوان روشی تقلبی شناخته می‌شوند که فرد با استفاده از آنها به ضرر سایر تریدرها، به سود می‌رسد. این حملات بیش‌تر صرافی‌های غیرمتمرکز را هدف قرار می‌دهند و به آنها آسیب می‌زند. در این مقاله، به بررسی اجزای مختلف یک حمله ساندویچی پرداخته، نقش ربات‌ها و سایر منابع را در این حملات تشریح کرده و بهترین راهکارها برای جلوگیری از آنها را مورد بحث قرار می‌دهیم.

حمله ساندویچی یکی از روش‌های تقلب در دیفای است که در آن، مهاجم با استفاده از تراکنش‌های پیشین و پسین، به طور عمدی قیمت یک دارایی را تغییر می‌دهد. این نوع حمله بیش‌تر در صرافی‌های غیرمتمرکز (DEX) رخ می‌دهد، جایی که معامله‌گران قادر به معامله مستقیم بدون واسطه هستند. در حمله ساندویچی، مهاجم ابتدا یک تراکنش کوچک انجام می‌دهد تا قیمت دارایی را افزایش یا کاهش دهد، سپس تراکنش بزرگ‌تری انجام می‌دهد تا از تفاوت قیمت سود ببرد و در نهایت تراکنش اول را مجدداً انجام می‌دهد تا به حالت اولیه بازگردد.

حمله ساندویچی در دیفای چیست؟ (Sandwich Attack)

برای درک بهتر نحوه انجام حمله ساندویچی، به مثالی ساده توجه کنید. فرض کنید کاربری قصد دارد مقدار مشخصی از یک توکن را در یک صرافی غیرمتمرکز بفروشد. در این حالت، مهاجم با استفاده از ابزارهای تحلیل بلاکچین، این تراکنش را شناسایی می‌کند. سپس، قبل از انجام تراکنش اصلی، مهاجم مقدار زیادی از همان توکن را خریداری می‌کند تا قیمت آن افزایش یابد. پس از انجام تراکنش اصلی، مهاجم نیز توکن‌های خریداری شده را به قیمت بالاتر می‌فروشد و از این طریق سود قابل توجهی بدست می‌آورد. در این راستا کاهش قیمت منجر به ضرر اکثر معامله‌گران دیگر می‌شود.

فرد مهاجم ابتدا چندین تراکنش مشابه با تراکنش‌های دیگران اما با کارمزد بالاتر ایجاد می‌کند. سپس برای رصد کردن استخر حافظه از ربات‌ها استفاده می‌نماید. مهاجمان در حملات ساندویچی از ترکیبی از market order و limit order برای ایجاد لغزش قیمت پیش‌بینی ‌نشده بهره می‌برند. اینکار باعث می‌شود تا معاملات خود را با سود به پایان برسانند. همچنین، مهاجمان از قابلیت فلش لون برای قرض کردن پول و بازگشت آن به استخرهای نقدینگی استفاده کرده و سپس معاملات تریدرها را دستکاری می‌کنند.
نکته مهم در پاسخ به چگونگی سود دهی حملات ساندویچی به مهاجمان این است که همواره دو شرط باید برقرار باشد:

  • سود بیش‌تر از کارمزد باشد: برای پوشش کارمزد در این نوع حملات، باید تعداد توکن‌هایی که کاربر خریداری کرده است، بالا باشد.
  • اسلیپیج متعادل باشد: اسلیپیج حداکثر میزان لغزش قیمت مورد انتظار کاربر است که در صورت تمایل به پرداخت آن در ترید، تعیین می‌شود. با توجه به اینکه تراکنش‌ها نیاز به تطبیق دارند، کاربران خریدار یک توکن، از قیمت دقیق اجرای تراکنش خود اطلاعی ندارند. این امر می‌تواند نوسان قیمت نامطلوبی را در طول معامله ایجاد کند. برای جلوگیری از خرید ارز دیجیتال با قیمت نامطلوب، می‌توان این لغزش یا اسلیپیج را برای هر تراکنشی تعریف کرد. معمولاً میزان لغزش در حدود ۲ درصد تعیین می‌شود و مقادیر بیش‍تر از آن، ترید را در معرض حملات فرانت رانینگ قرار می‌دهد.

پس با در نظر گرفتن همه این موارد می‌توان گفت که بله حمله ساندویچی می‌تواند عاید کننده سود باشد.

آیا حمله ساندویچی یا Sandwich Attack سود دارد؟
  • نقدینگی پایین استخرها: استخرهای نقدینگی با نقدینگی پایین، آسیب‌پذیرتر در برابر حملات ساندویچی هستند.
  • سرعت پایین شبکه: در شبکه‌هایی با سرعت پایین، مهاجمان زمان بیش‌تری برای شناسایی و اجرای حملات دارند.
  • عدم آگاهی کاربران: کاربران ناآگاه از این نوع حملات، بیش‌تر در معرض خطر قرار دارند.
  • ابزارهای پیشرفته: مهاجمان با استفاده از ابزارهای پیشرفته تحلیل بلاکچین، می‌توانند به راحتی تراکنش‌های هدف را شناسایی کنند.

برای جلوگیری از حملات ساندویچی، کاربران و پلتفرم‌های دیفای می‌توانند از چندین روش استفاده کنند. یکی از این روش‌ها، استفاده از تراکنش‌های خصوصی یا پنهان است که اطلاعات تراکنش را برای مهاجمان غیرقابل دسترس می‌سازد. همچنین، کاربران می‌توانند از ابزارهای تحلیل و نظارت بر تراکنش‌ها استفاده کنند تا از وقوع حملات احتمالی مطلع شوند. تنظیم زمان و مقدار تراکنش‌ها به گونه‌ای که کم‌تر جلب توجه کنند نیز می‌تواند به کاهش احتمال وقوع حملات کمک کند. پلتفرم‌های صرافی نیز می‌توانند از الگوریتم‌های امنیتی و روش‌های رمزنگاری پیشرفته برای محافظت از کاربران خود استفاده کنند. علاوه بر این می‌توان به موارد زیر هم اشاره کرد:

  • استفاده از صرافی‌های معتبر: صرافی‌های معتبر معمولاً اقدامات امنیتی بیش‌تری برای جلوگیری از حملات ساندویچی انجام می‌دهند.
  • انتخاب شبکه‌های سریع: شبکه‌های با سرعت بالا، زمان واکنش مهاجم را کاهش می‌دهند.
  • استفاده از ابزارهای تحلیل: برخی از ابزارها می‌توانند به شما در شناسایی علائم حمله ساندویچی کمک کنند.
  • تنظیمات Slippage: تنظیم لغزش مناسب می‌تواند از ضررهای ناشی از نوسانات قیمتی جلوگیری کند.
  • بروزرسانی مداوم دانش: با آگاهی از آخرین روش‌های حمله و دفاع، می‌توانید از خود بهتر محافظت کنید.
چگونه از حملات ساندویچی در امان باشیم؟

اولین گام برای تشخیص حمله ساندویچی، تحلیل تمام تراکنش‌های یک پروتکل دیفای است. به‌ عنوان نمونه، تمامی تراکنش‌های نسخه دوم و سوم صرافی یونی سواپ در بلاکچین اتریوم را بررسی کرده‌ایم. برای اینکه یک تراکنش به‌عنوان حمله Sandwich Attack شناخته شود، باید ویژگی‌های زیر را داشته باشد:

  • وجود ۳ تراکنش متوالی برای یک توکن خاص
  • دو تراکنش اول از نوع خرید و تراکنش سوم از نوع فروش باشد.
  • تراکنش اول و سوم متعلق به یک کیف پول باشند.
  • در تراکنش آخر همان مقدار توکن که در تراکنش اول خریداری شده بود، فروخته شود.
  • مقدار دریافتی در تراکنش سوم بیش‌تر از مقدار خرید در تراکنش اول باشد.
  • اگر همه این شرایط فراهم باشد، می‌توان گفت که یک حمله ساندویچی اتفاق افتاده است.

حمله ساندویچی نیازمند دانش فنی بالا و دسترسی به منابع محاسباتی قوی است، بنابراین افرادی که در زمینه بلاکچین و دیفای تجربه دارند و با الگوریتم‌های پیچیده آشنا هستند، قادر به انجام این نوع حملات هستند. همچنین، دسترسی به ربات‌های پیشرفته و سرورهای با سرعت بالا نیز می‌تواند به مهاجمان کمک کند. از این رو، بیش‌تر حملات ساندویچی توسط گروه‌های تخصصی و هکرهای حرفه‌ای انجام می‌شود که به دنبال سودآوری سریع و آسان از بازارهای دیفای هستند.

چه کسانی قادر به انجام حمله ساندویچی هستند؟

حمله ساندویچی یکی از تکنیک‌های حمله در حوزه دیفای (DeFi) است که در آن مهاجم با دستکاری قیمت‌ها و استفاده از تراکنش‌های متوالی به سود می‌رسد. این نوع حمله به دو روش کلی صورت می‌گیرد که در ادامه، هر یک از این روش‌ها را توضیح می‌دهیم.

در این نوع حمله، مهاجم به عنوان دریافت ‌کننده نقدینگی (Liquidity Taker) عمل می‌کند و با بهره‌برداری از تراکنش‌های دیگران به سود می‌رسد. مراحل این حمله به شرح زیر است:

  • تراکنش خرید اولیه: مهاجم ابتدا یک تراکنش خرید انجام می‌دهد و با این کار قیمت توکن مورد نظر را افزایش می‌دهد.
  • تراکنش قربانی: پس از تراکنش خرید مهاجم، تراکنش قربانی که می‌تواند یک خرید یا فروش باشد، اجرا می‌شود.
  • تراکنش فروش: مهاجم بلافاصله پس از اجرای تراکنش قربانی، توکن‌های خود را با قیمت بالاتر می‌فروشد و از تفاوت قیمت سود می‌برد.

در این نوع حمله، مهاجم به عنوان ارائه ‌دهنده نقدینگی (Liquidity Provider) عمل می‌کند و با دستکاری تراکنش‌های کاربران به سود می‌رسد. مراحل این حمله به شرح زیر است:

  • تامین نقدینگی: مهاجم ابتدا نقدینگی خود را به استخر نقدینگی اضافه می‌کند تا بتواند از تغییرات قیمت بهره‌برداری کند.
  • تراکنش خرید قربانی: کاربر قربانی یک تراکنش خرید انجام می‌دهد که باعث افزایش قیمت توکن می‌شود.
  • حذف نقدینگی: مهاجم بلافاصله پس از تراکنش قربانی، نقدینگی خود را از استخر خارج می‌کند و توکن‌های خود را با قیمت بالاتر می‌فروشد و از تفاوت قیمت سود می‌برد.

دو روش فوق امروزه بسیار مرسوم هستند و از عوامل سقوط قیمت برای دیگر تریدرها تلقی می‌گردند.

ارائه_ دهنده نقدینگی در مقابل فرد دریافت_ کننده

حمله ساندویچی یکی از چالش‌های جدی در دنیای دیفای است که می‌تواند تأثیرات منفی بر تریدرها و صرافی‌های غیرمتمرکز داشته باشد. این مقاله به بررسی دقیق این نوع حمله، روش‌های جلوگیری از آن و عوامل مؤثر در بروز آن پرداخته است. با افزایش آگاهی کاربران و استفاده از ابزارهای امنیتی پیشرفته، می‌توان از وقوع حملات ساندویچی جلوگیری کرد و امنیت بازارهای دیفای را بهبود بخشید. آموزش و آگاهی ‌بخشی در مورد این نوع حملات و استفاده از روش‌های محافظتی می‌تواند به کاهش ریسک و افزایش اطمینان کاربران در این حوزه کمک کند.