آشنایی با حمله SYN Flood و نحوه مقابله با آن
یکی از انواع حملاتی که ممکن است سیستمهای اطلاعاتی یک سازمان را تهدید کند، حمله SYN Flood است. این نوع از حملات Flood با استفاده از اتصال TCP/IP انجام شده و فرآیند آن ساده است اما بهراحتی میتواند سرور را فریب دهد. یکی از تهدیدهای اصلی که درباره این دسته از حملات وجود دارد، آن است که نه تنها به خودی خود سیستم را تهدید میکنند بلکه ممکن است تنها برای فریب و حواسپرتی تیم امنیت شبکه انجام شده و پوششی برای بدافزارها باشند. در ادامه این مطلب از ابر زَس بیشتر درباره این حملات و نحوه مقابله با حمله SYN Flood توضیح میدهیم.
حمله SYN Flood چیست؟
یکی از انواع حملات انکار سرویس یا همان DoS (denial-of-service) به سرور کامپیوتر، حمله SYN Flood است. این کدهای مخرب یا همان اکسپلویت (Exploit) بهعنوان حمله half-open هم شناخته میشود. در این نوع از حملات Flood نحوه تسلط به سیستمهای هدف، ازطریق TCP/IP انجام میشود. برای این نوع حملات، از فرآیندی تحت عنوان “three-way handshake” یا دست دادن سهطرفه استفاده میشود. در این فرآیند، کلاینت و سرور پیامهایی را مبادله میکنند تا یک کانال ارتباطی شکل بگیرد.
زمانی که یک کلاینت بهطور مکرر بستههای SYN (مخفف synchronization) را با استفاده از IPهای جعلی به هر پورت روی سرور ارسال کند، حمله SYN Flood شکل گرفته است. در حین شروع حمله، سروری که مورد هدف قرار گرفته، متوجه تعداد زیادی تلاشهای متعدد برای برقراری ارتباط میشود. این سرور در پاسخ به تلاشهای برقراری ارتباط، بستههای SYN-ACK (synchronization acknowledged) را از تمام پورتهای باز، و بستههای RST (مخفف reset) را از تمام پورتهای بسته ارسال میکند.
فرایند three-way handshake چیست؟
همانطور که دیدید، برای حملات SYN Flood از فرآیند three-way handshake استفاده میشود. اما بیایید ببینیم که این فرآیند در حمله SYN Flood چیست و چطور انجام میشود. این فرآیند، با یک اتصال TCP کار میکند و هدفش آغاز یک ارتباط TCP بین دو دیوایس است. خود اتصال TCP سه فرآیند را شامل میشود:
- در مرحله اول، ایجاد اتصال با ارسال یک بسته SYN به سرور، توسط کلاینت آغاز میشود.
- حالا سرور در پاسخ، با ارسال یک بسته SYN/ACK، ارتباط را تأیید میکند.
- سپس کلاینت برای تأیید دریافت بسته از سرور یک بسته ACK را برمیگرداند. با تکمیل این فرآیندهای ارسال و دریافت، اتصال TCP باز شده و میتواند دادههای مختلف را ارسال و دریافت کند.
یک حمله SYN Flood درواقع از همین روند سوء استفاده میکند که سرور بعد از دریافت بسته SYN اولیه، با یک یا چند بسته SYN/ACK پاسخها را ارسال کرده و منتظر مراحل نهایی در فرآیند دست دادن (handshake) میماند. نحوه اجرای عملکرد این حملات را در ادامه بررسی میکنیم..
نحوه عملکرد حمله SYN Flood
حالا که با فرآیند three-way handshake آشنا شدیم، بهتر میتوانید نحوه عملکرد حمله SYN Flood را درک کنیم. این فرآیند شامل مراحل زیر است:
- ابتدا، مهاجم حجم قابلتوجهی از بستههای SYN را به سرور هدف ارسال میکند که تقریباً همه آنها دارای آدرسهای IP جعلی و غیرمعتبر هستند.
- پس از آن، سرور به هرکدام از این درخواستهای برقراری ارتباط، با یک بسته SYN-ACK پاسخ داده و یک پورت باز را آماده میکند تا پاسخهایی را دریافت کنند.
- در این مرحله، سرور منتظر میماند تا بسته نهایی ACK را دریافت کند درحالی که این اتفاق نیافتاده و بستههای SYN بیشتری مکرراً ارسال میشوند. زمانی که بستههای SYN جدید به سرور ارسال میشود، باید اتصال پورت باز جدید برای مدتی حفظ شود و سپس زمانی که تمام پورتهای موجود استفاده شد، سرور نمیتواند عملکردی عادی داشته باشد. به عبارت دیگر، روند ارسال بستههای SYN تا زمانی ادامه پیدا میکند که هیچ پورت قابل استفادهای باقی نماند.
در شبکه، روند اتصالات به این صورت است که اگر سرور یک اتصال را باز نگه دارد اما اتصال در آن طرف باز نباشد، اتصال بهشکل نیمه باز در نظر گرفته میشود. سرورهای مورد هدف، در این نوع از حملات DDoS، اتصالات باز را به شکل مداوم ترک کرده و تا زمانی که هر اتصال قبل از در دسترس بودن مجدد پورتها به پایان برسد، منتظر میماند. به همین دلیل است که به این دسته از حملات Flood حملات نیمه باز یا “half – open attack” گفته میشود.
انواع راهکارهای حمله SYN Flood
روشها و راهکارهای مختلفی برای اجرای حمله SYN Flood وجود دارد. این روشها عبارتند از:
- حمله مستقیم
چنانچه در این نوع از حملات Flood آدرس IP جعلی نباشد، تحت عنوان حملات مستقیم شناخته میشود. در این نوع حملات، مهاجم آدرس IP خود را مخفی نمیکند و به همین دلیل است که اگر فرد مهاجم از یک دستگاه با آدرس IP مشخص و یکسان استفاده کند، بهسادگی میتوان هویت آن را فاش کرد. برای آن که حملات بهصورت نیمه-باز در دستگاه مورد نظر ایجاد شوند، هکر سعی میکند تا پاسخ به بستههای SYN-ACK سرور را مختل کند.
برای این کار، میتوان از فایروال برای توقف بستههای خروجی غیر از بستههای SYN و یا فیلتر کردن بستههای SYN-ACK ورودی قبل از رسیدن به دستگاه مهاجم، کمک گرفت. در عمل این روش بهندرت استفاده میشود و بهتر است فقط آدرس IP سیستم مخرب مسدود شود. البته باید به نکته توجه کنید که اگر مهاجم از یک باتنت مانند باتنت Mirai استفاده کند، مسدود کردن یا پوشاندن آدرسهای IP نمیتواند مؤثر باشد.
- حملات جعلی
مهاجم یا هکر میتواند آدرس IP را در ارسال هر بسته SYN جعل کند تا از روشهای مقابله با حمله جلوگیری کرده و شناسایی هویت خود را سختتر کند. البته هرچند که بستهها جعل شده باشند، باز هم ممکن است بتوان آنها را تا منبع ارسال آن، ردیابی کرد. اجرای این ردیابی و پیدا کردن منبع ارسال اتصالات جعلی، اگرچه دشوار است اما غیرممکن نیست و با کمک ارائهدهندگان خدمات اینترنتی (ISP)، سادهتر هم میشود.
- حمله توزیع شده (DDoS)
زمانی احتمال ردیابی حملات به یک سیستم تا حد زیادی کاهش پیدا میکند که حملات بااستفاده از باتنت ایجاد شده باشند. یک مهاجم میتواند برای ایجاد سردرگمی در ردیابی حملات، هر دستگاه توزیع شده را وادار کند تا آدرسهای IP ارسال کننده بستهها را جعل کند. استفاده از یک باتنت مانند Mirai میتواند روند ردیابی را مختل کند.
یک هکر میتواند با استفاده از حمله SYN Flood با ترافیک کمتری نسبت به سایر حملات DDoS تلاش کند. در این روش، بهجای آن که حملات در حجم زیاد انجام شود که هدف آن اشباع کردن زیرساختهای شبکه برای نفوذ راحتتر است، این نوع از حملات Flood تنها کافی است از یک بکلاگ (backlog) موجود در سیستمعامل هدف، بزرگتر باشند. زمانی که فرد یا سیستم مهاجم بتوانید اندازه بکلاگ و همچنین مدت زمان باز ماندن اتصال قبل از اتمام زمان آن را تعیین کند، میتواند تمام پارامترهای لازم برای غیرفعال کردن سیستم را به شکل دقیق مورد هدف قرار داده و درنتیجه، بهراحتی کل ترافیک را به اندازهای که لازم است، کاهش دهد تا روند انکار سرویس (denial-of-service) اجرا شود.
مخاطرات حمله SYN Flood
یکی از سوالاتی که ممکن است در بررسی روند انجام این حملات برای شما بهوجود بیاید، این است که مخاطرات ایجادشده توسط حمله SYN Flood چیست و چه عواقبی دارد. این نوع از حملات میتوانند بهراحتی در عملکرد شبکهها و سیستمها اختلال و مشکل ایجاد کنند. زمانی که سرورها از کار افتاده و آفلاین شوند، حمله SYN Flood سرویسها را برای کاربران معتبر و قانونی از دسترس خارج میکند و حتی دادههای آنها را از بین میبرد.
زمانی که سرورها آفلاین میشوند، حملات SYN Flood باعث میشود تا دسترسی کاربران به برنامهها، دادهها و سایتهای E-Commerce از بین برود. درنتیجه این فرآیند، سازمانها ممکن است با عواقبی ازجمله از دست دادن فروش، آسیب به شهرت، اختلال در سیستمهای زیرساختی و از بین رفتن تداوم در کسبوکار، روبرو شوند.
یکی دیگر از مخاطرات این نوع از حملات Flood آن است که ممکن است از این حملات، بهعنوان پوششی برای پنهان کردن حملات باجافزارها استفاده شود. هنگام انجام یک حمله SYN Flood، مهاجم باعث میشود تا کل تیم امنیتی منابع خود را روی یک منطقه یا استراتژی مقابله با این نوع از حملات متمرکز کرده و در سمت دیگر، حملات جدیتری انجام شود که کل سیستم را به خطر بیاندازد.
نحوه مقابله با حمله SYN Flood
حالا که با روند اجرای حمله SYN Flood آشنا شده و دیدیم که انواع آسیبها و مشکلات ناشی از این حملات چیست، بهتر است ببینیم که راهکار مقابله با آنها به چه صورت است. مهمترین راهکارها در نحوه مقابله با حمله SYN Flood را در ادامه میبینید.
- اطمینان از محدود بودن نرخ درخواستهای SYN که در هر زمان به سرور ارسال میشوند.
- استفاده از سیستم تشخیص نفوذ (IDS) که میتواند ترافیک مخرب ناشی از یک حمله SYN Flood را شناسایی و مسدود کند.
- استفاده از SYN کوکیها که به کمک آن، به هر درخواست اتصال یک شناسه منحصر به فرد اختصاص پیدا میکند. با این روش میتوان درخواستهای غیرمعمول را مسدود کرد؛ هرچند که ممکن است باعث شود کیفیت اتصال TCP هم کاهش پیدا کند.
- افزایش تعداد بکلاگهای در صف، به این منظور که تعداد اتصالهای نیمه باز افزایش پیدا کند. به این ترتیب از حملات DoS جلوگیری میشود.
- بازیابی قدیمیترین اتصالات نیمه باز، روش دیگر مقابله با این حملات Flood است. زمانی که که بکلاگ درخواستهای اتصال پر شود، قدیمیترین اتصالات TCP نیمه باز بازیابی میشوند. این روش تا زمانی جواب میدهد که اتصالات قانونی و معتبر، سریعتر از اتصالات مخرب برقرار شوند.
- سرویس کلود گارد زَس از سرورهای شما در مقابل انواع حملات فلاد از جمله حمله SYN Flood محافظت میکند.
هر کدام از این روشها در نحوه مقابله با حمله SYN Flood ممکن است مزایا و معایبی داشته باشد. بهترین راه برای آن که یک سازمان بتواند تعداد حملات SYN به شبکه و سیستمهای خود را کاهش دهد، آن است که پیکربندی سیستمهای خود را طوری انجام دهد که با خط مشی و زیرساخت امنیتی شبکه هماهنگ باشد.
جمعبندی
در این مطلب، هرآنچه را که درباره حمله SYN Flood و نحوه اجرای آن لازم است بدانید، بررسی کردیم. این دسته از حملات میتوانند بهراحتی سرور را دور زده و باعث شوند تا روند کار آن مختل شود. زمانی که بدانیم روش کار و اجرای حمله SYN Flood چیست و چطور سرور را فریب میدهد، میتوانیم راهکارهای مقابله با آن را نیز اجرا کنیم.
ابر زَس تحت سرویسهای مدیریتشده راهکارهای امنیتی مورد نیاز شما را طراحی و پیادهسازی مینماید. علاوه بر این با سرویس کلود گارد زَس میتوانید از سرویس CDN ابر زَس نیز بهرهمند شوید و از وبسایت و سرویسهای خود در مقابل انواع حملات DDoS از جمله حمله SYN Flood محافظت کنید.