Pular para o conteúdo principal
Capítulo Basilar

Este capítulo é considerado basilar no modelo Security by Design - Theory of Everything (SbD-ToE).
A sua aplicação é obrigatória para garantir a coerência, rastreabilidade e eficácia das restantes práticas de segurança.

Os capítulos basilares constituem a fundação técnica e metodológica do modelo, a ausência ou aplicação parcial de qualquer um destes compromete a integridade global do SbD-ToE, tornando inviável a adoção coerente das práticas operacionais e de governação.

🛠️ Requisitos de Segurança

Este capítulo aborda a definição, estruturação e validação de requisitos de segurança desde o início do ciclo de desenvolvimento, com foco na proporcionalidade ao risco, rastreabilidade e verificabilidade prática.
Abrange também boas práticas de gestão, critérios de aceitação, utilização de catálogos reutilizáveis e integração com processos ágeis (ex: backlog, histórias de utilizador, critérios de aceitação).

Inclui:


📊 Tabela-Resumo dos Temas de Requisitos

O catálogo de requisitos está organizado por 20 temas técnicos, identificados com códigos T01–T20.
Cada tema agrupa requisitos com afinidade técnica e operacional, e é aplicado consoante o nível de risco da aplicação.

CódigoTemaDescrição resumida
T01Autenticação e Gestão de IdentidadeMFA, sessões, gestão de credenciais
T02Controlo de AcessoRBAC, privilégio mínimo, separação de funções
T03Registo, Auditoria e MonitorizaçãoLogs, eventos críticos, retenção, SIEM
T04Gestão de SessõesTokens, timeouts, logout, proteção contra roubo
T05Validação e Sanitização de DadosValidação de input, output seguro, proteção contra injeções
T06Proteção de Dados SensíveisCifras, hashing, classificação, políticas de acesso
T07Criptografia e Gestão de ChavesAlgoritmos, rotação, armazenamento seguro, uso de cofres
T08Tratamento de Erros e MensagensStack traces, mensagens genéricas, exceções
T09Segurança de APIs e IntegraçõesAutenticação mútua, whitelisting, rate limiting, segurança mTLS
T10Configuração SeguraSeparação de ambientes, parametrização, validação de config
T11Segurança do Código e BuildLinters, SAST, pipelines, dependências internas
T12Gestão de Dependências e SBOMAtualizações, SCA, SBOM, política de severidade
T13CI/CD SeguroControlo de ambientes, proveniência, pipelines e validação
T14Infraestrutura como CódigoSegurança em Terraform, Ansible, validação de políticas
T15Containers e Execução IsoladaImagens fiáveis, hardening, scanning, runtime controls
T16Deploy, Release e Runtime ControlsReversibilidade, validação antes de produção, segregação de ambientes
T17Testes de SegurançaSAST, DAST, fuzzing, integração no pipeline
T18Monitorização Contínua e AlertasDeteção de incidentes, alertas em tempo real
T19Formação, Onboarding e PerfisPerfis seguros, segregação, sensibilização
T20Governança, Revisões e ConformidadeRevisões de segurança, cláusulas contratuais, aceitação de risco

📌 A seleção dos temas a aplicar é feita com base na matriz de controlo por risco.


🧪 2. Prescrição prática: o quê, quem, como, quando, porquê e para quê

📌 O que deve ser feito

  1. Identificar e documentar requisitos de segurança com base no risco (ver Capítulo 1)
  2. Assegurar que os requisitos são verificáveis e testáveis
  3. Incluir requisitos de segurança no backlog funcional
  4. Garantir rastreabilidade sistemática entre risco, requisito, controlo e evidência, usando a taxonomia definida
  5. Estabelecer critérios de aceitação claros para cada requisito
  6. Rever, manter e justificar exceções com base em critérios definidos

⚙️ Como deve ser feito

  • Usar catálogos como o proposto neste manual, ou como base ASVS v5.0 como referência para requisitos técnicos
  • Adaptar os requisitos ao nível de risco e tipo de aplicação
  • Manter os requisitos num formato versionado e ligado ao repositório (Markdown, Excel, Jira)
  • Integrar requisitos com critérios de aceitação claros (ex: Gherkin, checklist)
  • Identificar requisitos com tags normalizadas da taxonomia SEC-Lx-XXX
  • Validar com base nos critérios descritos na secção de validação de requisitos

🧩 Usar planilhas de rastreabilidade (risco → requisito → controlo → validação)
🎯 Estabelecer regras claras para a testabilidade de cada requisito

📆 Quando aplicar

  • Na fase de definição de requisitos ou arquitetura
  • Após conclusão de Threat Modeling (Cap. 3)
  • Sempre que o risco ou exposição da aplicação se alterem
  • Em revisões de segurança, design reviews, sprint planning ou milestones

👥 Quem está envolvido e como

Papel/FunçãoContributo principal
Arquitectura / DevSecOpsTradução dos riscos em requisitos técnicos concretos
Product Owner / BAIntegração no backlog e histórias de utilizador
Equipa de SegurançaDefinição de modelos e validação de alinhamento
QA / TestesElaboração de critérios de aceitação de segurança e validação prática

✅ A rastreabilidade e testabilidade são responsabilidades partilhadas por todas as funções.

🎯 Porquê / Para quê

  • Reduzir risco desde as fases iniciais
  • Evitar retrabalho e custos de correção tardios
  • Suportar auditorias e conformidade
  • Aumentar a confiança nas releases
  • Integrar a segurança nos processos de entrega ágil

⚠️ 3. Caveats ou limitações da prescrição

  • Requisitos genéricos não testáveis não trazem valor (ex: "deve ser seguro")
  • Copiar checklists sem adaptação ao risco real resulta em sobrecarga ou falsa segurança
  • A rastreabilidade manual pode ser difícil sem apoio de ferramentas (Jira, traceability plugins)

🔍 5. O que pode ser feito mais (e porquê)

  • Criar um catálogo interno com requisitos típicos reutilizáveis (tomando por base por exemplo o catalogo deste manual)
  • Adotar uma linguagem formal ou semi-formal para critérios de aceitação (regras de taxonomia)
  • Ligar requisitos à documentação técnica, diagramas e testes automatizados (rastreabilidade, como fazer avalidação dos requisitos
  • Automatizar a rastreabilidade entre risco e requisito com ferramentas de ALM (Application Lifecycle Management)

📌 Nota sobre âmbito e extensibilidade

Este capítulo define um conjunto essencial e transversal de requisitos aplicacionais, aplicáveis à maioria dos sistemas empresariais, web e cloud-native. No entanto, aplicações com perfis técnicos específicos - como sistemas embebidos, IoT, SCADA, aplicações móveis, médicas ou industriais - poderão necessitar de requisitos e controlos adicionais.

É recomendada a consulta e curadoria adicional com base em fontes como:

A definição e manutenção do catálogo de requisitos e respetivo documento de validação devem seguir o mesmo padrão técnico e editorial: estrutura coerente, proporcionalidade por nível de risco, e rastreabilidade completa.


📜 Políticas Organizacionais Relevantes

PolíticaObrigatóriaAplicaçãoConteúdo mínimo esperado
Política de Requisitos de SegurançaSimTodas as aplicaçõesDefinição, revisão, rastreabilidade, aceitação de risco
Política de Testes de SegurançaSimApps L2/L3Critérios, evidência, aceitação, ciclo de revisão
Política de RastreabilidadeOpcionalApps críticasMapeamento requisitos→controlo→validação, auditoria
Política de Gestão de ExceçõesSimTodasProcesso formal de justificação, registo e aceitação

📎 Ver detalhe das políticas recomendadas para este capítulo Para a versão impressa, ver o anexo de políticas do manual.