Pular para o conteúdo principal

✅ Validação de Requisitos de Segurança

Este documento define como cada requisito do 01-catalogo-requisitos.md deve ser validado na prática, incluindo:

  • O tipo de validação recomendada (automática, manual, runtime ou de configuração);
  • A evidência esperada para auditoria;
  • A proporcionalidade por nível de risco (L1, L2, L3).

Este ficheiro complementa o catálogo de requisitos e permite verificar, por projeto, a sua implementação objetiva.


📚 Índice

📚 Índice


🔐 AUT - Autenticação e Identidade

IDTagNome resumidoNívelValidação RecomendadaEvidência Esperada
AUT-001SEC-Lx-AUT-MFAMFA obrigatórioL2+Verificar exigência de MFA em ambiente real. Tentar login sem segundo fator.Captura de ecrã ou log de falha de autenticação sem MFA.
AUT-002SEC-Lx-AUT-PWDPolítica de passwordsL1+Rever política de complexidade e comprimento. Tentar criação com pwd fraca.Screenshot de política, registo de falha em tentativa inválida.
AUT-003SEC-Lx-AUT-BFProteção contra brute forceL1+Simular múltiplas tentativas falhadas. Verificar lockout ou throttling.Log de bloqueio automático ou fallback CAPTCHA.
AUT-004SEC-Lx-AUT-LOGOUTRevogação ativa de sessõesL1+Efetuar logout global. Verificar invalidade de tokens anteriores.Log de sessão revogada, teste de token inválido após logout.
AUT-005SEC-Lx-AUT-TIMEOUTExpiração automática de sessãoL1+Configurar tempo de inatividade. Aguardar e tentar continuar sessão.Screenshot de timeout, logs de expiração.
AUT-006SEC-Lx-AUT-PLAINProibição de credenciais em claroL1+Rever configurações e dumps. Inspecionar comunicação e storage.Evidência de encriptação, ausência de senhas em ficheiros.
AUT-007SEC-L2-AUT-FEDERADASuporte a autenticação federadaL2+Verificar integração SAML/OIDC com provedor externo.Captura de ecrã do fluxo de login federado.
AUT-008SEC-L2-AUT-STEPUPStep-up para ações sensíveisL2+Executar ação sensível. Confirmar reautenticação obrigatória.Screenshot da exigência extra. Log de revalidação.
AUT-009SEC-Lx-AUT-REAUTHReautenticação para alterações críticasL1+Tentar alterar senha ou email. Confirmar pedido de senha atual.Captura do pedido de revalidação. Log de operação condicionada.
AUT-010SEC-L2-AUT-ALERTAlerta de acessos suspeitosL2+Simular acesso suspeito. Verificar envio de alerta ao utilizador.Log de alerta. Screenshot de notificação enviada.

🔓 ACC - Controlo de Acesso

IDTagNome resumidoNívelValidação RecomendadaEvidência Esperada
ACC-001SEC-Lx-ACC-RBACControlo de acesso RBACL1+Rever modelo de permissões. Verificar mapeamento por função e restrição efetiva.Screenshot da matriz de permissões. Output de teste com role limitado.
ACC-002SEC-Lx-ACC-LEASTPRIVPrincípio do menor privilégioL1+Rever contas com permissões elevadas. Testar acesso com utilizadores normais.Listagem de permissões. Resultado de teste com acesso negado.
ACC-003SEC-Lx-ACC-BLOCKBloqueio e auditoria de acessos ilegítimosL1+Tentar acesso não autorizado. Confirmar rejeição e log gerado.Log de tentativa bloqueada. Código de erro apropriado.
ACC-004SEC-Lx-ACC-ROLESSeparação de perfisL1+Validar diferenciação entre utilizadores, admins e serviços.Screenshot de perfis. Logs de ações distintas por perfil.
ACC-005SEC-Lx-ACC-APIControlo de acesso a APIs e serviçosL1+Tentar invocar endpoint interno sem token. Rever middleware de autorização.Código de erro 403 ou 401. Log de bloqueio.
ACC-006SEC-Lx-ACC-RESOURCEProteção de recursos sensíveisL1+Tentar aceder a recursos sem permissão. Validar negação e logging.Screenshot de resposta de erro. Log com contexto de acesso.
ACC-007SEC-L2-ACC-THREATMODValidação do modelo de acessoL2+Rever documentação de threat modeling. Validar mapeamento de ameaças a permissões.Documento de modelação. Registos de revisão de segurança.
ACC-008SEC-Lx-ACC-REVOKERevogação em tempo realL1+Remover acesso de utilizador ativo. Testar falha imediata de ação autorizada antes.Log de revogação e tentativa falhada após remoção.
ACC-009SEC-L3-ACC-ABACAutorização baseada em atributos (ABAC)L3Rever política de autorização dinâmica. Validar decisões condicionadas a atributos.Logs de decisão ABAC. Screenshot de regras condicionais.
ACC-010SEC-L2-ACC-REVIEWRevisão periódica de permissõesL2+Consultar registos de auditoria de permissões. Validar ciclo de revisão documentado.Registo formal de revisão. Evidência de permissões removidas.

📈 LOG - Registo e Monitorização

IDTagNome resumidoNívelValidação RecomendadaEvidência Esperada
LOG-001SEC-Lx-LOG-EVENTOSRegisto de eventos críticosL1+Simular login, alteração de dados e falha de acesso. Verificar logs gerados.Logs com timestamp, utilizador e ação registada.
LOG-002SEC-Lx-LOG-DETALHEAtributos mínimos em logsL1+Rever logs: devem conter quem, quando, o quê e onde.Exemplo real de log com campos completos.
LOG-003SEC-Lx-LOG-INTEGRIDADEProteção de integridade e acesso aos logsL1+Tentar alterar ficheiro de log. Rever permissões de escrita.Evidência de proteção (ex: read-only, assinatura).
LOG-004SEC-L2-LOG-ANALISEAnálise periódica de logsL2+Verificar existência de cron job ou integração com SIEM.Log de execução de análise. Screenshot do SIEM.
LOG-005SEC-Lx-LOG-RETENCAORetenção mínima dos logsL1+Consultar política de retenção e configurações do sistema de logs.Política aprovada. Screenshot da configuração (ex: 90 dias).
LOG-006SEC-L2-LOG-SIEMEnvio para sistema centralizadoL2+Confirmar integração com SIEM. Verificar logs recebidos.Screenshot de eventos recebidos pelo SIEM.
LOG-007SEC-L2-LOG-SEVERIDADEClassificação e deteção de anomaliasL2+Rever política de classificação. Simular evento anómalo e avaliar deteção.Alerta gerado. Screenshot da configuração de severidade.
LOG-008SEC-L2-LOG-ALARMEAlarme em falhas do mecanismo de loggingL2+Interromper mecanismo de logging. Confirmar envio de alerta.Log de alarme ou e-mail enviado. Screenshot da falha monitorizada.
LOG-009SEC-L2-LOG-INCIDENTELogs suportam resposta a incidentesL2+Rever planos de resposta. Verificar integração de logs no fluxo de resposta.Exemplo de incidente com logs associados.
LOG-010SEC-L3-LOG-NEGOCIOLogging de eventos críticos de negócioL3Identificar eventos críticos (ex: submissão de IRS). Confirmar registo no sistema.Log contendo o evento de negócio e respetivo contexto.

🕒 SES - Sessões e Estado

IDTagNome resumidoNívelValidação RecomendadaEvidência Esperada
SES-001SEC-Lx-SES-TIMEOUTExpiração automática por inatividadeL1+Iniciar sessão e aguardar tempo de inatividade. Confirmar encerramento automático.Log de encerramento. Screenshot do timeout ao retomar sessão.
SES-002SEC-Lx-SES-LOGOUTLogout manual e após alteração de credenciaisL1+Realizar logout e tentar reusar sessão anterior. Alterar senha e verificar invalidação.Tokens inválidos. Log de logout. Screenshot do fluxo de revalidação.
SES-003SEC-Lx-SES-ENTROPIAIdentificadores de sessão imprevisíveisL1+Capturar vários tokens de sessão. Avaliar entropia e aleatoriedade.Amostra de tokens. Resultado de análise de entropia.
SES-004SEC-Lx-SES-TRANSPORTETransmissão segura dos tokensL1+Verificar headers e cookies. Confirmar uso de HTTPS e flags Secure/HttpOnly.Captura de cabeçalhos. Configuração do servidor ou aplicação.
SES-005SEC-L2-SES-CONTEXTOLigação da sessão ao contexto do clienteL2+Alterar IP ou user-agent a meio da sessão. Verificar deteção de anomalia.Log de encerramento automático. Screenshot do evento de segurança.
SES-006SEC-Lx-SES-REVOGACAORevogação explícita da sessãoL1+Logout manual ou revogação por administração. Tentar reutilizar token anterior.Log de revogação. Resposta 401 a pedidos subsequentes.
SES-007SEC-L2-SES-DURACAOPrevenção de sessões long-livedL2+Verificar configuração de TTL para sessões. Rever política de refresh.Configuração de tokens. Screenshot da definição de tempo.
SES-008SEC-L2-SES-JWTScope, TTL e revogação de tokens JWTL2+Rever payload dos tokens. Confirmar presença de claims como exp, aud, scope.Exemplo de token com claims definidos. Política de revogação ativa.

🧹 VAL - Validação de Dados

IDTagNome resumidoNívelValidação RecomendadaEvidência Esperada
VAL-001SEC-Lx-VAL-VALIDACAOValidação geral de entradas externasL1+Enviar inputs inválidos (tipos, tamanhos, formatos). Confirmar bloqueio.Log de rejeição. Screenshot de resposta com erro de validação.
VAL-002SEC-Lx-VAL-WHITELISTUso de whitelists em vez de blacklistsL1+Rever expressões regulares e listas aplicadas. Verificar política de aceitação.Código validado. Screenshot das regras aplicadas.
VAL-003SEC-L2-VAL-SCHEMAValidadores de esquema (ex: JSON/XML schema)L2+Submeter payloads malformados. Confirmar rejeição automática.Logs de erro. Screenshot do erro de parsing conforme esquema.
VAL-004SEC-Lx-VAL-SANITIZACAOSanitização contra injeçõesL1+Injetar payloads suspeitos (ex: SQL, JS). Confirmar neutralização ou falha controlada.Log de input rejeitado. Comportamento não executado.
VAL-005SEC-Lx-VAL-ORDEMValidação antes do uso internoL1+Rever fluxo de dados. Confirmar validação antes de gravação ou lógica de negócio.Código de validação no início da função. Log de erro controlado.
VAL-006SEC-Lx-VAL-MENSAGEMMensagens de erro seguras na validaçãoL1+Submeter input inválido. Verificar que resposta não expõe lógica interna.Mensagem genérica. Log com detalhe técnico.
VAL-007SEC-L2-VAL-TESTESTestes automáticos contra entradas maliciosasL2+Rever cobertura de testes automatizados para XSS, SQLi, etc.Relatório de testes. Exemplo de caso de teste parametrizado.

❗ ERR - Gestão de Erros

IDTagNome resumidoNívelValidação RecomendadaEvidência Esperada
ERR-001SEC-Lx-ERR-EXPOSICAOErros não expõem dados sensíveisL1+Forçar erro interno (ex: exceção). Verificar resposta e logs.Mensagem genérica no cliente. Stack trace apenas em log interno.
ERR-002SEC-Lx-ERR-MENSAGEMMensagens genéricas no clienteL1+Submeter input inválido. Verificar feedback ao utilizador.Mensagem abstrata (ex: "Erro ao processar pedido").
ERR-003SEC-Lx-ERR-ENUMERACAONão revelar existência de recursosL1+Tentar login com utilizador inexistente. Verificar resposta idêntica.Resposta genérica (ex: "Credenciais inválidas"). Log diferenciado.
ERR-004SEC-Lx-ERR-LOCALIZACAOMensagens localizadas e segurasL1+Alterar idioma do sistema. Verificar traduções e ausência de conteúdo injetável.Mensagens traduzidas. Logs com mensagens sem código executável.
ERR-005SEC-L2-ERR-CENTRALGestão padronizada e centralizadaL2+Rever framework de erro. Confirmar tratamento unificado de exceções.Diagrama ou código da camada central de tratamento de erros.
ERR-006SEC-L2-ERR-TESTESTestes automáticos para erros excessivosL2+Rever testes automatizados para erros malformados.Casos de teste com asserts sobre mensagens seguras.
ERR-007SEC-L2-ERR-LOGLogs de erro com ID de sessão/contexto seguroL2+Verificar conteúdo dos logs. Confirmar que ID de sessão não expõe dados pessoais.Logs com IDs pseudonimizados. Ausência de dados sensíveis.

⚙️ CFG - Configuração Segura

IDTagNome resumidoNívelValidação RecomendadaEvidência Esperada
CFG-001SEC-Lx-CFG-DEBUGDebug e flags desativados em produçãoL1+Verificar ficheiros de configuração e variáveis de ambiente.Valor false ou off em debug, trace, dev_mode.
CFG-002SEC-Lx-CFG-AMBIENTESSeparação de ambientes com validação automáticaL1+Rever pipelines CI/CD. Confirmar validação e isolamento por ambiente.YAML ou script de validação de ambiente. Logs de deploy segregado.
CFG-003SEC-Lx-CFG-HARDCODESem hardcoded de parâmetrosL1+Rever código fonte e variáveis embutidas.Ausência de valores sensíveis no repositório. Uso de placeholders.
CFG-004SEC-Lx-CFG-EXTERNOConfiguração externa e com permissões controladasL1+Verificar uso de ficheiros .env, config.yaml, etc.Screenshot de ficheiros externos com permissões corretas.
CFG-005SEC-L2-CFG-VALIDACAOValidação de configuração no arranqueL2+Parâmetros inválidos devem impedir arranque. Confirmar mensagens claras.Log de erro e falha controlada. Código de verificação no arranque.
CFG-006SEC-L2-CFG-SEGREDOSUso de cofres e gestão segura de segredosL2+Confirmar integração com Vault ou equivalente. Verificar ausência de segredos locais.Screenshot da chamada ao cofre. Logs sem segredos.
CFG-007SEC-L3-CFG-DRIFTMonitorização de drift de configuraçãoL3Introduzir alteração em runtime. Verificar deteção e alerta.Alerta de alteração inesperada. Log de evento de drift.

🌐 API - Segurança de APIs

IDTagNome resumidoNívelValidação RecomendadaEvidência Esperada
API-001SEC-Lx-API-AUTHZAutenticação e autorização de chamadas APIL1+Tentar chamadas sem autenticação/autorização. Confirmar rejeição.Resposta 401/403. Logs de acesso negado.
API-002SEC-Lx-API-ENDPOINTSEndpoints desnecessários ocultos ou removidosL1+Listar endpoints expostos. Verificar ausência de debug ou rotas legacy.Output de swagger ou rota listada sem endpoints sensíveis.
API-003SEC-Lx-API-INPUTValidação de input em APIsL1+Submeter JSON/XML inválido. Confirmar rejeição.Log de erro. Resposta com código 400 e mensagem de validação.
API-004SEC-L2-API-RATELIMITRate limiting e deteção de abusosL2+Efetuar chamadas repetidas. Confirmar throttling ou bloqueio.Resposta 429. Log com contagem de chamadas.
API-005SEC-Lx-API-TLSProteção por TLS e certificados atualizadosL1+Verificar headers e certificados em uso.Certificado válido. Headers com Strict-Transport-Security.
API-006SEC-Lx-API-SDKVerificação de SDKs e wrappers usadosL1+Auditar dependências usadas por APIs. Verificar versões e licenças.SBOM da API. Logs de scans de dependências.
API-007SEC-L2-API-LOGLogging e auditoria de chamadas externasL2+Efetuar chamadas a serviços externos. Verificar logging detalhado e métricas.Log de chamadas externas. Dashboard com métricas.

📨 INT - Mensagens e Integrações

IDTagNome resumidoNívelValidação RecomendadaEvidência Esperada
INT-001SEC-Lx-INT-VALIDACAOValidação de mensagens entre sistemasL1+Enviar mensagens malformadas. Confirmar rejeição com erro controlado.Log de rejeição. Resposta com erro de parsing.
INT-002SEC-Lx-INT-AUTHAutenticação mútua ou tokens segurosL1+Verificar uso de mTLS, JWTs ou tokens com validade.Header de autenticação. Configuração segura.
INT-003SEC-Lx-INT-TLSTransmissão cifrada com TLSL1+Inspecionar canal de comunicação. Confirmar TLS 1.2+.Output de curl -v. Certificado válido.
INT-004SEC-Lx-INT-PROTOCOLOSProibição de protocolos insegurosL1+Tentar uso de HTTP ou FTP. Confirmar bloqueio ou redirecionamento para HTTPS/SFTP.Log de rejeição. Política de rede ou headers seguros.
INT-005SEC-L2-INT-ASSINATURAAssinatura e integridade de mensagensL2+Verificar presença de assinatura digital (ex: JWS, XML-SIG).Exemplo de mensagem assinada. Código de verificação da assinatura.
INT-006SEC-L2-INT-WHITELISTValidação cruzada de origem e destinoL2+Alterar origem do pedido (ex: spoof de domínio). Confirmar rejeição.Lista de domínios autorizados. Log de tentativa rejeitada.
INT-007SEC-L3-INT-MONITORIZAMonitorização e deteção de padrões anómalosL3Simular tráfego atípico. Confirmar alerta ou deteção automatizada.Log de evento anómalo. Alerta no SIEM.
INT-008SEC-L3-INT-TERCEIROSRevisão de segurança e contrato em integraçõesL3Verificar existência de cláusulas contratuais e checklist de segurança aplicado.Contrato com cláusula de segurança. Registo de revisão técnica.

📄 REQ - Definição de Requisitos

IDTagNome resumidoNívelValidação RecomendadaEvidência Esperada
REQ-001SEC-Lx-REQ-INCLUSAOInclusão de requisitos de segurançaL1+Rever user stories e especificações. Confirmar presença explícita de requisitos.Backlog com requisitos marcados. Documento com secção de segurança.
REQ-002SEC-Lx-REQ-REVISAORevisão formal de segurança dos requisitosL1+Verificar processo de análise em fase de planeamento.Registo de reunião de revisão. Checklist preenchido.
REQ-003SEC-Lx-REQ-ALINHAMENTOAlinhamento com classificação de riscoL1+Comparar requisitos definidos com nível de risco da aplicação (L1, L2, L3).Mapeamento entre requisitos e criticidade.
REQ-004SEC-Lx-REQ-VERSIONAMENTOVersionamento e gestão de requisitosL1+Confirmar existência de repositório com histórico de alterações.Histórico de commits. Controlos de versão visíveis.
REQ-005SEC-L2-REQ-THREATSNova análise de ameaça após alteração de requisitoL2+Modificar requisito. Confirmar disparo de nova análise de ameaça.Registo de threat modeling associado à alteração.
REQ-006SEC-L2-REQ-RASTREIORastreabilidade requisito → ameaça → testeL2+Verificar matriz de rastreabilidade. Confirmar ligação entre artefactos.Documento ou ferramenta com relação 3 pontos.
REQ-007SEC-L2-REQ-ITERACAORevisão iterativa com equipasL2+Confirmar iteração contínua no ciclo de sprint ou equivalente.Logs de reuniões. Backlog com alterações versionadas.

🛠️ DST - Distribuição de Artefactos

IDTagNome resumidoNívelValidação RecomendadaEvidência Esperada
DST-001SEC-Lx-DST-REPORepositórios autenticados e auditáveisL1+Verificar configurações de repositório (ex: Nexus, Artifactory).Screenshot de autenticação obrigatória. Logs de acesso configurados.
DST-002SEC-L2-DST-APROVACAOAprovação para publicação públicaL2+Simular publicação em registry público. Confirmar necessidade de aprovação prévia.Workflow de aprovação. Log de revisão antes da publicação.
DST-003SEC-L2-DST-ASSINATURAAssinatura digital ou checksumL2+Rever processo de build. Confirmar assinatura automática ou validação por hash.Artefacto com assinatura. Script de verificação de integridade.
DST-004SEC-L2-DST-SBOMInclusão de SBOM nos artefactosL2+Verificar se SBOM é gerado e incluído no pipeline.Ficheiro SBOM anexo. Log de geração durante CI/CD.
DST-005SEC-L2-DST-SEGREGAAcesso segregado por role e ambienteL2+Verificar permissões de acesso aos binários.Políticas RBAC aplicadas. Logs de acesso controlado.
DST-006SEC-L2-DST-PIPELINEDeploy apenas via pipeline validadoL2+Simular bypass manual. Confirmar rejeição.Log de execução do pipeline como única fonte de deploy.
DST-007SEC-Lx-DST-REVOGACAORevogação e limpeza de artefactos comprometidosL1+Publicar versão comprometida (ex: com CVE). Confirmar processo de remoção e alerta.Histórico de remoção. Notificação de revogação.

💻 IDE - Ferramentas de Desenvolvimento

IDTagNome resumidoNívelValidação RecomendadaEvidência Esperada
IDE-001SEC-Lx-IDE-AUTORIZADAFerramentas e IDEs autorizadasL1+Rever lista de ferramentas permitidas. Verificar uso fora da whitelist.Documento de ferramentas aprovadas. Screenshot de IDE em uso.
IDE-002SEC-Lx-IDE-ATUALIZADAAtualização e gestão de vulnerabilidadesL1+Verificar versão atual das IDEs. Avaliar presença de atualizações em falta.Página “About” da IDE. Log de gestão de updates.
IDE-003SEC-L2-IDE-CODIGOAuditoria de código gerado por ferramentasL2+Usar scaffolding/boilerplate. Confirmar revisão de código resultante.Pull request com validação. Comentários de revisão.
IDE-004SEC-Lx-IDE-FONTESExtensões e plugins de fontes confiáveisL1+Rever marketplace ou fonte de instalação. Validar assinatura ou origem.Screenshot de instalação. Fonte oficial listada.
IDE-005SEC-L2-IDE-PERMISSOESControlo de permissões de extensõesL2+Analisar permissões concedidas. Verificar execução sandboxed.Screenshot de permissões. Registos de sandboxing.
IDE-006SEC-L2-IDE-ISOLAMENTOEvitar uso de ambientes locais sem controloL2+Verificar rede, proxy, DNS local em IDEs. Confirmar isolamento ou controlo.Log de rede. Política de proxy forçado.

📌 Nota Final

Este catálogo de validação cobre de forma robusta a generalidade das aplicações empresariais, web e cloud-native. No entanto, aplicações com perfis técnicos específicos - como sistemas embarcados (embedded), IoT, SCADA, mobile, aplicações médicas ou sistemas de tempo real - poderão necessitar de requisitos adicionais e validações específicas.

Algumas fontes recomendadas para consulta e curadoria desses requisitos específicos incluem:

Durante a definição e manutenção contínua deste catálogo e respetivo documento de validação, devem ser mantidos os mesmos padrões de qualidade, estrutura e rastreabilidade definidos neste capítulo:

  • Organização por grupo funcional com IDs únicos;
  • Proporcionalidade por nível de risco (L1, L2, L3);
  • Tabelas normalizadas com validação recomendada e evidência esperada;
  • Ligação clara ao catálogo 01-catalogo-requisitos.md.

A consistência entre catálogo e validação é fundamental para garantir rastreabilidade, auditabilidade e alinhamento com o modelo SbD-ToE.