Pular para o conteúdo principal

🛠️ Critérios de Aceitação dos Requisitos de Segurança

Este anexo apresenta, para cada requisito do Catálogo Base, o critério mínimo de aceitação recomendado, permitindo validação objetiva, integração em backlogs e auditorias, e articulação clara com equipas de desenvolvimento e segurança.

Os critérios apresentados são genéricos e podem ser ajustados por organização/projeto, mantendo sempre o princípio de serem auditáveis e verificáveis.


🔐 AUT - Autenticação e Identidade

IDNome resumidoCritério de aceitação
AUT-001MFA obrigatórioMFA está ativado; login sem segundo fator não é possível.
AUT-002Política de passwordsSistema rejeita passwords fracas; registo/teste evidencia bloqueio.
AUT-003Proteção brute forceConta bloqueada após N tentativas falhadas; logs evidenciam bloqueio.
AUT-004Revogação ativa sessãoLogout expulsa sessão ativa; token inválido após logout.
AUT-005Expiração automáticaSessão termina após tempo de inatividade pré-definido.
AUT-006Sem credenciais em claroAuditoria confirma que senhas nunca são armazenadas/transmitidas em texto claro.
AUT-007Autenticação federadaFluxo federado funcional; login via SAML/OIDC testado.
AUT-008Step-up para ações sensíveisOperações críticas requerem MFA extra; teste evidencia proteção.
AUT-009Reautenticação em alterações críticasAlterações sensíveis exigem validação adicional (ex: senha atual).
AUT-010Alerta de acessos suspeitosAcessos anómalos resultam em alerta/notificação ao utilizador.

🔓 ACC - Controlo de Acesso

IDNome resumidoCritério de aceitação
ACC-001Controlo de acesso RBACPerfis e permissões mapeados; role limitado impede acesso a recursos restritos.
ACC-002Princípio do menor privilégioContas de utilizador não têm permissões desnecessárias; auditoria evidencia restrição.
ACC-003Bloqueio e auditoria de acessos ilegítimosTentativas de acesso não autorizado são bloqueadas e registadas.
ACC-004Separação de perfisPerfis de utilizador, admin e serviço são diferenciados; logs evidenciam ações distintas.
ACC-005Controlo de acesso a APIs e serviçosEndpoints requerem autenticação/autorização; chamadas não autenticadas são rejeitadas.
ACC-006Proteção de recursos sensíveisAcesso não autorizado a dados críticos é impedido e registado.
ACC-007Validação do modelo de acessoModelo de ameaças e permissões revisto; documentação existe e está atualizada.
ACC-008Revogação em tempo realRemoção de acesso reflete-se imediatamente; teste de permissão falha após revogação.
ACC-009Autorização baseada em atributos (ABAC)Decisão de acesso depende de atributos dinâmicos; logs evidenciam aplicação.
ACC-010Revisão periódica de permissõesAuditorias periódicas removem permissões obsoletas; registos de revisão mantidos.

📈 LOG - Registo e Monitorização

IDNome resumidoCritério de aceitação
LOG-001Registo de eventos críticosLogs registam acessos, alterações e falhas de segurança críticas.
LOG-002Atributos mínimos em logsCada log inclui quem, quando, o quê e onde.
LOG-003Proteção de integridade e acesso aos logsLogs não podem ser alterados por utilizadores comuns; proteção por permissões/assinatura.
LOG-004Análise periódica de logsExistência de processo/documentação de análise periódica de logs.
LOG-005Retenção mínima dos logsLogs mantidos pelo período definido em política.
LOG-006Envio para sistema centralizadoEventos críticos enviados e registados em SIEM/monitorização central.
LOG-007Classificação e deteção de anomaliasPolítica de severidade definida; anomalias disparam alertas.
LOG-008Alarme em falhas do mecanismo de loggingFalhas de logging resultam em alertas/documentação.
LOG-009Logs suportam resposta a incidentesLogs detalhados disponíveis para análise pós-incidente.
LOG-010Logging de eventos críticos de negócioEventos críticos do negócio são registados e rastreados.

🕒 SES - Sessões e Estado

IDNome resumidoCritério de aceitação
SES-001Expiração automática por inatividadeSessão termina automaticamente após período de inatividade.
SES-002Logout manual e após alteração de credenciaisLogout manual termina todas as sessões ativas; alteração de senha invalida tokens anteriores.
SES-003Identificadores de sessão imprevisíveisTokens/sessões têm entropia elevada e não são previsíveis.
SES-004Transmissão segura dos tokensTokens transmitidos apenas por canais seguros (HTTPS, Secure/HttpOnly cookies).
SES-005Ligação da sessão ao contexto do clienteMudança de IP/user-agent termina sessão ou exige revalidação.
SES-006Revogação explícita da sessãoSessão pode ser terminada a pedido; token fica inválido imediatamente.
SES-007Prevenção de sessões long-livedTTL máximo configurado; sessões prolongadas não são possíveis.
SES-008Scope, TTL e revogação de tokens JWTTokens JWT incluem claims de âmbito, expiração, e podem ser revogados.

🧹 VAL - Validação de Dados

IDNome resumidoCritério de aceitação
VAL-001Validação geral de entradas externasInputs inválidos são rejeitados; logs evidenciam bloqueio.
VAL-002Uso de whitelists em vez de blacklistsApenas valores explícitos/aceites são permitidos; teste evidencia rejeição de valores não permitidos.
VAL-003Validadores de esquema (ex: JSON/XML schema)Payloads malformados são rejeitados automaticamente; logs de parsing disponíveis.
VAL-004Sanitização contra injeçõesInputs potencialmente perigosos são neutralizados; ataques resultam em falha controlada.
VAL-005Validação antes do uso internoDados são validados antes de uso em lógica de negócio ou gravação.
VAL-006Mensagens de erro seguras na validaçãoErros não expõem lógica interna nem dados sensíveis.
VAL-007Testes automáticos contra entradas maliciosasTestes automatizados cobrem XSS, SQLi, e outras injeções; resultados registados.

❗ ERR - Gestão de Erros

IDNome resumidoCritério de aceitação
ERR-001Erros não expõem dados sensíveisMensagens de erro não incluem dados sensíveis; logs internos detalhados, cliente vê mensagem abstrata.
ERR-002Mensagens genéricas no clienteCliente recebe sempre mensagem genérica (“Erro ao processar pedido”).
ERR-003Não revelar existência de recursosMensagens de erro são idênticas para recursos existentes/inexistentes.
ERR-004Mensagens localizadas e segurasMensagens são traduzidas e não incluem conteúdo executável.
ERR-005Gestão padronizada e centralizadaFramework de erro centraliza tratamento e logging de exceções.
ERR-006Testes automáticos para erros excessivosTestes automatizados garantem que erros são tratados e não há fugas de informação.
ERR-007Logs de erro com ID de sessão/contexto seguroLogs incluem apenas IDs pseudonimizados/contextuais; dados pessoais nunca registados.

⚙️ CFG - Configuração Segura

IDNome resumidoCritério de aceitação
CFG-001Debug e flags desativados em produçãoParâmetros de debug, trace, dev_mode desligados em produção.
CFG-002Separação de ambientes com validação automáticaDeploys/testes apenas possíveis em ambientes segregados; logs evidenciam segregação.
CFG-003Sem hardcoded de parâmetrosCódigo fonte não contém segredos nem parâmetros sensíveis em claro.
CFG-004Configuração externa e com permissões controladasConfiguração é externa ao código e com permissões de acesso restritivas.
CFG-005Validação de configuração no arranqueSistema falha arranque quando parâmetros obrigatórios estão em falta ou incorretos.
CFG-006Uso de cofres e gestão segura de segredosSegredos só existem em cofres seguros; auditoria evidencia ausência local.
CFG-007Monitorização de drift de configuraçãoAlterações inesperadas em configuração disparam alertas/logs.

🌐 API - Segurança de APIs

IDNome resumidoCritério de aceitação
API-001Autenticação e autorização de chamadas APIEndpoints só aceitam chamadas autenticadas/autorizadas.
API-002Endpoints desnecessários ocultos ou removidosEndpoints de debug/legacy não expostos; só disponíveis em ambientes de teste.
API-003Validação de input em APIsInputs malformados são rejeitados; logs registam tentativa.
API-004Rate limiting e deteção de abusosLimite configurado e ativo; chamadas excessivas resultam em resposta 429 ou bloqueio.
API-005Proteção por TLS e certificados atualizadosCertificados válidos, canal TLS obrigatório; cabeçalhos seguros ativos.
API-006Verificação de SDKs e wrappers usadosSBOM gerado; dependências e versões documentadas; auditoria de licenças.
API-007Logging e auditoria de chamadas externasTodas as chamadas externas registadas; logs contêm dados essenciais.

📨 INT - Mensagens e Integrações

IDNome resumidoCritério de aceitação
INT-001Validação de mensagens entre sistemasMensagens malformadas são rejeitadas/controladas.
INT-002Autenticação mútua ou tokens segurosIntegrações só aceites de fontes autenticadas; tokens válidos/revogados.
INT-003Transmissão cifrada com TLSTodo o tráfego entre sistemas cifrado; verificação de TLS ativo.
INT-004Proibição de protocolos insegurosProtocolos inseguros (HTTP, FTP) rejeitados ou redirecionados para seguro.
INT-005Assinatura e integridade de mensagensMensagens sensíveis assinadas/verificadas; logs evidenciam verificação.
INT-006Validação cruzada de origem e destinoSó origens/destinos autorizados aceites; logs de rejeição mantidos.
INT-007Monitorização e deteção de padrões anómalosComportamento anómalo dispara alertas; logs analisados periodicamente.
INT-008Revisão de segurança e contrato em integraçõesIntegrações documentadas; cláusulas contratuais e checklists disponíveis.

📄 REQ - Definição de Requisitos

IDNome resumidoCritério de aceitação
REQ-001Inclusão de requisitos de segurançaRequisitos explícitos em backlog/documentação; todos marcados.
REQ-002Revisão formal de segurança dos requisitosProcesso/documento de revisão de requisitos executado.
REQ-003Alinhamento com classificação de riscoMapeamento entre requisitos e nível de criticidade disponível.
REQ-004Versionamento e gestão de requisitosHistórico de alterações disponível; controlo de versões aplicado.
REQ-005Nova análise de ameaça após alteração de requisitoAlterações relevantes disparam nova análise de threat modeling.
REQ-006Rastreabilidade requisito → ameaça → testeMatriz ou ferramenta demonstra ligação entre requisitos, ameaças e testes.
REQ-007Revisão iterativa com equipasAlterações de requisitos discutidas, revistas e registadas periodicamente.

🛠️ DST - Distribuição de Artefactos

IDNome resumidoCritério de aceitação
DST-001Repositórios autenticados e auditáveisAutenticação obrigatória e logs ativos para aceder a artefactos.
DST-002Aprovação para publicação públicaPublicação em registry público requer aprovação/documentação formal.
DST-003Assinatura digital ou checksumArtefactos assinados ou validados por hash antes de publicação.
DST-004Inclusão de SBOM nos artefactosSBOM gerado e anexado a cada release ou artefacto distribuído.
DST-005Acesso segregado por role e ambienteSó utilizadores/automações autorizados acedem a binários relevantes.
DST-006Deploy apenas via pipeline validadoArtefactos só deployados por pipeline controlado/auditado.
DST-007Revogação e limpeza de artefactos comprometidosVersões comprometidas são removidas e utilizadores notificados.

💻 IDE - Ferramentas de Desenvolvimento

IDNome resumidoCritério de aceitação
IDE-001Ferramentas e IDEs autorizadasSó ferramentas/IDEs aprovadas são usadas; lista mantida e atualizada.
IDE-002Atualização e gestão de vulnerabilidadesIDEs mantidas atualizadas; histórico de updates disponível.
IDE-003Auditoria de código gerado por ferramentasCódigo gerado é revisto/auditado antes de produção.
IDE-004Extensões e plugins de fontes confiáveisSó extensões de fontes reconhecidas são instaladas; logs de instalação disponíveis.
IDE-005Controlo de permissões de extensõesPermissões revistas e apenas as necessárias concedidas; execução sandboxed verificada.
IDE-006Evitar uso de ambientes locais sem controloUtilização de ambientes locais limitada e controlada; logs de rede/proxy disponíveis.

📌 Nota Final

Os critérios de aceitação devem ser integrados nos processos de validação e auditoria dos projetos, podendo ser complementados por testes automáticos, revisões manuais ou artefactos de evidência documental.

Para ligação direta ao requisito correspondente, consultar o Catálogo Base de Requisitos.