Integration type
The SpecterOps BloodHound Enterprise integration is a vulnerability management integration that enables automated retrieval of attack path findings from BloodHound Enterprise into Cortex XSOAR. This streamlines incident creation and investigation for Active Directory and Microsoft Azure environments.Use cases
Automated attack path detection and incident creation
Automated attack path detection and incident creation
- Automatically fetch new attack paths from BloodHound Enterprise
- Create incidents in XSOAR for each detected attack path
- Filter incidents by domain and finding type
- Track attack paths with granular timestamp-based deduplication
Asset information retrieval
Asset information retrieval
- Retrieve detailed information about Active Directory and Azure assets
- Enrich incident data with asset details including object IDs, names, and properties
- Support for both directory types (User, Computer, Group, Container, Domain, GPO, etc.) and Azure types (AZApp, AZGroup, AZUser, AZRole, AZTenant, AZServicePrincipal, etc.)
Path analysis and investigation
Path analysis and investigation
- Check if attack paths exist between two principals in the environment
- Search for objects by name to retrieve their object IDs
- Analyze relationships between principals and assets
Multi-domain and multi-finding type support
Multi-domain and multi-finding type support
- Support for multiple Active Directory domains
- Filter by specific domains or finding types
- Track attack paths per domain and finding type combination
Authentication
The integration uses HMAC-based signature authentication with the following process:- Generate HMAC signature using SHA-256 with the token key
- Include token ID, request date, and signature in request headers
- Format:
Authorization: bhesignature {token_id} - Include
RequestDateheader in ISO format - Include
Signatureheader as base64-encoded HMAC digest
Configuration parameters
Commands and outputs
test-module
Tests the connection to the BloodHound Enterprise API. Arguments: None Context outputs: None Human-readable output:- Success: “ok”
- Failure: Error message indicating the specific failure reason (Unauthorized, Bad Request, Forbidden, Server Error, DNS resolution error, etc.)
bhe-get-object-id
Retrieves object IDs for one or more objects by their names. Arguments:
Context outputs:
Human-readable output:
Object ID Search Results
bhe-fetch-asset-info
Retrieves detailed information about one or more assets by their object IDs. Arguments:
Context outputs:
Human-readable output:
Asset Information
For Azure objects, the response includes additional related entity counts such as group membership counts, role assignments, inbound/outbound control counts, and abusable app role assignments (for service principals).
bhe-does-path-exist
Checks if an attack path exists between two principals in the BloodHound Enterprise graph. Arguments:
Context outputs:
Human-readable output:
Path Existence Check
fetch-incidents
Fetches attack path findings from BloodHound Enterprise and creates incidents in XSOAR (automatically executed whenisFetch is enabled).
Arguments: None
Context outputs:
Fetch logic:
- Lock Mechanism: Uses integration context to prevent concurrent fetch operations
- Domain Filtering: Fetches available domains and filters by
finding_domainparameter - Finding Type Collection: Collects available finding types for each domain
- Finding Type Filtering: Filters finding types by
finding_categoryparameter - Path Metadata Fetching: Retrieves titles, descriptions, and remediation guidance for each finding type
- Incremental Fetching: Uses timestamp-based filtering to only fetch new attack paths since last run
- Granular Tracking: Tracks timestamps per
{domain_name}:{finding_type}combination for precise deduplication - Pagination: Handles pagination for large result sets (up to 1000 results per page)
- Incident Creation: Creates one incident per attack path with all relevant metadata
API endpoints
The integration uses the following BloodHound Enterprise API v2 endpoints:Supported object types
Active Directory types
- User
- Computer
- Group
- Container
- Domain
- GPO (Group Policy Object)
- Aiaca
- Rootca
- Enterpriseca
- Ntauthstore
- Certtemplate
- OU (Organizational Unit)
Azure types
- AZApp (Azure Application)
- AZGroup (Azure Group)
- AZUser (Azure User)
- AZRole (Azure Role)
- AZTenant (Azure Tenant)
- AZServicePrincipal (Azure Service Principal)
- AZAutomationAccount (Azure Automation Account)
Error handling
The integration implements comprehensive error handling with specific exception types:Retry logic
- Automatic retry for rate limit (429) and server errors (500, 502, 503, 504)
- Maximum of 3 retry attempts
- Immediate retry without exponential backoff
Memory limitation handling
- Gracefully handles memory limitation errors for large queries (especially for AZTenant)
- Returns appropriate error messages when memory limits are encountered
- Sets related entity counts to 0 when memory limitations occur