Pular para o conteúdo principal
Capítulo Operacional

Este capítulo é considerado operacional no modelo Security by Design - Theory of Everything (SbD-ToE).
A sua função é aplicar, automatizar e validar as práticas definidas nos capítulos basilares, garantindo a sua execução contínua e mensurável.

Os capítulos operacionais implementam o SbD-ToE em contextos técnicos específicos. Estes capítulos traduzem as prescrições basilares em práticas de execução verificável, promovendo a integração contínua da segurança ao longo do ciclo de vida do software.

Dependências, SBOM e SCA

O uso de Open Source Software (OSS) e bibliotecas de terceiros é comum e recomendado: acelera a entrega e evita reinventar a roda.
Contudo, sem governação, surgem riscos materiais: componentes abandonados, CVEs conhecidos, pacotes maliciosos e falta de visibilidade da cadeia de fornecimento.

Este capítulo estabelece bases operacionais para uma gestão segura, rastreável e auditável de dependências, incluindo:

  • SBOM atualizado por build,
  • SCA integrado no CI/CD com gates,
  • governação de exceções,
  • proibição de bibliotecas copiadas manualmente para o repositório, e
  • automação de atualização com avaliação de impacto (bots que abrem PRs quando a mudança é segura e solicitam intervenção humana quando há impacto no código).

Os requisitos aqui descritos aplicam-se a qualquer stack/língua.
Focam-se em assegurar que:

  • cada dependência é conhecida, aprovada e rastreável,
  • cada build produz SBOM completo,
  • vulnerabilidades são detetadas e triadas,
  • atualizações são automatizadas com análise de impacto (semver, release notes, changelogs, testes e static call graphs),
  • nenhuma biblioteca entra “por cópia manual” fora do package manager.

Ligação a outros capítulos:

  • Cap. 02 - Requisitos de Segurança (REQ-DEP-xxx),
  • Cap. 07 - CI/CD Seguro (pipelines e gates),
  • Cap. 09 - Containers (imagens como artefactos de supply chain),
  • Cap. 14 - Governança (exigências a fornecedores).

🧭 O que cobre tecnicamente

  • Gestão segura de dependências (OSS, comerciais, internas).
  • Geração e manutenção de SBOM (CycloneDX/SPDX).
  • Integração de SCA automatizado no CI/CD.
  • Processo formal de exceções e aceitação de risco.
  • Repositórios internos como fonte única de confiança.
  • Proibição de dependências copiadas localmente (JS, PHP, DLLs, JARs, etc.).
  • Automação da atualização com avaliação de impacto (Renovate/Dependabot/afins):
    • PRs automáticos quando o impacto é nulo/baixo (semver patch/minor compatível, testes verdes),
    • handoff para intervenção humana quando há impacto (major/breaking, APIs alteradas).

🧪 Pilares de governação

  1. Repositórios internos aprovados como fonte única.
  2. Política de dependências com critérios de aprovação e pinning.
  3. SBOM por build, versionado e acessível.
  4. SCA automático com gates por severidade e criticidade (L1–L3).
  5. Exceções formais com prazo e mitigação compensatória.
  6. Auditorias periódicas para impedir bibliotecas copiadas manualmente.
  7. Automação de atualização com avaliação de impacto e integração nos testes/gates.

⚙️ Como deve ser feito

  • Configurar package managers para usarem apenas repositórios internos.
  • Gerar SBOM em cada build (CycloneDX/SPDX); arquivar.
  • Integrar SCA com bloqueio automático para CVEs críticos (limiares por Lx).
  • Formalizar exceções (ex.: excecoes.yaml) e rever periodicamente.
  • Ativar bots de atualização com:
    • análise de semver, release notes e diffs,
    • execução de testes e validações (CI),
    • PRs “auto-merge” condicionados a no-impact comprovado,
    • marcação “requires-human” quando há impacto no código (breaking).
  • Remover bibliotecas copiadas manualmente e substituí-las por dependências declaradas.

📆 Quando aplicar

  • Início: política e configuração de repositórios internos.
  • Nova dependência: revisão de origem/licença/manutenção/CVEs.
  • Build: gerar SBOM + executar SCA.
  • Release: validar findings e exceções.
  • Ciclo regular: atualizar dependências (bots) e rever findings.
  • CVE crítico: avaliar impacto e remediar versões afetadas.

👥 Quem está envolvido

Papel/FunçãoContributo principal
Developer / LeadIncluir dependências, triagem inicial, pinning, correções
AppSecPolíticas, tuning, gates, exceções e revisão de risco
DevOps / CI/CDSBOM, SCA, repositórios internos, bots de atualização
QA / Test EngineerEvidências, testes de regressão, validação de PRs de bots
Product OwnerDecisão go/no-go perante findings/risco residual
GRC / GestãoAuditoria, conformidade, retenção de evidências

🎯 Para quê

  • Reduzir risco de componentes vulneráveis/abandonados.
  • Garantir rastreabilidade e resposta rápida a CVEs.
  • Acelerar time‑to‑fix com bots que avaliam impacto, automatizam PRs seguros e solicitam intervenção humana quando necessário.
  • Evitar riscos ocultos (bibliotecas copiadas manualmente).
  • Cumprir SSDF, SLSA, NIS2 e boas práticas de mercado.

🧮 Aplicação proporcional L1–L3

PráticaL1 (baixo)L2 (médio)L3 (alto/crit.)
SBOMBásico por buildCompleto por releaseAssinado + verificação de integridade
SCAAvisoBloqueio High/CriticalBloqueio Medium+
PinningRecomendadoObrigatórioObrigatório + proveniência verificada
ExceçõesSimplesFormais + revisão periódicaFormais + validação executiva
Repositório internoRecomendadoObrigatórioObrigatório + assinatura/verificação
Bibliotecas copiadas locaisProibidas (política)Auditoria periódicaEnforcement em CI/CD
Bots de atualizaçãoOpcionalAtivos com auto‑PR e no‑impact mergeAtivos + impact analysis + canary + gates

📜 Políticas Organizacionais Relevantes

PolíticaObrigatóriaAplicaçãoConteúdo mínimo esperado
Política de DependênciasSimTodos os projetosCritérios de aprovação, pinning, bloqueio externo
Política de SBOMSimTodos os buildsCycloneDX/SPDX, versionamento, retenção
Política de Exceções a CVEsSimProjetos críticosJustificação, prazo, mitigação compensatória
Política de Bibliotecas LocaisSimTodos os repositóriosProibição de JS/PHP/DLL/JAR locais fora de package manager
Política de Atualização AutomáticaSimL2–L3Bots ativos, impact analysis, critérios de auto‑merge, handoff humano

Na versão impressa, consultar o Anexo de Políticas do Manual, onde estas políticas estão consolidadas transversalmente.