دستگاه های واقع در یک شبکه به طور معمول، اطلاعات مربوط به آدرس IP خود را از سروری به نام DHCP Server می گیرند. این اطلاعات که شامل آدرس IP کلاینت، Default Gateway ،Subnet Mask ،DNS ،Lease time و... می باشد از طریق پروتکل Dynamic Host Configuration Protocol - DHCP - منتقل می شوند. تنظیم دستی این اطلاعات برای شبکه های بزرگ و سازمانی بسیار پر هزینه و سخت می باشد لذا امروزه تقریبا همه دستگاه های داخل شبکه از DHCP استفاده می کنند. اما با همه گیر شدن استفاده از این پروتکل، برخی سودجویان از آن سوء استفاده کرده و اقدام به حملاتی به نام DHCP Spoofing می کنند.
برای اینکه یک کلاینت اطلاعات آدرس IP خود را به طور خودکار دریافت کند به محض وصل شدن به شبکه، درخواستی به نام DHCP Request به کل شبکه ارسال می کند. سرور DHCP موجود در شبکه نیز به این درخواست، پاسخ می دهد و اطلاعات آدرس IP را در اختیار کلاینت قرار می دهد. حال فرض کنید هکری در یک شبکه، سرور DHCP جعلی راه اندازی کند. در این صورت این سرور DHCP می تواند به درخواست های کلاینت ها پاسخ دهد و اطلاعات جعلی به آنها بدهد. Default Gateway که این سرور جعلی به کلاینت ها می دهد در واقع آدرس IP خود کامپیوتر هکر می باشد. بدین شکل تمامی بسته های کلاینت های هدف از کامپیوتر هکر عبور کرده و هکر نقش Man in the Middle را بازی می کند و می تواند تمامی بسته های کلاینت ها را بررسی کند. حال شاید بگویید خب ما از پروتکل های امن برای رمزگذاری بسته هایمان استفاده می کنیم (HTTPS) و هیچکس قادر به شنود آنها نخواهد بود و این حمله با شکست مواجه خواهد شد. شاید حق با شما باشد! اما باید این را نیز بدانید که آدرس DNS نیز توسط این سرور جعلی به کلاینت ها داده می شود! پس هکر می تواند آدرس DNS جعلی را به کلاینت ها بدهد. برای مثال فرض کنید شما می خواهید از طریق اینترنت خرید آنلاین انجام دهید. به صفحه پرداخت آنلاین مثل Shaparak.ir منتقل خواهید شد. برای متصل شدن به سایت شاپرک، ابتدا آدرس هاست این سایت توسط DNS Server به آدرس IP آن ترجمه می شود. DNS Server جعلی، آدرس IP جعلی را به شما برمیگرداند و شما خوشحال و خندان خرید خود را انجام می دهید و از امن بودن آن اطمینان دارید چون در آن از پروتکل HTTPS استفاده شده است. غافل از اینکه تمامی اطلاعات وارد شده شما در کامپیوتر هکر بازگشایی خواهند شد زیرا Certificate آدرس جعلی نیز در دست هکر است. به همین سادگی، تمامی اطلاعات بانکی شما در دست هکر قرار می گیرد!
قابلیتی به نام DHCP Snooping در برخی سوئیچ ها مانند سوئیچ های شرکت Cisco و Jupiter وجود دارد که باعث کاهش این دست حملات می شود. عملکرد آن بدین صورت است که پورت های سوئیچ در دو حالت trusted و untrusted قرار می گیرند. پورت های trusted می توانند درخواست های DHCP را دریافت کنند و به آن ها پاسخ دهند ولی پورت های untrusted حق پاسخ به درخواست های DHCP را ندارند، پس اگر هکری DHCP Server جعلی خود را در یکی از پورت های untrusted راه اندازی کند، به محض اینکه بسته پاسخ DHCP را به کلاینت درخواست کننده ی DHCP بفرستد، از شبکه بیرون رانده خواهد شد و آن پورت بسته می شود.
به طور پیش فرض تمامی پورت های سوئیچ ها در حالت untrusted قرار دارند. لذا برای استفاده از ترفند DHCP Snooping، باید پورت های trusted را در سوئیچ خود تنظیم کنید.
در ادامه با نحوه تنظیم پورت های trusted در سوئیچ های شرکت Cisco آشنا خواهیم شد:
برای تنظیم DHCP Snooping به صورت Global باید از دستور زیر در محیط command سوئیچ استفاده کنید:
Switch(config)#ip dhcp snooping
اگر می خواهید تنها برخی از vlan های شبکه شما از این ویژگی استفاده کنند می توانید دستور زیر را وارد کنید:
Switch(config)#ip dhcp snooping vlan 1,60,150-175
فعالسازی DHCP Snooping به تنهایی برای جلوگیری از حمله DHCP Spoofing کافی نیست. شما باید پورت های trusted را نیز به صورت زیر تنظیم کنید:
Switch(config)#interface gigabitethernet 0/3 Switch(config-if)#ip dhcp snooping trust
در مثال بالا، پورت سوم که از نوع اترنت گیگابیتی است به عنوان پورت trust تنظیم شده است بدین معنی که فقط DHCP Server که در این پورت قرار دارد قادر به پاسخگویی به درخواست های DHCP کلاینت ها خواهد بود.
ممکن است هکر با درخواست های متعدد DHCP به DHCP Server، آن را از کار اندازد. هکر می تواند با ساختن بسته های DHCP با آدرس MAC های مختلف، آدرس های IP سرور واقعی DHCP را تمام کند و آن را از ارائه سرویس به بقیه کلاینت ها باز دارد. این نوع حمله به DoS یا Denial of Servive معروف است. خوشبختانه ویژگی DHCP Snooping می تواند از وقوع این نوع حملات نیز جلوگیری کند. برای تنظیم آن باید در محیط command سوئیچ، تعداد بسته های DHCP در واحد ثانیه که از پورت trusted سوئیچ عبور می کنند را محدود کنید:
Switch(config)#interface gigabitethernet 0/5 Switch(config-if)#ip dhcp snooping limit rate 5
با اینکه ترفند DHCP Snooping به خوبی می تواند جلوی حملات DHCP Spoofing را بگیرد، اما باید توجه داشته باشید که این امکان به طور پیش فرض فعال نیست و در خیلی از سوئیچ ها حتی این امکان وجود ندارد. پس حملات DHCP Spoofing می توانند بسیار خطرناک باشند. اگر می خواهید در شبکه خانگی از این امکان استفاده کنید اما تجهیزات مورد نیاز را ندارید، می توانید با رعایت نکات ساده و زیرنظر داشتن شبکه نیز از این نوع حملات در امان باشید. اما برای شبکه های بزرگتر و سازمانی که زیرنظر داشتن شبکه امری سخت و غیرممکن بوده، حتما توصیه می شود که از سوئیچ های مناسب برای استفاده از DHCP Snooping استفاده کنید.