المجتمع Active Directory

شرح BloodHound بالعربي: كيف تقرأ أول خريطة صلاحيات وتطلع منها بفهم؟

تفتح الأداة وتطلع قدامك عشرات الدوائر والخطوط. أول إحساس أنها كشفت كل شيء، وبعدها تكتشف أنك مو عارف من وين تبدأ. المشكلة غالبًا أنك دخلت تبحث عن «مسار اختراق» قبل ما تفهم معنى العلاقة الواحدة. خلنا نبدأ بحساب تدريبي، ومجموعتين، وجهاز واحد؛ إذا فهمت هالمثال، بيصير الرسم الكبير أوضح بكثير.

لقطة من SpecterOps لواجهة BloodHound CE تعرض عضوية مستخدم وصلاحيات إدارة محلية على أجهزة لاب، منشورة في ٢٠٢٣
لقطة من SpecterOps لواجهة BloodHound CE تعرض عضوية مستخدم وصلاحيات إدارة محلية على أجهزة لاب، منشورة في ٢٠٢٣

اقرأ الصورة كعلاقات، مو كعدد أجهزة

الصورة من إعلان النسخة المجتمعية لدى مطوري الأداة في عام ٢٠٢٣، لذلك قد تختلف تفاصيل الواجهة عن إصدارك. فيها مستخدم متصل بمجموعة، والمجموعة مرتبطة بأجهزة كثيرة بصلاحية إدارة محلية. الجانب المهم مو كثرة الأيقونات؛ المهم أن علاقة عضوية واحدة تفسر كيف وصل أثر الصلاحية إلى أكثر من جهاز.

هذا النوع من العرض يساعدك تشوف مشكلة توزيع صلاحيات قد تضيع بين قوائم منفصلة. لكنه ما يعني أن كاتب الصورة نفذ وصولًا فعليًا إلى كل جهاز، ولا أن نفس الأرقام تنطبق على بيئتك.

مصدر اللقطة الخارجية:
https://specterops.io/blog/2023/08/08/bloodhound-community-edition-a-new-era/

وش دور الأداة أصلًا؟

تستخدم الأداة بيانات عن الهويات والعضويات والصلاحيات والعلاقات، ثم تعرضها في رسم يمكنك البحث فيه. الدائرة أو العقدة تمثل عنصرًا مثل مستخدم أو مجموعة أو جهاز، والخط يمثل علاقة من نوع محدد بين عنصرين.

أداة جمع البيانات شيء، وواجهة تحليلها شيء آخر. في لاب الاكتف دايركتوري، غالبًا تتعامل مع جامع البيانات الخاص بالبيئة ثم تستورد الناتج. إذا لم تجمع نوعًا معينًا من العلاقات، ما يصح تتوقع أن يظهر كاملًا في الرسم. وإذا كان الملف قديمًا، النتيجة مرتبطة بوقت الجمع.

فكر فيها مثل خريطة مبنية على مسح: تفيدك في اختيار ما تتحقق منه، لكنك تحتاج تعرف مصدر المسح وحدوده قبل اتخاذ قرار على أساسه.

أول تجربة تبدأ من عنصر تعرفه

جهز لابًا تملكه أو استخدم البيانات النموذجية الرسمية. لا تجعل أول تمرين على دومين عمل حقيقي فيه حسابات ما تعرف أصحابها. اختر مستخدمًا تدريبيًا تعرف اسمه وعضوية واحدة له، ثم ابحث عنه بعد الاستيراد.

في صفحة الاستكشاف تقدر تبحث بالاسم أو معرّف العنصر، وتقارن نوع النتيجة والدومين قبل اختيارها. لو ظهرت أسماء متشابهة، لا تضغط أول اقتراح لمجرد أن الاسم مألوف. افتح تفاصيل العنصر وتأكد أنه الحساب المقصود.

هدف التجربة الأولى بسيط: تطابق المستخدم والعضوية مع معلومة معروفة مسبقًا. إذا فشل التطابق، حل المشكلة هنا قبل ما تطلب مسارًا معقدًا وتضيع بين احتمالات أكثر.

كيف تقرأ العضوية المتداخلة؟

خلنا نفترض أن حساب التدريب عضو في مجموعة الدعم، ومجموعة الدعم عضو في مجموعة صيانة أجهزة اللاب. أول خط يثبت علاقة عضوية الحساب بمجموعة الدعم، والثاني يبين إدخال مجموعة الدعم داخل مجموعة الصيانة. اسم العلاقة التقني الذي قد تشوفه هو:
MemberOf
إذا وصلت السلسلة إلى مجموعة لها صلاحية على جهاز، اشرح كل مرحلة لحالها. لا تقل إن الحساب «عضو مباشر» في المجموعة الأخيرة إذا وصل لها عبر مجموعة وسيطة.

المجموعة الوسيطة مهمة عند المعالجة. حذف حساب واحد قد يترك باقي الأعضاء في نفس الوضع، بينما مراجعة التفويض عند المجموعة المناسبة قد تعالج السبب. وفي المقابل، إزالة المجموعة كلها بدون فهم غرضها قد توقف عملًا مشروعًا؛ الرسم يعطيك موضع السؤال، وليس قرار التغيير وحده.

ابحث عن مسار له بداية ونهاية واضحتان

بعد ما تفهم العلاقات المباشرة، استخدم البحث عن المسارات بين الحساب التدريبي والجهاز الذي حددته في التمرين. اختيار نهاية واحدة أفضل للتعلم من طلب الوصول إلى كل العناصر المهمة دفعة واحدة.

تقدر تضيق أنواع العلاقات المعروضة حتى تركز على السؤال. لكن انتبه: إذا استبعدت نوعًا من العلاقات، فإن عدم ظهور مسار لا يعني أنه غير موجود في كل البيانات؛ قد يكون أنت أخفيت النوع الذي يوصله. سجل المرشحات التي استخدمتها مع النتيجة.

كذلك أقصر مسار في الرسم لا يساوي بالضرورة أسهل إجراء عملي أو أقل إجراء أثرًا. كل علاقة لها شروط وسياق، وبعض الخطوات قد تتعارض مع حدود المهمة. اقرأ وصف العلاقة قبل التفكير في أي تحقق تنفيذي.

وين ينتهي الدليل وتبدأ الفرضية؟

وجود علاقة صلاحية يشير إلى قدرة محتملة ضمن شروطها. أما إثبات أن الحساب استطاع أداء عملية على جهاز حي، فهذا نوع آخر من الأدلة. افصل الاثنين في ملاحظاتك: معلومة مستوردة، واستنتاج من المسار، وتحقق عملي مصرح إن أجريته.

لا تستخدم اسمًا واسعًا مثل «الدومين مخترق» لو كل ما عندك مسار يحتاج عدة افتراضات. قد تكون البيانات قديمة، أو المورد غير متاح، أو العلاقة مقيدة، أو جزء من الطريق خارج النطاق. هالحدود ما تقلل قيمة الاكتشاف؛ بالعكس، توضح للفريق أين يحتاج التحقق.

والعلاقات التي تعتمد على جلسات مستخدمين تحتاج انتباهًا خاصًا للوقت. جلسة شوهدت وقت الجمع ما تضمن استمرارها، ولا تجعل كل استنتاج متعلق بها حقيقة ثابتة.

كيف تتدرب بدون ما تتحول إلى حافظ استعلامات؟

جرب ثلاث حالات صغيرة في اللاب: حساب بعضوية مباشرة، وحساب يصل عبر مجموعة وسيطة، وحساب لا يفترض أن يصل للمورد. قبل البحث، ارسم السلسلة في ملاحظاتك بالكلمات، ثم قارن توقعك بما ظهر.

إذا اختلفت النتيجة، غيّر سؤالًا واحدًا: هل قرأت الحساب الصحيح؟ هل جمعت العضويات؟ هل المورد المقصود هو نفس العنصر؟ هل فلتر العلاقات يخفي خطوة؟ لا تقفز لتشغيل جمع شامل كل مرة؛ هذا يزيد البيانات قبل أن تفهم المشكلة.

بعد فهم الحالة، اكتب فقرة قصيرة تشرحها لمسؤول أنظمة: من لديه الوصول، وكيف وصل إليه، ولماذا قد يكون زائدًا، وما المعلومة التي تحتاج تأكيدًا. هذا التدريب يخدمك في شهادات الاكتف دايركتوري وفي العمل اليومي.

خذ من الخريطة نتيجة قابلة للمراجعة

أفضل مخرج من أول جلسة تعلم ليس لقطة كبيرة مليانة خطوط. هو مسار صغير تستطيع شرح كل علاقة فيه، مع مصدر البيانات ووقت جمعها والحدود التي لم تتحقق منها. احفظ الأسماء المنقحة والعلاقات اللازمة فقط إذا كنت ستشارك المثال علنًا.

عند مراجعة مشكلة حقيقية، اربط المسار بأصل مهم وغرض وظيفي، ثم ناقش موضع التفويض الزائد مع مالكه. وقد يكون السؤال المفيد: لماذا مجموعة دعم عامة تدير هذا الجهاز أصلًا؟ هذا أحيانًا أنفع من إضافة خطوة جديدة إلى مسار طويل.

مراجع المشروع والبحث في الواجهة:
https://github.com/SpecterOps/BloodHound
https://bloodhound.specterops.io/analyze-data/explore/search