
مُحدِّث رسوم بيانية آلي لـ BloodHound للفرق الزرقاء. يُثري مسارات الهجوم في Active Directory ببيانات الجلسات والمجموعات و CVEs في الوقت الفعلي من أنظمة SIEM، مما يتيح المراقبة والتنبيه المستمرين.

اعتبارًا من إصدار BloodHound CE 7.0، تم تبديل قاعدة البيانات الافتراضية إلى Postgres. لا يزال إصدار FalconHound هذا يعتمد على Neo4j كقاعدة بيانات افتراضية.
إذا كنت ترغب في الاستمرار في استخدام FalconHound أثناء تشغيل أحدث إصدار من BloodHound، أضف السطر التالي إلى ملف bloodhound.config.json الخاص بك.```json "graph_driver": "neo4j",
فريق BloodHound سيستمر في دعم Neo4j لمدة عام على الأقل. في هذا الإطار الزمني، نأمل أن يكون هناك إما تحسين كبير لواجهة API أو أننا قمنا بتطبيق دعم PGSQL في FalconHound.
---
FalconHound هو أداة متعددة الاستخدامات لفريق الدفاع. يتيح لك استخدام وتعزيز قدرات BloodHound بطريقة أكثر تلقائية. صُمم لاستخدامه مع نظام SIEM أو أداة أخرى لتجميع السجلات.
أحد الجوانب الصعبة في BloodHound هو أنه يمثل لقطة زمنية. يتضمن FalconHound وظائف يمكن استخدامها للحفاظ على رسم بياني لبيئتك محدثة باستمرار. يتيح لك ذلك رؤية بيئتك كما هي الآن. وهذا مفيد بشكل خاص للبيئات التي تتغير باستمرار.
من أصعب العلاقات التي يجب جمعها لـ BloodHound هي عضويات المجموعات المحلية ومعلومات الجلسات. كفريق دفاعي، لدينا هذه المعلومات متاحة بسهولة في سجلاتنا. يمكن استخدام FalconHound لجمع هذه المعلومات وإضافتها إلى الرسم البياني، مما يسمح باستخدامها بواسطة BloodHound.
هذا مجرد مثال على كيفية استخدام FalconHound. يمكن استخدامه لجمع أي معلومات لديك في سجلاتك أو أدواتك الأمنية وإضافتها إلى رسم بياني BloodHound.
بالإضافة إلى ذلك، يمكن استخدام الرسم البياني لتشغيل التنبيهات أو إنشاء قوائم إثراء.
على سبيل المثال، إذا تم إضافة مستخدم إلى مجموعة معينة، يمكن استخدام FalconHound للاستعلام عن قاعدة بيانات الرسم البياني للعثور على أقصر مسار إلى مجموعة حساسة أو ذات امتيازات عالية. إذا كان هناك مسار، يمكن تسجيل ذلك في نظام SIEM أو استخدامه لتشغيل تنبيه.
أمثلة أخرى حيث يمكن استخدام FalconHound:
- إضافة أو إزالة أو إنهاء مهلة الجلسات في الرسم البياني، بناءً على أحداث تسجيل الدخول والخروج.
- وضع علامة على المستخدمين وأجهزة الكمبيوتر كمخترقين في الرسم البياني عند وجود حادث في Sentinel أو MDE.
- إضافة معلومات CVE وما إذا كان هناك استغلال عام متاح إلى الرسم البياني.
- جميع أنواع أنشطة Azure.
- إعادة حساب أقصر مسار إلى المجموعات الحساسة عند إضافة مستخدم إلى مجموعة أو الحصول على دور جديد.
- إضافة مستخدمين ومجموعات وأجهزة كمبيوتر جديدة إلى الرسم البياني.
- إنشاء قوائم إثراء لـ Sentinel و Splunder، على سبيل المثال، المستخدمين القابلين لـ Kerberoast أو المستخدمين الذين يمتلكون كيانات معينة.
الإمكانيات لا حصر لها هنا. يرجى إضافة المزيد من الأفكار إلى متتبع المشكلات أو تقديم طلب سحب.
مدونة تشرح بالتفصيل سبب تطويرنا لها وبعض الأمثلة على حالات الاستخدام يمكن العثور عليها [هنا](https://medium.com/falconforce/falconhound-attack-path-management-for-blue-teams-42adedc9cae5?source=friends_link&sk=9f64b6b3028c5a2a6087d63b4fd2c82f)
فهرس:
- [مصادر البيانات والأهداف المدعومة](#supported-data-sources-and-targets)
- [التثبيت](#installation)
- [الاستخدام](#usage)
- [الإجراءات](#actions)
- [إضافات إلى الرسم البياني](#extensions-to-the-graph)
- [إدارة بيانات الاعتماد](#credential-management)
- [النشر](#deployment)
- [الترخيص](#license)
## مصادر البيانات والأهداف المدعومة
تم تصميم FalconHound لاستخدامه مع BloodHound. إنه ليس بديلاً عن BloodHound. تم تصميمه للاستفادة من قوة BloodHound وجميع منصات البيانات الأخرى التي يدعمها بطريقة تلقائية.
حاليًا، يدعم FalconHound مصادر البيانات و/أو الأهداف التالية:
- Azure Sentinel
- Azure Sentinel Watchlists
- Splunk
- Microsoft Defender for Endpoint
- Neo4j
- MS Graph API (مرحلة مبكرة)
- ملفات CSV
- Azure Data Explorer (ADX) - تجريبي
- LogScale
- BloodHound CE و BHE (مرحلة مبكرة)
- ملفات MarkDown
- Elastic (مرحلة مبكرة)
مصادر وأهداف بيانات إضافية مخطط لها في المستقبل.
في هذه اللحظة، يدعم FalconHound فقط قاعدة بيانات Neo4j لـ BloodHound. دعم API لـ BH CE و BHE قيد التطوير النشط.
---
## التثبيت
نظرًا لأن FalconHound مكتوب بلغة Go، فلا حاجة للتثبيت. فقط قم بتنزيل الملف الثنائي من قسم الإصدارات وقم بتشغيله.
تتوفر ملفات ثنائية مترجمة لأنظمة Windows و Linux و MacOS. يمكنك العثور عليها في قسم [الإصدارات](https://github.com/FalconForceTeam/FalconHound/releases).
قبل أن تتمكن من تشغيله، تحتاج إلى إنشاء ملف تكوين. يمكنك العثور على ملف تكوين مثال في المجلد الجذر. تعليمات حول كيفية إنشاء جميع بيانات الاعتماد يمكن العثور عليها [هنا](https://github.com/falconforceteam/falconhound/blob/main/docs/required_permissions.md).
الطريقة الموصى بها لتشغيل FalconHound هي تشغيله كمهمة مجدولة أو وظيفة cron. سيسمح لك ذلك بتشغيله بانتظام والحفاظ على الرسم البياني والتنبيهات والإثراءات محدثة.
### المتطلبات
- BloodHound، أو على الأقل قاعدة بيانات Neo4j في الوقت الحالي.
- نظام SIEM أو أداة أخرى لتجميع السجلات. حاليًا، يتم دعم Azure Sentinel و Splunk.
- بيانات اعتماد لكل نقطة نهاية تريد التحدث معها، مع [الأذونات المطلوبة](https://github.com/falconforceteam/falconhound/blob/main/docs/required_permissions.md).
### التكوين
يتم تكوين FalconHound باستخدام ملف YAML. يمكنك العثور على ملف تكوين مثال في المجلد الجذر.
كل قسم من ملف التكوين موضح أدناه.
---
## الاستخدام
#### التشغيل الافتراضي
لتشغيل FalconHound، فقط قم بتشغيل الملف الثنائي وأضف المعامل `-go` لتشغيل جميع الاستعلامات في مجلد الإجراءات.```bash
./falconhound -go
لسرد جميع الإجراءات المفعلة، استخدم المعامل -actionlist. سيقوم هذا بإدراج جميع الإجراءات المفعلة في ملفات التهيئة في مجلد الإجراءات. يجب استخدام هذا مع المعامل -go.```bash
./falconhound -actionlist -go
### التشغيل باستخدام مجموعة محددة من الإجراءات
لتشغيل مجموعة محددة من الإجراءات، استخدم المعامل `-ids` متبوعًا بمعرّف إجراء واحد أو قائمة من معرّفات الإجراءات مفصولة بفواصل. سيؤدي هذا إلى تشغيل الإجراءات المحددة في المعامل، وهو ما قد يكون مفيدًا جدًا عند الاختبار أو استكشاف الأخطاء أو عندما تحتاج إلى تحديثات محددة وأكثر تواترًا. يجب استخدام هذا مع المعامل `-go`.```bash
./falconhound -ids action1,action2,action3 -go
بشكل افتراضي، سيبحث FalconHound عن ملف إعدادات في الدليل الحالي. يمكنك أيضًا تحديد ملف إعدادات باستخدام العلامة -config. يتيح لك ذلك تشغيل مثيلات متعددة من FalconHound بإعدادات مختلفة، ضد بيئات مختلفة.```bash
./falconhound -go -config /path/to/config.yml
#### التشغيل باستخدام مجلد إجراءات مختلف
بشكل افتراضي، سيبحث FalconHound عن مجلد الإجراءات في الدليل الحالي. يمكنك أيضًا تحديد مجلد مختلف باستخدام العلم `-actions-dir`. وهذا يسهل عملية الاختبار واستكشاف الأخطاء وإصلاحها، ولكنه يسمح لك أيضًا بتشغيل مثيلات متعددة من FalconHound بإعدادات مختلفة، ضد بيئات مختلفة، أو في فترات زمنية مختلفة.```bash
./falconhound -go -actions-dir /path/to/actions
بشكل افتراضي، سيستخدم FalconHound بيانات الاعتماد الموجودة في config.yml (أو ملف مخصص تم تحميله). عن طريق تعيين العلم -keyvault، سيحصل FalconHound على keyvault من الإعدادات ويسترد جميع الأسرار منه. إذا كانت هناك عناصر مفقودة في keyvault، فسيتم الرجوع إلى ملف الإعدادات. إذا كنت ترغب في الحصول على الأسرار من azure keyvault باستخدام هوية مُدارة، فقم بتعريف متغير authtype على أنه msi.```bash
./falconhound -go -keyvault
---
## الإجراءات
الإجراءات هي جوهر FalconHound. وهي الاستعلامات التي سيقوم FalconHound بتشغيلها. وهي مكتوبة باللغة الأصلية للمصدر والهدف، ويتم تخزينها في مجلد الإجراءات. كل إجراء هو ملف منفصل ويتم تخزينه في دليل مصدر المعلومات، هدف الاستعلام. يُستخدم اسم الملف كاسم الإجراء.
### هيكل مجلد الإجراءات
ينقسم مجلد الإجراءات إلى مجلدات فرعية حسب مصدر الاستعلام. ستتم معالجة جميع المجلدات بشكل متكرر، وسيتم تنفيذ جميع ملفات YAML بترتيب أبجدي.
يجب معالجة إجراءات Neo4j **في النهاية**، لأن مخرجاتها تعتمد على مصادر بيانات أخرى لتحديث قاعدة بيانات الرسم البياني أولاً، للحصول على أحدث النتائج.
### ملفات الإجراءات