Pular para o conteúdo principal

🏷️ Taxonomia e Rastreabilidade de Requisitos de Segurança

🌟 Objetivo

Estabelecer um modelo normalizado de identificação e rastreabilidade de requisitos de segurança aplicacionais, através da utilização de tags estruturadas que podem ser aplicadas em backlog, código, testes, pipelines e documentação instanciadas a cada aplicação.

Esta taxonomia permite:

  • Assegurar a ligação entre risco, requisito e controlo implementado;
  • Suportar a automação da conformidade e cobertura de requisitos;
  • Tornar rastreável a presença (ou ausência) de requisitos ao longo do ciclo de vida.

🧱 Estrutura das tags

ComponenteSignificadoExemplo
SECPrefixo fixo que indica requisito de segurançaSEC
LxNível de risco (L1, L2, L3) da aplicaçãoL2
DOMINIODomínio técnico (alinhado com o catálogo de requisitos)AUT, VAL
CODIGOCódigo semântico ou abreviado do requisitoMFA, VALID

Exemplo completo: SEC-L2-AUT-MFA


📘 Domínios técnicos suportados

Os domínios seguem os temas definidos no catálogo de requisitos (addon/catalogo-requisitos):

DomínioCategoria técnica associada
AUTAutenticação e gestão de identidade
ACCControlo de acesso e autorização
VALValidação e sanitização de dados
CFGConfiguração segura e gestão de parâmetros
LOGRegisto, auditoria e monitorização
APISegurança de APIs e serviços externos
DSTDistribuição de artefactos e publicações
REQDefinição e gestão de requisitos
ERRGestão de erros e mensagens
SESSessões e gestão de estado
ENCDados sensíveis e criptografia
INTIntegrações e trocas de mensagens
IDEFerramentas e ambientes de desenvolvimento

🛠️ Como aplicar

1. Backlog (user stories, épicos, tasks)

  • Incluir a tag na descrição ou título da história:
    • Ex: SEC-L2-AUT-MFA
  • Permite filtrar e identificar requisitos ativos por sprint, release ou projeto.

2. Código-fonte

  • Inserir como comentário técnico:
    • // SEC-L3-VAL-SQLI
  • Permite rastreabilidade via análise de código ou revisão manual.

3. CI/CD pipelines

  • Usar tags como triggers para:
    • Validações automáticas;
    • Gates de conformidade;
    • Rejeição de builds não conformes.

4. Casos de teste e QA

  • Associar a tag aos critérios de validação;
  • Suporta cobertura de requisitos por teste e rastreabilidade de evidência.

5. Documentação e arquitetura

  • Incluir tags em decisões, fluxos, modelos de controlo e justificacões técnicas;
  • Essencial para revisões formais e auditorias.

🔍 Verificação e manutenção

  • As tags devem ser validadas periodicamente contra:

  • A organização deve manter um registo com:

    • Requisitos aplicados e respetivos IDs;
    • Implementações técnicas associadas;
    • Validações executadas e evidência gerada;
    • [Exceções documentadas] (addon/gestao-excecoes`).

📈 Benefícios operacionais

  • Redução da ambiguidade: cada controlo tem identificação única;
  • Suporte à automação e ao DevSecOps: integração com pipelines, scanners e dashboards;
  • Transparência: facilita reporting técnico e de gestão;
  • Escalabilidade: modelo simples e aplicável a múltiplas equipas, produtos e ferramentas.

🧹 Diferença entre ID normativo e tag operacional

No [catálogo de requisitos] (./addon/catalogo-requisitos), cada requisito é identificado por um ID normativo genérico, como:

ID normativoNome resumido
AUT-001MFA obrigatório
VAL-002Validação de parâmetros de entrada

Estes IDs servem para normalizar e referenciar requisitos de forma única em toda a organização.

⚠️ Contudo, estes IDs não devem ser usados diretamente na implementação de projetos ou produtos.


🏷️ Instanciação para aplicação concreta

Cada requisito aplicável deve ser instanciado com base no nível de risco da aplicação (L1, L2 ou L3), originando uma tag operacional rastreável, seguindo o padrão SEC-Lx-DOMINIO-CODIGO.


✅ Exemplo completo de rastreabilidade

ElementoExemplo
ID no catálogoAUT-001
Nome do requisitoMFA obrigatório
AplicaçãoPortal Exemplo
Classificação de riscoL2 (risco médio)
Tag operacionalSEC-L2-AUT-MFA

Esta tag é o identificador que deve ser usado nos elementos de ciclo de vida (backlog, código, testes, pipelines, evidência).


🤪 Benefícios da distinção

  • Os IDs normativos garantem consistência, governança e manutenção do catálogo;
  • As tags instanciadas (SEC-Lx-*) permitem rastrear e verificar a aplicação efetiva dos requisitos em contexto real e proporcional ao risco.

📌 A distinção entre ambos permite manter governança centralizada com implementação descentralizada, rastreável e auditável.


📌 A utilização sistemática desta taxonomia permite rastrear, validar e justificar a aplicação (ou exceção) de requisitos de forma auditável e escalável em qualquer projeto.