Pular para o conteúdo principal

🔗 Modelo de Rastreabilidade entre Riscos, Requisitos e Controlos

Objetivo

Ao longo do ciclo de vida do software, garantir que um requisito de segurança foi efectivamente implementado exige mais do que a sua definição - exige que a ligação entre risco, requisito, controlo técnico e evidência seja explícita, rastreável e auditável.

Este modelo descreve como construir essa cadeia de rastreabilidade, articulando os dois sistemas de identificação do SbD-ToE:

  • O ID canónico (AUT-001, LOG-003) - referência normativa estável proveniente do catálogo;
  • A tag operacional (SEC-L2-AUT-MFA) - instância contextualizada adoptada pelo projecto.

A distinção e a relação entre ambos estão detalhadas em Taxonomia e Rastreabilidade.

Este modelo apoia:

  • A verificação sistemática da cobertura de segurança ao longo do ciclo de vida;
  • A preparação de auditorias internas, externas e regulatórias;
  • A integração com ferramentas ALM (Jira, ADO, Confluence, GitHub), gestão de risco e conformidade.

Estrutura da Matriz de Rastreabilidade

Cada linha da matriz representa a ligação directa entre um risco identificado e o requisito de segurança que o endereça, com o respectivo controlo, método de validação e evidência esperada.

Colunas recomendadas

ColunaConteúdoExemplo
RiscoIdentificador e descrição sumária do risco (proveniente da análise de ameaças)RISK-AUTH-01 - acesso não autorizado por ausência de MFA
ID CanónicoReferência normativa do catálogo SbD-ToEAUT-001
Tag OperacionalInstanciação do requisito no contexto do projectoSEC-L2-AUT-MFA
Tipo de ControloClassificação do controlo: Preventivo, Detetivo ou CorretivoPreventivo
ValidaçãoMétodo objectivo de verificaçãoTeste automatizado em CI/CD
EvidênciaArtefacto auditável produzidoLog de falha de autenticação sem MFA

Exemplo de Matriz

O seguinte é um exemplo de instanciação do catálogo de requisitos a um projecto concreto. O catálogo completo pode ser consultado em Lista de Requisitos Base.

RiscoID CanónicoTag OperacionalTipo de ControloValidaçãoEvidência
Acesso não autorizado por ausência de 2.º factorAUT-001SEC-L2-AUT-MFAPreventivoTeste funcional - login sem MFA falhadoLog de autenticação falhada; captura de ecrã
Registo insuficiente para resposta a incidentesLOG-002SEC-L2-LOG-DETALHEDetetivoRevisão de logs em runtimeExemplo de log com campos quem/quando/o quê/onde
Injecção SQL por ausência de validação de inputVAL-004SEC-L2-VAL-SQLIPreventivoTestes SAST + teste funcional com payloadRelatório de scanner; código com prepared statements
Passwords armazenadas em claroAUT-006SEC-L1-AUT-PLAINPreventivoAuditoria de configuração + scanEvidência de hashing; ausência de credenciais em texto claro

Exemplos por Domínio Técnico

DomínioID CanónicoTag Operacional (exemplo L2)Tipo de ControloValidaçãoEvidência
AutenticaçãoAUT-005SEC-L2-AUT-IDLEPreventivoTeste de timeout por inactividadeLog de sessão expirada; configuração do servidor
Controlo de AcessoACC-002SEC-L2-ACC-LEASTPRIVPreventivoRevisão de roles + teste com utilizador restritoMatriz de permissões; log de acesso negado
LoggingLOG-003SEC-L2-LOG-INTEGRIDADEDetetivoTentativa de alteração de log; verificação de permissõesEvidência de protecção (read-only, syslog remoto, WORM)
Gestão de ErrosERR-001SEC-L1-ERR-EXPOSICAOPreventivoInduzir erro; verificar resposta ao clienteMensagem genérica no cliente; stack trace apenas em log interno
Configuração SeguraCFG-003SEC-L1-CFG-HARDCODEPreventivoAnálise estática + revisão do repositórioAusência de segredos no código fonte; uso de cofre
Dependências e SDKsAPI-006SEC-L2-API-SDKPreventivo/CorretivoScan SCA; verificação de SBOMSBOM gerado; relatório de dependências auditado
Dados sensíveisENC-002SEC-L2-ENC-RESTPreventivoRevisão de configuração de base de dados e storageScreenshot de políticas de encriptação; output de KMS/Vault
Comunicação seguraINT-003SEC-L1-INT-TLSPreventivoTeste de TLS; scanner de certificadosTLS 1.2+ activo; certificado válido; Strict-Transport-Security

Como aplicar este modelo

  • Cada linha representa a ligação entre um risco identificado e o requisito canónico que o endereça;
  • A tag operacional é o identificador que transita para o backlog, o código e o pipeline - é ela que torna o requisito rastreável ao artefacto de ciclo de vida;
  • O tipo de controlo classifica a natureza da medida: Preventivo (impede o incidente), Detetivo (detecta quando ocorre) ou Corretivo (mitiga as consequências);
  • A validação deve ser objectiva e reproduzível - teste automatizado, análise estática, revisão manual documentada;
  • A evidência é o artefacto que comprova, num contexto de auditoria, que o controlo está activo e efectivo.

Organização recomendada por projecto

Cada projecto deve manter a sua própria matriz de rastreabilidade, organizada por:

  1. Cabeçalho - identificação da aplicação, nível de risco (L1/L2/L3) e data de revisão;
  2. Mapeamento de riscos - proveniente da análise de ameaças (threat modeling);
  3. Tabela rastreável - com os campos descritos acima;
  4. Referência cruzada ao Catálogo Base de Requisitos e ao Plano de Validação;
  5. Apontadores para evidência - directórios, commits, screenshots, relatórios de pipeline.

Formatos sugeridos:

  • .md versionado em Git - para rastreabilidade nativa no repositório;
  • .csv / .xlsx - para exportação e análise rápida;
  • Campos personalizados em Jira, ADO, Confluence ou ferramentas ALM equivalentes.

Integração no ciclo de vida

A matriz deve ser revisitada:

  • Em revisões de requisitos no início de cada ciclo;
  • Durante gates de release e processos de go/no-go;
  • Como suporte à aceitação formal de risco e documentação de excepções;
  • Em checkpoints de auditoria - ISO 27001, PCI-DSS, DORA, ou equivalentes.

Ferramentas de suporte

FinalidadeFerramenta sugerida
Versionamento leveGit + Markdown
Análise e filtrosExcel / CSV
Integração ALMJira, Azure DevOps, GitHub Issues
Análise estática (SAST)SonarQube, Semgrep, CodeQL
Teste dinâmico (DAST)OWASP ZAP, Burp Suite
Análise de dependências (SCA)Trivy, Snyk, Dependabot
Gestão de segredosHashiCorp Vault, AWS Secrets Manager, Azure Key Vault
Centralização de logs / alertasSIEM (ELK Stack, Splunk, Microsoft Sentinel)

Boas práticas

  • Manter uma matriz por aplicação ou sistema crítico, não uma única matriz global;
  • Usar a matriz como trilho de auditoria interno - actualizá-la em cada release;
  • Versionar todas as alterações à matriz e à evidência associada;
  • Referenciar sempre o ID canónico (AUT-001) e a tag operacional (SEC-L2-AUT-MFA) - o primeiro para rastreabilidade normativa, o segundo para rastreabilidade operacional;
  • Documentar excepções com justificação e aprovação formal; ver Gestão de Excepções.

Para a lista completa dos requisitos canónicos com critérios de aceitação por domínio, consultar o Catálogo Base de Requisitos. Para os métodos de validação recomendados e evidências esperadas por domínio, consultar o Plano de Validação de Requisitos.