در روند پیش روی این مقاله شما با اصطلاحی بنام حملات Dos آشناخواهید شد و در ادامه خواهید دید که حملات دیداس (DDOS) جزئی از داس هستند. تمکز این مطلب به پاسخ به سوال حملات دیداس چیست باز می گردد و می خواهیم به شما راه های مقابله با این حملات را شرح دهیم.
در پاسخ به ddos چیست بایستی گفت حملات Dos و DDos یکی از خطرناک ترین و جدیدترین حملاتی است که در بستر اینترنت انجام میشود هدف از این حملات خراب کردن سرویس مورد نظر نیست بلکه شبکه و سرور مورد نظر را وادار به ناتوانی در ارائه سرویس عادی با هدف قرار دادن پهنای باند شبکه یا اتصال پذیری مینماید. این حملات با ارسال بستههای داده به قربانی انجام میشود که شبکه یا ظرفیت پردازشی قربانی را غرق در بستههای اطلاعاتی میکند و مانع دستیابی کاربران و مشتریان به سرویس میشود.
به صورت کلی زمانی یک حمله DoS در نظر گرفته میشود که دسترسی به یک کامپیوتر یا منبع شبکه عمداً در نتیجه کار مخرب به کاربر دیگری مسدود یا کاهش داده شود. این حملات لزوماً دادهها را مستقیماً یا همیشگی تخریب نمیکنند، اما عمداً دسترس پذیری منابع را به خطر میاندازند. در حملات Dos بستههای اطلاعاتی به طور مستقیم از سیستم Hacker یا Attacker ارسال میشود و به طور کلی یک سیستم اطلاعاتی در این حمله نقش دارد و بالطبع یک IP مسئول انجام Attack است.
در این نوع حملات از ضعفهای نرم افزاری که در سیستم عاملهای سخت افزارها وجود دارد استفاده میشود تا تجهیزات کرش کنند یا اینکه باعث ایجاد اختلال در سخت افزارها میشوند. به طور مثال در سری روترهای قدیمی شرکت سیسکو باگ Buffer over follow وجود داشت و هنگامی که به آن تلنت زده شود اگر در قسمت پسورد یک عبارت طولانی تایپ گردد سیستم عامل آن کرش میکرد و سرویس دهی روتر مختل میشد.
در حملات از طریق سیستم عامل از پروتکلهای سیستم عامل برای از کار انداختن سرویس استفاده میشود مثالی که برای این نوع حمله از DoS می توانیم بزنیم حمله ی ping of death است که در این حمله از پروتکل ICMP سیستم عامل برای ارسال سیلی از بسته و در خواستهای بزرگتر از حالت عادی به سیستم قربانی استفاده میشود. این نوع حملهها معمولا باعث کرش شدن سیستم قربانی میشود. مقاله ای با عنوان “راه های مقابله با حملات دیداس (DDOS) در لینوکس” وجود دارد که این حمله را بصورت کامل در سیستم عامل لینوکس توضیح داده است، پیشنهاد می کنیم آنرا مطالعه بفرمایید.
۳.حملات مبتنی بر اپلیکیشنها:
در این حملات حمله کننده سعی میکند برروی نرم افزارهای شبکهایی که برروی سیستم قربانی در حال پردازش هستند باگ و حفره امنیتی پیدا کند و از طریق الگوریتمهای پیچیده اپلیکیشن را وادار به استفاده از تمام منابع در دسترس سرور کند و در نتیجه سرور قربانی از دسترس خارج میشود مثالی که برای این نوع حمله میتوان بزنیم حمله ی Finger bomb است که در این حمله کاربر مخرب یک روال پایان ناپذیر برای یک نرم افزاری که برروی سیستم قربانی در حال اجرا است ایجاد میکند و این روال پایان ناپذیر باعث میشود تمام منابع در دسترس سیستم استفاده شود و سیستم قربانی از دسترس خارج میشود.
در حملات از طریق سیل دادهها حمله کننده سیل عظیمی از بستههای اطلاعاتی ساده اما بی معنی به سیستم قربانی ارسال میکند و قربانی را وادار میکند این حجم عظیم از اطلاعات را پردازش کند.
در این حمله فرد حمله کننده سعی میکند از تمام پهنای باند سیستم قربانی برای پردازش این اطلاعات بی معنی استفاده کند. مثالی که برای این نوع حمله میتوانیم بزنیم Flood pinging است. این نوع حمله به طور معمول در حملات از نوع DDoS مشاهده میشود و در ادامه در رابطه با این حمله بحث خواهیم کرد.
عموما این نوع حمله با کمک فایروالهای سخت افزاری که در سرورهای اختصاصی ارایه میشود قابل جلوگیری است.
در این حملات فرد حمله کننده از بعضی ویژگیهای پروتکلها برای از دسترس خارج کردن سیستم قربانی استفاده میکند مثالی که برای این نوع حمله میتوان زد حمله ی Dns cache است. در این حمله فرد حمله کننده صاحب یک نیم سرور بوده و Queryهای اشتباهی را در رابطه با سایت خود یا وب سایتهای مخرب به سمت نیم سرور قربانی ارسال میکند و نیم سرور قربانی Response مربوط به Query را به نیم سرور حمله کننده ارسال می کند و اطلاعات غلط را Cache کند.
برای پاسخ به سوال چگونه به یک سایت حمله کنیم و حمله سایبری دیداس (DDoS) چیست با ما همراه باشید.
در صورتی که حملات DoS همزمان از چند سیستم انجام شود و بستههای اطلاعاتی از چند سیستم مختلف خارج شود به آن حمله DDoS میگوییم و بالطبع چند IP در این حمله دخیل خواهند بود. حمله DDoS از ضعف ذاتی اینترنت برای صدمه زدن به قربانی استفاده میکند چرا که بستر اینترنت به گونهای طراحی شده است که بستههای اطلاعاتی به بهترین و کوتاهترین مسیر ممکن به مقصد برسد این مزیت مهمترین مزیت بستر اینترنت است و در عین حال ضعف امنیتی ان نیز محسوب میشود. DDoS از این مزیت برای صدمه زدن به قربانی استفاده میکند. همانطور که خدمتتان گفته شد در حمله DDoS جریانهای بسته و درخواستها از منابع مختلف و سیستمهای مختلف منتشر میشود Attacker تمام این منابع و سیستمها را به صورت یکپارچه در هدف از کار انداختن قربانی استفاده میکند.
بسته های حمله DDoS ی که به سمت قربانی ارسال می شود بسیار یکپارچه و در هم تنیده می باشد حجم حمله به قدری می تواند بزرگ باشد که امکان جداسازی بسته ای سالم از ناسالم وجود نداشته باشد در صورتی که مراقبت و تدابیر امنیتی اتخاذ نشود سیستم قربانی ممکن است متحمل اسیب های بسیار سنگین مانند خاموشی سیستم و خرابی فایل گرفته تا قطع تمام یا بخشی از سرویس گردد.
جریان های حمله دیداس فاقد مشخصات ظاهری که بتوان از آن به طور مستقیم و کلی برای کشف و پالایش آنها استفاده کرد است. حملات زمانی تاثیر مطلوبی دارند که حجم بسته های اطلاعاتی زیاد باشد این حملات میتوانند موجب دگرگون ساختن تمام فیلدهای بسته جهت اجتناب از تشخیص و ردیابی شوند. ابزارهای DDoS امروزه به ابزارهای کاربر پسندی تبدیل شده اند که به راحتی بر روی سیستمهای مختلف میتوانند قرار بگیرند و از انها میتوان برای حمله ی DoS یا DDoS میتوان استفاده کرد و خود کاربر نیز متوجه این موضوع نخواهد شد.
برنامههای حملات DDoS ساختارهای منطقی بسیار ساده داشته و فضای ذخیره سازی کمی لازم دارند که باعث میشود پیاده کردن و پنهان سازی آنها به نسبت ساده باشد.
با توجه به اینکه رویکرد حملات DDoS همواره در حال تغییر است هیچ مکانیزم دفاعی خاص و ثابتی را برای جلوگیری از DDoS نمیتوان اتخاذ کرد البته مکانیزمهایی است که شرایط حمله را برای attacker سخت می کند و با اتخاذ این تدابیر بتوان هویت حمله کننده را شناسایی کرد. حال که می دانید حمله دیداس چیست باید به این نکته هم اشاره کنیم که برای آشنایی بیشتر با DDoS و اینکه چگونه دیداس بزنیم یا حمله DDoS چگونه ایجاد کنیم باید ساختار حملات DDoS را بشناسید.
کاربر مخربی است که بسته های DDoS را به سمت سیستم قربانی هدایت میکند.
سیستمی است که کاربر مخرب از طریق آن سرورهایی که بستههای DDoS ارسال میکنند را هدایت میکند. نرم افزار حمله ddos نرم افزارهایی برروی این سیستمها نصب است که میتوانند Agentها را هدایت کنند.
سیستمهایی هستند که برنامه ی خاصی روی انها نصب است و مسئول ارسال بستههای DDoS به سمت قربانی است. این سیستمها برای جلوگیری ار ردیابی حمله کننده در خارج از شبکه ی آنها و همچنین سیستم قربانی قرار میگیرد.
مراحل زیر هنگام اماده سازی و انجام حملهی DDoS انجام میشود:
مهاجم عاملهایی را که حمله را انجام خواهند داد انتخاب میکند. لازم است این ماشینها دارای آسیب پذیریهایی باشند تا مهاجم بتواند کنترل آنها را در دست بگیرد. همچنین باید دارای منابع فراوان باشند تا بتوانند جریان های حمله قوی تولید کنند.
مهاجم از حفرههای امنیتی و آسیب پذیریهای ماشینهای عامل استفاده کرده و کد حمله را میکارد. به علاوه سعی میکند کد را از کشف و غیرفعال سازی محافظت کند. مالکان و کاربران این عاملها معمولاً اطلاع ندارند که سیستمشان با مهاجم سازش نموده و جزوی از یک حمله DDoS خواهد بود. هنگام شرکت در یک حمله DDoS، هر برنامه عامل تنها از مقدار کمی از منابع (هم در حافظه و هم در پهنای باند) استفاده میکند، به طوری که کاربران کامپیوترها کمترین تغییر را در کارایی احساس کنند.
مهاجم با گردانندهها ارتباط برقرار میکند تا تشخیص دهد کدام عامل ها بالا بوده و در حال اجرا هستند، زمانی که حمله را زمانبندی میکند یا عامل ها را ارتقامی دهد بسته به اینکه چگونه مهاجم شبکه حمله DDoS را پیکربندی میکند، عامل ها میتوانند یاد بگیرند که با یک یا چند گرداننده ارتباط برقرار کنند. ارتباط بین مهاجم و گرداننده و بین گرداننده و عامل ها میتواند توسط پروتکل های TCP، UDP یا ICMP صورت پذیرد.
در این مرحله مهاجم دستور آغاز حمله را میدهد. قربانی، مدت زمان حمله و نیز ویژگی های خاص حمله از قبیل نوع، TTL، تعداد پورت ها و … میتواند تنظیم شود. تنوع خصوصیات بسته های حمله میتواند برای مهاجم به منظور جلوگیری از کشف حمله مفید باشد.
?
حال که با مفهوم دیداس چیست و نحوه ایجاد حمله دیداس آشنا شده اید باید بدانید که برای این عمل چندین ابزار حمله DDoS شناخته شده وجود دارد که باید با آنها نیز آشنا باشیم. معماری این ابزارها بسیار مشابه است و در واقع بعضی ابزارها از طریق تغییرات کمی در سایر ابزارها ساخته شده اند. در این بخش ما وظیفه مندی بعضی از این ابزارها را به طور خلاصه نشان میدهیم.
Trinoo به عنوان اولین ابزاری است که در حمله DDoS استفاده شده است.Trinoo یک ابزار تخلیه پهنای باند است و از ان برای ارسال سیل عظیمیاز ترافیک UDP برروی یک یا چند IP استفاده میشود. معمولاً عاملهای ترینو در سیستمینصب میشود که دارای باگ Buffer overfollow باشند. Handlerها از UDP یا TCP برای ارتباط با agentها استفاده میکند لذا سیستمهای کشف نفوذ میتوانند تنها با بوکشیدن ترافیک UDP آنها را پیدا کنند.
در سال ۱۹۹۹ نوشته شده است و مانند TRINOO یک ابزاری است که برای تخلیه سازی پهنای باند و منابع سرویس قربانی استفاده میشود . این ابزار از یک واسط خط فرمان برای ارتباط بین مهاجم و برنامه اصلی کنترل استفاده میکند اما هیچ رمزنگاری میان عاملها(Agents) و گردانندهها (Handlers) و یا میان گردانندهها (Handlers) و مهاجم (Attacker) ارائه نمیدهد. علاوه بر سیل UDP ترینو، TFN اجازه سیل ICMP و نیز حملات Smurf را میدهد. ارتباط بین گرداننده (handlers)و شیاطین(agents) با بستههای ICMP ECHO REPLY انجام میشود، که کشف آنها از بستههای UDP سخت تر بوده و اغلب میتوانند از سیستمهای دیوار آتش عبور کنند. TFN حملات DDoS را راه اندازی میکند که مخصوصاً سخت تلافی میشود چرا که میتواند چندین نوع از حملات را تولید کرده و میتواند بستههایی با آدرسهای IP مبدأ جعلی تولید کند و همچنین پورتهای مقصد را به طور تصادفی نشان دهد.
(یک واژه آلمانی به معنای «سیم خاردار») بر پایه نسخههای اولیه TFN میباشد و تلاش میکند بعضی از نقاط ضعف آن را از بین ببرد. Stacheldraht ویژگیهای Trinoo (معماری گرداننده/عامل) را با ویژگیهای TFN اصلی ادغام میکند. Stacheldraht همچنین دارای توانایی انجام بروزرسانی در عاملها به طور خودکار میباشد. یعنی مهاجم میتواند روی هر سرور ناشناخته فایل نصب کند و هنگامیکه یک عامل روشن شد (یا به اینترنت وصل شد) عامل میتواند به طور خودکار بروزرسانیها را پیدا کرده و آنها را نصب کند. Stacheldraht همچنین یک اتصال telnet امن توسط رمزنگاری کلید متقارن میان مهاجم سیستمهای گرداننده برقرار میکند.
ارتباط از طریق بستههای TCP و ICMP ایجاد میگردد. بعضی از حملاتی که توسط Stacheldraht میتوانند راه اندازی شوند شامل سیل UDP ، سیل درخواست
ICMP echo و پخش هدایت شده ICMP میشود. شیاطین حمله برای Stacheldraht حملات Smurfوسیل UDP و سیل ICMP را انجام میدهند. نسخههای جدید برنامه امکانات بیشتر و اثرات مختلفی دارند.
از ابزارهای دیگری که میتوانیم برای چگونه حمله دیداس بزنیم نام ببریم mstream ، shaft است اما ما به تعریف ابزارهای بالا بسنده میکنیم.
حملات DDoS حملههایی است که دفاع در برابر ان بسیار دشوار است . اولین مشکل این است که هیچ ویژگی مشترکی در حملات DDoS وجود ندارد و این حملات با توجه به خلاقیت اتکر برنامه ریزی میشود و با توجه به اینکه این حملات از چند سیستم و عامل ناشی میشود بنابراین ردیابی انها بسیار دشوار خواهد بود .از طرف دیگر ابزارهایی که از طریق ان میتوان در حمله DDoS شریک شد به راحتی در فضای اینترنت قابل یافت و دانلود میباشند . همچنین ممکن است حمله کننده با تکنینک IP Spoofing ( جعل IP) هویت واقعی خود را مخفی سازد که در این صورت فرایند ردیابی حمله کننده بسیار دشوارتر میگردد.
دفاع در برابر DDoS شامل دو مورد میشود :۱.دفاع قبل از حمله ی DDoS که شامل استفاده از تجهیزات امنیتی مانند firewall و antiddos و… میباشد ۲.دفاع در زمان حمله DDoS که موضوع بسیار مهمتر از دفاع قبل از حمله میباشد و در زیر چند مکانیزم را ارایه کرده ایم :
در این روش یک روتر راه اندازی میشود که اجازه ورود بستههایی با منبع غیر مجاز را به شبکه نمیدهد. فیلترینگ ورودی (Ingress Filtering) یک مکانیزم محدود کننده به منظور جلوگیری از عبور ترافیکهایی است که آدرس IP فرستنده بسته با پیشوند دامین متصل به روتر همسان نباشد. این مکانیزم میتواند به صورت موثری حملات DDoS ی را که از طریق جعل IP انجام میشود کاهش دهد .
اما بعضی مواقع ممکن است یک ترافیک قانونی به وسیله این نوع از فیلترینگ (فیلترینگ ورودی) دور انداخته شود و این موضوع زمانی رخ میدهد که در یک شبکه خارجی از شبکه ما یک نود متحرک که از IP متحرک (موقت) استفاده میکند بخواهد به شبکه ما وصل شود.
یکی از مکانیزمهای فیلترینگ دیگری که برای جلوگیری از حملات DDoS ارائه شده است فیلترینگ بر اساس تاریخچه ip میباشد بر اساس این روش روتر لبه شبکه بستههای ورودی را که از قبل در پایگاه داده آدرسهای IP وجود دارد میپذیرد. این پایگاه داده آدرسهای IP بر اساس تاریخچه ارتباطات قبلی روتر لبه شبکه میباشد.
یکی از راهکارهای ساده دیگر در مقابل حملات DDoS تغییر آدرس IP است که با تغییر آدرس IP کامپیوترهای قربانی با آدرس جدید باعث میشود آدرس قبلی غیر معتبر شود. به این روش دفاع از هدف متحرک گوییم. پس از تغییر آدرس IP تمامیروترهای اینترنت از این امر مطلع شده و روتر لبه شبکه بستههای حمله را دور خواهد انداخت. اگرچه این عمل کامپیوتر را در معرض تهدید نگه خواهد داشت زیرا حمله کننده یک حمله جدید را به آدرس جدید صورت خواهد داد . این گزینه برای زمانیکه حمله DDoS به صورت محلی و بر اساس آدرس IP باشد کاربردی است. از طرف دیگر حمله کننده میتواند با استفاده از افزودن ویژگی ردیابی نام دامنه به ابزار حمله DDoS خود این مکانیزم دفاعی را بی اثر کند. ( با استفاده از ویژگی ردیابی دامنه به محض تغییر آدرس IP چون حمله با دامنه انجام میشود بنابر این حمله به سوی آدرس جدید ارسال خواهد شد.)
Load balancing یکی از روشهای ساده است که سرویس دهنده را قادر میسازد تا پهنای باند را در ارتباطات حساس افزایش داده و در زمان وقوع حمله از قطع شدن سرویس جلوگیری نمایند. به علاوه کمک میکند تا با استفاده از قابلیت تکرار در سرورها (Replication) در صورتی که سروری به دلیل حمله DDoS دچار اشکال شود تخریب امن صورت گیرد. ( اگر سروری به دلیل حمله از دسترس خارج شد به دلیل تکرار شدن آن بر روی سایر سرورها سرویس دهی توسط سایر سرورها ادامه یابد )
۵.Honeypots:
میتوان از Honeypotها برای جلوگیری از حملات DDoS استفاده کرد. Honeypotها سیستمهایی هستند که با حداقل سطح امنیت راه اندازی میشوند که میتوان از آنها برای فریب حمله کننده به آن استفاده کرد و دارای سیستم واقعی نیستند. Honeypotها معمولا در سیستمهای حفاظتی دارای ارزش نیستند ولی میتوان از آنها برای جمع آوری اطلاعات درباره حمله کننده با استفاده از ثبت فعالیتهای آنها وآموختن نوع حملات و ابزارهایی که حمله کننده به کار میبرد ، استفاده کرد . در تحقیقات اخیر این بحث مطرح است که تقلید تمامیجنبههای مشروع یک شبکه در Honeypot ( مواردی مانند سرور وب ، سرور ایمیل ، کلاینتها و غیره)به صورت بالقوه برای حمله کنندههای DDoS جذاب میباشد. ایده آن است که حمله کننده را فریب دهیم تا فکر کند که در حال آسیب زدن به یک سیستم ( در اینجا سیستم Honeypot ) است و این سیستم در اختیار وی برای نصب کد عامل (agent) یا Handler میباشد. این روش از به خطر افتادن سیستمهای اصلی جلوگیری میکند و از طرفی رفتار عامل یا Handler نصب شده را میتوان ردیابی کرده و به سیستم اجازه داد تا بهتر بتواند در برابر ویژگیهای حمله انجام شده DDoS دفاع مناسب اتخاذ کند.
یکی از روشهای پاسخ به حملههای DDoS است.در طول یک حمله DDoS اطلاعات مولفه ترافیک را میتوان نگهداری و پس از حمله با آنالیز آنها برای یافتن مشخصات ویژه و خصوصیاتی که ممکن است نشان دهنده یک حمله باشد اقدام نمود.نتایجی که از تحلیلهای این اطلاعات به دست میآید میتواند برای به روز رسانی تکنیکهای توزیع بار (Load balancing) به کار رود و همچنین مکانیزمهای جدید فیلترینگ را توسعه دهد یا به طوری بتوان از حملات DDoS بعدی جلوگیری نمود .
بدون شک حملات DDoS در حال حاضر مشکل جدی در اینترنت میباشد .در این مقاله، ما تلاش کردیم تا به یک دید واضح و روشنی از مشکل حمله DDoS و روشهای دفاعی متعدد وراه حلهایی که پیشنهاد شده اند برسیم. با داشتن دید واضح میتوانیم راهکارهای موثرتری برای مشکل حملات DDoS پیدا کنیم.
یکی از مزایای بزرگ حملات DDoS و دسته بندیهای دفاع , ارتباط موثر و مشارکت بین محققین است که میتواند منجر به شناسایی سایر نقاط ضعف فیلد DDoS شود.این طبقه بندیها نیازمند به روز رسانی مداوم بوده و تهدیدات جدید و مکانیزمهای دفاعی در برابر آنها باید شناسایی شود. مرحله بعدی در این راه ایجاد مجموعه ای از اطلاعات و تجربیات آزمایش شده است به طوریکه بتوان تمامیروشها را مقایسه و ارزیابی نمود.