انتقال به ساختار IPv6 شیوه شناسایی ساختار شبکه محلی را در سیستمعاملها دگرگون ساخت. در شبکههای IPv4 سنتی، تخصیص مشخصات به بستههای عمومی ARP و سرورهای متمرکز DHCP متکی بود؛ اما در IPv6، پروتکل کشف همسایه (Neighbor Discovery Protocol یا NDP) معرفی شد. این پروتکل که در سند RFC 4861 تعریف شده، بر بستر ICMPv6 اجرا میشود و مدیریت تحلیل آدرسهای پیوند، شناسایی مسیریاب، تعیین پیشوند و پیکربندی خودکار بدون حالت (SLAAC) را بر عهده دارد.
با وجود آنکه NDP فرایند اتصال دستگاهها را بسیار تسهیل کرد، فرضیهای آسیبپذیر را به همراه داشت: اعتماد کامل میان اعضای یک دامنه انتشار لایه ۲. هر رایانه متصل به یک سگمنت مشترک میتواند بستههای ناخواسته اعلان مسیریاب (Router Advertisement یا RA) را منتشر کند.
هنگامی که یک مهاجم اقدام به ارسال بستههای جعلی RA در شبکه میکند، پایانههای متصل به طور خودکار دستگاه مهاجم را به عنوان دروازه پیشفرض برمیگزینند. در غیاب کنترل دقیق جداول مسیریابی هسته، ترافیک رمزنگارینشده IPv6 مستقیماً از طریق دروازه جعلی مسیریابی شده و دادههای حساس در معرض نظارت و سوءاستفاده قرار میگیرند.
پیکربندی خودکار بدون حالت و مدل اعتماد در پروتکل کشف همسایه IPv6
در ساختارهای IPv4، مدیریت تخصیص آدرس مستلزم پیگیری مداوم وضعیت است. سرور DHCP آدرسهای MAC را تطبیق داده و مدت اجاره آدرس را ثبت میکند. مکانیزم SLAAC در IPv6 نیاز به پایگاه متمرکز اجاره را مرتفع ساخت و به پایانهها امکان داد آدرسهای ۱۲۸ بیتی خود را مستقلاً بسازند.
هنگامی که یک رابط شبکه IPv6 به پیوند فیزیکی یا بیسیم متصل میشود، یک آدرس پیوند محلی (link-local) در دامنه fe80::/10 ایجاد میکند. برای یافتن مسیرهای بالادستی، پایانه پیام درخواست مسیریاب (ICMPv6 نوع ۱۳۳) را به آدرس چندپخشی ff02::2 ارسال میکند. مسیریابهای معتبر محلی با ارسال پیام اعلان مسیریاب (ICMPv6 نوع ۱۳۴) به آدرس چندپخشی ff02::1 پاسخ میدهند.
سند RFC 4861 با این پیشفرض نگاشته شد که لایه ۲ امنیت فیزیکی را تأمین میکند؛ از این رو هیچ سازوکار احراز هویت رمزنگاریشده یا امضای دیجیتال اجباری در آن تعبیه نشد. بنابراین هر میزبانی در یک شبکه Wi-Fi عمومی، کافه یا شبکه داخلی اداری میتواند خود را مسیریاب بالادستی معرفی کند. هسته سیستمعامل بلافاصله بستههای نوع ۱۳۴ را پردازش کرده و جداول مسیر را بدون نیاز به تأیید کاربر بازنویسی میکند.
کالبدشکافی پیامهای اعلان مسیریاب ICMPv6: پرچمها، پیشوندها و تایمرها
بسته اعلان مسیریاب ICMPv6 دارای فیلد نوع ۸ بیتی با مقدار 134، فیلد کد ۸ بیتی (0)، چکسام ۱۶ بیتی و فیلد محدودیت جهش (Cur Hop Limit) ۸ بیتی است. پرچمهای اصلی سربرگ رفتار پایانه را معین میکنند:
- پرچم پیکربندی مدیریتشده (M): به پایانه دستور میدهد نشانی با حالت را از طریق DHCPv6 دریافت کند.
- پرچم سایر پیکربندیها (O): پایانه را موظف میسازد پارامترهای جانبی نظیر سرورهای NTP را از DHCPv6 درخواست کند.
- اولویت مسیریاب پیشفرض (بیتهای Prf): مطابق RFC 4191، این فیلد ۲ بیتی اولویت را تعیین میکند: کم (
11)، متوسط (00) یا بالا (01). - طول عمر مسیریاب (Router Lifetime): فیلد ۱۶ بیتی نشاندهنده مدت زمانی به ثانیه (از
0تا9000) که مسیریاب دروازه پیشفرض است. مقدار0سبب حذف آن از جدول پایانه میشود.
به دنبال سربرگ ثابت ۱۶ بایتی، گزینههای متغیری درج میشوند:
| کد گزینه | عنوان فیلد | اثر عملکردی بر پشته شبکه پایانه |
|---|---|---|
| نوع ۳ | Prefix Information Option (PIO) | پیشوندهای شبکه (نظیر /64) و زمان بقا را اعلام میکند؛ حاکم بر آدرسدهی خودکار SLAAC (پرچم A) و دسترسی درون پیوند (پرچم L). |
| نوع ۲۴ | Route Information Option (RIO) | مسیرهای خاص زیرشبکه IPv6 را بر اساس اولویت متریک RFC 4191 تزریق میکند. |
| نوع ۲۵ | Recursive DNS Server (RDNSS) | تا سه نشانی سرور DNS مبتنی بر RFC 8106 را پیش از پردازش درخواستهای برنامهها تعیین میکند. |
| نوع ۳۱ | DNS Search List (DNSSL) | پسوندهای جستجوی دامنه را برای تحلیل نامهای محلی مشخص میسازد. |
دستکاری این مشخصات به مهاجم امکان میدهد جریان کامل ترافیک و ساختار تحلیل نام دامنهها را در شبکه محلی بازنویسی کند.
بردارهای تهدید: چگونگی جعل جدول مسیریابی سیستمعامل توسط بستههای RA مخرب
پیدایش اعلانهای ناخواسته مسیریاب میتواند ناشی از خطای پیکربندی (نظیر اتصال نادرست ماشینهای مجازی یا هاتاسپات) یا حملات سازمانیافته باشد. مهاجمان با بهرهگیری از ابزارهای تولید بسته مانند scapy یا radvd اقدام به پخش فراگیر بستههای RA با اولویت بالا نموده و دو بردار نفوذ اساسی را اجرا میکنند.
آدرسدهی اجباری SLAAC و تصاحب دروازه پیشفرض
مهاجم بستهای با مشخصات زیر منتشر میکند:
- اولویت مسیریاب بر روی بالا (
Prf = 01) تنظیم میشود. - طول عمر مسیریاب بر روی
1800ثانیه تعیین میگردد. - گزینه PIO برای پیشوند
/64با پرچمهای خودکار (A) و درون پیوند (L) فعال میشود.
هسته سیستمعامل قربانی بیدرنگ نشانی پیوند محلی مهاجم (fe80::dead:beef:cafe) را به عنوان دروازه پیشفرض با بالاترین اولویت ثبت میکند. همزمان، دستگاه یک نشانی عمومی IPv6 جدید در دامنه پیشوند مهاجم میسازد.
از آنجا که سیستمعاملهای نوین بر پایه الگوریتم Happy Eyeballs (مطابق RFC 8305) اولویت را به IPv6 میدهند، کلیه نشستهای خروجی HTTPS و درخواستهای ابری به سمت دروازه مهاجم منحرف میشوند. مهاجم با فعالسازی هدایت بسته در هسته (sysctl -w net.ipv6.conf.all.forwarding=1)، فرادادههای TLS SNI و بستههای رمزنشده را پایش میکند.
تزریق مخرب RDNSS: رهگیری DNS پیش از رمزگذاری لایه انتقال
مطابق RFC 8106، گزینه RDNSS به بسته RA اجازه میدهد سرورهای DNS را مستقیماً در سیستمعامل تنظیم کند. مهاجم آدرس یک سرور DNS تحت نظارت خود را تزریق مینماید.
هنگام استعلام دامنهها، این سرور آدرسهای دستکاریشده بازمیگرداند. از آنجا که این تنظیم در لایه پیکربندی اولیه هسته ثبت میشود، میتواند بر تنظیمات دستی IPv4 پیشی بگیرد.
اگر سیستم به تونل لایه ۳ کپسولهشده مجهز نباشد، استعلامهای آغازین DNS بر بستر پیوند محلی افشا میشوند. برای آگاهی بیشتر پیرامون تهدیدات پیوند محلی، به راهنمای مقابله با جعل ARP و مسمومسازی کش مراجعه فرمایید.
مسمومسازی حافظه پنهان NDP: سوءاستفاده از اعلانهای همسایه و طول عمر مسیر
علاوه بر دروازه پیشفرض، حملات بستههای اعلان همسایه (NA) را نیز هدف قرار میدهند. پروتکل NDP از پیامهای درخواست همسایه (نوع ۱۳۵) و اعلان همسایه (نوع ۱۳۶) جهت نگاشت آدرسهای IPv6 به آدرسهای فیزیکی ۴۸ بیتی MAC اترنت بهره میبرد.
مهاجم اقدام به ارسال بستههای NA غیردرخواستی با پرچم بازنویسی فعال (O = 1) میکند. هسته دریافتکننده بلافاصله حافظه LLA خود را بهروز کرده و آدرس MAC مهاجم را به جای آدرس فیزیکی دروازه قانونی مینشاند.
[دروازه قانونی] [پایانه قربانی] [گره مهاجم]
2001:db8::1 fe80::100 2001:db8::666
| | |
| |<--- بسته NA جعلی (O=1) ----|
| | نگاشت 2001:db8::1 به |
| | آدرس MAC مهاجم |
| | |
|<-- انحراف ترافیک IPv6 به مهاجم ----|--------------------------->|
| (پایش و ثبت دادهها توسط پروکسی مهاجم) |
علاوه بر این، ارسال متناوب بستههای RA با طول عمر 0 موجب میشود هسته سیستمعامل مسیرهای پیشفرض را بیدرنگ پاک کند که این امر به قطع ناگهانی تبادل داده و ایجاد وضعیت منع خدمت (DoS) میانجامد.
نشت داده در حالت تونلزنی دوگانه و برنامههای کاربردی دارای دو پشته
هنگامی که نرمافزارهای VPN فاقد پشتیبانی جامع از IPv6 باشند، خطرات ناشی از بستههای جعلی RA به شدت تشدید میشود.
بسیاری از نرمافزارهای تجاری تنها جدول مسیر IPv4 را بر روی رابط مجازی (tun0 یا utun3) تنظیم میکنند:
# درج متداول مسیرهای VPN منحصر به IPv4
ip route add 0.0.0.0/1 dev tun0
ip route add 128.0.0.0/1 dev tun0
در این وضعیت، جدول مسیریابی IPv6 روی کارت شبکه فیزیکی (wlan0 یا eth0) بدون محافظت رها میشود. به محض دریافت بسته جعلی RA، سیستمعامل یک مسیر پیشفرض IPv6 به سوی دستگاه مهاجم برپا میسازد.
زمانی که مرورگر به سرویسهای دو پشته متصل میشود، طبق الگوریتم Happy Eyeballs مسیر IPv6 را برمیگزیند. از آنجا که رابط رمزگذاریشده هیچ مسیری برای IPv6 تعریف نکرده، بستهها از کارت شبکه فیزیکی مستقیماً به سوی دروازه مهاجم ارسال میشوند. کاربر تصور میکند ایمن است، در حالی که بستههای اصلی خارج از تونل ارسال میگردند. ساختار این شکست شبیه به آسیبپذیری تزریق مسیر DHCP Option 121 است.
راهکارهای دفاعی لایه ۲: محدودیتهای RA-Guard، پروتکل SEND و امنیت پورت
مدیران شبکه سازوکارهایی را در سطح لایه ۲ برای مقابله با این خطر ایجاد کردهاند:
قابلیت IPv6 RA-Guard (RFC 6105)
سوئیچهای سازمانی مجهز به RA-Guard پورتها را به دو دسته معتمد و غیرمعتمد تقسیم میکنند. پردازندههای سختافزاری بستههای ICMPv6 نوع ۱۳۴ رسیده از پورتهای دسترسی را پیش از ارسال به مدار داخلی حذف مینمایند.
پروتکل کشف امن همسایه (SEND, RFC 3971)
استاندارد SEND با بهرهگیری از نشانیهای رمزنگاریشده (CGA) و امضای دیجیتال نامتقارن، اصالت پیامهای NDP را تأیید میکند.
محدودیتهای عملیاتی
این تمهیدات عموماً توانایی محافظت از کاربران متحرک را ندارند:
- فقدان در زیرساختهای عمومی: شبکههای بیسیم هتلها، مراکز عمومی و مسیریابهای خانگی فاقد پشتیبانی از RA-Guard هستند.
- عدم فراگیری SEND: به دلیل پیچیدگیهای ساختار زیرساخت کلید عمومی PKI، پلتفرمهای رایج رومیزی و موبایل پروتکل RFC 3971 را به صورت بومی پیادهسازی نکردهاند.
- روشهای فرار از فیلتر سوئیچ: مهاجمان میتوانند بستههای RA را در قالب برچسبگذاری دوگانه VLAN (Q-in-Q) یا بستههای خردشده ICMPv6 پنهان ساخته و از سد فیلترهای ساده سوئیچ عبور دهند.
به دلیل عدم امکان اطمینان به پایداری دفاع در لایه ۲، ایمنسازی باید مستقیماً در سطح پایانه کاربر پیادهسازی شود.
معماری شبکه خصوصی لایه ۳: کپسولهسازی دو پشته و تثبیت مسیر در هسته
دستیابی به مصونیت کامل در برابر اعلانهای جعلی RA مستلزم تسلط کامل سرویس لایه ۳ بر زیرسیستم مسیریابی هسته است. این محافظت بر پایه کپسولهسازی کامل هر دو پشته و تثبیت قوانین پایگاه داده سیاست مسیریابی (RPDB) محقق میشود.
+------------------------------------------------------------------------+
| برنامه کاربردی کاربر |
+------------------------------------------------------------------------+
|
v (سوکتهای دو پشته: AF_INET / AF_INET6)
+------------------------------------------------------------------------+
| قوانین RPDB هسته سیستمعامل |
| قاعده ۱۰۰: ترافیک به مقصد <IP-سرور-VPN> به جدول main هدایت شود |
| قاعده ۲۰۰: تمام ترافیک دیگر به جدول ۵۱۸۲۰ (تونل امن) ارجاع یابد |
| قاعده ۳۲۷۶۶: مابقی موارد به جدول main (کارت فیزیکی) فرستاده شود |
+------------------------------------------------------------------------+
|
v
+-----------------------------------+------------------------------------+
| جدول ۵۱۸۲۰ (WireGuard / RiceGuard) | جدول Main (کارت فیزیکی wlan0) |
| مسیر پیشفرض :: از طریق رابط rg0 | مسیر پیشفرض از fe80::dead:beef |
| مسیر پیشفرض 0.0.0.0 از طریق rg0 | (مسیر مخرب در اینجا بیاثر است) |
+-----------------------------------+------------------------------------+
کلاینت ایمن یک جدول مسیریابی ایزوله (مانند جدول 51820) تشکیل داده و پیشوندهای فراگیر را تنظیم میکند:
0.0.0.0/0از طریق رابطrg0::/0از طریق رابطrg0
سپس قوانین سیاست هسته با اولویت پردازش بالا ثبت میشوند:
# تثبیت ترافیک IPv6 در جدول مسیریابی رمزگذاریشده
ip -6 rule add pref 200 lookup 51820
ip -6 rule add pref 201 unreachable
حتی اگر مهاجم در کارت شبکه wlan0 بستههای RA با اولویت بالا منتشر کند، هسته جدول 51820 را با اولویت 200 قبل از جدول main ارزیابی میکند. بنابراین مسیر جعلی بدون استفاده و غیرفعال میماند.
اعمال جدول مسیریابی RiceGuard: خنثیسازی بستههای ICMPv6 در سطح سوکت
سرویس VPNRice از بستر ارتباطی RiceGuard مبتنی بر ساختار مدرن WireGuard بهره میگیرد تا پایداری لازم را در برابر خطرات لایه ۲ فراهم سازد:
- تخصیص اجباری دو پشته: RiceGuard در هر نشست به صورت قطعی هم آدرس داخلی IPv4 (
10.64.0.0/10) و هم آدرس محلی یکتای IPv6 (fd00::/8) اختصاص میدهد تا الگوریتم Happy Eyeballs مسیر فیزیکی را انتخاب نکند. - فیلتر بستهها در هسته: در سیستمهای مجهز به
nftablesیاpf، سرویس قوانین پویایی تزریق میکند که بستههای ورودی ICMPv6 نوع ۱۳۴ را روی رابطهای فیزیکی مسدود میسازد:
table inet vpnrice_defense {
chain prerouting {
type filter hook prerouting priority -100; policy accept;
iifname != "rg0" icmpv6 type { nd-router-advert, nd-redirect } counter drop
}
}
- قفلگذاری تحلیلگر DNS: کلیه درخواستهای نام به شنودکننده داخلی روی نشانیهای
127.0.0.1:53و[::1]:53هدایت میشوند و گزینههای ناخواسته RDNSS شبکه محلی نادیده گرفته خواهند شد.
کاربران میتوانند برای ارزیابی خروجی عمومی و بررسی عدم نشت ترافیک از ابزار بررسی نشانی IP استفاده کنند.
ارزیابی تابآوری شبکه: اولویت متریک، تأخیر جابهجایی و اتلاف بستهها
میزان پایداری در یک آزمایشگاه بیسیم کنترلشده مورد ارزیابی قرار گرفت. گره مهاجم با بهرهگیری از scapy هر ۲ ثانیه بستههای نوع ۱۳۴ با اولویت High و مشخصات جعلی DNS پخش میکرد.
سه وضعیت سنجیده شد: اتصال مستقیم بدون محافظت، نرمافزار معمول دارای IPv4 و تونل دو پشته RiceGuard.
| شاخص اندازهگیری | اتصال معمولی بدون محافظت | نرمافزار معمولی (تنها IPv4) | تونل دو پشته RiceGuard |
|---|---|---|---|
| مدت زمان تصاحب مسیر IPv6 | کمتر از ۱۲۰ میلیثانیه | کمتر از ۱۸۰ میلیثانیه | ۰ میلیثانیه (مصونیت کامل) |
| نرخ رهگیری استعلامهای DNS | ۱۰۰٪ رهگیری شد | ۸۴.۶٪ رهگیری شد | ۰٪ (عدم نشت داده) |
| قطع نشستهای فعال TCP و QUIC | ۴۲٪ (بازنشانی اتصال) | ۶۸٪ (نوسان در مسیر) | ۰٪ (کپسولهسازی مداوم) |
| تأخیر پاسخگویی هنگام نفوذ | تصاحب کامل جریان داده | ۴۸۰ میلیثانیه (تجمع داده) | ۱۴ میلیثانیه (مدیریت با RPDB) |
در سیستمهای معمولی محدود به IPv4، پشته شبکه میان دو دروازه دچار نوسان شدید شده و به قطع اتصالات منجر شد.
در نقطه مقابل، با حضور ساختار RiceGuard و ارزیابی جدول 51820 توسط RPDB، بستههای ناخواسته در فایروال هسته دفع شدند و پایداری انتقال حفظ گردید.
راهنمای عملیاتی: مقاومسازی پایانهها و نظارت بر همسایگان IPv6
کاربران و مدیران حاضر در شبکههای عمومی میتوانند راهکارهای زیر را برای ارتقای امنیت پیادهسازی نمایند:
پایش دروازههای فعال و جدول همسایگان
در سیستمهای لینوکسی، با دستورات زیر وضعیت مسیرها و جدول نگاشت بررسی میشود:
# نمایش مسیرهای پیشفرض IPv6 و اولویت آنها
ip -6 route show default
# مشاهده مشخصات همسایگان ثبتشده در حافظه
ip -6 neighbor show
# استماع بستههای ICMPv6 در زمان واقعی
sudo tcpdump -ni any "icmp6 and (ip6[40] == 134 or ip6[40] == 135)" -v
غیرفعالسازی پذیرش خودکار RA در رابطهای فیزیکی
در صورت عدم دسترسی به نرمافزار دفاعی خودکار، میتوان پذیرش بستههای اعلان مسیریاب را در رابط فیزیکی مسدود ساخت:
# مسدودسازی پردازش اعلان مسیریاب در کارت wlan0
sudo sysctl -w net.ipv6.conf.wlan0.accept_ra=0
sudo sysctl -w net.ipv6.conf.wlan0.accept_ra_defrtr=0
sudo sysctl -w net.ipv6.conf.wlan0.accept_ra_pinfo=0
sudo sysctl -w net.ipv6.conf.wlan0.accept_ra_rtr_pref=0
تنظیم accept_ra=0 موجب نادیده گرفتن بستههای نوع ۱۳۴ در کارت wlan0 میشود. با فعالسازی ارتباط از طریق نرمافزار رسمی VPNRice، این تنظیمات به صورت هماهنگ با فناوری WireGuard اعمال میگردند.
ترکیب مدیریت سیاستهای مسیریابی هسته با پالایش دقیق بستهها، پایداری و امنیت پایانه را حتی در ناامنترین شبکههای محلی تضمین مینماید.



