DHCP Snooping

لتوضيح احد أشهر انواع الهجمات التي تتم على #شبكات_الحاسب باستخدام بروتوكول الـ 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 ويهملها

 

 

Leave a Comment

Your email address will not be published. Required fields are marked *

Verified by MonsterInsights