Formato YAML do catálogo¶
Catálogos são arquivos de dado versionados sob catalogs/, embarcados no binário. Há três tipos:
catálogos de técnica, catálogos de metodologia e crosswalks. Cada um declara sua própria procedência e
licença, então um relatório pode citar de qual versão de cada padrão externo seus códigos vêm. Os arquivos
no repositório são os exemplos autoritativos; esta página descreve o formato deles.
Catálogo de técnicas¶
Um catálogo de técnicas declara um schema, uma família, uma versão, um locale, um nome, e um bloco
source com a licença, a atribuição e a data de atualização. Depois uma lista de técnicas. Cada técnica
carrega um id, um título, a que se applies_to, um objetivo, requisitos, um procedimento, a evidência
esperada, uma descrição de comportamento seguro, notas de segurança, remediação, referências, e seus
mapeamentos.
schema: peart.techniques/v1
family: peart-techniques
version: "1.0"
locale: en
source:
license: CC-BY-SA-4.0
attribution: >-
Conteúdo de técnica autoral do PEART. Códigos de mapeamento referenciam
OWASP WSTG 4.2, OWASP ASVS 5.0.0 (CC-BY-SA-4.0) e MITRE CWE 4.20.
techniques:
- id: TECH-INPV-001
title: SQL Injection Testing
applies_to: [web, rest_api]
objective: ...
mappings:
- { framework: ASVS, id: "V5.3.4", version: "5.0.0" }
- { framework: WSTG, id: "WSTG-INPV-05" }
- { framework: CWE, id: "CWE-89", title: "SQL Injection" }
Os mapeamentos são o eixo: são o que um achado herda das técnicas vinculadas, e o que o crosswalk de conformidade transforma em controles relacionados.
Catálogo de metodologia¶
Um catálogo de metodologia declara etapas ordenadas, cada uma vinculando técnicas em ordem de posição. É o plano que um engajamento adota, e o que o cockpit renderiza em ordem de execução.
Crosswalk¶
Um crosswalk mapeia os identificadores de um framework aos de outro. O crosswalk CWE-para-NIST chaveia por CWE e declara suas próprias versões:
version: "1.0"
nist_revision: "5"
cwe_version: "4.20"
mappings:
- { cwe: "CWE-89", controls: ["SI-10(6)"], relation: mitigates,
confidence: high, justification: "SQL injection" }
relation é mitigates ou supports; confidence é high ou conditional, e um vínculo
conditional carrega a condition sob a qual vale. Uma fraqueza sem controle limpo simplesmente não
está presente (cobertura honesta), e as deliberadamente em branco são registradas num comentário para
auditabilidade.