
لتوضيح
احد أشهر انواع الهجمات التي تتم على #شبكات_الحاسب
باستخدام بروتوكول الـ DHCP يظهر في الرسمة الأولى جهاز حاسب آلي في أقصى اليمين ويعتبر جهاز
من ضمن أجهزة الشركة ويظهر كذلك خادم DHCP الموجود في أقصى اليسار هو أيضاً جهاز من اجهزة الشبكة.
وفي
هذا السيناريو استطاع المهاجم ان يوصل جهاز الحاسب المحمول الخاص به بالشبكة
المحلية لشن هجوم DHCP
وذلك من خلال التصرف وكأنه خادم DHCP.
باتباع الخطوات الواردة في الشكل نفترض أن PC1
يحاول الحصول على عنوان IP أثناء قيام المهاجم بهجومه فماذا سيحدث :
١-
يرسل PC1
رسالة بث (Broadcast)
للشبكة المحلية مع أول رسالة له والتي تكون من نوع (DHCPDISCOVER).
٢-
يرد جهاز الحاسب الخاص بالمهاجم والذي يعمل كخادم DHCP مزيف على (DHCPDISCOVER) باستخدام رسالة
العرض (DHCPOFFER).
في
هذا المثال قام خادم الـDHCP المزيف والذي أنشأه المهاجم بالفعل باعطاء
عنوان IP
صالح وجيد للجهاز PC1
في الشبكة الفرعية الصحيحة مراعياً القناع الصحيح.
من
مصلحة المهاجم أن يعمل PC1
بشكل طبيعي وهذا هو سبب تزويده بعنوان جيد ولكن مع وجود
"مطب" خطير وهو البوابة الافتراضية التي قام بتزويده بها وهي 10.1.1.2
والتي هي في الحقيقة عنوان الـ IP الشخصي للمهاجم ولم يزوده بعنوان البوابة الافتراضية الحقيقي الذي
هو 10.1.1.1 والذي يمثل عنوان جهاز التوجيه R1.
الآن
سيعتقد PC1
أن لديه كل ما يحتاجه للاتصال بالشبكة ولكن الآن كل
الحزم التي يرسلها PC1
إلى ما يعتقد أنه جهاز التوجيه او البوابة الافتراضية تمر أولا من خلال جهاز
الحاسب الخاص بالمهاجم مما يمثل هجوماً يعرف باسم "Man In The Middle Attack"
والذي يترجم حرفياً بـ بهجمة الرجل في المنتصف كما هو موضح في الشكل الثاني
طبعاً
خادم الـ DHCP
الحقيقي سيعيد أيضا رسالة (DHCPOFFER) إلى جهاز الحاسب PC1 ولكن معظم الاجهزة تقبل أول رسالة عرض (DHCPOFFER) تم استلامها
والتي ومن المرجح أن تكون للمهاجم في هذا السيناريو.
تظهر
الخطوتان في الشكل الثاني كيفية تدفق البيانات بمجرد اكتمال الـ DHCP
بالنسبة لأي حركة مرور في طريقها لمغادرة الشبكة الفرعية فيرسل PC1 حزمه إلى بوابته
الافتراضية 10.1.1.2 والتي هي في الحقيقة المهاجم.
وحينها
يقوم المهاجم بإعادة توجيه الحزمة إلى R1 والخطير انه يمكن لمستخدم PC1 الاتصال بأي موقع والعمل مع جميع التطبيقات تماما كالمعتاد ولكن يمكن للمهاجم الاحتفاظ بنسخة من أي شيء يرسله PC1.
لمعالجة المشكلة السابقة تم ابتكار واعداد
أجهزة المبدلات (switch) بخاصية تسمى (DHCP Snooping) والتي سأحاول توضيح
فكرتها وآلية عملها
يوضح المثال السابق هجوما واحدا فقط يتصرف فيه
المهاجم وكأنه خادم DHCP (خادم
DHCP مزيف).
يقوم الـ DHCP Snooping بمواجهة ومكافحة مثل هذا
النوع من الهجمات وذلك باختصار عن طريق اعداد غالبية المنافذ على وضع الـ(untrusted) اي جعلها غير موثوق بها ويقصد بذلك
ان رسائل الـ DHCP التي ستمر من تلك
المنافذ يجب ان تخضع لشيء من الاختبارات والفلترة.
بحيث لو طبقت هذه الفلترة على مثالنا السابق
لما استطاع المهاجم من شن هجمته ..
مراجعة سريعة (تذكر أن) تدفق رسائل الـ DHCP العادي يكون في هذا التسلسل:
DISCOVER و OFFER و REQUEST و ACK
ولمزيد من التحديد:
العميل يرسل: DISCOVER و REQUEST
والخادم يرسل: OFFER و ACK
بالإضافة إلى ما ذُكر أعلاه هناك نوعان أيضاً
من رسائل DHCP للعميل وهما:
DHCP
RELEASE و DHCP DECLINE.
فكرة الرسالة الأولى (RELEASE) أنه عندما يكون لدى العميل عنوان IP ولكنه لم يعد يريد استخدام هذا
العنوان يقوم العميل بإخبار الخادم بأنه لم يعد بحاجة إلى العنوان ويرغب بإعادته
إلى الخادم وهنا تأتي رسالة DHCP RELEASE.
وأما الرسالة الثانية (DECLINE) فتكون عندما يريد العميل رفض العرض
المقدم من الخادم بشأن عنوان IP تكون الرسالة المستخدمة
DHCP
DECLINE
الآن واستناداً إلى منطق DHCP Snooping والمنافذ غير الموثوق
بها يلخص الشكل أدناه الفكرة فعلى الجهة اليسرى يتصل منفذ المبدل(switch) بخادم الـ DHCP لذلك يجب اعتباره موثوق وإلا فلن
يعمل خادم الـ DHCP وعلى الجهة اليمنى يتصل PC1 بمنفذ يجب أن يكون غير موثوق به مع
العميل
وبناءاً على الشكل أدناه وعلى المعلومات أعلاه ما نخاف منه وما يجب
ان يعالجه لنا الـ (DHCP Snooping) هو مشاكلنا مع العميل والتي تتلخص في نوعي الرسائل:
١- DISCOVER و REQUEST
٢- DECLINE و RELEASE
وهذا ما سأوضح كيف يتم بعون الله في موضوع قادم

سأبدأ اولاً بتلخيص قوانين خاصية (DHCP Snooping) كالاتي:
١- افحص جميع رسائل DHCP الواردة.
٢- إذا كانت مرسلة بواسطة خادم الـ DHCP فتجاهل الرسالة واتركها تمر.
٣- إذا كانت مرسلة بواسطة عميل الـ DHCP فيجب القيام بعملية الفحص والفلترة
كالتالي:
أ) بالنسبة لرسائل DISCOVER و REQUEST تحقق وتأكد من تطابق عنوان MAC الموجود ضمن معلومات إطار Ethernet وعنوان MAC المتضمن داخل رسالة DHCP.
ب) بالنسبة لرسائل RELEASE أو DECLINE تحقق
وتأكد من المنفذ التي وردت منه بالإضافة إلى عنوان IP المقابل الموجود في جدول ربط DHCP Snooping
٤- بالنسبة للرسائل التي لم تتم فلترتها والتي
أدت إلى إيجار عنوان IP جديد
لجهاز ما ، قم بإدخال جديد إلى جدول ربط DHCP Snooping يحوي عنوان المنفذ
وعنوان الـ IP.
يقوم DHCP Snooping بفحص مباشر لاحد اكثر
انواع الرسائل شيوعاً من طرف العميل وهي: DISCOVER و REQUEST.
في البداية من المهم أن نعرف أن رسائل الـ DHCP يوجد بها حقل يسمى chaddr وهو اختصار لـ(client hardware address) يستخدم هذا الحقل
لتحديد عنوان العميل والذي يعتبر في الشبكات المحلية هو أيضاً عنوان MAC للجهاز الا انه هنا يعتبر كجزء من chaddr
وكما هو معروف من كون الأجهزة التي تعمل بتقنية
الـ Ethernet تقوم بتغليف الرسائل عند
ارسالها وهو ما يسمى بالـ(encapsulation) وهذا يشمل رسائل الـ DHCP داخل إطارات Ethernet وتتضمن هذه الإطارات بالطبع عنوان MAC للمصدر وهو عنوان يجب أن يكون نفس
عنوان MAC المستخدم في حقل DHCP chaddr.
وهنا يأتي دور الـ DHCP Snooping بحيث يقوم بإجراء فحص
بسيط للتأكد من تطابق عنواني الـ MAC في الاطار وفي الـ chaddr
يوضح الشكل أدناه كيف يحاول المهاجم الضغط على
خادم الـ DHCP واستئجار جميع العناوين
المتاحة في الشبكة الفرعية.
ففي الشكل يستخدم جهاز الكمبيوتر الخاص
بالمهاجم عنوان MAC مزيف A لذلك تظهر جميع رسائل الـ DISCOVER الثلاث في الشكل عنوان MAC للمصدر بأنه "A" بينما تحدد كل رسالة من رسائل
الـ DHCP عنوان MAC مختلفا في قيمة chaddr فمرةً MAC1 وأخرى MAC2 وثالثة MAC3 وذلك فقط من باب الايجاز وتوضيح
الفكرة، وبناء على ذلك سيرى خادم الـ DHCP أن كل رسالة هي طلب DHCP مختلف وهذا يمكن المهاجم من استئجار
كل عناوين IP في الشبكة الفرعية وذلك
حتى لا يتمكن أي مضيف آخر من الحصول على عنوان IP
وتظهر هنا الميزة الأساسية للـ
DHCP
Snooping بحيث
تتغلب على هذا النوع من الهجمات على المنافذ غير الموثوق بها لانها
ببساطة ستتحقق من عنوان MAC لإطار
الـ Ethernet وتقارنه بعنوان MAC في رسالة الـ DHCP فإذا لم تتطابقان فإن DHCP Snooping يهمل الرسالة ولا يمررها

قبل النظر إلى الجزء التالي والأخير والذي
يناقش آلية تعامل DHCP
snooping مع
رسائل RELEASE تحتاج أولا إلى معرفة
جدول ربط DHCP
Snooping. فهذا
الجدول يبني ويدرج جميع تدفقات رسائل الـ DHCP التي يرى أنه من المسموح به إكمالها.
بمعنى أنه بالنسبة لأي حركة بيانات صحيحة
وسليمة ذات علاقة بالـ DHCP فهي
تحتفظ بها وتدرج بعض المعلومات المهمة في الجدول وذلك لأنها ستستفيد منها لاحقاً
وقد يستفيد أيضاً منها ميزات أخرى مثل Dynamic ARP Inspection وذلك عند اتخاذ القرارات.
على سبيل المثال الشكل الاول والذي يكرر بنية
سبق الحديث عنها أعلاه وفي جدول ربط (DHCP Snooping) مدخل واحد
ففي هذه الشبكة البسيطة يستأجر عميل الـ DHCP الموجود في الجهة اليمنى عنوان
172.16.2.101 من خادم الـ DHCP والموجود في الجهة اليسرى
لاحظ ان ميزة DHCP Snooping الخاصة بالمبدل جمعت بين
المعلومات الحاصلة عليها من رسائل الـDHCP مع معلومات حول المنفذ G1/0/3 والمخصص لـ VLAN 11
ومن هنا تأتي مزية DHCP Snooping الثانية في التصفية
باستخدام جدول ربط DHCP Snooping حيث يتحقق من الرسائل المرسلة من العميل مثل RELEASE و DECLINE والتي قد تمكن الخادم DHCP من إصدار عنوان IP جديد.
فكما هو معلوم قد يستأجر المستخدم الشرعي
العنوان 172.16.2.101 وفي مرحلة ما يعيد العنوان مرة أخرى إلى الخادم وهذا امر
طبيعي وقد يحدث لاي سبب.
ومع ذلك فمن الممكن قبل أن ينتهي العميل من عقد
الإيجار لذلك العنوان ان يقوم المهاجم بإرسال DHCP RELEASE mesage للتنازل عن هذا العنوان الذي لا يملكه أصلاً واعادته مرة أخرى إلى
الخادم ثم مباشرةً محاولة استئجار هذا العنوان على الفور على أمل أن يعطيه خادم الـDHCP نفس هذا العنوان 172.16.2.101.
يوضح الشكل الثاني جهاز PC1 والحاصل بالفعل على عنوان
172.16.2.101 من خادم الـ DHCP ويوضح كذلك إدراج المبدل SW2 للبيانات اللازمة في جدول DHCP Snooping.
في الشكل يحاول المهاجم من خلال المنفذ G1/0/5 تحرير عنوان PC1 واعادته للخادم ليقوم هو باستئجاره
وهنا يقوم الـ DHCP
Snooping
بقارنة الرسالة الواردة مع المنفذ الذي وردت منه ومطابقة ذلك مع جدوله كالتالي:
١- الرسالة الواردة هي رسالة DHCP RELEASE قادمة من المنفذ G1/0/5 والعنوان هو 172.16.2.101
٢-يلاحظ جدول ربط DHCP Snooping بأن العنوان
172.16.2.101 مستأجر في الأصل من جهاز متصل معه عبر المنفذ G1/0/3
٣-يتجاهل DHCP Snooping رسالة DHCP RELEASE ويهملها
