اعلام اسامی نامزدهای مراسم GDC Awards 2016
دی ۲۰, ۱۳۹۴بازی ایرانی بال های تاریک به تهیهکنندگی مجید قناد منتشر شد
دی ۲۰, ۱۳۹۴حملات DOS و DDOS جزو خطرناک ترین حملات در شبکه می باشند که در این مطلب قصد داریم به بررسی آن ها بپردازیم . با مدیاسافت همراه باشید.
حملات (DOS (Denial Of Service
هدف بسیاری از حملات ، ایحاد اختلال و وقفه در سرویس دهی یک ماشین در شبکه است. به این نوع حملات Denial Of Service گویند. حملات DOS معمولا هزینه بالایی دارند و اغلب به پهنای باند بالایی نیاز دارند.
در حالت کلی حملات DOS به دو دسته تقسیم می شوند :
- حملاتی که منجر به توقف کامل یک سرویس شوند.
- حملاتی که منابع یک سرور را اشباع و تلف می کند.
در حملات نوع اول مستقیما به پروسه ی سرویس دهنده حمله می شود و باعث از کار افتادن آن پروسه می شود. اما در حملات نوع دوم منابع یک سرویس دهنده مانند حافظه و CPU به گونه ای تلف می شود که حتی با وجود فعال بودن سرویس دهنده ، کاربران اصلی امکان سرویس گرفتن از آن را نداشته باشند.
اختلال در کار سرویس دهنده از درون
حمله از درون به این معناست که نفوذگر می تواند یک حق دسترسی مجاز برروی یک ماشین شبکه فراهم کند. البته برای این کار لزوما نیازی به حضور فیزیکی نیست.
در نهایت نفوذگر به این ترتیب می تواند حداقل کارهایی را انجام دهد. به عنوان مثال از با مجوز Admin یا root به یک سیستم وارد شود، می تواند بطور مستقیم به یک پروسه ی در حال اجرا پایان دهد. یا مثلا تنظیمات را به گونه ای تغییر دهد که کاربران قادر به دسترسی به سیستم نباشند.حتی اگر نفوذگر مجوز سطح بالا در اختیار نداشته باشد با مجوز کاربر عادی می تواند برنامه ای را نوشته و آن را احرا کند تا سرویس دهنده را سرگرم کند و تقاضای بسیاری را برای آن ارسال کند.
بمباران:
اصطلاحا به ارسال پی در پی تقاضا برای یک فرایند، به نحوی که نتواند به تقاضای واقعی پاسخ دهد، بمباران گویند.
یک راه دیگر این است که نفوذگر بدون اینکه کاری با پروسه ی سرویس دهنده داشته باشد، منابع ماشین را در اختیار بگیرد. مثلا برنامه ای بنویسد که زمان پردازنده یا حافظه یا دیسک یا پهنای باند شبکه ی زیادی معرفی می کند.
راه مقابله با این نوع حملات
- تنظیم دقیق سطوح دسترسی افراد.(مثلا کاربران نباید مجوز سطح Admin داشته باشد.)
- اختصاص مناسب به افراد.
- استفاده از منابع کافی و زیاد برای سرور. در این صورت قبل از اینکه سیستم از کار بیفتد شاید بتوان حمله را کشف کرد.
- استفاده از IDS.
حملات DOS از بیرون
بمباران با استفاده از بسته های ناقص و دارای اشکال
در این حالت برای درهم شکستن یک سرویس دهنده، با بسته های مشکل دار آن را بمباران می کنند. تعدادی از این حملات به قرار زیرند :
1- حمله ی Land:
یکی از مهلک ترین حمله ها است و علیه TCP انجام می شود. در این حمله تعداد زیادی بسته با مشخصات زیر به هدف ارسال می شوند :
- فیلد های پورت مبدا و پورت مقصد هردو با یک مقدار تنظیم می شوند و این مقدار یکی از پورت های باز ماشین هدف است.
- فیلد های آدرس IP مبدا و مقصد نیز هر دو با یک مقدار و آن هم با آدرس IP ماشین هدف تنظیم می شوند. در این حالت ماشین مقصد هنگامی که این بسته را دریافت کرد و پاسخ آن را تولید کرد آن را ارسال می کند، اما این بسته به خود ماشین برمی گردد و این روند ادامه می یابد.
حمله از نوع Land را اگر برروی چندین پورت باز انجام شود ، با عنوان Latierra شناخته می شود.
2- حمله ی Ping of Death :
اندازه ی بسته های Ping حداکثر 64 کیلوبایت می باشد و بسته های بزرگتر از آن غیر مجاز هستند. حال اگر به یک ماشین، یک بسته ی Ping با اندازه ی بیشتر از 64 کیلوبایت ارسال شود، چون در پروسه ی ICMP هیچ تمهیدی برا آن در نظر گرفته نشده است، پروسه ی ICMP به راحتی مختل می شود و عملکرد صحیح خود را از دست می دهد.
3- حمله ی Jolt2 :
نکته : بسته های IP می توانند به قطعات کوچکتری تقسیم شوند و فیلد fragment offset در این قطعات ، جایگاه قطعه ی جاری را در بسته ی اصلی نشان می دهد.
در این حمله ، مهاجم تعداد زیادی از این قطعات را برای هدف ارسال می کند ، اما در بین این قطعات هیج قطعه ای با Fragment-Offset=0 وجود ندارد. بنابراین ، پروسه ی IP در مقصد برای تصمیم گیری راجع به هر بسته باید ابتدا آن را بازسازی کند و برای بازسازی آن باید همه ی قطعات را در حافظه نکه دارد. به این ترتیب تمام حافظه ای که در اختیار IP است تمام می شود و هیچ بسته ی جدیدی نمی توان دریافت کند.
راه های مقابله با این نوع حملات :
- شناسایی نقاط ضعف OS و به روز کردن آن .
- استفاده از یک دیواره ی آتش قوی. مثلا Land از IP مبدا و مقصد یکسان استفاده می کند که توسط Firewall قابل کشف است.
4- حمله از نوع SYN Flood :
هدف از این حمله تلف کردن منابع سیستم از راه دور می باشد.
نکته : یک ارتباط TCP طبق یک دست تکانی سه مرحله ای شکل می گیرد.
اولین مرحله : مشتری یک بسته ی syn=1 برای سرور ارسال می کند.
دومین مرحله : سرور یک بسته ی Akc=1 , syn=1 برای مشتری ارسال می کند.
سومین مرحله : مشتری یک Ack=1 برای سرور ارسال می کند.
نکته : سرویس دهنده پس از انجام مرحله ی دوم باید مشخصات این تقاضارا در جایی ذخیره کند تا پس از مرحله ی دوم از آن استفاده کند. در واقع سرویس دهنده مقداری از قضای حافظه ی خود را صرف ذخیره ی برخی اطلاعات مربوط به این درخواست می کند و چیزی بین 40 تا 360 ثانیه اطلاعات را نگه می دارد و اگر مرحله ی دوم تکمیل نشده است ، آنگاه این اطلاعات را دور می ریزد.
در حمله ی SYN flood نفوذگر در ی حلقه ی بی نهایت، تعدادی بسته ی syn تولید می کند با آدرس های IP مبدا دروغین برای سرور ارسال می کند. سرور به ازای هر درخواست باید مشخصات آن را در حافظه ی خود ذخیره کند. حال اگر نفوذگر بتواند با سرعتی مناسب ، این بسته را برای سرور ارسال کند، حافظه ی سرور پر می شود و عملا قادر به دریافت درخواست های واقعی نیست.
راه های مقابله با SYN Flood
- استفاده از پهنای باندها و حافظه ی بالا برای سرور
- می توان زمان نگه داری مشخصات یک ارتباط نیمه تمام را کوتاه کرد.
- در Linux اصلا چنین صفی تشکیل نمی شود. بلکه اطلاعات لازم به طور محرمانه و رمز شده در بسته ی Syn-Ack که سرور برای مشتری ارسال می کند قرار داده می شود و این اطلاعات طی مرحله ی سوم دوباره برای سرور باز فرستاده می شوند.
5- حمله ی Smurf
نکته : آدرس های IP شامل دو بخش آدرس شبکه و آدرس میزبان هستند. و اگر تمام بیت های فیلد آدرس میزبان ، یک(1) باشند، بسته باید توسط تمام ماشین های آن شبکه دریافت شوند.
این نوع حمله که به Ping نیز معروف است، نفوذگر یک بسته ی Ping را با آدرس مقصد فراگیر، برای همه ی ماشین های شبکه ارسال می کند(Broadcast می کند). این بسته قاعدتا توسط همه ی ماشین های شبکه دریافت می شود و هرکدام از آن ها به صورت جداگانه سعی می کنند پاسخ آن را ارسال کنند.
حال فرض کنید نفوذگر در فیلد آدرس مبدا بسته ی Ping اولیه، آدرس ماشین قربانی را قرار داده؛ در نتیجه به ناگاه ماشین قربانی با سیل بسته های پاسخ مواجه می شود.
تعداد بسته هایی که ماشین قربانی دریافت می کند برای تعداد ماشین های شبکه ی محلی است. حال اگر نفوذگر در هر ثانیه چندین بسته ی Ping ای چنین برای شبکه ارسال کند، ماشین قربانی از کار خواهد افتاد.
مقابله با Smurf
- مسیریاب نباید اجازه دهد کسی از بیرون شبکه ، یک بسته ی broadcast برای داخل شبکه ارسال کند.
- حذف بسته های ICMP در مسیریاب
- غیر فعال کردن ICMP برای ماشین های شبکه.
6- حمله ی Fraggle
نکته : در UDP پورت شماره ی 7 برای echo در نظر گرفته شده است . یعنی هر داده ای که برای آن ارسال شود، عینا برای مبدا برگشت داده می شود.
در این نوع حمله ، نفوذگر یک بسته ی UDP برروی پورت 7 و با آدرس مقصد broadcast شبکه ارسال می کند و آدرس مبدا را به ماشین قربانی SET می کند. به این ترتیب تمام ماشین های شبکه ، این بسته را دریافت کرده و همان را دوباره برای ماشین قربانی ارسال می کنند.
راه مقابله با Fraggle
- مسیریاب نباید اجازه دهد از بیرون شبکه یک بسته ی broadcast برای داخل شبکه ارسال شود.
- بستن پورت 7 مربوط به UDP برروی ماشین ها
حملات (D.D.O.S (Diseributed Denial of Service
نکته : در اغلب حملات DOS نفوذگر باید منابع و مخصوصا پهنای باند بالایی در اختیار داشته باشد و هزینه ی بالایی تقبل کند. در ضمن ممکن است به خاطر طولانی شدن حمله (مانند Syn flood) هویت نفوذگر بالاخره آشکار شود.
حملات DDOS اولین بار در سال 1999 استفاده شدند و دارای خصوصیات و اهداف کلی زیر هستند :
1- هزینه ای برای نفوذگر ندارند.
2- هویت نفوذگر پنهان می ماند.
3- احتمال موفقیت آن ها بسیار بالاست.
4- مبارزه با آن ها بسیار مشکل است.
نکته : نفوذگر در حملات DDOS سعی می کند از ماشین های زیادی در سراسر اینترنت برای هدف خود استفاده کند.
تعریف : به ماشین هایی که بدون اطلاع صاحبش و توسط یک نفوذگر به عنوان ابزاری برای حملات DDOS مورد سوء استفاده قرار می گیرند ، ماشین های زامبی (zombie) می گویند.
روال کلی حملات DDOS به این صورت است که نفوذگر با استفاده از روش هایی ، نرم افزارهای zombie را برروی ماشین های کاربران ناآگاه نصب می کند. این نرم افزار ها ی مانند تروجان در قالب برنامه های رایگان و زیبا و یا هرچیز دیگری توزیع می شوند. به این ترتیب هرکدام از این برنامه ها می توانند بخشی از حمله ی DDOS را بر عهده بگیرند. این برنامه ها در ماشین مورد نظر اجرا شده و منتظر صدور فرمان از جانب نفوذگر می باشند.
حمله ی (TFN2K (Tribe Flood Network 2000
در این حمله نفوذگر ماشین های زامبی را در غالب گروه هایی تقسیم بندی می کند و برای هرگروه یک سرگروه انتخاب می کند. به این ترتیب نفوذگر فرمان حمله را فقط به سرگروه ها اعلام می کند و سرگروه ها برای ماشین های زامبی فرمان صادر می کنند.
حمله ی TFN2K از مکانیزم های UDP Flood یا Syn flood یا Smurf یا حمله ی Targa (ارسال سیل آسای بسته های IP ناقص) یا ترکیبی از این حالت ها استفاده می کند.
نکته : یک از شگفت انگیزترین مسائلی که در TFN2K وجود دارد این است که این نرم افزار در ماشین های زامبی هیچ پورت جدیدی باز نمی کند. بنابراین صاحب ماشین زامبی نمی تواند با نرم افزار های اسکن پورت ها، مشکوک شود.
نکته : نحوه ی صدور فرمان حمله دهنده از موارد بسیار هوشمندانه ی TFN2K می باشد. نفوذگر برای ارسال دستور حمله از بسته های پاسخ ping (ech reply packet) استفاده می کند. دلیل این استفاده نیز این است که اکثر مسیریاب ها و دیواره های آتش ، اجازه می دهند این بسته وارد شبکه شود، زیرا فرض می کنند این بسته در پاسخ به دستور ping به شبکه بازگشته است.
نکته : در TFN2K، حتی آدرس مبدا صدور بسته ی پاسخ ping نیز جعلی تنظیم می شود تا ماشین نفوذگر و ماشین های سرگروه کشف نشوند.
نکته : در TFN2K ماشین های زامبی نیز هنگام حمله از آدرس های جعلی استفاده می کنند تا دیرتر کشف شوند.
نکته : به سه دلیل پیگیری ماشین های زامبی هیچ سودی ندارد :
- تعداد آنها بسیار زیاد است.
- در سرتاسر دنیا پراکنده اند و به ISP های متفاوتی متصل هستند. بنابر این پیدا کردن آن ها ( در کشور های مختلف با قوانین مختلف ) بسیار زمان گیر و عملا غیر ممکن است.
- آن ها بی گناهند.
نکته : نفوذگر می تواند در TFN2K حتی نسخه ی نرم افزار نصب شده در ماشین زامبی را به روز کند.
نکته : بعد از پایان حمله ، نفوذگر ماشین های زامبی را وادار می کند تا نرم افزار TFN2K را پاک کند (خود کشی). و یا حتی کل اطلاعات دیسک سخت ماشین زامبی را پاک کند(انفجار قرارگاه).
راه های مقابله با DDOS
- مسئول شبکه باید ماشین های شبکه را آزمایش کند تا احیانا به عنوان زامبی استفاده نشوند.
- باید در مسیریابها از نرم افزارهای Anti-spoof دو طرفه استفاده کرد. این نرم افزارها اجازه نمی دهند یک ماشین از داخل شبکه، با آدرس مبدا برای بیرون شبکه داده ارسال کند. بنابراین ماشین زامبی نمی تواند عملا در حمله موثر باشد.