پینگ مرگ

دانشنامه عمومی

یک پینگ مرگ ( به انگلیسی: Ping of death ) نوعی حمله روی یک کامپیوتر است که شامل ارسال یک پینگ ناهنجار یا در غیر این صورت مخرب، به یک کامپیوتر می باشد. اندازۀ یک پینگ به طور معمول ۳۲ بایت ( یا ۸۴ بایت با در نظر گرفتن سرآیند آی پی ) است؛ در طول تاریخ، بسیاری از سیستمهای کامپیوتری نمی توانستند یک بسته ی پینگ که بزرگتر از بیشترین اندازۀ بستۀ پروتکل اینترنت نسخه ۴، یعنی ۶۵۵۳۵ بایت را مدیریت کنند. فرستادن پینگی با این اندازه می توانست منجر به خرابی کامپیوتر هدف شود*. در پیاده سازی های اولیۀ مجموعه پروتکل اینترنت ( به انگلیسی: TCP/IP ) ، این اشکال به سادگی قابل سوءاستفاده کردن بود. این سوءاستفاده، طیف گسترده ای از سیستم ها را تحت تأثیر قرار داد، مانند یونیکس، لینوکس، مک اواس، ویندوز، چاپگرها و مسیریابها. با این حال، اکثر سیستم ها از سال ۱۹۹۷ تا ۱۹۹۸ درست شده اند، بنابراین این مشکل عمدتاً تاریخی است*. به طور کلی ارسال یک بستۀ پینگ ۶۵۵۳۵ بایتی، پروتکل اینترنت نوشته شده در RFC 791 را نقض خواهد کرد، اما بسته ای با این اندازه در صورت قطعه قطعه شدن ( به انگلیسی: Fragmentaion ) می تواند فرستاده شود؛ هنگامی که کامپیوتر مقصد بسته را دوباره سر هم می کند، ممکن است یک سرریز میانگیر ( به انگلیسی: Buffer overflow ) رخ دهد که اغلب منجر به از کار افتادن سیستم می شود. در سال های اخیر، نوع متفاوتی از حملۀ پینگ شایع شده است؛ سیل پینگ ( به انگلیسی: Ping flooding ) ، قربانی را با بیشترین ترافیک پینگ غرق می کند طوری که ترافیک معمولی نتواند به سیستم برسد ( یک حمله محروم سازی از سرویس پایه ) .
همانطور که در RFC 791 تعریف شده است، بیشترین طول بستۀ پروتکل اینترنت نسخه ۴ که شامل سرآیند آی پی ( به انگلیسی: IP header ) نیز باشد، ۶۵۵۳۵ بایت است، محدوده نشان داده شده با استفاده از محدودۀ سرآیند آی پی به عرض ۱۶ بیت است که طول کل بسته را شرح می دهد. لایۀ زیرین پیوند داده ها محدودیت هایی روی بیشترین اندازۀ فریم می گذارد ( MTU را ببینید ) . در اترنت معمولاً ۱۵۰۰ بایت است. در چنین حالتی، یک بستۀ آی پی بزرگ به چندین بستۀ آی پی تقسیم می شود ( که با نام قطعه های آی پی شناخته می شود ) ، به طوری که هر قطعۀ آی پی با حد قرارداد شده مطابقت خواهد داشت. گیرندۀ قطعه های آی پی، آن ها را دوباره سر هم خواهد کرد تا به بستۀ کامل آی پی مبدل شود و طبق معمول به پردازش آن ادامه خواهد داد. هنگامی که قطعه قطعه کردن انجام شد، هر قطعه آی پی نیاز دارد اطلاعاتی در مورد قسمتی از بستۀ آی پی اصلی که در آن وجود دارد، حمل کند. این اطلاعات در فیلد افست قطعه در سرآیند آی پی نگهداری می شود. طول این فیلد ۱۳ بیت است و شامل افست داده ها در قطعه آی پی فعلی، در بستۀ آی پی اصلی می باشد. افست در واحدی از ۸ بایت داده می شود. این مسئله اجازۀ داشتن بیشترین افست یعنی ۶۵۵۲۸ را می دهد. یعنی هر قطعه آی پی با بیشترین افست، نباید داده های بیشتر از ۷ بایت داشته باشد، در غیر این صورت از حد مجاز تعیین شده برای بیشترین طول بسته تجاوز خواهد کرد. یک کاربر مخرب می تواند یک قطعه آی پی با بیشترین افست و با داده هایی خیلی بیشتر از ۸ بایت ( به همان بزرگی که لایۀ فیزیکی اجازه می دهد ) ارسال کند. هنگامی که گیرنده تمام قطعه های آی پی را سر هم می کند، با یک بسته آی پی بزرگتر از ۶۵۵۳۵ بایت به کار خود خاتمه می دهد. این احتمالاً منجر به سرریز در بافرهای حافظه ای می شود که گیرنده برای بسته در نظر گرفته است و می تواند منجر به مشکلات بسیاری شود. همانطور که از توصیف بالا مشهود است، مشکل هیچ ربطی به ICMP ندارد. این مشکلی در زمینۀ دوباره سر هم کردن قطعه های آی پی است که می تواند شامل هر نوع پروتکلی مانند ( IGMP, UDP, TCP, … ) باشد. راه حل این مشکل، اضافه کردن کنترل هایی در روند سر هم کردن قطعات است. این کنترل برای هر قطعۀ ورودی آی پی اطمینان حاصل می کند که افست قطعه و کل طول فیلدها در سرآیند آی پی هر قطعه آی پی، کوچکتر از ۶۵۵۳۵ است. اگر جمع بزرگتر شد، بنابراین بسته نامعتبر است و قطعۀ آی پی نادیده گرفته می شود. این کنترل توسط دیوار آتش انجام می شود، برای محافظت از میزبان هایی که این مشکل را درست نکرده اند. راه حل دیگر برای این مسئله، استفاده از یک میانگیر حافظه بزرگتر از ۶۵۵۳۵ بایت برای دوباره سر هم کردن بسته است. ( این اساساً نادیده گرفتن مشخصات است، چرا که پشتیبانی از بسته هایی را اضافه می کند که بزرگتر از اندازۀ مجاز هستند )
عکس پینگ مرگ
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلف

پیشنهاد کاربران

بپرس