Ir para o conteúdo

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.