
Pontuação de caminhos de ataque do BloodHound com reconhecimento de deteção - a rota mais silenciosa para o seu objetivo, calibrada em cinco níveis de deteção (audit/EDR/Elastic/MDI/WDAC) mais Azure.

Pontuação de caminhos de ataque em Active Directory com reconhecimento de detecção. DreadHost Research | complementar ao OffsetInspect (PowerShell) e ao OffsetScan (Rust)
O BloodHound (e o PlumHound por cima dele) encontra um caminho até o objetivo. O NoiseHound ingere os mesmos dados de grafo e reordena os caminhos pelo custo esperado de detecção em vez do número de saltos, para que um operador possa perguntar "qual é a forma mais silenciosa de chegar a Domain Admin" em vez de apenas "qual é uma forma".
Novo por aqui? O Operator Walkthrough é a forma mais rápida de ver o que isto faz - um tour prático, com capturas de ecrã, desde a instalação até uma prova de conceito ao vivo com o BloodHound CE (pontuações escritas de volta na UI), o motor DeadAir, e o relatório de lacunas de detecção para a equipa azul.
Estado do projeto (v1.2.0): estável e testado com dados reais do BloodHound em múltiplos domínios. 37 das 77 arestas do corpus são medidas em laboratório em cinco níveis de deteção on-prem (auditoria do Windows, Defender for Endpoint, Elastic SIEM, alertas em tempo de execução do Defender for Identity e auditoria WDAC) mais um nível Azure/Entra medido - disponibilizados como seis perfis prontos a usar em
profiles/, com prova de ciclo fechado de que alteram o ranking dos caminhos (docs/VALIDATION.md). O corpus inclui 13 arestas Azure/Entra (docs/AZURE.md), ingeríveis diretamente a partir da saída do AzureHound. As arestas on-prem não medidas e todas as arestas Azure têm estimativas de especialistas; o harness de calibração (noisehound-calibrate) é a forma de as medir, a elas e ao seu próprio ambiente. Trate os rankings não calibrados como orientação bem fundamentada, não como verdade absoluta.
Apenas para engagements autorizados. Esta ferramenta pontua caminhos de ataque para planeamento OPSEC contra sistemas para os quais tem permissão escrita de teste.
O NoiseHound é um projeto comunitário independente. Não está afiliado, aprovado ou associado à SpecterOps ou ao projeto BloodHound; consome o formato de dados aberto do BloodHound.
.zip), um ficheiro JSON em bruto ou um diretório
de exportações para um grafo interno. Um formato JSON normalizado {nodes, edges} também
é aceite para análise offline e testes. As arestas de escalada ESC1-8 do AD CS
são sintetizadas no momento do carregamento a partir dos factos de modelos de certificado e CA
que o BloodHound recolhe (ver abaixo).effective_noise_score (0-100). Quando vários direitos ligam o mesmo par
de nós, é escolhido o mais silencioso. Os tipos de aresta ausentes do corpus assumem
por defeito uma pontuação conservadora (60), para que as lacunas falhem em segurança em vez de subnotificarem.
Um perfil de ambiente opcional ajusta as pontuações à postura de deteção declarada
do alvo (ver abaixo).O ruído do caminho não é deliberadamente uma soma simples. Acionar a mesma deteção duas vezes não é duas vezes mais ruidoso (triagem de SOC, não contagem bruta de eventos). O NoiseHound usa:
path_score = max(edge_scores) * 0.6 + mean(edge_scores) * 0.4
Isso pondera para o passo único mais ruidoso (um passo ruim frequentemente compromete toda a operação) enquanto ainda contabiliza a exposição cumulativa. Os pesos são configuráveis (--max-weight / --mean-weight) para que possam ser ajustados empiricamente assim que dados reais de detecção estiverem disponíveis a partir de um laboratório APT29/Caldera.
Cada caminho também reporta uma probabilidade de detecção - a chance de disparar um alerta correlacionado - combinando a aresta mais ruidosa com o OR ruidoso cumulativo de todas as arestas (ajustado por --correlation). Ela responde a uma pergunta diferente da pontuação de ruído: um caminho curto mas ruidoso pode ter uma probabilidade geral menor de ser detectado do que um longo mas silencioso. Ordene por ela com --rank-by probability.
Para grafos grandes, a resolução é despachada para o DeadAir, um motor Rust companheiro (o nível OffsetScan-to-OffsetInspect). O NoiseHound permanece como o frontend rico em recursos - ingestão, corpus, ambiente/Sigma, restrições, relatórios - e entrega o grafo preparado para o motor que o resolver, de modo que os resultados são idênticos de qualquer forma.
--engine auto (padrão): DeadAir quando seu binário é encontrado e o grafo é grande (>= 5000 nós); o solucionador Python integrado caso contrário.--engine python: força o solucionador integrado (nenhum binário necessário).--engine rust: força o DeadAir (gera erro se o binário estiver ausente).O DeadAir é encontrado via $NOISEHOUND_DEADAIR, depois PATH, depois a compilação irmã ../deadair/target/{release,debug}/. Ele é 10-100x mais rápido em grafos grandes (um grafo de 250k nós resolve em ~2s vs ~30s em Python) enquanto produz rankings byte-idênticos. A saída registra qual motor foi executado.