Pular para o conteúdo principal

🔗 Modelo de Rastreabilidade de Requisitos

🌟 Objetivo

Durante todo o ciclo de vida do software é necessário garantir a rastreabilidade entre o requisito e todos os aspetos relacionados, implementação, testes, excções etc. Este manual descreve uma forma taxonomica de rastrear os requisitos formalmente e assim permitir a documentação e manutenção da rastreabilidade entre riscos identificados, requisitos de segurança aplicados, respetivos controlos técnicos, mecanismos de validação e evidência associada.
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 e externas;
  • A integração com ferramentas de desenvolvimento, gestão de risco e conformidade.

Pode ser usado como template em Markdown, Excel, Jira, Confluence ou outras ferramentas ALM.


🧱 Estrutura Sugerida

o seguinte é um exemplo de instanciação do catalogo de requisitos a um projeto concreto, a lista completa para os requisitos em catalogo do manual pode ser (consultados aqui)[./controlos-requisitos]

Risco (ID)Requisito (ID)Descrição do RequisitoTipo de ControloValidaçãoEvidência
RSK-001REQ-001Autenticação multifator com hardware tokenPreventivoTeste automatizado em CI/CDCaptura de ecrã do fluxo de login
RSK-002REQ-002Logging centralizado com retenção de 180 diasDetetivoRevisão manual + scriptOutput de logrotate + configuração
RSK-003REQ-003Validação de input com base em schema definidoPreventivoTestes unitários e integraçãoLogs de execução dos testes
RSK-004REQ-004Passwords com requisitos conforme NIST 800-63BPreventivoAnálise estática (regex)Código fonte + screenshot

🛠️ Como aplicar

  • Cada linha da matriz representa uma ligação direta entre um risco identificado e o requisito de segurança correspondente.
  • O tipo de controlo deve ser classificado como: Preventivo, Detetivo ou Corretivo.
  • A validação deve ser objetiva e comprovável: testes automatizados, revisão manual, análise estática, etc.
  • A evidência pode incluir logs, capturas de ecrã, ficheiros de configuração, ou outputs de ferramentas.

🧩 Este modelo complementa a aplicação dos capítulos 01-gestao-risco, 02-requisitos-seguranca e 20-checklist-revisao.md.


📘 Exemplos por Tema

TemaRequisito (Resumo)Tipo de ControloValidaçãoEvidência
AutenticaçãoSessões com timeout inativo de 15 minPreventivoTeste manual + script browserConfiguração + gravação da sessão
Controlo de AcessoRBAC com separação de funções (SoD)PreventivoRevisão de roles + testesPrintscreen de matrix de roles
Logging e MonitorizaçãoAlertas em tempo real para falhas de loginDetetivoSimulação de falhaCaptura de alerta no SIEM
Gestão de ErrosMensagens de erro sem exposição de stack tracePreventivoTestes automatizadosOutput de testes de integração
Segurança de CódigoLinters e análise estática com política personalizadaPreventivoPipeline CI/CDRelatório de análise
SCA / DependênciasPolítica de atualização crítica < 48hPreventivo/CorretivoVerificação de SLAIssue criada + commit
Dados SensíveisEncriptação AES-256 em repouso para dados críticosPreventivoRevisão da configuraçãoOutput de KMS ou vault
Comunicação SeguraTLS 1.2+ obrigatório para APIs internasPreventivoTestes automatizadosScanner + resultado de verificação
Ciclo de Vida de SessãoLogout automático após X minutos de inatividadePreventivoTeste com navegador/scriptGravação de sessão + logs

📂 Organização recomendada

Este modelo pode ser estruturado por aplicação, por release ou por funcionalidade crítica.
Sugestão de organização prática:

  1. Resumo e finalidade
  2. Legenda de colunas (risco, requisito, controlo, validação, evidência)
  3. Tabela rastreável (como as apresentadas acima)
  4. Referência cruzada com os requisitos definidos no Capítulo 2
  5. Apontadores para evidência (diretórios, commits, screenshots, pipelines)

Formatos sugeridos:

  • .md para rastreabilidade em Git;
  • .csv ou .xlsx para exportação e análise rápida;
  • Integração com campos personalizados em Jira, ADO, Confluence ou ferramentas ALM.

🔗 Integração com o ciclo de vida

Este modelo deve ser aplicado:

  • Durante revisões técnicas e de segurança de release
  • Como suporte ao processo de aceitação de riscos
  • Em checkpoints formais como go/no-go ou auditorias ISO/PCI
  • Para registo de evidência técnica e validação contínua de requisitos

📎 Ferramentas recomendadas

FinalidadeFerramenta sugerida
Versionamento leveGit + Markdown
Análise e filtrosExcel / CSV
Integração no fluxo DevOpsJira, Azure DevOps, GitHub Issues
Validação e scanningSonarQube, ZAP, Trivy, scanners SAST/DAST
Gestão de segredos / configVault, KMS, parameter stores
Evidência de logs / alertasSIEM (ELK, Splunk, Sentinel...)

✅ Boas práticas

  • Criar e manter uma matriz por aplicação ou projeto crítico
  • Usar o modelo como trilho de auditoria interno
  • Versionar todas as alterações à matriz e à evidência associada
  • Rever a matriz em todos os ciclos de release
  • Incluir campos com referências aos requisitos (REQ-XXX) e riscos (RSK-XXX)