حسن صفری
کارشناس ICT و علاقه مند به امنیت و فایروال

آموزش امنیت در سویچ های سیسکو و قسمت Data Plane

دراین فصل هدف ما این است که بیاییم اتک هایی که در سوئیچ و در سطح data plane بشناسیم و راه های جلوگیری از آن را بیاموزیم.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

VLAN hopping چیست؟

این را می دانیم ک یک ویلن به ویلن دیگر ارتباطی ندارد وبرای ارتباط باید حتما طرفین در یک ویلن باشند.حال اتکرها به دو روش می توانند این قانون را نقض کنند و به ویلن های دیگ دسترسی پیدا کنند.

  • 1-switch spoofing: اگر اتکر بیاید یک سوئیچ به شبکه اضافه کند و چون پروتکل DTP پیش فرض فعال می باشد می آید این ارتباط را trunk تعریف می کند.حالا چون اون پورت trunk می باشد اتکر می تواند ویلن های مختلف را از خود عبور دهد و به آن ها دسترسی پیدا کند.
  • 2-double tagging: در این روش دیگر سوئیچی به مدار اضافه نمی شود بلکه از پروتکل 802.1Q و از فیچر native vlan استفاده می کند.(native vlan ویلنی است که بسته ها درآن tag زده نمی شوند) با توجه به شکل زیر می بینم که اتکر که خود در ویلن 10 می باشد میآید بسته خود را با دو ویلن ارسال می کند.یکی ویلن 10 ودیگری ویلن 20.ویلن20 ویلن مقصد می باشد و ویلن 10 ویلن native vlan می باشد.حال بسته ارسال می شود.سوئیچ به محض دریافت بسته را DE capsulate می کند و ویلن 10 راکنده و بسته را دوباره encapsulate می کند و با ویلن 20 به سمت سوئیچ مقابل ارسال می کند حال سوئیچ دوم می داند که این بسته برای ویلن 20 می باشد آن را به سمت مقصد که همان قربانی می باشد ارسال میکند.شکل زیر دقیقا گویای این حرف می باشد.
وب سایت توسینسو

Spanning-tree protocol spoofing attack چیست؟

اتک ایی که از STP استفاده می کنند که گاه می توانند باعث تغییر توپولوژی شبکه شوند.می دانیم که روتر root-bridge تمامی ارتباط شبکه را تحت کنترل دارد و تمام ترافیک های ما از این سوئیچ عبور می کند.priority این سوئیچ از بقیه سوئیچ ها کمتر می باشد.حال اگر اتکر بیاید و یک سوئیچ به شبکه اضافه کند وpriority آن را از root-bridge کمتر قرار دهد علانا توانسته است که مدیریت شبکه را تحت کنترل قرار دهد.

ARP Spoofing attack چیست؟

می دانیم که درARP ابتدا یک پیغام ARP request ارسال می شود و در جواب آن ARP replay دریافت می شود بین دو کلاینت، و مک آن ها به هم یاد داده می شود و در جدول MAC table ذخیره می شود.حال در این نوع اتک اتکر می تواند با ارسال بسته ی GARP به سمت سیستم قربانی باعث عوض شدن مسیر این یادگیری باشد.(GARP بسته های هستند که برای ارسال نیازی به request ندارد) حال اتکر می آید در جواب ARP request این بسته را ارسال می کند و مک خودش و آدرس ip مقصد را قرار دهد حال بسته دیگر مستیم بین دوکلاینت ردوبدل نمی شود و یک نسخه از آن به اتکر ارسال می شود.

وب سایت توسینسو

تا به اینجا نمونه هایی از این اتک هارا گفتیم.از دیگراین اتک ها می توانیم به:

  • • CAM flooding
  • • MAC address-spoofing
  • • DHCP Starvation
  • • IP spoofing

در ادامه این قسمت میخواهیم راه های مقابله با آن را بیاموزیم.

Port configuration چیست ؟

ما می دانیم با تغییر حالات پورت بیاییم از یکسری اتک ها جلوگیری کنیم.این را نیز می دانیم که پورت های ما به چهار حالت :trunkAccessDynamic-auto/Dynamic-desirable می باشند. مثلا ما می دانیم که اگر پورت های انتهایی ما trunk نباشد دیگر اتکر نمی تواند عملیات vlan hopping را انجام دهد. و همچنین این را میدانیم که پروتکل DTP به صورت پیش فرض روی تمامی پورت ها فعال می باشد.با غیر فعال کردن این پروتکل می توانیم جلوی اتک switch spoofing را بگیریم. با دستورات زیر می توانیم این فیچر هارا پیاده سازی کنیم.

Switch (config) # interface type <mode/num>
Switch (config-if) # switchport mode [access | trunk | dynamic auto | dynamic desirable]
Switch (config-if) # switchport negotiate
Switch (config-if) # switchport access vlan <vlan-id>
Switch (config-if) # switchport trunk native vlan <vlan-id>

VLAN hopping attack چیست ؟

برای جلوگیری از این اتک سه روش وجود دارد:

  1. اول بیاییم native vlan را برابر با یکی از access vlan ها قرار ندهیم.
  2. کلا native vlan را در پورت trunk غیرفعال کنیم،اجازه عبور ندهیم.
  3. به سوئیچ بگوییم native vlan ها را نیزtag بزند.

با دستورات زیر می توانیم فیچرهای بالا را اجرا کنیم.

Switch (config-if) #switchport trunk native vlan <vlan-id>
Switch (config-if) #switchport mode trunk allow vlan remove <vlan-id>
Switch (config) #vlan dot1q vlan native
Switch (config-if) #switchport trunk vlan native tag

چند راه کار دیگر:

  1. بیاییم پورت هایی که استفاده نمی کنیم داخل یک vlan unused قرار دهیم.
  2. روی تمامی پورت های access فعالیت DTP را غیرفعال کنیم.
  3. trunk بودن پورت هارا دستی انجام دهیم نه با پروتکلDTP .
  4. vlan 1 را به عنوان management vlan استفاده نکنیم.

Port Security چیست ؟

این فیچر می آید کنترل learn کردن مک آدرس ها را روی پورت های access انجام می دهد.یعنی می آید می گوید که چه مک آدرس هایی در چه اینترفیس هایی باید learn بشوند.با سه روش می توانیم این فیچر را پیاده سازی کنیم:

  1. static source mac address : به صورت دستی یا static می آییم می گوییم که این مک در این پورت قرار میگیرد و فقط از این پورت اجازه عبور دارد
  2. sticky source mac address : اولین مک آدرسی که روی این پورت learn شود آن را save می کند.تا وقتی این مک پاک نشود مک دیگری در آن learn نمی شود.
  3. dynamic source mac address: می توانیم روی این پورت ها چند مک learn بشود.اما از تعداد مجاز دیگر بیشتر نمی تواند learn شود.

حال اگر مشکلی پیش بیاید یا اختلافی در این روند پیش بیاید port security می آید اون پورت را به سه حالت مجازات می کند:

    1. protect : در این پورت فقط ترافیک های مخرب droop می شود.و هیچ alert ارسال نمی شود.
    2. restrict : مثل حالت بالا عمل می کند ولی پیغام ها یا alert را نیز ارسال می کند.
    3. shutdown: پورت را به حالت خاموش می برد و ترافیک به کلی حذف می شود.ولی همچنان پیام ها یا alert ها ارسال می شود.
Switch (config-if) #switchport port security
Switch (config-if) #switchport port security [maximum value {vlan (vlan-id)}]
Switch (config-if) #switchport port security [maximum address {vlan (vlan-id)}]
Switch (config-if) #switchport port security mac-address sticky
Switch (config-if) #switchport port security violation [protect | restrict | shutdown]

Port security علاوه بر این کار می تواند جلوی یکسری اتک های دیگر مثل cam flooding, DHCP starvation Mac spoofing را نیز بگیرد.

DHCP snooping چیست؟

این فیچر می تواند جلوی اتک های DHCP starvation و DHCP spoofing را بگیرد.وقتی DHCP snooping را فعال کنیم در یک سوئیچ تمامی پورت های آن سوئیچ به حالت untrust خواهد رفت و وقتی پورتی به حالت untrust برود روی آن پورت دیگر بسته های DHCP replay دریافت نمی شود و همچنین DHCP request نیز چک می شود اگر مک آدرس فرستنده با مک آدرس learn شده در آن پورت برابر نباشد،آن بسته را drop می کند.چک کردن DHCP request برای جلوگیری از اتک DHCP starvation می باشد.DHCP snooping می آید یک جدول به اسم binding table بوجود می آورد که در آن mac add-IP add-vlan num-port num همگی باین هم می شوند ودرآن ذخیره می شوند.

روش کانفیگ:

Switch (config) # ip dhcp snooping 
Switch (config) # ip dhcp snooping vlan <vlan-id>
Switch (config) # ip dhcp snooping <verify mac-add>
Switch (config-if) # ip dhcp snooping limit rate <rate>

(Dynamic ARP inspection (DAI چیست ؟

با این فیچر می آییم جلوی اتک ARP Poisoning را می گیریم.با چک کردن بسته های ARP جلوی این اتک گرفته می شود.این چک کردن بر اساس جدولی می باشد که توسط DHCP snooping ایجاد شده است.با چک کردن mac-add موجود در هدر Ethernet با mac-add موجود در ARP متوجه این اتک می شود و همچنین Destination mac را نیز چک می کند.علاوه بر همه اینا نباید IP invalid در ARP وجود داشته باشد.

روش کانفیگ:

Switch (config) # ip arp inspection vlan (vlan-id)
Switch (config) # ip arp inspection validate {src-mac | dest-mac | ip} 
Switch (config-if) # ip arp inspection trust
Switch (config) # ip arp inspection limit rate <rate>

حسن صفری
حسن صفری

کارشناس ICT و علاقه مند به امنیت و فایروال

حسن صفری فارغ التحصیل مقطع کارشناسی در رشته ICT با بیش از 3 سال سابقه کاری در پارک علم و فناوری دانشگاه آزاد، دارای مدارک تخصصی شبکه در حوزه ی سیسکو و پیکربندی و اجرای مباحث امنیتی، عیب یابی فایروال هایASA و اعمال HA و همچنین شرکت در مباحث علمی مربوط به شبکه، خواندن کتب، مقالات علمی لاتین و.......

نظرات