حمله DDoS یا دیداس چیست؟ تفاوت آن با حملات DoS و انواع آن
فهرست
حمله DDoS چیست؟
حمله DDoS یا Distributed Denial of Service به حملهای گفته میشود که هدف آن ایجاد اختلال در ترافیک یک سرور، سرویس یا شبکه مشخص است. اما چطور این اختلال بوجود میآید؟ بوسیله ارسال حجم زیادی ترافیک، به سمت هدف. اما توجه داشته باشید که در حملات DDoS این ارسال ترافیک بصورت توزیع شده است. یعنی مهاجم فقط از 1 سیستم اقدام به ارسال ترافیک نمیکند، بلکه از چندین سیستم اقدام به این کار میکند. این سیستمها عموما سیستمهایی هستند که متعلق به خود مهاجم نیستند. هر چه تعداد این دستگاهها بیشتر باشد، احتمالا حمله مهلکتر میشود. این دستگاهها میتوانند سیستمهای شخصی، سرور، VPS، دستگاههای اینترنت اشیا و … باشد. تفاوت عمده حملات DoS و DDoS نیز در همین است. در DoS از یک دستگاه برای حمله استفاده میشود. این در حالیست که در DDoS از چندین دستگاه برای انجام حمله انجام میشود.
پس به زبان ساده، در این حملات یک تارگت وجود دارد و مهاجم به صورت توزیع شده ترافیک زیادی به سمت آن ارسال میکند، با هدفِ اینکه سرویسدهی آن دچار اختلال شود. مثلا یک رستوران را در نظر بگیرید. فردی با هدف ایجاد اختلال، با رستوران تماس میگیرد. او تمام یا بخشی از میزهای آن را رزرو میکند. بدون آنکه قرار باشد به رستوران بیاید و از آنها استفاده کند. در این صورت رستوران در سرویسدهی دچار مشکل میشود. چرا که بسیاری از منابع خود را صرف شخصی کرده است که هیچگاه قصد استفاده از آن را ندارد.
حمله DDoS چگونه انجام میشود؟
بات نت
حملات DDoS بوسیله دستگاههایی که به اینترنت متصل هستند انجام میشود. این دستگاهها شامل کامپیوترها و تجهیزاتی هستند که قبلا مهاجم به آنها دسترسی پیدا کرده است. این دسترسی به مهاجم اجازه میدهد که آنها را بصورت از راه دور (Remote) کنترل کند. به هر کدام از این دستگاهها زامبی (Zombie) یا بات (Bot) و به مجموعه آنها بات نت (Botnet) گفته میشود.
پس از ایجاد یک بات نت، مهاجم می تواند با ارسال دستورالعملهای از راه دور به هر بات، حمله را مدیریت کند.
هنگامی که سرور یا شبکه یک قربانی توسط بات نت هدف قرار می گیرد، هر بات درخواستهایی را به آدرس IP تارگت ارسال می کند به امید اینکه باعث شود سرور یا شبکه بیش از حد تحت فشار قرار بگیرد. اگر شبکه تحت فشار قرار بگیرد، منابع سیستم بیهوده مشغول میشود. در نتیجه باعث عدم پذیرش سرویس به ترافیک عادی می شود.
توجه داشته باشید که هر بات یک دستگاه اینترنتی مجاز است. به همین علت، جدا کردن ترافیک حمله از ترافیک عادی ممکن است دشوار باشد.
شناسایی حملات DDoS
بارزترین نشانه حمله DDoS کند شدن ناگهانی سایت یا سرویس است. اما از آنجا که تعدادی افزایش ترافیک واقعی و ناگهانی به یک سرویس نیز باعث کند شدن آن میشود، معمولا بررسی بیشتری برای شناسایی حملات DDoS نیاز است. ابزارهای تجزیه و تحلیل ترافیک میتوانند به شما کمک کنند برخی از علائم آشکار یک حمله DDoS را تشخیص دهید:
- مقدار شک برانگیزی از ترافیک ورودی از یک آدرس IP یا محدوده IP سرچشمه میگیرند
- سیل ترافیک از کاربرانی که یک نمایه رفتاری (مانند نوع دستگاه، موقعیت جغرافیایی یا نسخه مرورگر وب) شبیه به هم دارند
- افزایش غیرمنطقی و چشمگیر درخواستها به یک صفحه یا سرویس
- الگوهای ترافیکی عجیب و غریب مانند پیکهای ترافیکی در ساعات خاموشی روز یا الگوهایی که غیر طبیعی به نظر می رسند (به عنوان مثال پیک ترافیکی در هر 10 دقیقه)
علائم دیگری از حمله DDoS وجود دارد که بسته به نوع حمله می تواند متفاوت باشد.
انواع حملات DDoS
در این بخش با چند مورد از معروفترین انواع حملات DDoS آشنا میشویم. انواع مختلف حملات DDoS اجزای مختلف شبکه را هدف قرار میدهند. برای درک نحوه عملکرد انواع حملات DDoS لازم است بدانید که چگونه اتصال شبکه صورت میگیرد. اتصال شبکه در اینترنت از اجزای مختلف یا “لایه” تشکیل شده است. همان لایههایی که در مدل TCP/IP یا مدل مفهومی OSI در مورد آنها به طور مفصل صحبت کردیم.
با اینکه تقریباً همه حملات DDoS از طریق وارد کردن فشار زیاد به یک دستگاه یا شبکه هدف صورت میگیرد، اما این حملات را میتوان به سه دسته تقسیم کرد. یک مهاجم ممکن است از یک یا چند بردار حمله (Attack Vector) مختلف، در پاسخ به اقدامات تدافعی شبکه هدف استفاده کند.
حملات لایه کاربرد | Application Layer Attacks
به این دسته از حملات، “حملات DDoS لایه هفت” نیز گفته میشود. منظور از لایه هفت، لایه هفتم مدل OSI میباشد. هدف این دسته از حملات هدر دادن منابع تارگت میباشد. به این امید که تارگت از دسترس خارج شود و به عبارت دیگر، منع سرویس رخ دهد.
اما منظور از لایه هفت بودن این حملات چیست؟ این حملات منابعی از سیستم را هدر میدهند که در لایه هفتم کار میکنند. مثل صفحات وب! همانطور که میدانیم، وقتی یک درخواست HTTP به سمت یک سرور ارسال میشود، در واقع از سرور خواستهایم که یک صفحه وب را برای آماده و ارسال کند. در جواب این درخواست ما، سرور محتوای یک صفحه وب را برای ما ارسال میکند. این عملیاتی که سرور برای آمادهسازی و ارسال انجام میدهد برای 1 درخواست HTTP شامل آمادهسازی یک سری فایل هست که برای سرور هزینهای دارد. وقتی تعداد این درخواستها بالا میرود، نیاز به پردازش بیشتری نیز وجود خواهد داشت. در حملات DDoS لایه هفت نیز با ارسال تعداد بسیار زیادی درخواست HTTP سعی میشود منابع سرور بیهوده مشغول شوند. یک نمونه از حملات این دسته، حملات HTTP Flood میباشد.
یک مثال برای درک بهتر این قضیه، مثال مطبِ دکتر و بیمار میباشد. فرض کنید یک نفر با مطب تماس میگیرد و منشی جواب او را میدهد. 1 بار جواب دادن به تلفن، مقداری وقت و انرژی از منشی میگیرد. اگر قرار باشد این فرد در طول روز بارها و بارها به مطلب زنگ بزند بدون آنکه هدفی داشته باشد، وقت و انرژی منشی را هدر میدهد و منشی از خدمترسانی به بقیه افراد غافل میماند.
دفاع از حملات لایه 7 دشوار است، زیرا تفکیک ترافیک مخرب از ترافیک مجاز حدودا دشوار است.
حملات پروتکلی | Protocol Attacks
حملات پروتکلی، که به عنوان حملات State-Exhaustion نیز شناخته می شوند، با مصرف بیش از حد منابع سرور و منابع تجهیزات شبکه مانند فایروال ها و تعدیل کنندههای بار، باعث ایجاد اختلال در سرویس میشوند. حملات پروتکلی از لایه 3 و لایه 4 پشته پروتکلی استفاده می کند تا هدف را از دسترس خارج کنند.
حمله SYN Flood
حمله SYN Flood یک نمونه از این دستهبندی است. این نوع از حملات را در ویدیوی آموزش SYN Flooding بطور کامل بررسی کردیم. برای درک راحتتر این نوع از حملات یک مثال میزنیم. فرض کنید یک بستنی فروشی که در کنار یک خیابان قرار دارد. به محض اینکه یک مشتری درخواست بستنی قیفی میکند، به کنار دستگاه میرود و شروع به آماده کردن بستنی قیفی میکند. به ازای هر بستنی که آماده میکند، انتظار دارد یکی از مشتریان بستنی را از دست او بگیرد تا بتواند بستنی بعدی را تهیه کند. حال فرض کنید یک یا چند نفر از مشتریان او، سفارش بستنی بدهند ولی تا تحویل آن صبر نکنند. چه اتفاقی میافتد؟ بستنی فروش یک بستنی آماده میکند ولی کسی نیست که آن را از او تحویل بگیرد! اینگونه مشتریان باعث هدر رفتن منابع بستنی فروشی میشوند و روند خدمترسانی به دیگر مشتریان نیز دچار اختلال میشود.
سازوکار حمله SYN Flood
در حملات SYN Flooding نیز، از TCP Handshake سواستفاده میشود که در مورد آن در پست “TCP چیست؟ ارتباط TCP چگونه انجام میشود؟” به طور کامل صحبت کردیم. بطور خلاصه، TCP 3-Way Handshake یک سری عملیات پشت سرهم میباشد که برای شروع یک ارتباط TCP لازم است. مثل دو انسان که وقتی میخواهند یک مکالمه را شروع کنند، ابتدا به یکدیگر سلام میکنند. فرض کنید A میخواهد یک ارتباط TCP با B برقرار کند. ابتدا A یک درخواست برای شروع ارتباط به B ارسال میکند. سپس B یک پیام تایید برای A ارسال میکند، به این معنی که “من هم برای شروع ارتباط آمادهام و میتوانی ارتباط را شروع کنی!”. اما A ارتباط را شروع نمیکند!! همانند بستنی ای که B آماده کرده است، ولی A در آنجا حضور ندارد تا بستنی را تحویل بگیرد. البته A اینکار را بوسیله یک سری آدرس IP جعلی انجام میدهد. بدین ترتیب تشخیص حمله برای B سخت میشود و متوجه نمیشود که همه این درخواستها از یک نفر میباشد. بدین ترتیب منابع سیستم، مشغول میشود.
حملات حجمی | Volumetric Attacks
این دسته از حملات سعی دارند با مصرف تمام پهنای باند موجود هدف، ازدحام ایجاد کنند. حجم زیادی داده به سمت تارگت ارسال میشود. این کار بوسیله Amplification و یا دیگر روشهای تولید ترافیک حجیم، مثل ارسال درخواست از بات نت، انجام میشود.
DNS Amplification
تقویت DNS مانند این است که کسی بخواهد با یک رستوران تماس بگیرد و بگوید من یکی از همه غذاها را سفارش میدهم، لطفاً با من تماس بگیرید و کل سفارش من را تکرار کنید”. در حالی که این شخص با یک شماره جعلی تماس گرفته است! و این شماره متعلق به قربانی است. با یک تلاش بسیار کم از سمت مهاجم، پاسخی طولانی ایجاد می شود و برای قربانی ارسال می شود. با ارسال درخواست از سرور DNS با آدرس IP جعلی (جعل شده به آدرس IP قربانی)، آدرس IP هدف پاسخی از سرور دریافت می کند.
جلوگیری از حملات DDoS یا DDoS Mitigation
نگرانی اصلی در جلوگیری از حمله DDoS تشخیص ترافیک واقعی از ترافیک غیرواقعیست. به عنوان مثال، یک محصول دارای وب سایت شرکتی را فرض کنید که افراد زیادی منتظر منتشر شدن آن محصول هستند. طبیعی است که بعد از انتشار آن، افراد زیادی به وب سایت مراجعه میکنند و ترافیک ورودی افزایش مییابد. طبیعتا مسدود کردن این ترافیک، اشتباه است. اگر آن شرکت ناگهان دچار افزایش ترافیک از سوی مهاجمان شود، لازم است که فورا جلوی ترافیک غیرواقعی گرفته شود. چرا که در حالت عادی هم ترافیک ورودی حجم زیادی دارد و منابع به شدت مشغول هستند. در ادامه با چند روش برای جلوگیری از این حملات آشنا میشویم.
روش مسیریابی سیاهچالهای | Blackhole routing
یک راه حل که عملاً برای همه سرپرستان شبکه در دسترس است، ایجاد یک مسیر (Route) سیاه چاله و ارسال ترافیک به آن است. در ساده ترین شکل خود ، هنگامی که فیلتر سیاهچاله بدون معیارهای محدودیت خاصی اجرا شود ، ترافیک قانونی و مخرب شبکه به یک مسیر تهی یا سیاهچاله هدایت می شود و از شبکه رها می شود.
اگر دستگاه متصل به اینترنت با حمله DDoS روبرو شده باشد، ارائه دهنده خدمات اینترنتی یا ISP ممکن است تمام ترافیک سایت را به عنوان دفاع به سیاه چاله ارسال کند. این یک راه حل ایده آل نیست، زیرا مهاجم را به هدفش میرساند! چراکه باعث می شود شبکه از دسترس خارج شود و هر کسی (حتی شخصی که واقعا قصد استفاده از خدمات دارد) نمیتواند از سرویسدهی استفاده کند.
محدود کردن نرخ | Rate limiting
محدود کردن تعداد درخواستهایی که سرور در یک بازه زمانی خاص میپذیرد نیز روشی برای کاهش حملات DoS و DDoS است. با اینکه این روش برای کند کردن عملیات Web Scrapperها و کسانی که اقدام به بروت فورس میکنند، موثر است، اما به تنهایی برای کنترل حمله DDoS کافی نیست. اما همیشه از این روش به عنوان یک روش کاربردی استفاده میشود.
استفاده از فایروال برنامه تحت وب | Web Application Firewall – WAF
در مقاله “WAF چیست؟” بطور کامل در مورد WAF صحبت کردیم. WAF ابزاری است که می تواند در جلوگیری از حمله DDoS لایه هفت، موثر باشد. با قرار دادن WAF بین اینترنت و سرور، WAF میتواند به عنوان یک پروکسی عمل کند و از سرور در برابر برخی ترافیکهای مخرب محافظت کند.
با فیلتر کردن درخواست ها بر اساس یک سری دستورالعمل استفاده شده برای شناسایی ابزارهای DDoS، می توان از حملات لایه هفت جلوگیری کرد. یکی از مزیتهای کلیدی WAF توانایی اجرای سریع دستورالعملهای مشخص شده، در پاسخ به حمله است.
درباره ما
ترجنس | thregence.ir
آکادمی ترجنس | edu.thregence.ir
اینستاگرام | instagram.com/thregence
تلگرام | t.me/thregence
یوتوب | https://bit.ly/30mGowo
آپارات | aparat.com/thregence