چرا اعتماد لایه ۲ شکافهای امنیتی ایجاد میکند
فرآیند DHCP و تفکیک ARP که پیشتر در این مجموعه بحث شد هر دو دههها پیش تحت این فرض طراحی شدند که هر دستگاه روی یک سگمنت شبکه محلی قابلاعتماد است. هیچکدام از پروتکلها هیچ احراز هویت داخلیای ندارند، به این معنا که هر دستگاه متصلشده به یک پورت سوئیچ میتواند وانمود کند یک سرور DHCP مشروع است یا مالکیت هر آدرس IPای را ادعا کند — یک سوئیچ هیچ راه بومیای برای دانستن اینکه این اتفاق میافتد ندارد.
حمله سرور DHCP سرکش
از آنجا که DHCP کاملاً به پخشهای کلاینت متکی است، که پیشتر در این مجموعه بحث شد، هر دستگاه روی شبکه میتواند به یک پیام کشف DHCP با پیشنهاد خودش پاسخ دهد، و کلاینت هر پیشنهادی که اول دریافت کند را میپذیرد.
سناریو حمله DHCP سرکش:
۱. یک مهاجم یک سرور DHCP غیرمجاز را
به شبکه متصل میکند
۲. یک کلاینت مشروع یک discover DHCP پخش میکند
۳. هم سرور DHCP واقعی و هم سرور سرکش
با پیشنهادات پاسخ میدهند
۴. اگر پیشنهاد سرور سرکش اول برسد، کلاینت
آن را میپذیرد، و یک دروازه پیشفرض و
سرور DNS تحتکنترل-مهاجم دریافت میکند
۵. تمام ترافیک آن کلاینت اکنون از میان دستگاه
مهاجم جریان مییابد، که رهگیری یا دستکاری
هر چیزی که کلاینت میفرستد را امکانپذیر میکنداین حمله میتواند کاملاً تصادفی رخ دهد — یک کارمند که یک روتر بیسیم شخصی با سرور DHCP خودش فعال متصل میکند میتواند ناخواسته دقیقاً همین اخلال را ایجاد کند، بدون هیچ نیت مخربی.
DHCP Snooping: ایجاد پورتهای مورداعتماد و غیرمورداعتماد
DHCP Snooping این را با داشتن سوئیچی که ترافیک DHCP را بازرسی میکند و هر پورت را یا Trusted (مورداعتماد) (مجاز به فرستادن پاسخهای سرور DHCP) یا Untrusted (غیرمورداعتماد) (فقط مجاز به فرستادن درخواستهای کلاینت، هرگز پاسخهای سرور) طبقهبندی میکند، حل میکند.
Switch(config)# ip dhcp snooping
Switch(config)# ip dhcp snooping vlan 10,20
-- فقط پورت متصل به سرور DHCP مشروع و شناختهشده
-- را مورداعتماد کن
Switch(config)# interface gigabitethernet 1/0/24
Switch(config-if)# ip dhcp snooping trust
-- همه سایر پورتهای access بهطور پیشفرض
-- غیرمورداعتماد باقی میمانند وقتی DHCP snooping
-- روی VLAN فعال شودبا این پیکربندی، اگر یک پاسخ سرور DHCP (یک پیام Offer یا Acknowledge) روی هر پورت غیرمورداعتمادی دریافت شود، سوئیچ بلافاصله آن را دور میریزد — پاسخهای سرور سرکش هرگز به کلاینتهای مشروع نمیرسند، صرفنظر از اینکه چقدر سریع برسند.
جدول Binding DHCP Snooping
بهعنوان محصول جانبی نظارت بر ترافیک DHCP، سوئیچ یک DHCP Snooping Binding Table میسازد، و ثبت میکند کدام آدرس IP بهطور مشروع به کدام آدرس MAC روی کدام پورت اختصاص یافته.
Switch# show ip dhcp snooping binding
MacAddress IpAddress Lease(sec) Type VLAN Interface
00:50:56:aa:11:22 192.168.1.11 86400 dhcp-snooping 10 Gi1/0/5این جدول binding بسیار ارزشمندتر از یک لاگ جلوگیری-از-حمله ساده میشود — بهعنوان منبع داده مرجع مورداعتماد برای Dynamic ARP Inspection، که در ادامه توصیف میشود، خدمت میکند.
حمله ARP Spoofing
ARP (Address Resolution Protocol) یک آدرس IP را به یک آدرس MAC تفکیک میکند، و مانند DHCP، کاملاً روی اعتماد عمل میکند — هر دستگاهی میتواند یک پاسخ ARP بفرستد که ادعا میکند مالک هر آدرس IPای است، چه آن ادعا درست باشد چه نباشد.
حمله ARP spoofing (که ARP poisoning نیز نامیده میشود):
۱. یک مهاجم یک پاسخ ARP جعلی میفرستد، که بهدروغ
ادعا میکند آدرس MAC خودش متناظر با
آدرس IP دروازه پیشفرض شبکه است
۲. دستگاههای نزدیک جدولهای ARP خودشان را
بهروزرسانی میکنند تا IP دروازه را به MAC مهاجم اشاره دهند
۳. ترافیک قصدشده برای دروازه واقعی اکنون
مستقیماً به مهاجم فرستاده میشود
۴. مهاجم میتواند بیسروصدا این ترافیک را پس از
بازرسی یا تغییرش به جلو فوروارد کند،
یک موقعیت کلاسیک man-in-the-middleDynamic ARP Inspection: تأیید ARP در برابر داده شناختهشده-خوب
Dynamic ARP Inspection (DAI) این را با رهگیری هر بسته ARP روی پورتهای غیرمورداعتماد و تأیید نگاشت IP-به-MAC ادعاشدهاش در برابر جدول binding DHCP snooping ساختهشده در بالا حل میکند — یک پیام ARP که با یک binding شناختهشده و مشروع تطبیق ندارد دور ریخته میشود.
Switch(config)# ip arp inspection vlan 10,20
-- همان پورتهای مورداعتماد-برای-DHCP-snooping
-- را مورداعتماد کن، چون زیرساخت مرتبط با
-- یک سرور DHCP مشروع باید همچنین برای ARP مورداعتماد باشد
Switch(config)# interface gigabitethernet 1/0/24
Switch(config-if)# ip arp inspection trustاز آنجا که DAI مستقیماً به جدول binding DHCP snooping متکی است، DHCP snooping باید ابتدا فعال شود — تلاش برای پیکربندی DAI بدون یک جدول binding فعال و پرشده، هیچ داده مشروعی برای تأیید پیامهای ARP در برابر آن باقی نمیگذارد، که باعث میشود ترافیک مشروع را دور بریزد.
مدیریت دستگاههایی با آدرس IP پیکربندیشده ایستا
دستگاهها با آدرسهای IP ایستا، که پیشتر در این مجموعه بحث شد، هرگز یک تراکنش DHCP تولید نمیکنند، به این معنا که هرگز در جدول binding DHCP snooping ظاهر نمیشوند، و DAI بهطور پیشفرض بهطور نادرست ترافیک ARP مشروع آنها را دور میریخت.
Switch(config)# arp access-list STATIC-DEVICES
Switch(config-arp-nacl)# permit ip host 192.168.1.5 mac host 0050.56cc.5566
Switch(config)# ip arp inspection filter STATIC-DEVICES vlan 10
-- این ورودی دستی-مجازشده bindings DHCP snooping
-- پویا را برای دستگاههایی که بهطور مشروع
-- هرگز از DHCP عبور نمیکنند تکمیل میکندتأیید عملیات DAI
Switch# show ip arp inspection interfaces
Interface Trust State Rate (pps) Burst Interval
Gi1/0/5 Untrusted 15 1
Gi1/0/24 Trusted none N/A
Switch# show ip arp inspection statistics
Vlan Forwarded Dropped
10 1204 3یک شمارش Dropped غیرصفر ارزش بررسی دارد — ممکن است جلوگیریاز-حمله مشروع را که بهدرستی کار میکند منعکس کند، یا ممکن است نشاندهنده یک دستگاه پیکربندیشده ایستا مشروع باشد که همچنان نیاز دارد به لیست دسترسی ARP توصیفشده در بالا اضافه شود.
چرا این دو ویژگی بهترین کار را با هم انجام میدهند
DHCP Snooping و Dynamic ARP Inspection عمداً طراحی شدهاند تا با هم مستقر شوند: جدول binding DHCP Snooping داده مرجع مورداعتماد را فراهم میکند که DAI را مؤثر میکند، و DAI بهنوبهخود بردار حمله مبتنیبر-ARP که DHCP Snooping بهتنهایی به آن نمیپردازد را میبندد. با هم پیادهسازی شده، دو تا از رایجترین و پرتبعاتترین بردارهای حمله لایه ۲ در شبکههای سوئیچشده را میبندند، و در برابر تهدیداتی که ACL های سنتی لایه ۳ و فایروالها، که پیشتر در این مجموعه بحث شد، نمیتوانند ببینند یا جلوگیری کنند، محافظت میکنند، چون این حملات هرگز سگمنت لایه ۲ محلی را ترک نمیکنند.