الهجوم الذي سوف أتحدث عنه اليوم خطير جدا وذلك بسبب قدرته على تخريب الشبكة بشكل كامل بالأضافة إلى أمكانية المهاجم في التنصت على كل مايجري في الشبكة وأقصد بهذا ليس فقط السويتش الذي ينتمي إليه المهاجم بل كل السويتشات الموجودة على الشبكة ويمكن أن نطلق عليه STP manipulation أو BPDU attack
مقدمة عن بروتوكول الـ Spanning Tree كما هو معروف عند الجميع أن بروتوكول الـ STP يلعب دورا كبيرا في الشبكة في منع مايعرف بي الـ loop أو Broadcast Storm ويتم ذلك عن طريق أنتخاب سويتش واحد ليكون Root Bridge ويتم الأختيار حسب أقل Bridge ID موجود على الشبكة وبعدها يتم أختيار البورتات التى يجب أن تعمل أو تتوقف أعتمادا على الـ Cost أو التكلفة للوصول للـ Root Bridge وكل هذه الأمور تتم عن طريق مايعرف بي BPDU وطبعا هذا الكلام معروف عند الجميع كيف يتم هذا النوع من الهجوم ؟ الهجوم كغيره فكرته بسيطة وتأثيره كبير جدا وهو يتم عن طريق أرسال BPDU مزور يخبر فيه المهاجم السويتش الذي يرتبط معه بأنه يملك أقل Bridge ID على الشبكة وبانه يجب ان يكون هو الـ Root Bridge وبالتالي سوف تتم أعادة توزيع البورت على كل السويتشات وهذه بعض الصور لتبسيط الموضوع الصورة الاولى نرى فيها التوزيع الطبيعي للشبكة ونرى أيضا أن السويتش A هو الـ Root Bridge على الشبكة والخطوط الحمراء خاصة بي الـ STP ونرى أن المهاجم الموجود على الجهاز رقم 2 يقوم بأرسال BPDU مزور إلى السويتش في الصورة الثانية سوف نشاهد ماذا سوف يحدث بعد أن يقوم المهاجم بتغيير المخطط
وسوف نلاحظ ان كل شيء قد تغيير وأصبح كل الترافيك الذي يعبر عبر الشبكة يمر عبر الشخص المهاجم وبالتالي أصبح عندنا الهجوم الذي يعرف بي MITM أو Man In The Middle
كيف أحمي شبكتي من هذا النوع من الهجوم ؟ سيسكو تقترح عليك 3 طرق للحماية من هذا الهجوم الأولى BPDU Guard خاصية تخبر فيها البورت أن لا يستقبل أي نوع من رسائل الـ BPDU وفي حال أستلام البورت لاي BPDU سوف يقوم بتحويل حالة البورت إلى errdisable أي سوف يتم اغلاق البورت بشكل كامل وطريقة الأعداد تتم على الشكل التالي : أدخل أولا على البورت الغير أمن وأكتب فيه الأمر التالي
Cisco's IOS
Switch(config)#spanning-tree bpduguard enable
واذا أردت أن تقوم بتفعيل هذه الخاصية على كل البورتات التى تكون في حالة PortFast أكتب الأمر التالي في الـ Config mode
BPDU Root في هذه الخاصية أخبر السويتش بأن هذه البورت لن يكون أبدا Root Bridge وتتم من خلال هذا الأمر
Cisco's IOS
Switch(config-if)#spanning-tree guard root
BPDU Filtering هذه الخاصية هي نفس الخاصية الأولى تماما والفرق الوحيد هو أن هذه الخاصية تتيح لك أن تحدد ماذا تريد للبورت أن يفعل في حال أستلم BPDU بعكس الـ BPDU Guard الذي سوف يقوم بأغلاق البورت بشكل مباشر وطريقة الأعداد هي كالتالي: على البورت
Cisco's IOS
Switch(config-if)#spanning-tree bpdufilter enable
واذا أردت أن تقوم بتفعيل هذه الخاصية على كل البورتات التى تكون في حالة PortFast أكتب الأمر التالي في الـ Config mode