في بيئات الشبكات المحلية المشتركة عبر كابلات إيثرنت أو شبكات واي فاي العامة، تعتمد الأجهزة على البوابة الافتراضية (Default Gateway) لإرسال حزم البيانات نحو شبكة الإنترنت الواسعة. وفي ظروف التشغيل العادية، يرسل جهاز الحاسوب الحزم إلى الموجه المحلي، والذي يتولى بدوره تمريرها خطوة تلو الأخرى إلى وجهتها المحددة. ومع ذلك، تتضمن مواصفات مكدس بروتوكول IPv4 منذ عام 1981 بروتوكول تحكم وتشخيص يعرف ببروتوكول رسائل التحكم في الإنترنت (ICMP)، والمعتمد بموجب وثيقة RFC 792.
تتضمن هذه الوثيقة رسالة متخصصة تعرف باسم إعادة توجيه ICMP (النوع 5). وقد صُممت هذه الرسالة في حقبة كانت فيها أجهزة الشبكة المحلية موثوقة بالكامل، بهدف تمكين الموجه من إخطار الأجهزة بوجود مسار محلي أفضل للوصول إلى الوجهة. ولكن في ظل الشبكات المفتوحة، يستطيع المهاجمون استغلال هذه الميزة لتنفيذ هجوم تسميم التوجيه المحلي (ICMP Route Poisoning).
البنية الثنائية لرسالة ICMP من النوع 5 وفق RFC 792
عندما يستقبل الموجه حزمة بيانات IP ويتبين له أن مسار تمريرها التالي يتطلب إعادة إرسالها عبر نفس الواجهة الشبكية الفيزيائية التي استُقبلت منها، يصنف الموجه المسار على أنه غير فعال. ويقوم الموجه بإرسال حزمة ICMP Redirect إلى الجهاز المصدر لتحديث مساره.
يتخذ الإطار الثنائي لرسالة إعادة توجيه ICMP البنية المحددة التالية:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type (5) | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Gateway Internet Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Internet Header + 64 bits of Original Data Datagram |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
تتألف الرسالة من الحقول التقنية التالية:
- حقل Type: يحمل القيمة
5، مشيراً إلى رسالة إعادة التوجيه. - حقل Code: يحدد نطاق سريان التوجيه:
Code 0: إعادة توجيه لكامل الشبكة الفرعية المستهدفة.Code 1: إعادة توجيه لمضيف محدد (Host Redirect).Code 2: إعادة توجيه بحسب نوع الخدمة (ToS) والشبكة.Code 3: إعادة توجيه بحسب نوع الخدمة ومضيف محدد.
- Gateway Internet Address: عنوان IPv4 مكون من 32 بت للبوابة الجديدة المقترحة.
- الحمولة المرفقة: تشمل ترويسة IP الأصلية بالإضافة إلى 64 بت (8 بايت) على الأقل من حمولة الحزمة التي تسببت في إطلاق الإشعار.
عندما تستلم نواة نظام تشغيل الضحية هذه الحزمة، تقوم بمطابقة الـ 64 بت المرفقة مع جلسات الاتصال النشطة في مكدس الشبكة. وإذا تطابقت العناوين والمنافذ، تقبل النواة الأمر وتقوم بتعديل جدول التمرير المحلي (FIB) تلقائياً.
مسار هجوم الوسيط (Man-in-the-Middle) في الشبكة المحلية
تنشأ الثغرة من الغياب التام لآليات المصادقة المشفرة في معيار RFC 792. وبذلك، يمكن لأي جهاز متصل بنفس نطاق البث في الطبقة الثانية L2 (مثل شبكات المقاهي أو محولات الشبكة غير المدارة) صياغة وبث حزم ICMP Type 5 مزورة.
تتم خطوات الهجوم عبر ثلاث مراحل متزامنة:
- مراقبة حركة المرور: يستمع المهاجم لحزم الشبكة المحلية لالتقاط جلسات الاتصال الصادرة من الضحية.
- صياغة الإطار المزور: ينشئ المهاجم حزمة ICMP من النوع 5 والرمز 1، ويضع عنوان IP الخاص به في حقل البوابة المقترحة، وينتحل عنوان الموجه الحقيقي كمرسل، مع تضمين ترويسة الضحية المستخرجة.
- تسميم ذاكرة النواة: يفترض نظام تشغيل الضحية أن الحزمة وردت من الموجه المعتمد، فيقوم بتثبيت مسار ديناميكي محدد ببادئة
/32في ذاكرة التوجيه، مما يؤدي إلى توجيه كافة الحزم التالية للجهاز المهاجم.
| مرحلة الهجوم | تصرف المهاجم | استجابة نواة نظام تشغيل الضحية | الحالة الناتجة في الشبكة |
|---|---|---|---|
| الرصد | التقاط جلسات TCP/UDP النشطة | استمرار الإرسال الطبيعي للبيانات | تحديد معاملات الاتصال الفعالة |
| حقن الحزمة | إرسال حزمة ICMP Type 5 مزورة | التحقق من صحة جزء الـ 64 بت المرفق | تطابق الترويسة مع جلسة مفتوحة |
| تعديل المسار | تحديد عنوان المهاجم كبوابة بديلة | إضافة مسار ديناميكي ببادئة /32 |
تسميم جدول توجيه النظام المستهدف |
| اعتراض المرور | استلام حزم الضحية وإعادة توجيهها | تدفق البيانات عبر جهاز المهاجم | تنفيذ هجوم وسيط كامل في الطبقة 3 |
المخاطر والتهديدات الموجهة لشبكات VPN
عند تفعيل شبكة افتراضية خاصة (VPN)، يتم إنشاء واجهة شبكة افتراضية (مثل tun0 أو wg0) لتمرير البيانات عبر نفق مشفر. ومع ذلك، يمكن لهجمات إعادة توجيه ICMP أن تشكل تهديداً أمنياً في حال غياب عزل الواجهات الفيزيائية:
1. إعادة توجيه نقطة اتصال نفق VPN
للحفاظ على استمرارية الاتصال، يقوم تطبيق VPN بإرسال حزم UDP المشفرة عبر الواجهة الفيزيائية (eth0 أو wlan0) نحو البوابة المحلية. وإذا قام مهاجم محلي بحقن رسالة ICMP Redirect تستهدف العنوان العام لخادم VPN، فإن النظام سيوجه حزم النفق نحو جهاز المهاجم. ورغم حماية البيانات بواسطة خوارزميات التشفير مثل ChaCha20-Poly1305، يستطيع المهاجم رصد أحجام الحزم وتوقيتاتها أو التسبب في انقطاع الاتصال.
2. تسريب البيانات خارج مسار النفق
في التهيئات التي تعتمد على تقسيم النفق (Split Tunneling) أو تفتقر لسياسات التوجيه المحكمة، تحظى مسارات المضيف المحقونة ببادئة /32 بأولوية أعلى من المسارات الشاملة مثل 0.0.0.0/1. ونتيجة لذلك، قد تخرج البيانات المتجهة نحو خدمات معينة كنصوص واضحة غير مشفرة عبر بطاقة الشبكة الفيزيائية بدلاً من النفق المحمي.
تعطيل معالجة رسائل ICMP Redirect على مستوى النظام
نظراً لتطور البنى التحتية الحديثة للشبكات وعدم الحاجة لإرشادات التوجيه الديناميكي للمحطات الطرفية، فإن إيقاف معالجة هذه الرسائل يعد إجراءً أمنياً أساسياً موصى به وفق معيار RFC 1122.
تهيئة نواة لينكس عبر إعدادات Sysctl
يمكن التحقق من الإعدادات الحالية لرسائل التوجيه باستخدام الأمر التالي:
sysctl -a | grep -E "accept_redirects|send_redirects"
لإيقاف استلام وإرسال حزم إعادة التوجيه تماماً، أضف الإعدادات التالية إلى الملف /etc/sysctl.d/99-disable-icmp-redirects.conf:
# تعطيل قبول رسائل إعادة توجيه ICMP لجميع واجهات IPv4
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
# تعطيل إرسال رسائل إعادة توجيه ICMP
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
# تعطيل قبول رسائل إعادة توجيه ICMPv6 لشبكات IPv6 (RFC 4861)
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
تطبيق التغييرات فوراً دون الحاجة لإعادة تشغيل النظام:
sudo sysctl --system
التهيئة في أنظمة macOS وBSD
في أنظمة تشغيل BSD وmacOS، يمكن تعديل المعاملات عبر أمر إدارة متغيرات النواة:
sudo sysctl -w net.inet.icmp.drop_redirect=1
تكوين إعدادات الأمان في نظام ويندوز
في بيئة أنظمة ويندوز، يمكن تعطيل قبول رسائل إعادة التوجيه عبر تعديل سجل النظام (Registry) بواسطة PowerShell:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -Name "EnableICMPRedirect" -Value 0 -Type DWord
الحماية المتقدمة عبر توجيه السياسات في بنية RiceGuard
بالإضافة إلى تقييد إعدادات النواة المحلية، توفر بنية RiceGuard المعتمدة في VPNRice دفاعاً متكاملاً لعزل تدفق البيانات:
- جداول توجيه مستقلة ووسم جدار الحماية (fwmark): تقوم بنية RiceGuard بوسم حزم التطبيقات بعلامة مخصصة لجدار الحماية، وتوجهها قواعد سياسات النواة (
ip rule) مباشرة إلى جدول التوجيه المستقل51820، مما يمنع تأثرها بأي مسارات محقونة في الجدول الافتراضي. - تصفية الحزم على مستوى المنافذ الفيزيائية: تطبق قواعد
nftablesلإسقاط حزم ICMP Type 5 فور ورودها إلى بطاقات الشبكة الفيزيائية قبل معالجتها. - آليات التحقق ومنع إعادة الإرسال في WireGuard: يضمن بروتوكول Noise IK وعداد النافذة المنزلقة المكون من 64 بت رفض أي حزم معادة أو معدلة في الشبكة المحلية بصورة فورية.
من خلال دمج إعدادات النواة الصارمة مع التوجيه المستند للسياسات في الطبقة الثالثة، تظل بياناتك واتصالاتك محمية ضد التسميم والتنصت عبر الشبكات العامة وغير الموثوقة.



