سلام امید وارم خوب باشید این اموزش دوستان به شکل های مختلف درسایت سلام دیجی قراردادند منم یک روش دیگر قرار دادم امید وارم کار امد برای شما باشد (DoS (Denial of Service: نوعی حمله است که باعث افزایش بار بر روی روتر یا سرور میشود
به این معنی که مصرف سی پی یو به 100% میرسد و سرور یا روتر از دسترس خارج می شود یا بطور کل تمام عملیاتهایی که میتونند روی مصرف سی پی یو تاثیر بذارند مثل فایروال و لاگینگ که میتونند باعث overload روتر بشوند، در صورتی که تعداد بسیار بالایی packet در ثانیه به روتر برسه.
به طور کلی برای ارتباط بر بستر tcp از syn ,ack,syn-ack استفاده می کند
SYN Flood ( سيلاب SYN ) يكي از روشهاي حمله هاي تكذيب سرويس Denial of Service ( به اختصار حمله DoS ) مي باشد . اما چرا اين حمله تكذيب سرويس ناميده مي شود :
در شبكه هاي كامپيوتري سرورها دائما با كلاينتها در ارتباط هستند . منابع سرور محدود بوده و اگر درخواستها زياد شود درخواستهاي جديدتر در صف قرار مي گيرند تا نوبت پاسخگويي به آنها برسد . اگر اين صف نيز پر شود سرور درخواستهاي رسيده را ناديده مي گيرد ( قادر به پاسخگويي به آنها نيست ) و اين اتفاقي است كه در حمله هاي DoS اتفاق مي افتد . از آنجا كه اين حمله سرويس دهي سرور را متوقف مي كند به آن حمله تكذيب سرويس مي گويند .
حال به بحث اصلي مي پردازيم و ببينيم نوع حمله SYN Flood چگونه كار مي كند . براي اينكه با اين حمله آشنا شويم ابتدا بايد نگاهي گذرا به پروتكل TCP/IP مي اندازيم .
در اين پروتكل زماني كه سرور كد SYN را از كلاينت دريافت مي كند متوجه مي شود كه كلاينت قصد برقراري ارتباط را دارد . اگر اين درخواست قبول شود سرور با يك SYN/ACK پاسخ مي دهد و اين كد براي كلاينت به مفهوم قبول ارتباط از طرف سرور بوده است و ارتباط برقرار مي گردد
حال مهاجم با استفاده از اين كد سيلي از درخواستهاي SYN را به سمت سرور سرازير مي كند . در نتيجه سرور قادر به پاسخگويي نبوده و دچار كاهش سرويس دهي مي شود . حتي ممكن است اين حمله منجر به توقف كامل سرويس دهي سرور شود .
به طور کلی انجام این حمله برای اهداف زیر صورت میگیرد:
- پایین آوردن سرعت و کیفیت سرویسدهی شبکه
- از دسترس خارج کردن وبسایت مورد نظر
- قطع دسترسی تمام وبسایتها (با حمله به name serverها)
- افزایش تعداد هرزنامهها (که به بمب ایمیلی نیز معروف است)
لازم به ذکر است که این حمله فقط مختص به سرورها نیست و ممکن است یک شبکه و یا حتی روتر نیز مورد حمله قرار گیرد و ممکن است کار بخش عمدهای از اینترنت را مختل کند (همانطور که در طول تاریخ ۲بار اینترنت کل دنیا با این حمله مختل شده است).
SYN flood: نوعی از حمله Dos است که حمله کننده جانشینی از درخواستهای syn رو در تلاش به مصرف منابع بدون در نظر گرفتن ترافیک مجاز به سیستم هدف میفرسته.
Syn cookies: یک تکنیک کلیدی در دفاع در برابر حملات dos میباشد. اساس کار ان بر اساس صف بندی شماره TCP سرورها است به این صورت که syn coockie اجازه میده هنگامی که صف syn پر میشه سرور از اتصال کانکشنها جلوگیری کنه.
آنالیز حملات
معمولا حملات بر روی لایه هایی مختلف مدل osi انجام می شود که در جدول زیر نمایش داده شده است.
تاثیرات حمله ها :
1- سیستم های نرم افزاری
2- تجهیزات شبکه از قبیل روتر و سوئیچ
3- سرورها و رایانه کاربران نهایی
مدل مرجع OSI
این مدل همیشه یک نقطه شروع خوب برای فهمیدن و عیب یابی رفتار شبکه است . مخصوصا در مواقعی که شبکه زیر فشار سنگینی باشد مانند حملات DDoS.
نحوه تشخیص:
با استفاده از کدهای CLI زیر میتونید نوع حمله رو تشخیص بدید. اگر اتصالات بسیار زیادی به سرور شما از طریق syn فرستاده شده وجود دارد:
/ip firewall connection print
اگر پکتهای زیادی به شبکه شما وارد میشود:
/interface monitor-traffic ether3
اگر مصرف سی پی یو شما 100% است:
/system resource monitor
اگر اتصالات بسیار زیاد مشکوکی به سرور خود دارید:
/tool torch
نحوه محافظت در برابر این حملات:
نحوه محدود کردن کانکشن ها:
ای پی ادرسی رو که کانکشنهای زیادی به سرور شما زده به بلک لیست اضافه کنید:
/ip firewall filter add chain=input protocol=tcp connection-limit=LIMIT,32 action=add-src-to-address-list address-list=blocked-addr address-list-timeout=1d
به این نکته توجه داشته باشید که تعداد اتصالات رو با توجه به اتصالات مختلف …,http,p2p,torrent محدود کنید.
عملیات tarpit:
روتر شما میتونه با دستور زیر به سادگی پکتهای حمله کننده رو drop کنه و اتصالات رو نگه داره تا به اهستگی به اصطلاح حمله رو بخوابونه:
/ip firewall filter add chain=input protocol=tcp src-address-list=blocked-addr \ connection-limit=3,32 action=tarpit /ip firewall filter add chain=forward protocol=tcp tcp-flags=syn connection-state=new \ action=jump jump-target=SYN-Protect comment="SYN Flood protect" disabled=yes /ip firewall filter add chain=SYN-Protect protocol=tcp tcp-flags=syn limit=400,5 connection-state=new \ action=accept comment="" disabled=no /ip firewall filter add chain=SYN-Protect protocol=tcp tcp-flags=syn connection-state=new \ action=drop comment="" disabled=no
قرار دادن syn=400 در اینجا فقط به عنوان یک استانه است جهت drop کردن پکتهای syn.
استفاده از تکنیک SYN coockies:
برای میکروتیک ورژن 6:
/ip settings set tcp-syncookies=yes
برای میکروتیک های ورژنهای قدیمی تر:
/ip firewall connection tracking set tcp-syncookie=yes