VLAN Hopping چیست؟ چگونه از حمله VLAN Hopping جلوگیری کنیم؟

حمله امنیتی vlan hopping

VLAN Hopping یکی از تکنیک‌های حمله و تست نفوذ در شبکه است که به مهاجم اجازه می‌دهد تقسیم‌بندی‌های شبکه را دور بزند. پیش از آن که درباره این حمله صحبت کنیم، ابتدا لازم است درباره چند مفهوم پایه اندکی بیاموزیم.

VLAN چیست؟

شبکه‌ی محلی مجازی یا VLAN برای اشتراک‌گذاری منابع فیزیکی شبکه، ضمن ایجاد تقسیم‌بندی یا سگمنتیشن برای جداکردن گروه‌های مختلف از یکدیگر استفاده می‌شود. برای مثال، یک هاست روی VLAN شماره 1، از هر هاستی که روی VLAN شماره 2 باشد جدا شده است. هر پکتی که بین VLANها ارسال شد، باید از یک روتر یا دستگاه لایه 3 دیگری عبور کند. امنیت تنها یکی از چندین دلیلی است که ادمین‌های شبکه VLANها را پیکربندی و ایجاد می‌کنند. با این وجود، یک مهاجم با اکسپلویتی که با نام «VLAN Hopping» شناخته می‌شود، می‌تواند این سدهای امنیتی را دور بزند.

VLAN Hopping

این نوع اکسپلویت به مهاجمان اجازه می‌دهد هرگونه محدودیت لایه 2 را که برای جداکردن هاست‌ها ساخته شده، دور بزنند. اگر پورت‌های سوییچ‌ها به درستی پیکربندی شده باشند، مهاجم مجبور می‌شود از یک روتر یا دستگاه لایه 3 دیگری عبور کند تا بتواند به هدف خود دسترسی داشته باشد. با این وجود، بسیاری از شبکه‌ها یا VLAN را ضعیف یا اشتباه پیکربندی کرده‌اند که باعث می‌شود مهاجم بتواند این اکسپلویت را اجرا کند. در این مقاله، دو روش اصلی VLAN Hopping، یعنی Switch Spoofing (جعل سوییچ) و Double Tagging (تگ‌گذاری دوگانه) را با هم بررسی می‌کنیم و سپس درباره تکنیک‌های مقابله با این حملات می‌آموزیم.

شبکه‌ی مبتنی بر سوییچ

اگر بخواهیم آسیب‌پذیری‌های سوییچ‌ها را بیابیم و آن‌ها را اکسپلویت کنیم، ابتدا باید بدانیم سوییچ‌ها چگونه کار می‌کنند. در واقع الزاما خود دستگاه را اکسپلویت نمی‌کنیم، بلکه پروتکل‌ها و پیکربندی‌هایی را اکسپلویت می‌کنیم که نحوه‌ی کارکردن آن را تعیین می‌کنند.
روی یک سوییچ، هر پورت یا به عنوان پورت دسترسی یا پورت ترانک (trunk) پیکربندی می‌شود. پورت‌های دسترسی معمولا برای اتصال هاست‌ها به سوییچ استفاده می‌شوند. وقتی VLAN پیاده‌سازی شده باشد، هر پورت به فقط یک VLAN اختصاص داده می‌شود. پورت ترانک زمانی استفاده می‌شود که قرار است دو سوییچ یا یک سوییچ و یک روتر به هم متصل شوند. پورت‌های Trunk اجازه‌ی عبور ترافیک متعلق به چندین VLAN متفاوت را می‌دهند. پورت ترانک را هم می‌توان به صورت دستی پیکربندی کرد، هم می‌توان آن را به صورت دینامیک و با استفاده از پروتکل Dynamic Trunking (DTP) ایجاد کرد.
DTP یک پروتکل متعلق به سیسکو است که یکی از استفاده‌های آن ایجاد یک لینک ترانک بین دو سوییچ به صورت دینامیک است.

با شرکت در دوره‌های تست نفوذ به جامعه کارشناسان امنیت بپیوندید:

حمله جعل سوییچ (Switch Spoofing)

در این حمله، مهاجم به عنوان یک سوییچ عمل می‌کند تا یک سوییچ واقعی را فریب دهد و یک لینک ترانک بین خود و آن سوییچ ایجاد کند. همان‌طور که پیش از این نیز اشاره شد، پکت‌های تمام VLANها اجازه‌ی عبور از لینک ترانک را دارند. به همین خاطر وقتی یک لینک ترانک ایجاد شد، مهاجم می‌تواند به ترافیک تمام VLANها دسترسی داشته باشد. این اکسپلویت فقط زمانی می‌تواند موفق شود که یک سوییچ واقعی به‌گونه‌ای پیکربندی شده باشد که اجازه برقراری اتصال trunk را بدهد. این اتفاق زمانی می‌افتد که یکی از اینترفیس‌های سوییچ روی حالت «Dynamic Desirable»، «Dynamic Auto» یا «Trunk» تنظیم شده باشد. اگر سوییچ هدف روی یکی از این حالت‌ها پیکربندی شده باشد، مهاجم می‌تواند از کامپیوتر خودش یک پیام DTP تولید کند و یک لینک ترانک ایجاد کند.

تگ‌گذاری دوگانه (Double Tagging)

تگ‌گذاری دوگانه زمانی اتفاق می‌افتد که مهاجم تگ‌های روی یک فریم اترنت را تغییر می‌دهد یا به آن تگ اضافه می‌کند تا امکان ارسال پکت‌ها از طریق تمام VLANها را به وجود آورد. این حمله، به تعداد سوییچ‌هایی که تگ‌ها را پردازش می‌کنند وابسته است. اکثر سوییچ‌ها فقط تگ بیرونی را حذف می‌کنند و سپس فریم را به تمام پورت‌های native VLAN فوروارد می‌کنند. حالا با در نظر داشتن این مساله، این اکسپلویت فقط زمانی موفق می‌شود که هکر عضوی از native VLAN لینک ترانک باشد. یک نکته‌ی مهم دیگر که باید در نظر داشته باشید این است که این حمله کاملا یک‌طرفه است، چون تغییر و اضافه‌کردن تگ‌ها در پکت برگشتی غیرممکن است. .

اکسپلویت VLAN Hopping

سناریوی اول: حمله Switch Spoofing

در این سناریو یک مهاجم، یک سوییچ و یک سرور هدف داریم. مهاجم از طریق اینترفیس FastEthernet 0/12 به سوییچ متصل شده است و سرور هدف هم از طریق اینترفیس FastEthernet 0/11 به سوییچ متصل شده و بخشی از VLAN2 است. توپولوژی این سناریو را می‌توانید در تصویر زیر ببینید:

توپولوژی حمله Switch Spoofing

حالا که با توپولوژی کاملا آشنا شدید، بیایید نگاهی به چند دستور پیکربندی سوییچ بیندازیم:

interface FastEthernet0/11

switchport mode access

switchport mode nonegotiate

switchport access vlan 2

!

interface FastEthernet0/12

switchport mode dynamic auto

احتمالا متوجه مشکل موجود در پیکربندی اینترفیس fa0/12 شدید. این پورت به گونه‌‎ای تنظیم شده که negotiationهای ورودی باز باشند تا بتوان تعیین کرد پورت از نوع دسترسی یا از نوع ترانک است. این یعنی مهاجم می‎تواند یک حمله‎ی جعل سوییچ انجام دهد. وقتی مهاجم به پورت متصل شد، می‎تواند یک پیام DTP ارسال کند و این‎گونه یک لینک ترانک ایجاد می‎شود.

مهاجم می‎تواند از برنامه‎ای مانند Yersinia برای تولید و ارسال پیام DTP استفاده کند. Yersinia یک چارچوب تست نفوذ است که برای حمله به بسیاری از پروتکل‎های لایه 2 طراحی شده است. این ابزار به صورت پیش‎ساخته در کالی لینوکس قرار دارد و به یک رابط کاربری گرافیکی (GUI)با استفاده‎ی آسان هم مجهز است. برای دانلود این ابزار هم می‎توانید به این صفحه مراجعه کنید. برای اجراکردن این ابزار به صورت گرافیکی، دستور زیر را در ترمینال اجرا کنید:

yersinia –G

در تصویر زیر می‌توانید تصویری از رابط کاربری گرافیکی این ابزار را ببینید:

رابط کاربری Yersinia

حالا برای ارسال یک پیام DTP کافی‌ست 4 مرحله زیر را انجام دهید:
1. روی «Launch Attack» کلیک کنید.
2. روی تب «DTP» کلیک کنید.
3. روی «enable trunking» کلیک کنید.
4. روی «ok» کلیک کنید.

انتخاب enable trunking

پس از طی‌کردن این مراحل، Yersinia پیام DTP را ارسال می‌کند و ظرف چند ثانیه، لینک ترانک ایجاد می‌شود. در سناریوی ما، مهاجم پس از انجام این کار به تمام ترافیک VLAN2 دسترسی پیدا می‌کند و می‌تواند مستقیما و بدون عبور از هیچ دستگاه لایه 2 حمله را انجام دهد.

دسترسی مهاجم به تمام ترافیک VLAN2

سناریوی دوم: حمله دابل تگینگ

در این سناریو یک مهاجم، 2 سوییچ و یک سرور هدف داریم. مهاجم به سوییچ 1 متصل شده است. سوییچ 1 به سوییچ 2 متصل شده و در نهایت، سرور هدف به سوییچ 2 متصل شده است. می‌توانید توپولوژی این سناریو را در تصویر زیر ببینید:

حمله دابل تگینگ

حالا که با توپولوژی آشنا شدید، بیایید نگاهی به بخشی از دستورات پیکربندی سوییچ 1 بیندازیم:

interface FastEthernet0/12
switchport mode access
switchport nonegotiate
switchport access vlan 1
!
interface FastEthernet0/11
switchport trunk encapsulation dot1q
switchport mode trunk
switchport nonegotiate
switchport trunk native vlan 1

از روی این پیکربندی‌ها می‌بینیم که مهاجم قادر به اجرای حمله‌ی جعل سوییچ نیست. با این وجود، همان‌طور که می‌بینید، مهاجم عضوی از native VLAN پورت ترانک است. یعنی این توپولوژی نسبت به حمله تگ‌گذاری دوگانه آسیب‌پذیر است.

مهاجم می‌تواند با استفاده از برنامه‌ای مانند Scapy فریم‌های مخصوصی را تولید کند که برای انجام این حمله لازم هستند. Scapy یک برنامه پایتون است که برای دستکاری پکت‌ها ساخته شده است. برای دانلود این ابزار می‌توانید به این صفحه مراجعه کنید. با دستور زیر Scapy را اجرا کنید:

sudo ./scapy

سپس از تباع sendp() برای تولید پکت استفاده کنید:

sendp(Ether()/Dot1Q(vlan=1)/Dot1Q(vlan=2)/IP(dst='” )=”” icmp())

این دستور یک پکت 802.1q با دو تگ تودرتو تولید می‌کند که هدف آن VLAN2 است. برای این که متوجه شوید سوییچ‌ها چگونه این فریم را مدیریت می‌کنند، نگاهی به توپولوژی زیر بیندازید:

حذف تگ خارجی توسط سوییچ یک

در این تصویر می‌بینیم که سوییچ 1 فقط تگ خارجی را می‌خواند و حذف می‌کند. سپس قسمت هاست را در VLAN ذکرشده در تگ بررسی می‌کند و پکت را به تمام پورت‌های native VLAN فوروارد می‌کند. سپس سوییچ 2 پکت را دریافت می‌کند که اکنون فقط یک هدر دارد. این سوییچ فرض می‌کند که فریم به VLAN ذکرشده در این تگ (یعنی VLAN2) تعلق دارد و آن را به تمام پورت‌های تنظیم‌شده برای VLAN2 فوروارد می‌کند. سپس هدف پکت ارسال‌شده توسط مهاجم را دریافت می‌کند و VLAN Hopping کامل می‌شود. به خاطر ویژگی‌های ذاتی این حمله، ارتباط ایجادشده کاملا یک‌طرفه است. در ضمن به این نکته هم توجه داشته باشید که این حمله ممکن است روی سوییچ‌های جدیدتر کار نکند.

مقابله با VLAN Hopping

برای هر کدام از دو نوع حملات، یعنی جعل سوییچ و تگ‌گذاری دوگانه، روش جداگانه‌ای برای جلوگیری از حمله داریم:

جلوگیری از حمله Switch Spoofing

برای جلوگیری از حمله جعل سوییچ، باید چند مرحله را انجام دهید:
1. هیچ پورت دسترسی را روی هیچ‌کدام از حالت‌های «dynamic desirable»، «dynamic auto» یا «trunk» تنظیم نکنید.
2. پورت‌های دسترسی را دستی پیکربندی کنید و DTP را روی تمام پورت‌های دسترسی غیرفعال کنید:

switchport mode trunk
switchport mode nonegotiate

4. تمام اینترفیس‌هایی را که در حال حاضر به آن‌ها نیاز ندارید غیرفعال کنید.

جلوگیری از حمله Double Tagging

برای جلوگیری از حمله تگ‌گذاری دوگانه، native VLAN مربوط به پورت‌های ترانک را از VLANهای کاربری جدا کنید.

سخن آخر

سوییچ‌ها با هدف ایجاد امنیت در شبکه ساخته نشده‌اند، ولی باید در هر سطحی که ممکن است، تمهیدات امنیتی را تا جای امکان پیاده‌سازی کنیم. اگر می‌خواهید برای سگمنت‌بندی شبکه خود وقت بگذارید، مطمئن شوید که این کار را درست و ایمن انجام داده‌اید. در پیکربندی شبکه حوصله به خرج دهید و محتاطانه عمل کنید.

علاقمند به حوزه امنیت اطلاعات و آشنا به حوزه تست نفوذ
  • facebook
  • twitter
  • googleplus
  • linkedIn
  • flickr

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *