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

01 - Criação de Camadas de Cobertura

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

Criação de Camadas de Cobertura

Nota do capítulo 20, dedicado às atualizações do MITRE ATT&CK e às ferramentas
que sustentam sua operação. Aqui trata-se do ATT&CK Navigator e do conceito de
layer, a unidade de visualização que transforma o framework em mapa executável
de cobertura. Dialoga com as notas MAP.2 e MAP.4 do Framework CTH, com a nota
de Cobertura por Tática ATT&CK do capítulo 18 e com a nota seguinte de Heatmaps
de Evolução Temporal, que automatiza o que esta nota ensina a construir à mão.

1. Contexto e Posicionamento na Biblioteca

O ATT&CK Navigator é a aplicação web oficial do MITRE para manipular o framework visualmente, e a layer é seu formato de arquivo nativo: um documento JSON que associa pontuações, cores e comentários a técnicas e subtécnicas. Toda a disciplina de medir cobertura de detecção, registrar caças executadas e comparar adversários relevantes na biblioteca pressupõe que o leitor saiba ler, escrever e versionar layers. Sem esse domínio, as métricas do capítulo 11 e do grupo MAP do Framework CTH ficam presas em planilhas que ninguém confia.

Esta nota é o manual prático de criação de camadas. Ela define a estrutura do JSON, apresenta os três tipos de camada mais úteis para um programa de CTI e Threat Hunting, mostra o passo a passo da camada de detecção e ensina a exportar, combinar e versionar layers como artefatos de engenharia. A leitura preparatória recomendada é a nota de Cobertura por Tática ATT&CK, que define os números que a camada vai exibir, e a nota de Detection Strategies e Analytics, que explica de onde vêm as expectativas de detecção da v18 em diante.

2. O Navigator e o Conceito de Layer

Uma layer nunca altera o ATT&CK em si; ela é apenas uma visão anotada sobre ele. O documento guarda a versão do ATT&CK e do Navigator para a qual foi criada, a lista de técnicas pontuadas, a configuração de gradiente de cores e metadados de contexto. Quando o Navigator carrega uma layer construída para a v17 sobre a v19, o resultado é um mapa com buracos silenciosos, porque técnicas renomeadas ou movidas não são encontradas. Por isso, a primeira regra de higiene é fixar a versão no campo versions e revalidar a layer a cada atualização do framework, tema da nota de Migração de Mapeamentos e Controles deste capítulo.

O segundo princípio é que layer é artefato de trabalho, não print de tela. Uma boa camada carrega comentários por técnica com evidência, data e responsável, e metadados que ligam a pontuação a fontes verificáveis, como o identificador de um ticket, o nome de uma regra Sigma ou o registro de uma caça no repositório do time. A camada que circula em comitê deve ser reconstrutível a partir de dados brutos; caso contrário, ela deixa de ser métrica e vira marketing.

3. Estrutura JSON de uma Camada

A layer é um objeto JSON plano, legível por qualquer script. Os campos de primeiro nível descrevem o contexto e a apresentação, e o campo techniques é a carga útil analítica. Cada entrada de técnica usa techniqueID e, opcionalmente, tactic para desambiguar técnicas que aparecem em mais de uma tática, como T1106, presente em Execution e em outros contextos conforme a versão. A tabela a seguir resume os blocos que todo time deve conhecer de memória.

Bloco Papel no documento Uso típico em cobertura
name e description Identificam a camada e sua finalidade Nome com domínio, ano e trimestre
versions Fixa attack, navigator e layer Garante reprodutibilidade entre releases
domain e filters Recorta domínio e plataformas Separar endpoint, cloud e SaaS
techniques Lista de técnicas com score, color e comment A carga da métrica
gradient Define cores automáticas por faixa de score Heatmap de 0 a 100
legendItems Legenda interpretada por humanos Estados como "sem telemetria"
metadata e links Vínculos com evidências externas URL de ticket, regra, relatório

O campo score aceita valores numéricos e é interpretado pelo gradiente escolhido, enquanto color fixa uma cor que sobrepõe o gradiente quando é preciso marcar estados qualitativos, como vermelho para ausência total de dado. O campo comment é texto livre indexado pelo Navigator, e metadata aceita pares nome e valor, que permitem anexar identificadores de sistemas externos sem poluir o comentário legível.

4. Os Três Tipos de Camada de um Programa Maduro

A prática consolidada na biblioteca usa três famílias de camada, mantidas separadas e combinadas por operações. A camada de cobertura de detecção pontua cada técnica segundo a capacidade real de alertar, não segundo a promessa de ferramenta. A camada de caças executadas registra onde o time já caçou e com que resultado, funcionando como memória de longo prazo do programa de hunting. A camada de adversários relevantes, sobrepondo grupos como APT29, FIN7 e Scattered Spider, responde a pergunta prioritária dos PIRs: contra o que nós precisamos estar cobertos primeiro.

Camada Unidade de score Fonte de verdade Consumidor principal
Detecção Nível 0 a 5 de maturidade da detecção Repositório de regras e analytics Engenharia de detecção
Caças Caças concluídas e achados por técnica Relatórios de caça do capítulo 7 Time de hunting e CTI
Adversários Relevância da técnica para o grupo Relatórios de CTI e ATT&CK groups Comitê de risco e PIRs

Manter as três camadas separadas é o que permite responder perguntas compostas sem manipular dados. A pergunta "onde os meus três adversários prioritários agem e eu não tenho detecção nem histórico de caça" é uma operação de três layers, executada no Navigator ou em script, e não uma estimativa de reunião.

As perguntas compostas mais úteis do programa são sempre combinações dessas camadas, e vale fixá-las para que o comitê aprenda a pedi-las por nome.

  • Onde os adversários prioritários agem e não há detecção acima do nível 3, que é o recorte do relatório de lacunas exigido pelo controle MAP.4.
  • Onde já houve caça nos últimos dois trimestres e a detecção ainda não absorveu o que a caça aprendeu, o que alimenta a ponte de hunting para detecção do capítulo 18.
  • Quais técnicas da camada de adversários nunca foram testadas por BAS no período, que é a fila de entrada da rotina de purple teaming do capítulo 19.

5. Camada de Detecção Passo a Passo

A construção da camada de detecção segue uma sequência que transforma o inventário de regras em pontuação defensável. O processo abaixo presume o repositório de detecção do capítulo 18 como fonte, mas vale para qualquer inventário que tenha regra, técnica ATT&CK associada e data de último teste.

  • Extrair do repositório a lista de regras ativas com seus IDs ATT&CK, reunindo em um único conjunto a visão de analytics do SIEM, regras Sigma e detecções de EDR, porque cobertura que ignora uma das três fontes é subestimação sistêmica.
  • Classificar cada técnica pelo nível de maturidade acordado na biblioteca, de 0 a 5, usando a tabela de níveis da seção seguinte, e nunca pelo número de regras, porque três regras ruidosas valem menos que um analytic testado.
  • Anotar em comment a evidência da pontuação com data, e em metadata os identificadores externos, ticket e caminho da regra, garantindo que qualquer revisor atravesse do mapa até a fonte em dois cliques.
  • Recortar por domínio e plataforma com filters, gerando camadas separadas para endpoint, cloud e SaaS, pois médias compostas escondem diferenças de maturidade que o comitê precisa enxergar.
  • Revisar a layer no Navigator antes de publicar, conferindo técnicas órfãs, cores incoerentes com a legenda e scores sem evidência, que são os três defeitos que descredibilizam o mapa.

A tabela de níveis abaixo é a escala de referência usada pelas camadas de detecção na biblioteca e alinhada com a nota de Cobertura por Tática ATT&CK do capítulo 18. Ela existe para impedir que pontuações mudem de significado entre times e trimestres.

Nível Significado operacional Evidência mínima exigida
0 Sem telemetria para a técnica Lacuna registrada no controle MAP.4
1 Telemetria existe, nenhum analytic criado Fonte de log identificada
2 Analytic existe, nunca testado com input real Regra no repositório
3 Analytic testado, ruído pendente de tuning Registro de teste com data
4 Testado e tunado, cobertura validada por BAS Relatório de execução anexado
5 Testado, tunado e revalidado no trimestre corrente Execução BAS ou purple team recente

6. Implementação Prática: JSON Mínimo Comentado

O documento abaixo é uma layer mínima e válida de cobertura de detecção, reduzida a quatro técnicas para caber na nota. Em produção a lista tem centenas de entradas, geradas por script a partir do inventário de regras, tema da nota de Heatmaps de Evolução Temporal.

{
  "name": "Cobertura de Deteccao - Enterprise - 2026-T3",
  "versions": { "attack": "19", "navigator": "5.1.0", "layer": "4.5" },
  "domain": "enterprise-attack",
  "description": "Score 0 a 5: 0 sem dado, 3 analytic parcial, 5 analytic testado",
  "filters": { "platforms": ["Windows", "Linux", "IaaS", "Office 365"] },
  "layout": { "layout": "side", "showID": true, "showName": true },
  "gradient": {
    "colors": ["#e04141", "#f5c242", "#8ec843"],
    "minValue": 0,
    "maxValue": 5
  },
  "techniques": [
    {
      "techniqueID": "T1003.001",
      "tactic": "credential-access",
      "score": 5,
      "comment": "Analytic de LSASS com Event ID 4656; testado em 2026-07-14",
      "metadata": [
        { "name": "regra", "value": "sigma/credential_access_lsass.yml" },
        { "name": "ticket", "value": "DET-2214" }
      ]
    },
    {
      "techniqueID": "T1059.001",
      "tactic": "execution",
      "score": 3,
      "comment": "Event ID 4104 habilitado, tuning de modulo suspeito pendente"
    },
    {
      "techniqueID": "T1078.004",
      "tactic": "defense-evasion",
      "score": 0,
      "comment": "Sem telemetria de console cloud; lacuna registrada no MAP.4"
    },
    {
      "techniqueID": "T1566.002",
      "tactic": "initial-access",
      "score": 4,
      "comment": "Detecção de link em e-mail coberta por gateway e EDR"
    }
  ],
  "legendItems": [
    { "label": "Sem telemetria", "color": "#e04141" },
    { "label": "Parcial", "color": "#f5c242" },
    { "label": "Testado", "color": "#8ec843" }
  ]
}

Três detalhes desse exemplo valem destaque operacional. O campo tactic desambigua a pontuação por tática, evitando que um score atribuído a Execution vaze para a mesma técnica vista em outra tática. Os metadados presos a cada técnica transformam a layer em índice do repositório de detecção, o que permite a um auditor atravessar do mapa até a regra em dois cliques. O score 0 explícito em T1078.004 é deliberado: técnica sem telemetria deve aparecer pintada, e não ausente, para não inflar artificialmente a média de cobertura.

7. Exportação, Combinação e Versionamento de Camadas

O Navigator exporta e importa layers pelo ícone de disco, mas o ciclo maduro inverte a dependência: a layer é gerada de dados e o Navigator serve de conferência visual. Para combinar camadas, o Navigator oferece a operação create layer from other layers, que recebe duas ou mais layers e um conjunto de operações por campo. Para score, as expressões usuais são min, max, sum, average e as lógicas and e or; para cor, prevalece a última layer da lista ou a operação de prioridade; para comment e metadata, a concatenação preserva as evidências de ambas as fontes.

O padrão de uso na biblioteca combina a camada de adversários com a de detecção usando a expressão and sobre o score normalizado, o que resulta em vermelho apenas onde o grupo relevante opera e a casa está cega, exatamente o recorte que alimenta MAP.4. A combinação de adversários entre si, por exemplo APT29 ou FIN7, com expressão or, produz o mapa de ameaça agregada do setor. Guardar o arquivo de operações junto das layers de entrada torna o cálculo reprodutível, o que permite reexecutar a mesma análise com dados do trimestre seguinte e comparar resultado com confiança.

O versionamento segue a disciplina de qualquer artefato de engenharia: as layers vivem em repositório Git, o nome do arquivo carrega domínio, trimestre e gerador, e cada mudança de score exige referência à evidência que a motivou. Quando a layer muda por causa de atualização do ATT&CK, o commit deve citar a versão nova e a nota de migração correspondente, mantendo a trilha entre framework e métrica.

Antes de publicar qualquer layer em comitê, a revisão abaixo custa dez minutos e evita os constrangimentos mais comuns da apresentação de cobertura.

  • Conferir que cada técnica pontuada acima de 0 carrega comment com data e evidência, porque score sem evidência é declaração, não medição.
  • Conferir que a legenda cobre todos os estados usados e que nenhuma cor fora do gradiente ficou sem rótulo.
  • Conferir que filters e gradient são coerentes com o recorte prometido no título da camada, sem mistura de domínios.
  • Conferir que a versão do ATT&CK declarada em versions é a adotada pelo programa naquele momento, e não a última disponível por inércia.
  • Conferir que técnicas órfãs, renomeadas na última release, não aparecem esmaecidas no mapa sem explicação no relatório que as acompanha.

8. Erros Comuns e Pontos de Atenção

O erro mais caro é pontuar promessa de ferramenta como se fosse detecção real. Comprar um EDR não dá score 5 em dezenas de técnicas; dá telemetria, que é insumo para analytics que precisam ser escritos, testados e tunados. A segunda armadilha é misturar camadas num único arquivo, acumulando score de detecção e de relevância de adversário no mesmo campo, o que destrói a possibilidade de operações e torna o mapa inauditorável. Um terceiro erro frequente é esquecer o campo tactic e descobrir, na revisão trimestral, que a mesma técnica carrega dois scores conflitantes porque duas pessoas pontuaram táticas diferentes.

Também é comum tratar gradientes como escolha estética. O gradiente define o que salta aos olhos do comitê, e faixas mal calibradas, por exemplo minValue 0 e maxValue 100 com scores só entre 2 e 3, produzem um mapa monocromático que esconde os gaps. Um defeito silencioso adicional é publicar camada sem legenda coerente com as cores usadas, forçando o leitor a adivinhar estados, e com isso reabrir discussões que a legenda encerraria. Por fim, cuidado com layers herdadas de colegas de outras organizações: sem os metadados de evidência, herdar um score é herdar uma suposição alheia, e o time responde por ela.

9. Integração com o Restante da Biblioteca

Esta nota operacionaliza MAP.2, que exige heatmap de cobertura por tática, e fornece o formato de troca para MAP.5, que trata da evolução contínua da cobertura. A camada de adversários relevantes consome diretamente o trabalho do grupo ANA, em especial o mapeamento de TTPs de CTI.6, e a camada de caças é a saída natural do controle TH de documentação de descobertas do capítulo 7. No capítulo 18, a nota de Cobertura por Tática ATT&CK define os níveis de score usados aqui, e a nota de Medição de Cobertura e Gaps em Tempo Real do capítulo 19 mostra como BAS atualiza esses scores entre revisões manuais.

A nota seguinte, Heatmaps de Evolução Temporal, assume que o leitor domina este documento e automatiza todo o ciclo: geração de layers a partir de resultados de Caldera e de plataformas BAS, comparação de trimestres e publicação da evolução como série histórica. O par de notas forma, com o Navigator, o instrumento de medição contínua do programa completo de CTI e Threat Hunting descrito na esteira do Framework CTH.