icmp چیست + نحوه کارکرد آن
ICMP یا پروتکل پیام کنترل اینترنت چیست؟ در دنیای امروزی که ارتباطات بین انسان ها روز به روز آسانتر و سریعتر گشته است، اینترنت شاید مهم ترین و بهترین راه برای تبادل اطلاعات و داده ها محسوب میشود. اما این فناوری نیز میتواند دستخوش اشکالات و خطا هایی باشد که برای یافتن خطا های مذکور تمهیداتی در نظر گرفته شده است. یکی از این راهحلها، ICMP است. این پروتکل به شما امکان شناسایی و رسیدگی به خطا های مربوط به انتقال اطلاعات بین دستگاهها و مشکلات مربوط به اتصالات شبکه را فراهم نموده و در صدد زدودن و رفع آن از اینترنت میگردد. در این مقاله پس از معرفی این پروتکل به نحوه کارکرد آن خواهیم پرداخت. لذا جهت کسب آگاهی بیشتر، پیشنهاد میکنیم که ادامه مقاله را از دست ندهید.
آشنایی با ICMP
پروتکل کنترل پیام اینترنت در مجموعه های موجود در شبکه مانند روترها مورد استفاده قرار میگیرد. این پروتکل بهعنوان لایه سوم از سیستم هفت لایه osi محسوب میشود. شما بهواسطه این پروتکل امکان دسترسی به گزارشاتی مبنی بر وجود خطا در ارسال داده ها به مقصد خودشان در زمان مناسب و کافی خواهید داشت.
کاربرد ICMP در چیست؟
تصور کنید که دو سیستم در حال ارتباطات پیامی از طریق اینترنت با یکدیگر هستند، چنانچه دستگاه فرستنده بسته پیام را به گیرنده ارسال کند، اما این پیام به هر دلیلی به گیرنده نرسد، پیامی مبنی بر عدم دریافت پیام توسط گیرنده به فرستنده ارسال میشود تا وی را از وجود مشکل در ارتباط آگاه سازد.
از کاربرد های دیگر ICMP میتوان به عنوان ابزار تشخیصی برای ارزیابی عملکرد شبکه با استفاده از ابزارهای ترمینال شامل پینگ (ping) و تراسروت (teraceroute) نام برد.
تراسروت امکان گزارش دستگاههایی را به شما میدهد که بسته داده ها برای رسیدن به مقصد از آنها عبور کردهاند. همچنین با استفاده از تراسروت زمان صرف شده در انتقال بسته اطلاعات از یک دستگاه به دستگاه دیگر مشخص میگردد. بدین ترتیب میتوان دستگاهی که باعث ایجاد تأخیر در انتقال پیام میشود را شناسایی کرد.
پینگ عملکردی مشابه تراسروت، اما به مراتب سادهتر دارد. پینگ زمان صرف شده به هنگام انتقال پیام بین دو دستگاه را اندازه گیری میکند. در واقع پینگ بیشتر برای جمعآوری اطلاعات تأخیر در اکو (ارسال پیام) را پاسخ اکو در یک دستگاه خاص مفید است. اما برخلاف تراسروت، پینگ قادر به ارائه نقشه های تصویری از طرح مسیر یابی نمیباشد. کاربرد اصلی پینگ برای حملات انکار سرویس (ddos) مورد سو استفاده قرار میگیرد. با این توضیح کوتاه میتوان گفت که ICMP برای عیب یابی شبکه به خصوص ابزار های ترمینال پینگ و ردیابی مورد استفاده قرار میگیرند.
روش کار ICMP
پروتکل icmp عملکرد متفاوت نسبت به سایر پروتکل های اینترنت دارد. بهطوریکه با پروتکل های اینترنت مانند پروتکل UDP و پروتکل TCP هیچ ارتباطی ندارد. لذا،icmp به عنوان پروتکلی بدون اتصال که دستگاه های متصل به شبکه را بی نیاز از بررسی اتصال قبل از ارسال پیام مینماید. به عنوان مثال در پروتکل TCP دو دستگاه مبدأ و مقصد پیام که در حال ارتباط هستند در ابتدای کار بایستی توسط یکدیگر شناسایی شوند که پس از برقراری ارتباط بین این دو انتقال پیام صورت میگیرد. این پروسه شناسایی خود مستلزم زمان زیادی است. در حالی که در icmp نیازی به این صرف زمان نیست.
پیام های icmp به صورت دیتاگرام ارسال میشود. دیتاگرام بسته ای مستقل از داده است و میتوان آن را حامل پیام اصلی در نظر گرفت. پیامهایی که بدین طریق ارسال میشوند، حاوی اطلاعاتی از پیام اصلی هستند و زمانی که به فرستنده ارسال میشوند، فرستنده به راحتی متوجه میشود که ارسال کدام پیام با اختلال مواجه شده است.
انواع پیام های ICMP
دو دسته بندی کلی برای پیام های icmp وجود دارد
- پیام های گزارش خطا
زمانی که روتر هنگام پردازش یک بسته IP به مشکلی برمیخورد پیامی را جهت بررسی این مشکل به فرستنده پیام مخابره میکند
- پیام های پرس و جو (Query)
پیام های پرس و جو به میزبان کمک میکند تا اطلاعاتی را از میزبان مقابل دریافت کند. به طور مثال فرض کنید که یک کاربر و یک سرور وجود داشته باشد و کاربر بخواهد بداند که سرور در دسترس است یا خیر، یک پیام icmp را به سرور ارسال میکند.
انواع پیام های گزارش خطا
به طور کلی ۵ مدل پیام وجود دارد که یکروتر یا هاست در حین پردازش دیتاگرام با آنها روبرو شود.
زمان بیش از حد
گاهی اوقات وضعیتی پیش میآید که پیام بین فرستنده و گیرنده بایستی از روتر های بسیار زیادی عبور کند. پیامی که از طریق فرستنده ارسال میشود، بایستی در یک حلقه مسیریابی حرکت کند. در زمان مسیریابی بین روترها پارامتری به نام ارزش زمان زندگی TTL وجود دارد. پیام ارسالی زمانی که از هر یک از روترها عبور میکند، یک عدد از شاخص TTL را کاهش میدهد. اگر این شاخص به صفر برسد آنگاه آن روتر این پیام دیتاگرام را از رده خارج میکند و پیام زمان بیش از حد را به فرستنده ارسال میکند که نشان دهنده عدم دریافت پیام توسط گیرنده است.
مقصد غیرقابل دسترس
دسترسی ناپذیری مقصد زمانی اتفاق میافتد که بسته به مقصد نهایی خود نرسد. تصور کنید که نویسنده پیام را ارسال میکند اما این پیام به گیرنده اصلی خود نمیرسد. در این میان روتر های میانی به فرستنده پیامی با عنوان مقصد غیر قابل دسترس مخابره میکنند و در این حین دیتاگرامها را نیز از رده خارج میکنند.
خاموش کردن منبع
با توجه به اینکه هیچ مکانیزم کنترل جریان یا تراکم در لایه شبکه یا پروتکل های آی پی وجود ندارد، فرستنده فقط پیامها را ارسال میکند و تصور نمیکند که آیا گیرنده توانایی دریافت این حجم از بستهها یا پیامها را دارد یا خیر.
مطالعه مقاله ip address چیست را از دست ندهید.
در شرایطی که روترها نتوانند به دلیل ازدحام شبکه، دیتاگرام را به گیرنده تحویل دهند، روترها یک پیام با عنوان خاموش کردن منبع به فرستنده ارسال میکنند تا اینکه فرستنده پیامها را با سرعت کمتری ارسال کند تا روترها توانایی مدیریت داده ها و پیامها ارسالی را داشته باشند.
تغییر مسیر (ری دایرکت)
هنگامی که یک بسته توسط فرستنده ارسال میشود مسیریابی به این فرستنده و گیرنده به تدریج تکمیل و به روز میشود. در این مسیر بایستی از روتر های مختلفی عبور کند. اگر در بین جابهجایی بین این روترها اشتباهی رخ دهد، پیام تغییر مسیر به سمت فرستنده ارسال میشود تا به تدریج امکان تکمیل و به روز رسانی مسیر انتقال پیام بین گیرنده و فرستنده راهاندازی گردد.
مشکل پارامتر
زمانی که بسته های دیتاگرام لحاظ ساختار استاندارد دچار مشکل باشند، هنگام رسیدن به گیرنده، قادر به انتقال پیام نخواهند بود، لذا پیامی مبنی بر مشکل پارامتر از طریق گیرنده یا روتر های بین مسیر به فرستنده ارسال میگردد.
پیام های پرس و جو (Query)
پیشتر با پیام های پرس و جو آشنا شدیم دو مدل پیام های پرس جو را با شما در میان بگذاریم:
پیام های Echo-Request و Echo-Reply:
این پیامها به حل مشکلات شبکه کمک میکنند، مدیران شبکه میتوان به کمک این پیامها از صحت عملکرد پروتکل های IP اطمینان حاصل فرمایند.
Timestamp Request and Reply:
درخواست های تایم استمپ زمان رفت و برگشت بین دستگاه های گیرنده و فرستنده کمک میکند. کاربرد دیگر این پیام در همگام سازی ساعتها در بین دو دستگاه مختلف است، البته زمانی که مدت زمان دقیق حمل و نقل پیام بین دو دستگاه مشخص باشد.
آشنایی با پارامتر های ICMP
داده های پیام icmp دارای پارامترهایی است که به دستگاه های شبکه برای تعیین نوع پیغام خطا یا کوئری، کمک میکند. پیغام خطای icmp در بین ۳۲ بیت اول از یک بسته دیتاگرام قرار دارد. هشت بیت اول از این ۳۲ بیت، نوع پیام رو تعیین میکند. هشت بیت بعدی به بررسی کد پیام میپردازد. ۱۶ بیت بعدی نیز به بررسی اطلاعات مربوط به یکپارچگی داده ها میپردازد. ابزارهای شبکه که پیام icmp را دریافت میکنند، میدانند که چگونه بسته را مدیریت کنند. در ادامه این سه پارامتر یا فیلد اطلاعاتی بیان شدهاند.
نوع پیام ICMP
نوع پیام icmp به بررسی هدف چیست و آن بسته میپردازد اطلاعات موجود در هشت بیت اول نشان دهنده این است که چرا دستگاه من بر آن پیام خاص را دریافت میکند و چطور بایستی آن را برطرف کند. ۲۵۵ پیام وجود دارد که هر نوع متفاوت و خاص خود را ارائه میدهد. مهمترین پیام های icmp در ادامه آورده شدهاند:
0: درخواست اکو
3: مقصد غیرقابل دسترس
4: خاموش کردن منبع
5: تغییر مسیر
8: پاسخ اکو
11: زمان بیش از حد
12: مشکل پارامتر
30: تراسروت
کد icmp
هشت بیت دوم از ۳۲ بیت اول دیتاگرام نشان دهنده کد نوع پیام است اطلاعات بیشتر را در زمینه نوع خطا در اختیار شما قرار میدهد.
چک سام
۱۶ بیت دوم پیام icmp مربوط به چک سام یا مکانیسم تشخیص خطا است که یکپارچگی داده ها را بررسی میکند. مقدار عددی چک سام نشان دهنده بیت های موجود در پیام انتقال داده شده است. فرستنده قبل از ارسال پیام مقدار بیت های پیام را محاسبه کرده به همراه پیام اصلی به گیرنده ارسال میکند. پس از دریافت پیام تعداد بیت های آن را محاسبه میکند تا هرگونه تغییر در پیام اصلی را در حین ارسال کند و در صورت عدم تطابق با تعداد ارسال شده از سمت فرستنده مشکل به وجود آمده را گزارش نماید.
ICMP و پینگ چه ارتباطی دارند؟
پینگ ابزاری است که از پیامهای ICMP برای گزارشدهی درمورد اتصال شبکه و سرعت رله داده بین میزبان و رایانه مقصد استفاده میکند. این یکی از معدود مواردی است که کاربر میتواند مستقیماً با ICMP در تعامل باشد و معمولا فقط کارکردهایی را انجام میدهد تا رایانه های شبکه بتوانند بهطور خودکار با یکدیگر ارتباط برقرار کنند.
فرآیند پینگ ICMP برقراری ارتباط میان دو دستگاه در یک شبکه را امکانسنجی میکند. همچنین میتوان از آن برای بررسی از دست رفتن دادهها و تأخیر در یک شبکه استفاده کرد. دستور پینگ درخواست یک اکو ICMP را به یک دستگاه شبکه منتقل میکند. آن دستگاه بلافاصله با یک اکو ICMP پاسخ میدهد. در مرحله بعد نرم افزار میتواند این دادهها را مورد تجزیه و تحلیل قرار داده و ضمن بررسی تاخیر، ببیند دادهها آنطور که باید منتقل میشوند یا خیر.
آیا ICMP پورت دارد؟
پروتکل پیام کنترل اینترنت یا ICMP بخشی از مجموعه پروتکل اینترنت است که بهعنوان مجموعه پروتکل TCP/IP شناخته میشود. این یعنی فقط و فقط به لایه اینترنت مربوط است. در حالی که شماره پورت در لایه انتقال، یعنی لایه بالاتر یافت میشود. البته با اینکه پروتکل ICMP مفهوم پورت را مثل TCP و UDP پیادهسازی نمیکند، انواع مختلف و کدهای متفاوتی دارد. از انواع ICMP مورد استفاده میتوان به درخواست اکو، پاسخ اکو و TTL اشاره کرد.
ICMP و TCP چه فرقی دارند؟
پروتکل ICMP نسبت به TCP عملکرد کاملا متفاوتی دارد. اولین و برجستهترین تفاوت همین است که ICMP یک پروتکل لایه انتقال در ارتباط با بستههای داده استاندارد نیست. بلکه یک پروتکل کنترلی است که بهجای دادههای برنامهها، با ارتباطان میان دستگاهها سروکار دارد و همهچیز، از دستورالعملهای ریدایرکت گرفته تا زمانبندی برای هماهنگی میان دستگاهها را مدیریت میکند.
از طرف دیگر پروتکل TCP روی لایه انتقال عمل میکند و برای انتقال دادههای واقعی اجرا میشود. این پروتکل بینهایت محبوب است و به لطف قابلیت اطمینانش، بستههای داده را به شرط تصحیح خطا و کاملا به ترتیب منتقل میکند.
دفاع در برابر حملات ICMP
ICMP نقش مهمی در انتقال دادههای شبکه، مدیریت و نظارت شبکه و امنیت شبکه ایفا میکند. بنابراین، تکنولوژیهای دفاع در برابر حملات ICMP برای کاهش بار دستگاه در پردازش بستههای ICMP و دفاع در برابر حملات ICMP از اهمیت فوقالعاده بالایی برخوردار است. در حال حاضر، محدودیت نرخ بستههای ICMP، بررسی اعتبار بستهها و دور انداختن بستههایی که نیاز به پردازش ندارند و عدم پاسخدهی به بستههای غیرقابل دسترسی بهعنوان استراتژیهای دفاعی جهت حفاظت از منابع CPU دستگاه مورد استفاده قرار میگیرند.
محدودیت نرخ بستههای ICMP
محدودیت نرخ بسته ICMP شامل محدودیت نرخ مبتنی بر پورت، محدودیت نرخ مبتنی بر VLAN و محدودیت نرخ جهانی است. علاوه بر اینها محدودیت نرخ مبتنی بر تراشه نیز برای دفاع در برابر حملات سیل ICMP اجرا شده است.
بررسی اعتبار و دور انداختن بستههایی که نیاز به پردازش ندارند
بستههای ICMP نامعتبر، مانند بستههایی که TTL آنها 0 و نوع ICMP آنها ۱۵، ۱۶ یا ۱۷ است، مستقیما دور ریخته میشوند. حتی میتوان دورانداختن بستههایی که بهندرت استفاده میشوند، از جمله بستههای ICMP که TTL آنها 1 است را پیکربندی کرد.
عدم پاسخدهی به بستههای غیرقابل دسترسی
هنگامی که مهاجم برای حمله تعداد زیادی بسته Destination Port Unreachable یا Destination Network Unreachable را به سمت دستگاه میفرستد، دستگاه میتواند این بستهها را بدون پاسخ دور بریزد و به این ترتیب از منابع CPU محافظت کند.
چگونه از ICMP در حملات DDoS استفاده میشود؟
در حمله انکار سیستم توزیع شده مهاجمان هدف را با ترافیک ناخواسته و بسیار سنگین هدف توانایی پاسخگویی به همه درخواست کاربران چه کاربران اصلی و چه هکرها را ندارد؛ لذا از دسترس خارج میشود. برای انجام حملات DDoS نیز میتوان به طرق مختلف از icmp استفاده کرد. سه روش اصلی حملات DDoS به کمک آی سی پی در ادامه آمدهاند.
حمله سیل ICMP
گاهاً به نام حمله سیل پینگ نیز شناخته میشود. این مدل از حمله دستگاه یا سرور هدف را با بسته های مکرر درخواست اکو مورد حمله قرار میدهند. زمانی که درخواست اکو به سیستم هدف میرسد، پاسخ اکو نیز از سمت سیستم هدف به سمت سیستم حمل کننده ارسال میشود. این تراکم درخواست و پاسخ اکو باعث میشود که ترافیک اصلی سرور اشغال شود و توانایی پاسخدهی به بقیه کاربران از دست برود.
پینگ مرگ
در این نوع حمله، مهاجم، یک بسته آی پی دارای تعداد بیت های بیشتر از حد مجاز را به سمت سیستم هدف ارسال میکند. با توجه به اینکه بسته، در حین مسیر به اجزای کوچکتری تقسیم میشود؛ لذا در ادامه مسیر به هیچ مشکلی بر نمیخورد. اما زمانی که به گیرنده برسد، آن را مجدداً مونتاژ میکند و با یک بسته با تعداد بیت های بیش از حد مجاز مواجه میشود. این وضعیت میتواند باعث توقف عملکرد یا خرابی دستگاه شود. این نوع حملات بیشتر تجهیزات قدیمی شبکه را تهدید میکند، زیرا تجهیزات جدیدتر در برابر این نوع از حمله ایمنی دارند.
حمله اسمورف
این مدل حملات نیز به مانند حملات پینگ مرگ بیشتر تجهیزات قدیمی را تأثیر قرار می دهد و تجهیزات جدید تر در برابر این مدل حملات نیز ایمن هستند. در حملات اسمورف، مهاجم یک پیام icmp را با یک آدرس جعلی به تجهیزات شبکه ارسال میکند. تجهیزات شبکه برای پاسخ دادن به این پیام بستهها را به آن آی پی جعلی ارسال میکنند. افزایش تعداد پیام های icmp و ارسال پاسخ به آن آدرس های جعلی باعث خرابی یا عملکرد دستگاه یا سرور میشود.
سخن پایانی
در این مقاله به بررسی icmp ، کاربرد و نحوه کارکرد آن اشاره کردیم. پس از آن با انواع پیام های icmp و پارامترهای آن پیام ها آشنا شدیم. سپس در باره چگونگی استفاده از icmp در حملات DDoS صحبت کردیم. لازم به ذکر است که icmp تنها پروتکل لایه شبکه مورد استفاده در حملات لایه سوم DDoS نیست.
به طور معمول حملات DDoS مربوط به لایه شبکه، زیرساخت های شبکه ها مورد هدف قرار می دهند. در مقابل حملات مربوط به برنامه DDoS ، ویژگی های وب را مورد هدف قرار می دهند. یکی از ابزارهای دفاع در برابر حملات DDoS لایه شبکه است.
دیدگاهتان را بنویسید