آشنایی با پروتکل ICMP و تهدیدات آن
پروتکل ICMP یا Internet Control Message Protocol یک پروتکل لایه شبکه است که توسط دستگاه های شبکه برای تشخیص مشکلات ارتباط شبکه استفاده می شود.
ICMP عمدتا برای تعیین اینکه آیا داده ها به موقع به مقصد مورد نظر خود می رسند یا خیر استفاده می شود.
معمولا پروتکل ICMP در دستگاه های شبکه مانند روتر ها استفاده می شوند. ICMP برای گزارش و آزمایش خطا بسیار مهم است ، همچنین می تواند در احملات DDoS نیز مورد استفاده قرار گیرد.
ICMP برای چه استفاده می شود ؟
هدف اصلی ICMP گزارش دهی خطا است. هنگامی که دو دستگاه از طریق بستر TCP/IP متصل می شوند. در صورت عدم رسیدن هر یک از داده ها به مقصد مورد نظر ، ICMP خطاهایی را برای اشتراک با دستگاه ارسال کننده ایجاد می کند. به عنوان مثال: اگر بسته داده ای برای روتر خیلی بزرگ باشد ، روتر بسته را رها می کند و پیام ICMP را به منبع اصلی داده ارسال می کند.
استفاده ثانویه از پروتکل ICMP انجام تشخیص شبکه است. traceroute و پینگ که به طور معمول مورد استفاده قرار می گیرند ، هر دو با استفاده از ICMP کار می کنند. از ابزار traceroute برای نمایش مسیر مسیریابی بین دو دستگاه اینترنتی استفاده می شود. مسیر مسیریابی مسیر واقعی فیزیکی روترهای متصل است که یک درخواست باید قبل از رسیدن به مقصد از آن عبور کند. سفر بین یک روتر و دیگری به عنوان “هاپ” شناخته می شود و یک traceroute نیز زمان مورد نیاز برای هر هاپ را در طول مسیر گزارش می کند. این می تواند برای تعیین منابع تأخیر شبکه مفید باشد.
ابزار پینگ یک نسخه ساده از traceroute است. یک پینگ سرعت اتصال بین دو دستگاه را آزمایش می کند که دقیقاً چه مدت طول می کشد تا یک بسته داده به مقصد برسد و به دستگاه فرستنده بازگردد. اگرچه پینگ داده های مربوط به مسیریابی یا hop ها را ارائه نمی دهد ، اما هنوز یک معیار بسیار مفید برای اندازه گیری تأخیر بین دو دستگاه است. پیام های اکو و پاسخ اکو ICMP معمولاً به منظور انجام یک پینگ استفاده می شوند.
ICMP چگونه کار می کند؟
برخلاف پروتکل اینترنت (IP) ، ICMP با پروتکل لایه حمل و نقل مانند TCP یا UDP ارتباط ندارد. این باعث می شود ICMP یک پروتکل بدون اتصال باشد: یک دستگاه قبل از ارسال پیام ICMP نیازی به اتصال با دستگاه دیگر ندارد. ترافیک IP معمولی با استفاده از TCP ارسال می شود ، به این معنی که هر دو دستگاهی که تبادل داده می کنند ابتدا دست دادن TCP را انجام می دهند تا اطمینان حاصل شود که هر دو دستگاه آماده دریافت داده هستند. ICMP از این طریق اتصال را باز نمی کند. پروتکل ICMP همچنین برای هدف قرار دادن یک پورت خاص بر روی دستگاه مجاز نیست.
چگونه ICMP در حملات DDoS استفاده می شود؟
حمله نوع اول : ICMP flood attack
سیل پینگ یا سیل ICMP زمانی است که مهاجم سعی می کند دستگاه مورد نظر را با بسته های درخواست اکو ICMP تحت فشار قرار دهد. هدف باید هر بسته را پردازش و به آنها پاسخ دهد ، تا زمانی که کاربران واقعی نتوانند سرویس دریافت کنند ، منابع محاسباتی هدف برای پاسخ به بسته های ICMP مصرف شود.
حمله نوع دوم : Ping of death attack
Ping of death attack هنگامی است که مهاجم یک پینگ بزرگتر از حداکثر اندازه مجاز برای یک بسته به دستگاه مورد نظر بفرستد و باعث crash دستگاه شود. بسته در مسیر رسیدن به هدف خود پراکنده می شود ، اما هنگامی که هدف مجدداً بسته را به اندازه حداکثر بیش از حد اصلی خود مونتاژ می کند ، اندازه بسته باعث سرریز بافر می شود.
Ping of death attack در این مرحله تا حد زیادی تاریخی است. با این حال ، تجهیزات شبکه قدیمی هنوز هم می توانند به آن حساس باشند.
حمله نوع سوم : Smurf attack
در حمله Smurf ، مهاجم یک بسته ICMP با آدرس IP منبع جعلی می فرستد. تجهیزات شبکه به بسته پاسخ می دهند ، پاسخ ها را به IP جعلی ارسال می کنند و قربانیان را با بسته های ناخواسته ICMP پر می کنند. مانند ” Ping of death ” ، امروز حمله Smurf فقط با تجهیزات قدیمی امکان پذیر است.