Home Comunidade Eventos YouTube Networks Desafios // produtos Academy News CTI | CVE Contato

02 - MET.2 - KPIs do Programa de Threat Hunting

video explicativo
Video explicativoEspaco reservado para o video desta anotação — adicione video: https://youtu.be/... no frontmatter da nota.

MET.2 - KPIs do Programa de Threat Hunting

Nota do grupo MET (Métricas, KPIs e Medição) da seção 15 do Framework CTH.
Deriva do Capítulo 19 do PDF de referência, controle MET.2, com os subcontroles MET.2.1 a MET.2.5.
Define os indicadores que provam o valor do Threat Hunting mesmo quando a caça não encontra nada, orientando o equilíbrio entre volume, profundidade e impacto duradouro na capacidade de detecção.

1. Contexto e Posicionamento no Framework CTH

Medir Threat Hunting é mais difícil do que medir qualquer outra atividade do programa, porque a caça é uma atividade de exploração: o resultado positivo mais valioso, descobrir um invasor que nenhuma regra pegou, é por definição raro e imprevisível. Sem métricas bem escolhidas, o programa de hunting fica refém da percepção, e uma sequência de meses sem achados pode ser lida tanto como prova de defesa madura quanto como prova de trabalho malfeito. O MET.2 existe para dar à liderança e ao próprio time uma leitura honesta dessa ambiguidade, usando indicadores de disciplina, velocidade e consequência em vez de apenas contagem de achados.

No Framework CTH, o MET.2 consome os registros de hunts definidos pela metodologia do TH.4, a fila de priorização do TH.5 e os templates de hipótese do TH.6, transformando esses registros em indicadores. Ele também alimenta o ciclo integrado do INT.2, que exige que achados de hunting virem inteligência e detecção formalizadas. A dependência inversa é igualmente importante: sem o registro estruturado do hunt, proposto na seção 7, não existe matéria-prima para a métrica, e o programa volta a medir por memória e impressão.

Cada público lê o mesmo conjunto de indicadores com profundidade diferente, e a cadência separa essas leituras. O time revisa a carteira em retrospectiva quinzenal, olhando hunts em andamento, estados pendentes e lições da semana; o gestor do programa fecha o mês com os KPIs da seção 3, comparando contra meta e contra o mês anterior; o reporte executivo do MET.5 recebe apenas o resumo trimestral com valor entregue, achados convertidos e lacunas fechadas. Manter três alturas de leitura evita os dois excessos clássicos, que são o painel tão técnico que a liderança ignora e o resumo tão resumido que o time perde o espelho de sua própria operação.

2. O Desafio de Medir uma Atividade Cujo Sucesso Pode Ser o Vazio

Uma caça sem achado ainda tem valor quando valida uma hipótese com dados de qualidade e melhora a detecção, seja confirmando que o ambiente está limpo para aquela técnica, seja expondo uma lacuna de telemetria que agora pode ser fechada. O problema é que esse valor é invisível na métrica ingênua de achados por mês. Um time que caça com hipóteses bem formuladas sobre adversários reais pode passar um trimestre sem verdadeiro positivo e, ainda assim, ter executado o trabalho defensivamente mais valioso do ano, justamente porque as técnicas investigadas estavam silenciosas.

A resposta do MET.2 é separar três dimensões que a métrica ingênua mistura: a disciplina de execução, que mede se o plano de hunts planejado foi executado; a eficiência, que mede tempo e custo por hunt; e a consequência, que mede o que sobrou de duradouro após cada hunt, como detecção nova, inteligência produzida, lacuna de dados fechada ou melhoria de processo. Um programa saudável mostra atividade consistente na primeira dimensão, estabilidade na segunda e um fluxo contínuo, ainda que pequeno, na terceira. Avaliar hunting apenas pela terceira dimensão é injusto, porque o achado depende do adversário, e avaliar apenas pela primeira é vazio, porque mede burocracia.

3. KPIs Recomendados do Programa de Threat Hunting

A tabela a seguir consolida os indicadores essenciais, com definição, fonte de dado e meta exemplificada. As metas ilustram um programa de porte médio e devem ser calibradas com baseline própria, conforme a seção 6.

KPI Definição e fórmula Fonte de dado Meta exemplificada
Hipóteses executadas por período Contagem de hunts concluídos com relatório no mês, por tipo (intelligence-driven, hypothesis-driven, anomaly-driven) Sistema de gestão de hunts ou plataforma de casos 4 no nível 3, 8 no nível 4, 12 no nível 5
Taxa de hipóteses concluídas (Hunts concluídos com estado final definido / hunts planejados no período) x 100 Kanban do TH.5 e registros do TH.4 60% no nível 3, 95% no nível 5
Taxa de hunts que geram detecção nova (Hunts com pelo menos uma detecção implantada / hunts concluídos) x 100 Repositório de detecções do AUT.3 vinculado ao registro do hunt 20% a 40%, conforme tipo de hunt
Tempo médio por hunt Mediana do intervalo entre início e encerramento, segmentado por tipo de hunt Campos de data do template de registro Menos de 40 horas no nível 3, menos de 16 no nível 5
Lacunas de dados encontradas e fechadas Contagem de lacunas de visibilidade identificadas e percentual fechado em 90 dias Campo de lacuna do registro, cruzado com o inventário do TH.1 100% das lacunas críticas com plano em 30 dias
Achados convertidos em inteligência Contagem de achados que geraram entrada no TIP ou atualização de perfil de ameaça pelo INT.2 TIP e registro de hunts Toda confirmação gera registro em 5 dias úteis

A segmentação por tipo de hunt é obrigatória na leitura de todos esses indicadores. Hunts orientados por inteligência tendem a ter taxa de achado maior quando o relatório de CTI é relevante; hunts de hipótese pura, derivados de lacunas do ATT&CK ou de baselines do TH.2, têm taxa menor e custo maior; hunts de anomalia, alimentados por stack counting ou clustering dos capítulos de técnicas, ficam no meio. Comparar o mês agregando os três tipos produz números que não dizem nada sobre nenhum deles.

4. Interpretando Zero Achados

Zero achado tem três explicações possíveis, e o programa precisa saber qual delas se aplica antes de comemorar ou se preocupar. A primeira é defesa boa: a hipótese era bem formulada, os dados existem, e a técnica realmente não está presente, resultado que valida a combinação de prevenção, detecção e higiene do ambiente. A segunda é hipótese ruim: a formulação era muito estreita, a técnica não se aplica à pilha tecnológica da organização ou o critério de validação estava errado. A terceira é visibilidade insuficiente: os dados necessários simplesmente não existem ou não são confiáveis, e a caça foi cega, não limpa.

A diferenciação é metodológica e testa cada explicação em ordem de custo. Primeiro confirme a visibilidade, verificando no inventário do TH.1 se as fontes declaradas na hipótese estão realmente coletando no período analisado, com volume e latência normais. Segundo, valide a telemetria com teste controlado, executando a técnica em laboratório ou com plataforma de simulação do SIM.1 e confirmando que o evento apareceria na consulta usada. Terceiro, revise a formulação, verificando se a hipótese SE-ENTÃO do TH.6 tinha critério observável e se o escopo temporal e de ativos era plausível para a técnica. Só depois desses três testes o estado "limpo, validado" pode ser atribuído ao hunt, e esse é o estado que gera valor documental: ele vira evidência de cobertura na camada de detecção daquela técnica.

Ao fim de cada trimestre, os hunts no estado limpo validado devem ser consolidados em uma camada de cobertura declarada, que lista as técnicas testadas com visibilidade confirmada e resultado negativo. Essa camada conversa com o heatmap do MAP.2 porque cobertura de detecção e cobertura de busca validada são garantias diferentes sobre a mesma técnica, e a segunda é justamente a que nenhum teste automatizado substitui.

# Estados de encerramento de hunt no registro; cada estado alimenta a métrica
estados_encerramento:
  achado_confirmado: achado validado com evidência; segue para IR e INT.2
  lacuna_de_dados: telemetria insuficiente; segue para plano de coleta (DAT.x)
  limpo_validado: visibilidade confirmada e técnica ausente; fecha cobertura
  hipotese_invalidada: formulação ruim; reescrever ou arquivar com lição
  iterar: achado parcial ou nova pista; reabrir como hunt filho

5. Equilíbrio entre Quantidade e Profundidade

Volume de hunts e profundidade de hunts disputam o mesmo recurso escasso, que é o tempo do analista. Uma carteira só de hunts rápidos, do tipo busca de IOC e varredura de presença, entrega número alto com valor curto, porque IOC envelhece em semanas e a detecção derivada costuma já existir. Uma carteira só de hunts profundos, de análise comportamental e construção de detecção do zero, entrega valor alto com frequência baixa demais para cobrir a superfície de técnicas relevantes. A prática de mercado que o MET.2 incentiva é uma carteira deliberada, com proporção definida por maturidade e revisada trimestralmente.

Uma proporção de partida saudável para o nível 3 é 50% de hunts orientados por inteligência, 30% de hipótese derivada de lacunas de cobertura e 20% de anomalia, com a fatia de inteligência crescendo conforme a maturidade do CTI aumenta. O subcontrole MET.2.2 estabelece a régua mínima de dois hunts por semana a partir do nível 3, com pelo menos metade deles orientados por inteligência. A métrica de tempo médio por hunt ajuda a calibrar: hunts de presença devem durar horas, hunts comportamentais com construção de detecção podem durar dias, e a meta precisa refletir essa diferença em vez de impor uma média única que puna os hunts longos que mais agregam.

A carteira abaixo orienta a montagem do mix por trimestre, com duração típica, taxa de achado esperada e valor predominante de cada família de hunt. A regra de gestão é limitar o trabalho em andamento e reservar capacidade: melhor cinco hunts concluídos com registro completo do que doze iniciados e abandonados, porque hunt abandonado sem estado final corrompe a taxa de conclusão e esconde o custo real do programa.

Família de hunt Duração típica Taxa de achado esperada Valor predominante
Presença de IOC e IOA de campanha ativa 2 a 8 horas Baixa Cobertura rápida e barata de janela crítica
Hipótese comportamental sobre baseline do TH.2 8 a 24 horas Baixa a média Conhecimento do ambiente e detecções derivadas
Orientado por inteligência de TTPs 1 a 3 dias Média Achado de intrusão ativa e regra nova
Anomalia a partir de stack counting ou clustering 1 a 3 dias Média Descoberta de padrões desconhecidos
Aprofundamento de achado confirmado Sem meta fixa Não aplicável Contenção e escopo corretos, não velocidade

6. Metas por Maturidade do Programa

Nível Hunts por mês Taxa de conclusão Tempo médio por hunt Detecções novas por mês
2 (Inicial) 1 a 2, piloto documentado Sem meta; estabelecer registro Sem meta; medir para baseline 0 a 1, oportunista
3 (Definido) 4 ou mais 60% Menos de 40 horas 2 ou mais
4 (Gerenciado) 8 ou mais 80% Menos de 24 horas 5 ou mais
5 (Otimizado) 12 ou mais 95% Menos de 16 horas 8 ou mais

Duas regras acompanham a tabela. Primeiro, a taxa de achados positivos não entra como meta por nível, e sim como faixa de diagnóstico: relatos de mercado e a própria leitura do Capítulo 19 situam a faixa saudável entre 10% e 25% de hunts com verdadeiro positivo, taxa muito abaixo disso com visibilidade validada indica hipóteses mal direcionadas, e taxa muito acima de 50% indica ambiente comprometido ou critérios de validação frouxos. Segundo, metas de velocidade nunca se aplicam a hunts de resposta a achado, porque a investigação profunda de um verdadeiro positivo deve durar o necessário, e a pressa ali é causa conhecida de escopo mal fechado.

7. Registro do Hunt como Fonte de Métrica

Toda a medição deste controle depende de um registro padronizado preenchido durante o hunt, e não reconstruído depois. O template abaixo, derivado do modelo do TH.4, já nasce com os campos que virarão métrica: identificação, origem da hipótese, tipo, janela temporal, horas investidas, fontes de dados usadas, resultado e consequências. O custo de preenchimento é de minutos se o formulário estiver integrado à plataforma de casos, e a recompensa é um programa inteiramente mensurável sem esforço adicional no fim do mês.

hunt:
  id: HNT-2025-014
  hipotese: "SE um invasor usa T1053.005 com schtasks em servidores,
             ENTÃO haverá criação de tarefa com padrão anômalo no Sysmon 1"
  origem: relatorio_tatico REP-2025-038
  tipo: intelligence-driven
  planejado_em: 2025-04-03
  inicio: 2025-04-07
  fim: 2025-04-08
  horas_investidas: 9
  fontes_dados: [sysmon_1, sysmon_3, zeek_dns]
  consultas: [KQL_schtasks_anomalo]
  resultado: achado_confirmado
  achado:
    host: SRV-FIN-02
    tecnica: T1053.005
    evidencia: caso IR-2025-011
  lacuna_identificada: null
  deteccoes_criadas: [DET-2025-031]
  inteligencia_gerada: [INT-2025-007]
  estado_final: encerrado
  licoes: "schtasks com /create em lote é comum em patch management;
           baseline do TH.2 precisa da exceção documentada"

Os campos de consequência, como detecções criadas e inteligência gerada, devem ser preenchidos por referência de identificador e não por texto livre, permitindo a junção automática com o repositório de detecções do AUT.3 e com o TIP. O campo de lições merece disciplina especial: é a matéria-prima da melhoria das hipóteses futuras e, quando revisado trimestralmente, revela padrões como técnicas que sempre exigem baseline melhor ou tipos de hunt que sempre estouram o tempo previsto.

Se os registros vivem em uma tabela única, o fechamento mensal dos KPIs vira uma consulta, e não um levantamento. O exemplo abaixo computa os indicadores da seção 3 diretamente do repositório de hunts, e pode ser adaptado para SQL, KQL ou linguagem de script conforme onde o registro estiver guardado.

-- Fechamento mensal de KPIs a partir do repositorio de hunts
SELECT
    strftime('%Y-%m', fim)                       AS mes,
    COUNT(*)                                     AS hunts_concluidos,
    ROUND(100.0 * SUM(CASE WHEN resultado = 'achado_confirmado'
        THEN 1 ELSE 0 END) / COUNT(*), 1)        AS pct_achados,
    ROUND(AVG(horas_investidas), 1)              AS horas_media,
    SUM(CASE WHEN deteccoes_criadas IS NOT NULL
        THEN 1 ELSE 0 END)                       AS hunts_com_deteccao,
    SUM(CASE WHEN lacuna_identificada IS NOT NULL
        THEN 1 ELSE 0 END)                       AS lacunas_encontradas
FROM hunts
WHERE estado_final = 'encerrado'
GROUP BY mes
ORDER BY mes;

8. Salvaguardas por Nível de Maturidade

Subcontrole Nível Salvaguarda
MET.2.1 Básico Coleta e registro mensal de pelo menos três KPIs (hunts conduzidos, taxa de findings e tempo médio por hunt) usando o sistema de gestão de hunts ou a plataforma DFIR como fonte
MET.2.2 Básico Meta formal de dois hunts por semana a partir do nível 3, com pelo menos 50% de hunts intelligence-driven e o restante hypothesis-driven ou anomaly-driven
MET.2.3 Intermediário Rastreio da conversão de findings em novas regras de detecção, medindo regras criadas por mês e o percentual de findings que geraram ao menos uma regra
MET.2.4 Intermediário Análise da taxa de verdadeiros positivos por tipo de hunt para identificar quais abordagens geram valor e otimizar a proporção no planejamento
MET.2.5 Avançado Medição do valor financeiro estimado, comparando o custo dos incidentes evitados, baseado em findings e no custo médio de incidentes do setor, com o custo operacional do programa

A ordem de adoção importa: a salvaguarda MET.2.1 só funciona se o registro da seção 7 existir, e a MET.2.5 só é defensável se as anteriores estiverem estáveis. Cálculo de valor financeiro com poucos hunts e histórico curto produz números que a diretoria desmonta em cinco minutos de pergunta, dano maior do que não apresentar valor financeiro algum.

O cálculo do MET.2.5 em prática segue três passos simples. Primeiro, estime o custo de cada achado confirmado usando como referência o custo médio de incidente pactuado internamente com a área de risco, considerando o impacto evitado daquele caso concreto, por exemplo um invasor com acesso a servidor financeiro há dezenove dias. Segundo, some o custo operacional do programa no mesmo período, com horas de analista, infraestrutura de laboratório do TH.3 e licenças. Terceiro, apresente a razão com honestidade sobre as premissas, porque o objetivo não é precisão contábil, e sim dar à liderança uma escala de ordem de grandeza para comparar o programa com alternativas de investimento. Um programa que custa o equivalente a uma fração do custo de um único incidente relevante, com dois achados no semestre, sustenta a própria existência com esse número.

9. Erros Comuns e Pontos de Atenção

  • Medir hunting por alertas gerados: a caça existe justamente para cobrir o que as regras não cobrem, e transformá-la em fábrica de alertas reinvidica para o hunting um papel que já é do SOC, empurrando o time a converter tudo em regra ruidosa.
  • Comparar hunters por número de achados: o incentivo perverso é caçar apenas o que achado fácil, punir o hunter que pega os casos profundos e silenciosos e transformar a comparação de competência em competição por estatística.
  • Tratar a taxa de achados como meta rígida: como o achado depende do adversário, meta de porcentagem empurra para hipóteses triviais; use a faixa de diagnóstico da seção 6 e leia sempre com a validação de visibilidade.
  • Cobrar relatório de encerramento sem tempo previsto para escrevê-lo: se o registro é visto como burocracia extra depois do trabalho, ele não acontece; reserve o tempo no tamanho estimado do hunt.
  • Contar hora sem contar escopo: um hunt de quatro horas cobrindo cinquenta hosts com consulta replicável vale mais que um hunt de dez horas olhando um host, e a métrica só captura isso se o campo de escopo existir no registro.
  • Ignorar as lacunas de dados no reporte executivo: lacuna encontrada é resultado de hunting, e programas que só reportam achados treinam a liderança a torcer contra a própria visibilidade.

10. Integração com Outros Controles do Framework CTH

O MET.2 lê os registros produzidos pelo TH.4 e a fila do TH.5 como fonte de dados, usa o inventário do TH.1 para validar visibilidade na interpretação de zero achados e entrega ao AUT.3 a contagem de detecções derivadas de hunts. O ciclo do INT.2 transforma achados em inteligência formalizada, e a métrica de conversão deste controle é justamente a prova de que esse ciclo roda e não apenas existe no papel. Os resultados alimentam o MET.5 no bloco de valor do programa, com o caso de uso de hunt que encontrou intrusão sendo o argumento de maior impacto junto à liderança.

Na esteira de resposta, todo estado de encerramento do tipo achado confirmado abre ponte com o IR.5, porque cada achado de hunting é um evento de dwell time a ser medido: quanto tempo o adversário estava no ambiente antes da caça encontrá-lo. Essa junção entre MET.2 e MET.3 produz o indicador mais honesto do programa inteiro, o percentual de intrusões descobertas por iniciativa proativa em vez de por alerta ou por aviso externo, e é essa a métrica que distingue um programa de hunting vivo de uma atividade de laboratório.