
Detección consciente de la puntuación de rutas de ataque de BloodHound: la ruta más silenciosa hacia tu objetivo, calibrada en cinco niveles de detección (auditoría/EDR/Elastic/MDI/WDAC) más Azure.

Puntuación de rutas de ataque de Active Directory consciente de la detección. DreadHost Research | complemento de OffsetInspect (PowerShell) y OffsetScan (Rust)
BloodHound (y PlumHound sobre él) encuentra una ruta hacia el objetivo. NoiseHound ingiere los mismos datos de grafo y re-clasifica las rutas según el coste de detección esperado en lugar del número de saltos, de modo que un operador pueda preguntar "cuál es la forma más silenciosa de llegar a Domain Admin" en lugar de solo "cuál es una forma".
¿Nuevo aquí? El Tutorial para operadores es la forma más rápida de ver qué hace esto - un recorrido práctico guiado por capturas de pantalla desde la instalación hasta una prueba de concepto en vivo con BloodHound CE (puntuaciones escritas de vuelta en la interfaz), el motor DeadAir y el informe de brechas de detección del equipo azul.
Estado del proyecto (v1.2.0): estable y probado con datos reales de BloodHound en múltiples dominios. 37 de los 77 bordes del corpus están medidos en laboratorio en cinco niveles de detección on-prem (auditoría de Windows, Defender for Endpoint, Elastic SIEM, alertas de runtime de Defender for Identity y auditoría de WDAC) más un nivel medido de Azure/Entra
- distribuidos como seis perfiles listos para usar en
profiles/, con prueba de bucle cerrado de que cambian las clasificaciones de rutas (docs/VALIDATION.md). El corpus incluye 13 bordes de Azure/Entra (docs/AZURE.md), ingeribles directamente desde la salida de AzureHound. Los bordes on-prem no medidos y todos los bordes de Azure llevan estimaciones de expertos; el arnés de calibración (noisehound-calibrate) es cómo se miden ellos, y su propio entorno. Trate las clasificaciones no calibradas como una guía bien razonada, no como verdad absoluta.
Solo para compromisos autorizados. Esta herramienta puntúa rutas de ataque para la planificación de OPSEC contra sistemas sobre los que tiene permiso por escrito para probar.
NoiseHound es un proyecto comunitario independiente. No está afiliado con, respaldado por, ni asociado con SpecterOps o el proyecto BloodHound; consume el formato de datos abierto de BloodHound.
.zip), un archivo JSON sin procesar o un directorio
de exportaciones en un grafo interno. También se acepta un formato JSON normalizado {nodes, edges}
para análisis sin conexión y pruebas. Los bordes de escalada ESC1-8 de AD CS
se sintetizan en el momento de la carga a partir de las plantillas de certificado y los hechos de CA
que BloodHound recopila (ver más abajo).effective_noise_score (0-100). Cuando varios derechos conectan el mismo par
de nodos, se elige el más silencioso. Los tipos de borde ausentes del corpus
usan por defecto una puntuación conservadora (60) para que las brechas fallen de forma segura en lugar de
subestimar. Un perfil de entorno opcional ajusta las puntuaciones según la postura de
detección declarada del objetivo (ver más abajo).El ruido de ruta deliberadamente no es una suma simple. Activar la misma detección dos veces no es el doble de ruidoso (triaje del SOC, no recuento bruto de eventos). NoiseHound usa:``` path_score = max(edge_scores) * 0.6 + mean(edge_scores) * 0.4
This weights toward the loudest single step (one bad step often burns the whole
op) while still accounting for cumulative exposure. The weights are configurable
(`--max-weight` / `--mean-weight`) so they can be tuned empirically once real
detection data is available from an APT29/Caldera lab.
Every path also reports a **detection probability** - the chance it trips a
correlated alert - blending the loudest edge with the cumulative noisy-OR of all
edges (tuned by `--correlation`). It answers a different question than the noise
score: a short but loud path can have a *lower* overall probability of being
caught than a long but quiet one. Rank by it with `--rank-by probability`.
### Motor de dos niveles (DeadAir)
Para grafos grandes, la resolución se delega en [DeadAir](https://github.com/warpedatom/DeadAir), un motor
compañero en Rust (el nivel OffsetScan-to-OffsetInspect). NoiseHound sigue siendo el
frontend rico en funciones - ingesta, corpus, entorno/Sigma, restricciones,
informes - y entrega el grafo preparado al motor que lo resuelva, de modo que
los resultados son idénticos en ambos casos.
- `--engine auto` (predeterminado): DeadAir cuando su binario se encuentra *y* el grafo es
grande (>= 5000 nodos); el solucionador Python integrado en caso contrario.
- `--engine python`: fuerza el solucionador integrado (no se necesita binario).
- `--engine rust`: fuerza DeadAir (da error si el binario falta).
DeadAir se localiza mediante `$NOISEHOUND_DEADAIR`, luego `PATH`, y después la compilación
hermana `../deadair/target/{release,debug}/`. Es 10-100x más rápido en grafos grandes
(un grafo de 250k nodos se resuelve en ~2s frente a ~30s en Python) mientras produce clasificaciones
byte-idénticas. La salida registra qué motor se ejecutó.
### Enrutamiento multiobjetivo y con restricciones