بررسی آسیب پذیری های سرور DHCP و روش مقابله با آن ها
- چهارشنبه, ۱۲ خرداد ۱۳۹۵، ۱۰:۰۹ ق.ظ
- ۰ نظر
سرویس DHCP یکی از مهمترین سرویس هایی است که در یک شبکه ارائه میشود، از این رو برقراری امنیت این سرویس از اهمیت ویژه ای برخوردار است. در این مقاله به بررسی حملات و روش های جلوگیری از DHCP(Dynamic Host Configuration Protocol) Starvation، راه اندازی Rough DHCP و حمله Man in the Middle به وجود آمده از طریق DHCP Starvatiom میپردازیم. سرویس DHCP بیان کننده نحوه اختصاص دادن IP به سیستم هایی که برای متصل شدن به شبکه درخواست IP می کنند، است. سروری را که سرویس DHCP بر روی آن فعال شده باشد را سرور DHCP گویند. هر سرور DHCP دارای یک سری رنج IP است که با توجه به توپولوژی شبکه توسط مدیر سرور مشخص می شود.
نحوه تخصیص دادن یک IP به یک سیستم کامپیوتری به این گونه است که در ابتدا هنگامی که یک سیستم (کامپیوتر رومیزی، سرور، پرینتر، روتر و …) از لحاظ فیزیکی به شبکه متصل باشد، یک درخواست DHCP Discover را به صورت Broadcast از پورت UDP 67 به شبکه میفرستد.
در مرحله دو سرور DHCP با دریافت پیغام DHCP Discover یک IPبه دستگاه مورد نظر پیشنهاد میدهد. این پیشنهاد تحت پیغام DHCP Offer به وسیله پورت ۶۸ UDP به صورت Unicast به دستگاه مورد نظر فرستاده میشود.
در مرحله سوم که سرور DHCP و دستگاهی که درخواست IP کرده است ارتباطی نظیر به نظیر (Point to Point ) ایجاد کردهاند، دستگاه مورد نظر درصورت تمایل به تخصیص IP پیشنهاد شده، پیغام DHCP Request را به صورت Unicast به سرور DHCP اعلام میکند.
نهایتا در مرحله چهارم پیغام DHCP ACK از طرف سرور DHCP به دستگاه داده میشود که مبنی بر این است که IP به آن سیستم تخصیص داده شده و در پایگاه داده DHCP ذخیره میشود.
چالشهای پیش روی پروتکل DHCP:
در مورد نحوه کار پروتکل DHCP و مراحل پاسخ دادن به درخواست یک سیستم خاص
در قسمت قبلی توضیح داده شد. در این بخش تمرکز این مقاله را بر روی
چالشهای امنیتی که پیش روی این پروتکل است میگزاریم. همانطور که گفته شد
پیغام DHCP Discovery یک پیغام Broadcast است، از این رو در صورتی که بیش
از یک سرور DHCP در شبکه موجود باشند، هرکدام از آن سرورها به صورت مجزا به
سیستم درخواست کننده پاسخ میدهند.در این حالت، سیستمی که پیغام DHCP
Discovery را فرستاده است با آن سروری عملیات را ادامه میدهد که پیغام
DHCP Offer آن زودتر به دستش رسیده باشد. از این رو در صورتی که یک سرور
DHCP تقلبی یا به اصطلاح Rogue DHCP در شبکه وجود داشته باشد درخواست DHCP
Discovery به آن میرسد و شروع به ادامه دادن مراحل سرویس DHCP میکند.
در صورتی که DHCP Offer پیشنهاد شده از سمت سرور تقلبی، زودتر از پیغام DHCP Offer پیشنهاد شده از سمت سرور اصلی DHCP برسد، سیستمی که در ابتدا درخواست IP کرده بوده است از یک سرور DHCP مخرب IP را دریافت کرده است.
دریافت IP از سمت سرور تقلبی به خودی خود مشکلی را ایجاد نمیکند، اما حالتی را در نظر بگیریم که حمله کننده تغییراتی را در رنج IP که میخواهد به کاربران پیشنهاد بدهد ایجاد کند. تغییرات می تواند به یکی از حالت های زیر به وجود آید:
- پیشنهاد کردن رنج شبکه اشتباه :
در این نوع حمله رنج شبکه اشتباهی به کاربر داده میشود. به طور مثال
در صورتی که رنج شبکه ما ۱۰.۱۰.۱.۰/۲۴ است، حمله کننده یک IP از رنج
۱۷۲.۱۶.۳۲.۰/۲۶ به آن میدهد.
با به وجود آوردن این تغییر این سیستم خاص امکان برقراری ارتباط با شبکه داخلی خود را ندارد و کار کردن با آن مختل میشود.
- تغییر در تنظیمات default gateway :
این حمله یکی از انواع حمله های ترکیبی به حساب میآید. نحوه کار شخص حمله کننده در این روش به این گونه است که در IP پیشنهاد شده به کاربر، IP خودش را به عنوان Default Gateway قرار میدهد. در مرحله بعدی حمله کننده با نصب کردن نرم افزارهای جاسوسی شبکه (Wireshark و …) می تواند تمامی ارتباطات آن سیستم را مانیتور کند و از اطلاعات مورد نظر در راستای اهداف غیر قانونی خود استفاده کند.
- تغییر در DNS سرور
این روش حمله کردن را میتوان خطرناک ترین نوع حمله در بین این دسته از حملات به شمار آورد. ماهیت حمله به این صورت است که حمله کننده در مرحله اول حمله یک Website تقلبی مالی، اجتماعی، ایمیل و … همانند وب سایت های دیگر را طراحی کرده است. مرحله بعد راه اندازی یک DNS سرور تقلبی است بدین صورت که به جای برگرداندن IP واقعی سایت مورد نظر کاربر(مثل Gmail.com، bank.com و …) IP وبسایت خود را به کاربر انتقال میدهد. در این صورت تمامی اطلاعات اکانت کاربر به دست حمله کننده میرسد.
روش دیگر مورد استفاده حمله کننده برای تخریب سرویس DHCP
در روشهای حملهای که در مرحله قبل صحبت شد، فرض بر وجود داشتن همزمان هر دو سرور مخرب و اصلی در شبکه داخلی بود. در این حالت با توجه به زودتر رسیدن یا نرسیدن پیغام DHCP Offer سرور مخرب به کاربران، اطلاعات آن کاربران خاص توسط حمله کننده جاسوسی (Sniff) میشود. آیا از دید حمله کننده این روش یک روش بهینه است؟ آیا راه حلی برای sniff تمامی سیستم ها وجود دارد؟ پاسخ این جاست که در صورتی که سرور اصلی DHCP به گونهای مورد حمله قرار گیرد که قادر به سرویس دهی نباشد، تمامی سیستم های درون شبکه را میتوان تحت کنترل خود داشت.
از این رو از روشی به نام Flooding برای از کار انداختن سرویس DHCP استفاده میشود. روش کار به این گونه است که حمله کننده با فرستادن درخواستهای DHCP Discovery متوالی با MAC Address های تولید شده به صورت تصادفی پایگاه داده IPهای سرور DHCP را خالی می کند. حالا هنگامی که یک کاربر عادی DHCP Discovery را Broadcast می کند، دیگر سرور DHCP اصلی به دلیل موجود نداشتن IP پیغام DHCP Offer را نمی فرستد و تنها جواب از سمت سرویس DHCP راه اندازی شده توسط حمله کننده به دست کاربر می رسد.
نحوه دفاع در برابر حملات به سرور DHCP
حال که از دید حمله کننده با نحوه حمله به سرور DHCP آشنا شدیم، نوبت به بررسی راه حل های دفع حمله است. بدین منظور از دو روش Port-security و DHCP Snooping استفاده میشود.
Port-Security
از Port-security به منظور جلوگیری از حمله Flooding به سرور DHCP استفاده می شود. روش کار به این گونه است که تعداد MAC-Address محدودی اجازه دسترسی به شبکه بر روی یک پورت خاص سوئیچ ازتباطی را خواهند داشت. بدین ترتیب دیگر حمله کننده توانایی فرستادن DHCP Discovery با چندین MAC-Address را نخواهد داشت.روش کانفیگ کردن Port-security بر روی سوئیچ های Cisco به شرح زیر است:
توضیحات | دستورها |
جهت وارد شدن به مد کانفیگ | Switch# configure terminal |
با توجه به توپولوژی تمامی پورت ها غیر از پورت ۲۴ انتخاب می شود | Switch(config)# int r f 0/1-23 |
حالت کاری این پورت ها را user می گزاریم | Switch(Config-if-range)# switchport mode access |
Port-security را بر روی پورت ها فعال می کنیم | Switth(config-if-range)# switchport port-security |
حالت violation را بر روی protected می گزاریم | Switth(config-if-range)# switchport port-security violation protected |
Mac-address هایی که اجازه ارتباط در شبکه را دارند را بر اساس MAC-Address های فعلی تعریف می کنیم | Switth(config-if-range)# switchport port-security mac-address sticky |
- ۹۵/۰۳/۱۲