روتکل Internet Control Message Protocol (ICMP) یک پروتکل لایه (3) شبکه است که توسط
هدف اصلی ICMP گزارش خطا است. هنگامی که دو دستگاه از طریق اینترنت به یکدیگر متصل می شوند، ICMP خطاهایی ایجاد می کند تا در صورتی که هر یک از داده ها به مقصد مورد نظر خود نرسیده باشد، با دستگاه فرستنده به اشتراک بگذارد. به عنوان مثال، اگر یک بسته داده برای یک روتر خیلی بزرگ باشد، روتر بسته را رها می کند و یک پیام ICMP برای داده ها به منبع اصلی ارسال می کند.
استفاده ثانویه از پروتکل ICMP برای انجام تشخیص شبکه است. ابزارهای ترمینال رایج مانند traceroute و ping هر دو با استفاده از ICMP کار می کنند.
ابزار traceroute برای نمایش مسیر مسیریابی بین دو دستگاه اینترنتی استفاده می شود. این مسیر، مسیر فیزیکی واقعی روترهای متصل است که درخواست باید قبل از رسیدن به مقصد از آن عبور کند. مسیر بین یک روتر و روتر دیگر به عنوان ldquo;hoprdquo; شناخته می شود و یک traceroute همچنین زمان مورد نیاز برای هر hop در طول مسیر را گزارش می دهد. این می تواند برای تعیین منابع تاخیر شبکه مفید باشد.
ابزار ping یک نسخه ساده شده از traceroute است. یک ping سرعت اتصال بین دو دستگاه را آزمایش می کند و دقیقاً گزارش می دهد که چقدر طول می کشد یک بسته داده به مقصد برسد و به دستگاه فرستنده بازگردد. اگرچه ping اطلاعاتی در مورد مسیریابی یا hop ارائه نمی دهد، اما هنوز یک معیار بسیار مفید برای اندازه گیری تأخیر بین دو دستگاه است. پیام های ICMP echo-request و echo-reply معمولاً برای انجام ping استفاده می شوند.
متأسفانه حملات شبکه می توانند از این فرآیند سوء استفاده کنند و ابزارهایی برای ایجاد اختلال مانند ICMP flood attack و حمله ping of death attack ایجاد کنند.
برخلاف پروتکل اینترنت (IP)، ICMP با پروتکل لایه transport (انتقال) مانند TCP یا UDP مرتبط نیست. این باعث می شود ICMP یک پروتکل بدون اتصال (connectionless) باشد: یک دستگاه نیازی به باز کردن اتصال با دستگاه دیگر قبل از ارسال پیام ICMP ندارد. ترافیک IP معمولی با استفاده از TCP ارسال می شود، به این معنی که هر دو دستگاهی که داده ها را مبادله می کنند، ابتدا
ICMP یک اتصال را به این روش باز نمی کند. پروتکل ICMP همچنین اجازه هدف قرار دادن یک پورت خاص روی یک دستگاه را نمی دهد.
ـ ICMP flood attack:
ping flood یا ICMP flood زمانی است که مهاجم سعی می کند یک دستگاه هدف را با بسته های echo-request ICMP در هم بشکند. هدف، باید هر بسته را پردازش کرده و به آن پاسخ دهد و منابع محاسباتی آن را مصرف کند تا زمانی که کاربران قانونی نتوانند سرویس را دریافت کنند.
ـ Ping of death attack:
این حمله زمانی است که مهاجم پینگی بزرگتر از حداکثر اندازه مجاز برای یک بسته را به یک ماشین هدف ارسال می کند و باعث خراب شدن دستگاه می شود. بسته در راه رسیدن به هدف خود تکه تکه می شود، اما زمانی که هدف، بسته را به حداکثر اندازه اصلی خود جمع می کند، اندازه بسته باعث سرریز بافر می شود.این نوع حمله در حال حاضر خیلی کم اتفاق می افتد، با این حال تجهیزات شبکه قدیمی تر هنوز هم می توانند در معرض آن باشند.
ـ Smurf attack:
در حمله Smurf، مهاجم یک بسته ICMP را با یک آدرس IP مبدا جعلی ارسال می کند. تجهیزات شبکه به بسته پاسخ می دهد، پاسخ ها را به IP جعلی ارسال می کند و قربانی را با بسته های ICMP ناخواسته پر می کند. مانند rdquo; Ping of deathrdquo;، امروز حمله اسمورف فقط با تجهیزات قدیمی امکان پذیر است.
ICMP تنها پروتکل لایه شبکه مورد استفاده در حملات DDoS لایه 3 نیست. به عنوان مثال، مهاجمان در گذشته از بسته های GRE نیز استفاده کرده اند.
به طور معمول، حملات DDoS لایه شبکه، تجهیزات و زیرساخت شبکه را هدف قرار می دهند، در مقابل حملات DDoS لایه برنامه، که ویژگی های وب را هدف قرار می دهند.
پارامترهای ICMP در هدر بسته وجود دارند و به شناسایی خطاهای بسته IP که مربوط به آن هستند کمک می کنند. پارامترها مانند یک برچسب حمل و نقل روی یک بسته هستند. آنها اطلاعات شناسایی بسته و داده های موجود در آن را ارائه می دهند. به این ترتیب، پروتکل ها و ابزارهای شبکه که پیام ICMP را دریافت می کنند، می دانند که چگونه بسته را مدیریت کنند.
32 بیت اول هدر بسته هر پیام ICMP شامل سه فیلد اطلاعاتی یا پارامتر است. این سه پارامتر به شرح زیر است:
Type 0: Echo reply
Type 3 : Destination unreachable
Type 8 : Echo
Type 5 : Redirect
Type توضیح مختصری در مورد اینکه پیام برای چیست ارائه می دهد تا دستگاه شبکه دریافت کننده بداند چرا پیام را دریافت می کند و چگونه با آن رفتار کند. به عنوان مثال، یک Echo درخواستی است که میزبان ارسال می کند تا ببیند آیا یک سیستم مقصد بالقوه در دسترس است یا خیر. به محض دریافت پیام Echo ، دستگاه دریافت کننده ممکن است یک پاسخ Echo reply (0Type) ارسال کند که نشان می دهد در دسترس است.
منبع :
درباره این سایت