هکرها همواره به دنبال نقاط ضعف در بخش های مختلف جهت انجام حملات ICMP هستند، از نرم افزارهای ساده گرفته تا پروتکلهای اساسی که اینترنت را تشکیل میدهند. پروتکل ICMP یا Internet Control Message Protocol یکی از این پروتکلهای اساسی است که توسط شبکههای IP برای تشخیص خطاها، مسیریابی بستهها و گزارش وضعیت استفاده میشود و اطلاعات مهمی را در مورد وضعیت دستگاهها و شبکههای اینترنت منتقل می نماید.
ICMP یک ابزار ارتباطی ارزشمند است اما به دلیل ضعفهای ذاتی در طراحی آن، توسط مهاجمان میتواند برای نفوذ به شبکه استفاده شود. مهاجمان با سوء استفاده از اعتمادی که دستگاههای شبکه به پیامهای ICMP دارند، سعی میکنند سیستمهای امنیتی مستقر در سرور میزبان قربانی را دور بزنند و باعث اختلال در عملکرد شبکه شوند که در نهایت میتواند منجر به قطع سرویس گردد.
حملات ICMP یا icmp flood به عنوان گروهی متمایز از حملات DoS، دیگر یک ابزار اصلی برای مهاجمان به شمار نمی رود. با این حال، آنها همچنان به کسب و کارهای آنلاین آسیب می زنند. Ping flood، Smurf و ping of death، انواع مختلف حملات ICMP هستند که همچنان می توانند تهدیدی برای عملیات شبکه در سراسر جهان باشند.
حملات Ping flood شامل ارسال حجم زیادی از پیام های پینگ به یک شبکه است تا آن را از کار بیندازد. smurf attack از ارسال پیام های ICMP به شبکه های بزرگ برای ایجاد سیل ترافیک به سمت قربانی استفاده می کند. حملات ping of death شامل ارسال پیام های ICMP بزرگتر از حد معمول به یک شبکه هستند تا باعث خرابی آن شوند.
در این مقاله، ICMP و اینکه چگونه هکرها آن را برای از کار انداختن سرورها و شبکهها استفاده میکنند، توضیح داده می شود. مکانیسمهای حملات ICMP نیز مورد بررسی قرار می گیرد تا از کسبوکار خود در مقابل این نوع حملات محافظت کنید.
تصویر(1)
ICMP چیست؟
Internet Control Message Protocol به اختصار ICMP، یک پروتکل شبکه است که توسط دستگاه های موجود در شبکه برای برقراری ارتباط با یکدیگر استفاده می گردد. در حالی که ICMP اغلب به عنوان بخشی از پروتکل IP در نظر گرفته می شود اما فعالیت آن هنوز به لایه سوم مجموعه پروتکل های اینترنت (لایه شبکه) محدود می گردد.
هر پیام ICMP دارای type و code است و شامل نوع اطلاعات انتقالی، هدف آن و همچنین بخشی از درخواست اولیه که باعث ایجاد پیام شده است، می شود. به عنوان مثال، اگر هاست مقصد غیرقابل دسترس بود، روتری که نتوانست درخواست اولیه را به آن منتقل نماید، یک پیام ICMP نوع 3 و کد 1 تولید میکند و به شما اطلاع میدهد که نمیتواند مسیری برای اتصال به سرور مشخص شده بیابد.
تصویر(2)
ICMP در چه مواردی کاربرد دارد؟
هنگامی که بستهای ارسال میکنید و به مقصد نمیرسد، دستگاهی که سعی کرده بسته را ارسال نماید، یک پیام ICMP به شما ارسال میکند تا به شما اطلاع دهد چه مشکلی رخ داده است. پیام ICMP شامل اطلاعاتی در مورد بستهای می باشد که ارسال کردهاید، از جمله آدرس IP مقصد و نوع خطایی که رخ داده است. این اطلاعات میتواند به شما در تشخیص و حل مشکل کمک کند. به عنوان مثال، اگر پیام Destination network unreachable دریافت میکنید، باید مشکل را در مسیری که بستههای شما در حال طی کردن آن هستند، عیبیابی نمایید.
اگرچه گزارش خطا یکی از کاربردهای اصلی ICMP است اما این پروتکل زیربنای عملکرد دو ابزار اساسی تشخیص شبکه یعنی ping و traceroute نیز می باشد. کاربرد هر دو ابزار به طور گسترده برای آزمایش اتصال شبکه و ردیابی مسیر می باشد. با اینکه ping و traceroute اغلب به جای یکدیگر استفاده میشوند اما روشهای عملیاتی آنها تفاوت قابل توجهی دارد.
Ping و Traceroute
پینگ پیام های ICMP از نوع echo request ارسال میکند و انتظار دارد که پاسخهای echo reply را از هاست مقصد دریافت نماید. اگر هر درخواست، پاسخی دریافت کند، پینگ هیچ گونه packet loss (از دست رفتن بسته ها) بین سیستمهای مبدأ و مقصد را گزارش نخواهد کرد. همچنین اگر برخی از پیامها به مقصد خود نرسند، این ابزار آنها را با عنوان packet loss گزارش میکند.
تصویر(3)
Traceroute یک مکانیسم پیچیدهتر دارد و برای هدف دیگری ایجاد شده است. این ابزار به جای ارسال درخواستهای echo به هاست مورد نظر، بستههای IP را ارسال میکند که باید پس از رسیدن به مقصد، منقضی شوند. به این ترتیب، روتر یا هاست دریافت کننده مجبور به تولید پیام ICMP انقضای Time to Live یا TTL خواهد شد که برای منبع ارسال می گردد. Traceroute با دریافت پاسخ های ICMP از هر روتری که در مسیر قرار دارد، میتواند لیستی از روترهایی که بستهها برای رسیدن به مقصد از آنها عبور میکنند را تهیه نماید. همچنین، Traceroute میتواند زمان لازم برای رسیدن بستهها به هر روتر را محاسبه کند.
چرا ICMP به راحتی قابل سوء استفاده است؟
ICMP یک پروتکل شبکه است که برای گزارش خطاها و سایر اطلاعات شبکه استفاده میشود. از آنجایی که ICMP به لایه شبکه مدل OSI محدود می گردد، درخواستهای آن نیازی به برقراری اتصال قبل از انتقال ندارند. این امر امکان ارسال درخواستهای ICMP را به هر سیستمی فراهم میکند و سوء استفاده از آن را آسان میسازد.
ICMP با اینکه یک جزء ارزشمند از شبکه جهانی است اما توجه مجرمان سایبری را نیز به خود جلب کرده و برای اهداف مخرب آن را به کار می گیرند. هکرها از ضعفهای موجود در ساختار ICMP برای ایجاد اختلال در شبکهها و سرورها سوء استفاده میکنند. هکرها با انجام حملات ICMP، آن را از یک ابزار عیب یابی حیاتی شبکه به عامل اصلی قطعی شبکه تبدیل می نمایند.
حملات ICMP به عنوان نوع کم خطرتر حملات DoS
حملات ICMP با ارسال تعداد زیادی پیام ICMP به یک شبکه یا دستگاه هدف، سعی میکنند آن را از کار بیندازند. این حملات میتوانند باعث مصرف بیش از حد پهنای باند شبکه، از کار افتادن سرورها و سایر دستگاههای شبکه و همچنین کند شدن یا قطع دسترسی کاربران به شبکه شوند.
حملات ICMP اغلب خطر کمتری داشته و نسبت به سایر حملات DOS، مقابله با آنها آسان تر است. در حالی که حملات ICMP همچنان می توانند خسارات قابل توجهی وارد کنند اما به دلایل زیر معمولاً تشخیص و کاهش آنها راحت تر خواهد بود:
- حملات ICMP روی لایه شبکه تمرکز می کنند. ICMP در سطح پایین تری از پروتکل اینترنت عمل می کند و پیام های ICMP دارای حجم کمتری نسبت به سایر حملات DOS هستند. این امر شناسایی ترافیک مخرب ICMP را آسان تر می کند.
- حملات ICMP الگوهای متمایزی را نشان می دهند. پیام های ICMP مخرب، اغلب الگوهای متمایزی مانند حجم عظیمی از درخواست های echo از یک فرستنده یا پیام های خطای خاص را از خود نشان می دهند.
- ترافیک ICMP را راحت تر می توان محدود کرد. مدیران شبکه می توانند ترافیک ICMP ورودی و خروجی را محدود یا حتی به طور کامل غیرفعال کنند که اختلال قابل توجهی در عملکردهای عادی ایجاد نخواهد کرد.
3 نوع اصلی حملات ICMP
سه نوع اصلی حملات ICMP شامل ping flood، Smurf و Ping of Death می باشد. هر یک از این حملات مکانیسم های متفاوتی دارند اما تفاوت اصلی آنها در نوع پیام های ICMP استفاده شده توسط مجرمان سایبری است.
همانطور که گفته شد، به جز ابزار Ping که درخواست های echo تولید و آنها را به سمت مقصد هدایت می کند، پیام های ICMP معمولاً توسط سیستم مقصد تولید می شوند تا مبدا را از وجود یک مشکل خاص آگاه کنند. به این ترتیب، مهاجمان به جای اینکه حجم بسیار زیادی از بسته های ICMP را به سمت سیستم قربانی هدایت نمایند، می توانند از تکنیک های پیچیده تری استفاده کنند. برای نمونه هکر می تواند یک قربانی حمله را در مقابل قربانی دیگری به عنوان مهاجم قرار دهد.
Ping Flood
حمله Ping Flood سادهترین و رایجترین نوع حمله ICMP است که در آن مهاجمان درخواستهای echo بیش از حد را به سیستم یا شبکه قربانی ارسال می نمایند. مجرمان سایبری با تقلید از فعالیت عادی ابزار Ping، به پهنای باند هاست مقصد حمله میکنند.
این درخواست ها باعث می شوند که قربانی نتواند به درخواست های واقعی پاسخ دهد، زیرا منابع آن درگیر پاسخ دادن به درخواست های مهاجم است. از آنجایی که در پاسخ به هر درخواست echo، انتظار می رود یک پیام پاسخ ICMP دریافت گردد، در این حالت حمله Ping Flood ایجاد می شود که میتواند به طور قابل توجهی استفاده از CPU را افزایش دهد و با کاهش سرعت سیستم مقصد، باعث قطع کامل سرویس دهی شود.
مهاجمان می توانند با استفاده از چندین دستگاه آلوده، به طور همزمان درخواست های پینگ زیادی به سمت قربانی ارسال کنند. این کار باعث می شود که قربانی نتواند به درخواست های واقعی پاسخ دهد و از دسترس خارج خواهد شد.
به این نوع حمله، انکار سرویس توزیع شده (DDoS) گفته می شود. در این نوع حمله، مهاجم از شبکه دستگاه های آلوده که به آن بات نت می گویند، برای ارسال درخواست های پینگ به سمت قربانی استفاده می کند. بات نت ها توسط مهاجمان با آلوده کردن دستگاه های قربانی ایجاد می شوند. پس از آلوده شدن، دستگاه قربانی تحت کنترل مهاجم قرار می گیرد و می تواند از آن برای انجام حملات DDoS استفاده کند.
تصویر(4)
حملات DDoS می توانند بسیار مخرب باشند و باعث اختلال در خدمات وب، سرورهای ایمیل و سایر زیرساخت های اینترنتی شوند. با این حال، مکانیسم های دفاعی به شما کمک می کنند تا در برابر این حملات واکنش مناسب را نشان دهید.
در سال 2002، مهاجمان با استفاده از یک بات نت، به طور همزمان درخواست های پینگ زیادی به سمت سیزده سرور روت DNS ارسال کردند. این سرورها مسئول ترجمه نام دامنه ها به آدرس های IP هستند و برای عملکرد صحیح اینترنت ضروری می باشند. خوشبختانه، از آنجایی که سوئیچ های بسته (packet) در name server ها از قبل برای حذف تمامی پیام های پینگ دریافتی پیکربندی شده بودند، این حمله تأثیر کمی بر وضعیت جهانی اینترنت داشت.
تصویر(5)
حملات Smurf
حملات Smurf نوعی حمله سایبری هستند که در آن مهاجم با جعل آدرس IP قربانی، درخواست های پینگ زیادی را به سمت یک شبکه ارسال می کند. این درخواست ها باعث می شوند تا دستگاه های موجود در شبکه به آدرس IP قربانی پاسخ دهند که می تواند منجر به کند شدن یا قطع کامل دسترسی قربانی به اینترنت شود.
در گذشته، حملات Smurf یک تهدید بزرگ برای شبکه های کامپیوتری بودند. با این حال، امروزه اکثر شبکه ها فیلترهایی برای بسته ها اعمال می کنند که می توانند این حملات را مسدود کنند. بنابراین، حملات Smurf دیگر رایج نیستند.
حمله Ping of Death
حمله Ping of Death نوعی حمله سایبری است که در آن مهاجم یک بسته ICMP بسیار بزرگ به سمت قربانی ارسال می کند. این بسته می تواند باعث شود که سیستم قربانی از کار بیفتد یا دچار سرریز بافر گردد.
پیام های ICMP در دیتاگرام های IP حمل می شوند که می توانند اندازه محدودی داشته باشند. ارسال یک پیام معیوب یا بزرگتر از اندازه معمول، می تواند منجر به سرریز حافظه و احتمالا خرابی کامل سیستم شود. با وجود اینکه به نظر خطرناک است اما اکثر سیستم های مدرن مجهز به ابزارهای کافی برای شناسایی چنین حملاتی هستند و از رسیدن پیام های ICMP معیوب به مقصد جلوگیری می کنند.
چگونه می توان حملات ICMP را شناسایی و کاهش داد؟
هکرها در حملات DDoS به ویژه در مقیاس بزرگ، وب سایت ها و سرورهای خاصی را به عنوان هدف انتخاب نمی کنند. اگر از خود می پرسید، "چرا یک هکر به وب سایت من حمله می کند؟"، باید به یاد داشته باشید که صرف نظر از دلیل، اطلاع از نحوه کاهش حملات ICMP برای حفظ امنیت آنلاین ضروری می باشد.
مقابله با حملات ICMP، به ویژه در مورد ping flood، تفاوت چندانی با سایر حملات انکار سرویس ندارد. نکته کلیدی، شناسایی ترافیک مخرب و مسدود کردن منبع آن است که به طور موثر باعث عدم دسترسی مهاجمان به سرور می شود.
با این حال، به ندرت نیاز به مشاهده و تجزیه و تحلیل دستی ترافیک شبکه دارید، زیرا اکثر راه حل های امنیتی، از فیلترهای بسته ها به روش سنتی گرفته تا سیستم های پیشرفته تشخیص نفوذ (IDS)، برای محدود کردن نرخ ترافیک ICMP و کاهش موثر حملات ICMP پیکربندی شده اند. با پیشرفت راه حل های امنیتی مدرن، Ping Flood و سایر انواع حملات ICMP دیگر تهدید بزرگی برای سرورها و وب سایت ها نیستند.
تصویر(6)
دفاع در برابر حملات ICMP
یک استراتژی دفاعی موثر در برابر حملات ICMP با پیادهسازی قوانین سختگیرانه برای فیلتر کردن بستهها آغاز میشود که شامل اعمال محدودیت یا حتی غیرفعال کردن کامل ترافیک ICMP ورودی و خروجی است. در حالی که مسدود کردن تمام پیامهای ICMP، ردیابی مسیر اتصال و رسیدن درخواستهای ping به سرور را غیرممکن میکند، تأثیر کمی بر عملکرد سرور و وبسایت خواهد داشت.
در اغلب موارد، فایروالهای نرمافزاری بهطور پیشفرض ترافیک ICMP خروجی را محدود میکنند. معمولا شرکت هاستینگ از قبل این کار را برای شما انجام داده است. میهن وب هاست با ارائه سیستم امنیتی اختصاصی خود، در برابر حملات ICMP واکنش های مناسب را نشان داده و تمامی بسترهایی که امکان حمله از طریق آنها وجود دارد را ایمن کرده است.
اگر می خواهید سرور شما برای همه در دسترس باشد، می توانید درخواست های پینگ ورودی و خروجی را محدود کنید. اکثر فایروال ها به طور پیش فرض تعداد درخواست های پینگ ورودی را به یک عدد در ثانیه برای هر آدرس IP محدود می کنند.
یک راه عالی برای محافظت از سرور خود در برابر حملات ICMP استفاده از شبکه تحویل محتوا (CDN) است. CDN ها قوانین فایروال سختگیرانه ای دارند و بسته ها را به طور کامل بررسی می کنند که باعث کاهش تعداد درخواست های مخرب به سرور شما می شود. در مورد حملات ICMP، حتی قوانین پیش فرض فایروال CDN نیز می توانند به محافظت از سرور شما کمک کنند.
نتیجه گیری نهایی
حملات ICMP نوعی حمله سایبری هستند که می توانند باعث کند شدن یا قطع کامل دسترسی به وب سایت ها و سرورها شوند. خوشبختانه، حملات ICMP دیگر تهدید بزرگی نیستند زیرا راه حل های امنیتی مدرن می توانند از این حملات جلوگیری کنند.
اگر سایت شما با وردپرس طراحی شده است، افزونه هایی مانند ،Wordfence iThemes و... ابزارهای امنیتی کاملی هستند که می توانند از وب سایت وردپرسی شما در برابر حملات ICMP و سایر تهدیدات امنیتی محافظت نمایند. این ابزارها ویژگی های مختلفی مانند برنامه های پشتیبان گیری انعطاف پذیر، احراز هویت چند عاملی، نظارت بر یکپارچگی فایل و اسکن آسیب پذیری دارند که می توانند سطح حمله به وب سایت شما را کاهش دهند. همچنین به طور پیشفرض شرکت های هاستینگ نیز از فایروال های نرم افزاری و سخت افزاری برای جلوگیری از این نوع حملات استفاده می کنند.