Pular para o conteúdo principal

Aplicação de Arquitetura Segura no Ciclo de Vida

Este anexo prescreve como aplicar sistematicamente as práticas de Arquitetura Segura definidas no Capítulo 4 ao longo do ciclo de desenvolvimento, garantindo rastreabilidade, proporcionalidade ao risco (L1–L3) e integração com requisitos e ameaças.

Inclui modelos reutilizáveis de user stories, ações por papel, artefactos esperados e quadros de aplicação por nível de criticidade.


🧭 Quando aplicar Arquitetura Segura

Fase / EventoAção esperadaQuem participaArtefacto principal
Início de projeto / épicoDefinir princípios e baseline inicialArquitetos de Software, AppSec Engineer, DevOps/SREprincipios-arquitetura.md
Design de soluçãoProduzir ficha de solução com controlos e decisõesArquitetos de Software, AppSec Engineersolution-architecture.md
Grooming / PlaneamentoValidar requisitos arquiteturais e planeamento de controlosDeveloper, Arquitetos de Software, AppSec Engineerdesign-review.md
Decisão arquitetural relevanteRegistar ADR com alternativas, trade-offs e impactoArquitetos de Software, AppSec Engineeradr/ADR-XXXX.md
Integrações / fronteiras de confiançaRever trust boundaries, integrações e fluxos de dados (incl. observabilidade)Arquitetos de Software, AppSec Engineer, Developertrust-boundaries.md
Alteração arquitetural significativaAtualizar baseline e invalidar/atualizar decisões afetadasDeveloper, Arquitetos de Software, AppSec Engineerarchitecture-update.md
Exceção arquiteturalSolicitar/avaliar/aprovar exceção com controlos compensatórios e sunsetProduct Owner, AppSec Engineer, Arquitetos de Softwareexcecao-arquitetura.md
Triggers “arquitetura viva”Reavaliar docs/ADR/TM quando ocorrerem eventos definidosArquitetos de Software, DevOps/SRE, AppSec Engineerarquitetura-triggers.md
Release / Go-liveGate arquitetural: verificar controlos e exceçõesQA, AppSec Engineer, Arquitetos de Softwarechecklist-arquitetura.md
CI/CD pipelineValidar automaticamente controlos arquiteturais automatizáveis (quando aplicável)DevOps/SRE, AppSec Engineerci-architecture-report.*

👥 Quem faz o quê

Papel / FunçãoResponsabilidades-chave
Arquitetos de SoftwareDefinir princípios, criar fichas de solução, manter baseline e ADR, rever designs e integrações
DeveloperImplementar decisões arquiteturais e controlos especificados, sinalizar alterações significativas
QAGarantir que requisitos arquiteturais e controlos estão refletidos em testes e evidência de release
AppSec EngineerDefinir/rever controlos, validar decisões e exceções, assegurar ligação a ameaças (Cap. 3) e requisitos (Cap. 2)
Product OwnerPriorizar investimento/mitigação, aprovar trade-offs de negócio e exceções com impacto em scope/prazos
DevOps/SREIntegrar validações automatizáveis no pipeline, garantir evidência reprodutível, suportar “arquitetura viva”

📝 User Stories reutilizáveis

Nota editorial: cada user story inclui, de forma consistente, História, BDD, Checklist, Artefactos & evidências, Proporcionalidade (L1–L3), Integração no SDLC e Ligações úteis.


US-01 - Definição de princípios e baseline de arquitetura segura

Contexto.
No arranque de um projeto (ou épico significativo), é obrigatório estabelecer princípios e uma baseline inicial, para orientar decisões e evitar deriva arquitetural.

User Story

História.
Como Arquitetos de Software, quero definir e versionar princípios de arquitetura segura, para que todas as decisões técnicas sejam consistentes, rastreáveis e proporcionais ao risco.

Critérios de aceitação (BDD).

  • Dado que um projeto inicia ou um épico estrutural é criado
    Quando documento princípios e baseline inicial
    Então os princípios ficam versionados, aprovados e referenciáveis por release

Checklist.

  • principios-arquitetura.md criado e versionado
  • Princípios incluem: isolamento, trust boundaries, minimização de exposição, gestão de dependências, observabilidade segura
  • Aprovação registada (AppSec + Arquitetura)
  • Ligação explícita ao nível de risco (L1–L3)

Artefactos & evidências.

  • principios-arquitetura.md
  • Registo de aprovação (PR/issue)

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1OpcionalPrincípios mínimos e baseline simplificada
L2SimPrincípios completos e baseline formal
L3SimPrincípios completos + revisão independente

Integração no SDLC.

FaseTriggerResponsávelSLA
InícioNovo projeto / épico estruturalArquitetos de SoftwareAntes do design detalhado

Ligações úteis.

  • 🔗 Cap. 2 - Requisitos de Segurança: /sbd-manual/requisitos-seguranca/intro
  • 🔗 Cap. 3 - Threat Modeling: /sbd-manual/threat-modeling/intro

US-02 - Ficha de solução com controlos e rastreabilidade arquitetural

Contexto.
Durante o design, a solução deve ser descrita com controlos arquiteturais explícitos, minimização de exposição e ligação a requisitos/ameaças.

User Story

História.
Como Arquitetos de Software, quero produzir uma ficha de arquitetura com controlos de segurança e rastreabilidade para requisitos arquiteturais, para garantir que a solução é segura e verificável antes da implementação.

Critérios de aceitação (BDD).

  • Dado que o design está em definição
    Quando documento a solução
    Então a ficha inclui trust boundaries, exposição externa justificada, controlos arquiteturais e referências a requisitos e ameaças relevantes

Checklist.

  • solution-architecture.md criado com template aprovado
  • Trust boundaries e fluxos (incl. logs/métricas/telemetria) identificados
  • Exposição externa minimizada e justificada
  • Controlos arquiteturais especificados (isolamento, segmentação, quotas, timeouts, fallbacks, segregação)
  • Dependências externas identificadas e tratadas como decisões arquiteturais
  • Rastreabilidade registada (requisitos arquiteturais ↔ decisões ↔ ameaças ↔ controlos)
  • Aprovação registada (AppSec + Arquitetura)

Artefactos & evidências.

  • solution-architecture.md
  • controlos-arquitetura.md (opcional, se necessário para detalhe)
  • Registo de aprovação (PR/issue)

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1OpcionalFicha simplificada e controlos essenciais
L2SimFicha detalhada + rastreabilidade mínima
L3SimFicha completa + revisão independente + evidência reforçada

Integração no SDLC.

FaseTriggerResponsávelSLA
DesignDefinição de soluçãoArquitetos de Software + AppSec EngineerAntes da implementação

Ligações úteis.

  • 🔗 Catálogo de requisitos arquiteturais (ARC-*): addon/01-catalogo-requisitos
  • 🔗 Diagramas/modelos de referência: addon/04-diagramas-referencia

US-03 - Revisão formal do design arquitetural

Contexto.
Antes de implementar, o design deve ser revisto quanto a conformidade com princípios, requisitos e mitigação de ameaças.

User Story

História.
Como AppSec Engineer, quero rever formalmente o design arquitetural, para garantir que os controlos necessários estão especificados e que as decisões são defensáveis e rastreáveis.

Critérios de aceitação (BDD).

  • Dado que existe uma ficha de solução candidata
    Quando executo a revisão
    Então o design é aprovado, ou é devolvido com ações corretivas rastreáveis

Checklist.

  • Revisão registada (checklist + comentários)
  • Desvios e ações corretivas registados em backlog
  • Aprovação ou rejeição documentada e versionada

Artefactos & evidências.

  • design-review.md
  • Registo de aprovação/rejeição (PR/issue)

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1OpcionalRevisão simplificada
L2SimRevisão formal
L3SimRevisão formal + segregação de funções (revisão independente)

Integração no SDLC.

FaseTriggerResponsávelSLA
PlaneamentoDesign pronto para implementaçãoAppSec EngineerAntes da implementação

Ligações úteis.

  • 🔗 Cap. 3 - Threat Modeling: /sbd-manual/threat-modeling/intro

US-04 - Gestão de decisões arquiteturais (ADR)

Contexto.
Decisões de arquitetura críticas devem ser documentadas com alternativas e trade-offs, para preservar rastreabilidade e permitir revisão/invalidação.

User Story

História.
Como Arquitetos de Software, quero registar decisões arquiteturais (ADR) com alternativas e impacto em segurança, para que a baseline seja auditável e evolutiva.

Critérios de aceitação (BDD).

  • Dado que é tomada uma decisão arquitetural relevante
    Quando crio uma ADR com template aprovado
    Então ficam registados contexto, alternativas, decisão, trade-offs, impacto e revisão por AppSec

Checklist.

  • ADR criada em adr/ADR-XXXX.md
  • Alternativas consideradas e trade-offs documentados
  • Impacto em segurança e risco explicitado (incl. L1–L3 quando aplicável)
  • Ligação a requisitos arquiteturais e ameaças relevantes
  • Aprovação registada

Artefactos & evidências.

  • adr/ADR-XXXX.md
  • Registo de aprovação (PR/issue)

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1OpcionalApenas ADR de alto impacto
L2SimADR para decisões significativas
L3SimADR para todas as decisões relevantes + revisão independente

Integração no SDLC.

FaseTriggerResponsávelSLA
DesignDecisão arquitetural relevanteArquitetos de SoftwareAntes da implementação

Ligações úteis.

  • 🔗 Decisão e evidência arquitetural (addon): addon/decisao-evidencia-arquitetural

US-05 - Revisão de fronteiras de confiança e integrações

Contexto.
Integrações internas e com terceiros exigem revisão explícita de fronteiras de confiança e fluxos de dados (incluindo fluxos implícitos).

User Story

História.
Como Arquitetos de Software + AppSec Engineer, quero rever trust boundaries e integrações, para validar autenticação, autorização, encriptação, isolamento e exposição de dados.

Critérios de aceitação (BDD).

  • Dado que existe uma integração nova ou alterada
    Quando avalio trust boundaries e controlos
    Então documento decisões, riscos residuais e controlos mitigadores, com rastreabilidade

Checklist.

  • Inventário de integrações atualizado
  • Trust boundaries e fluxos (incl. logs/métricas/telemetria) documentados
  • Controlos por integração definidos (AuthN/AuthZ/TLS/segregação/minimização)
  • Risco residual e exceções (se existirem) formalizados

Artefactos & evidências.

  • trust-boundaries.md
  • integration-review.md
  • ADR (quando aplicável)

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1SimÂmbito reduzido (integrações críticas)
L2SimÂmbito completo
L3SimÂmbito completo + validações reforçadas (conforme risco)

Integração no SDLC.

FaseTriggerResponsávelSLA
Design / AlteraçãoNova integração / alteraçãoArquitetos de Software + AppSec EngineerAntes da implementação

Ligações úteis.

  • 🔗 Riscos de processo na arquitetura (addon): addon/riscos-processo-arquitetura

US-06 - Atualização da baseline após alteração arquitetural significativa

Contexto.
Alterações arquiteturais significativas invalidam decisões anteriores e exigem atualização da baseline e (quando aplicável) reavaliação de ameaças/requisitos.

User Story

História.
Como Developer, quero atualizar a baseline arquitetural quando ocorrem alterações significativas, para manter coerência entre o sistema real e a evidência arquitetural aprovada.

Critérios de aceitação (BDD).

  • Dado que ocorre uma alteração arquitetural significativa
    Quando atualizo a documentação e decisões afetadas
    Então a baseline fica consistente, e as revisões necessárias são desencadeadas

Checklist.

  • Alteração classificada como “significativa” segundo critérios do capítulo
  • architecture-update.md atualizado e versionado
  • ADR impactadas atualizadas (ou invalidadas e substituídas)
  • Revisão AppSec acionada quando aplicável
  • (Se aplicável) revisão de ameaças e requisitos associada

Artefactos & evidências.

  • architecture-update.md
  • ADR atualizadas
  • Registo de revisão (PR/issue)

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1OpcionalApenas alterações estruturais relevantes
L2SimTodas as alterações significativas
L3SimTodas + revisão independente quando aplicável

Integração no SDLC.

FaseTriggerResponsávelSLA
DesenvolvimentoAlteração significativaDeveloper + Arquitetos de SoftwareNo mesmo sprint

Ligações úteis.

  • 🔗 Cap. 3 - Threat Modeling: /sbd-manual/threat-modeling/intro

US-07 - Validação arquitetural automatizável no CI/CD (quando aplicável)

Contexto.
Determinados controlos arquiteturais podem ser validados de forma automatizada (ou semi-automatizada). O objetivo é produzir evidência reprodutível, não “substituir” revisão humana.

User Story

História.
Como DevOps/SRE + AppSec Engineer, quero integrar validações automatizáveis de controlos arquiteturais no pipeline, para detetar desconformidades cedo e gerar evidência auditável.

Critérios de aceitação (BDD).

  • Dado que ocorre uma alteração com impacto em arquitetura, configuração ou infraestrutura
    Quando o pipeline executa
    Então são produzidos resultados determinísticos (pass/fail quando aplicável) e artefactos de evidência versionados

Checklist.

  • Critérios de quando executar a validação definidos (paths/labels/condições)
  • Verificações automatizáveis implementadas (ex.: políticas, configurações, invariantes arquiteturais, requisitos verificáveis)
  • Evidência produzida como artefacto (ci-architecture-report.*)
  • Regras de bloqueio por risco definidas (ex.: L2 bloqueia falhas críticas; L3 bloqueia falhas de severidade elevada e acima)
  • SLA de remediação definido e rastreável

Artefactos & evidências.

  • Configuração de pipeline (ci-pipeline.*)
  • ci-architecture-report.* (relatórios, logs, artefactos)
  • Registos de bloqueio e remediação (PR/issue)

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1OpcionalAlertas e evidência básica
L2SimEvidência formal + bloqueio de desconformidades críticas
L3SimEvidência completa + regras de bloqueio reforçadas + auditoria centralizada

Integração no SDLC.

FaseTriggerResponsávelSLA
CI/CDAlteração com impactoDevOps/SRE + AppSec EngineerEm cada build relevante

Ligações úteis.

  • 🔗 Cap. 7 - CI/CD Seguro: /sbd-manual/cicd-seguro//intro

US-08 - Avaliação de impacto no negócio e priorização de trade-offs

Contexto.
Decisões arquiteturais implicam trade-offs com impacto no negócio. A priorização deve ser explícita e rastreável.

User Story

História.
Como Product Owner, quero avaliar impacto no negócio de requisitos e decisões arquiteturais, para priorizar mitigação e aceitar trade-offs de forma consciente e auditável.

Critérios de aceitação (BDD).

  • Dado que existem requisitos/decisões com impacto em custo/prazo/UX
    Quando avalio impacto e priorizo
    Então a decisão fica documentada e ligada ao backlog e às decisões técnicas

Checklist.

  • Impacto avaliado e registado (custo/prazo/risco)
  • Priorização refletida no backlog
  • Trade-off documentado e aprovado quando necessário

Artefactos & evidências.

  • impacto-arquitetura.md (ou registo equivalente)
  • Backlog/epics com ligação a ADR/requisitos

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1OpcionalApenas impactos críticos
L2SimAvaliação formal
L3SimAvaliação formal + validação executiva quando aplicável

Integração no SDLC.

FaseTriggerResponsávelSLA
PlaneamentoRequisitos/decisões definidasProduct OwnerAntes da priorização de sprint

Ligações úteis.

  • 🔗 Cap. 1 - Classificação / risco: /sbd-manual/classificacao-aplicacoes/intro

US-09 - Sincronização Threat Modeling ↔ Arquitetura

Contexto.
Decisões de arquitetura devem refletir ameaças priorizadas e, em sentido inverso, alterações arquiteturais exigem atualização do modelo de ameaças quando aplicável.

User Story

História.
Como Arquitetos de Software + AppSec Engineer, quero sincronizar arquitetura e threat modeling, para garantir que controlos arquiteturais cobrem as ameaças priorizadas e que a rastreabilidade permanece válida.

Critérios de aceitação (BDD).

  • Dado que existe decisão ou alteração arquitetural significativa
    Quando verifico impacto no modelo de ameaças
    Então atualizo os artefactos necessários e mantenho rastreabilidade decisão ↔ ameaça ↔ controlo ↔ requisito

Checklist.

  • Impacto da alteração avaliado
  • Modelo de ameaças atualizado quando aplicável
  • Ficha de solução e ADR alinhadas
  • Evidência de cobertura atualizada

Artefactos & evidências.

  • solution-architecture.md
  • Artefacto de threat model (conforme Cap. 3)
  • Registo de atualização (PR/issue)

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1SimModelo simplificado quando aplicável
L2SimModelo completo
L3SimModelo detalhado + revisão independente quando aplicável

Integração no SDLC.

FaseTriggerResponsávelSLA
Design / AlteraçãoDecisão/alteração significativaArquitetos de Software + AppSec EngineerAntes do release

Ligações úteis.

  • 🔗 Cap. 3 - Threat Modeling: /sbd-manual/threat-modeling/intro

US-10 - Gestão de exceções arquiteturais com controlos compensatórios

Contexto.
Quando um requisito/controlo arquitetural não pode ser aplicado, é necessária exceção formal com controlos compensatórios, owner e sunset.

User Story

História.
Como Product Owner + AppSec Engineer, quero gerir exceções arquiteturais com aprovação e controlos compensatórios, para equilibrar risco e entrega mantendo auditabilidade.

Critérios de aceitação (BDD).

  • Dado que é solicitada uma exceção arquitetural
    Quando avalio impacto, compensações e prazo
    Então a exceção é aprovada/rejeitada, com evidência, owner e data de revisão (sunset)

Checklist.

  • Pedido de exceção documentado
  • Impacto e risco residual avaliados
  • Controlos compensatórios definidos e verificáveis
  • Owner do risco definido
  • Sunset e revisão agendada
  • Aprovação registada e versionada

Artefactos & evidências.

  • excecao-arquitetura.md
  • Registo de aprovação (PR/issue)
  • Evidência de compensações (tests/configs)

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1SimProcesso simplificado
L2SimProcesso formal
L3SimGovernação reforçada + auditoria

Integração no SDLC.

FaseTriggerResponsávelSLA
Design / ReleaseImpossibilidade de cumprir controloProduct Owner + AppSec EngineerAntes do go-live

Ligações úteis.

  • 🔗 Cap. 14 - Governação: /cap14/intro

US-11 - Triggers de “arquitetura viva” e disciplina de revisão

Contexto.
A arquitetura deve ser tratada como baseline viva. Existem eventos que obrigam a revisão e sincronização de evidência.

User Story

História.
Como Arquitetos de Software + DevOps/SRE, quero manter uma lista de triggers que despoletam revisão de arquitetura, para garantir que a baseline, ADR e evidências permanecem válidas ao longo do tempo.

Critérios de aceitação (BDD).

  • Dado que ocorre um trigger definido (ex.: nova integração, alteração de dados sensíveis, mudança de fronteira de confiança, mudança estrutural de infraestrutura/pipeline)
    Quando executo a revisão associada
    Então atualizo baseline, ADR afetadas e evidência necessária, com registo verificável

Checklist.

  • arquitetura-triggers.md publicado e versionado
  • Triggers definidos com ações mínimas por trigger
  • Execução do trigger gera evidência (PR/issue/ata)
  • Rastreabilidade mantida (decisão ↔ evidência)

Artefactos & evidências.

  • arquitetura-triggers.md
  • Registos de execução (PR/issue)
  • ADR/baseline atualizadas quando aplicável

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1SimSubconjunto mínimo de triggers
L2SimConjunto completo
L3SimConjunto completo + deteção/alertas quando viável

Integração no SDLC.

FaseTriggerResponsávelSLA
ContínuoTrigger arquiteturalArquitetos de Software + DevOps/SREDentro do sprint corrente (ou SLA definido)

US-12 - Gate arquitetural antes do Go-live

Contexto.
Antes de produção, deve existir um gate arquitetural que confirme: controlos implementados, decisões válidas e exceções tratadas.

User Story

História.
Como QA + AppSec Engineer + Arquitetos de Software, quero executar um gate arquitetural antes do go-live, para garantir que a arquitetura implementada corresponde à baseline aprovada e que controlos/exceções estão verificados.

Critérios de aceitação (BDD).

  • Dado que a aplicação está pronta para release
    Quando executo a checklist de validação arquitetural
    Então confirmo conformidade, ou bloqueio o go-live com desvios rastreáveis

Checklist.

  • checklist-arquitetura.md preenchido e versionado
  • Controlos críticos verificados com evidência
  • Exceções confirmadas com compensações e sunset
  • Desvios registados e aceites formalmente quando aplicável
  • Aprovação final registada

Artefactos & evidências.

  • checklist-arquitetura.md
  • Evidência de verificação (tests/configs/logs)
  • Registo de aprovação (PR/issue)

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1OpcionalChecklist simplificada
L2SimChecklist formal
L3SimChecklist completa + revisão independente quando aplicável

Integração no SDLC.

FaseTriggerResponsávelSLA
Release / Go-livePreparação de releaseQA + AppSec + ArquiteturaAntes da entrada em produção

Ligações úteis.

  • 🔗 Critérios e evidência arquitetural (addon): addon/decisao-evidencia-arquitetural

US-13 - Catálogo de padrões de arquitetura segura (reutilização governada)

Contexto.
Padrões aprovados reduzem variação e risco de omissão. A reutilização deve ser governada e versionada.

User Story

História.
Como Arquitetos de Software, quero manter um catálogo versionado de padrões de arquitetura segura, para que novos projetos reutilizem designs aprovados com requisitos, ameaças mitigadas e checklist de implementação.

Critérios de aceitação (BDD).

  • Dado que um novo projeto inicia
    Quando seleciono um padrão do catálogo
    Então o padrão fornece baseline, requisitos aplicáveis, ameaças cobertas e checklist verificável

Checklist.

  • Catálogo publicado e versionado
  • Padrões têm: diagrama, decisões chave, requisitos aplicáveis, ameaças mitigadas, checklist
  • Aprovação formal (Arquitetura + AppSec)
  • Histórico de alterações (changelog)

Artefactos & evidências.

  • modelos-referencia.md
  • padroes-checklist.md (se necessário)
  • Registos de aprovação

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1OpcionalCatálogo reduzido
L2SimCatálogo formal com padrões principais
L3SimCatálogo completo e evolução contínua

Integração no SDLC.

FaseTriggerResponsávelSLA
DesignNovo projeto / alteração estruturalArquitetos de Software + AppSec EngineerAntes da ficha de solução

Ligações úteis.

  • 🔗 Diagramas/modelos: addon/04-diagramas-referencia

US-14 - Revisão formal de arquitetura para L3 (governação reforçada)

Contexto.
Aplicações L3 exigem validação formal reforçada (incluindo segregação de funções e decisão auditável).

User Story

História.
Como Gestão Executiva/CISO + Arquitetos de Software, quero estabelecer um processo formal de aprovação de arquitetura para L3, para garantir que riscos estruturais são identificados, mitigados e aceites de forma auditável antes do go-live.

Critérios de aceitação (BDD).

  • Dado que uma aplicação L3 está pronta para aprovação
    Quando é submetida a revisão formal reforçada
    Então existe parecer registado (aprovar, aprovar com exceções, rejeitar) com ações e prazos

Checklist.

  • Processo e participantes definidos (responsabilidades explícitas)
  • Documentação submetida (baseline, ADR, integrações, exceções, evidência)
  • Revisão concluída com parecer formal
  • Desvios geram plano de remediação ou exceção com compensações
  • Decisão arquivada e referenciável por release

Artefactos & evidências.

  • governance-checklist-l3.md (ou equivalente)
  • Parecer formal registado
  • Plano de remediação / exceções aprovadas

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1Não-
L2RecomendadoRevisão peer reforçada
L3SimProcesso formal e auditável

Integração no SDLC.

FaseTriggerResponsávelSLA
Release / Go-liveRelease L3Gestão/CISO + Revisores definidosSLA interno (ex.: ≥ 2 semanas antes)

Ligações úteis.

  • 🔗 Cap. 14 - Governação: /cap14/intro

US-15 - Identificação e governação de componentes não determinísticos

Contexto.
Arquiteturas modernas podem incluir componentes cujo comportamento não é estritamente determinístico (ex.: motores de decisão probabilísticos, scoring heurístico, modelos estatísticos ou componentes de inferência). Estes componentes introduzem desafios específicos em termos de segurança, auditoria, explicabilidade e controlo operacional, que devem ser explicitamente tratados ao nível da arquitetura.

User Story

História.
Como Arquitetos de Software + AppSec Engineer, quero identificar e governar componentes arquiteturais não determinísticos, documentando o seu impacto em segurança, auditoria e controlo, para garantir que a arquitetura permanece rastreável, governável e proporcional ao risco.

Critérios de aceitação (BDD).

  • Dado que a solução inclui um componente cujo comportamento não é totalmente determinístico
    Quando desenho ou revejo a arquitetura
    Então o componente é explicitamente identificado e classificado
  • E o impacto em segurança, auditoria e controlo é documentado
  • E são definidos controlos arquiteturais adequados (isolamento, supervisão, fallback, logging)
  • E existe rastreabilidade entre o componente, ameaças relevantes e requisitos ARC-XXX aplicáveis

Checklist.

  • Componentes não determinísticos identificados na ficha de arquitetura
  • Tipo de não determinismo classificado (ex.: probabilístico, heurístico, inferencial)
  • Impacto analisado em:
    • Segurança (abuso, bypass, comportamento inesperado)
    • Auditoria e explicabilidade
    • Controlo operacional e mecanismos de fallback
  • Fronteiras de confiança e isolamento revistos (quando aplicável)
  • Logging e evidência definidos para decisões relevantes
  • Rastreabilidade documentada (componente ↔ ameaça ↔ controlo ↔ requisito ARC-XXX)
  • Evidência arquivada em repositório de arquitetura

Artefactos & evidências.

  • Atualização da solution-architecture.md
  • Documentação de decisão/evidência arquitetural (ex.: decision-evidence.md)
  • Atualização do modelo de ameaças (quando aplicável)

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1OpcionalIdentificação simples e nota de impacto
L2SimIdentificação formal e controlos definidos
L3SimGovernação completa, isolamento explícito e validação independente

Integração no SDLC.

FaseTriggerResponsávelSLA
Design / RevisãoIntrodução ou alteração de componente não determinísticoArquitetos de Software + AppSec EngineerAntes da aprovação do design

Ligações úteis.

  • 🔗 Cap. 3 - Threat Modeling
  • 🔗 Requisitos ARC-XXX aplicáveis à arquitetura

US-16 - Revisão de arquitectura para agente AI em A2+

Contexto. A US-15 cobre componentes não determinísticos em geral (modelos preditivos, RAG, LLMs em interface). Quando o componente é um agente autónomo que executa acções com efeito real em sistemas externos via tool-use — e opera em nível A2 ou superior — exige-se uma camada adicional de validação arquitectónica: confirmar que a arquitectura cumpre ARC-015 antes da activação, para que falhas estruturais não fiquem apenas detectadas no incidente.

User Story

História. Como Software Architect e AppSec Engineer, quero validar que a arquitectura do sistema cumpre integralmente ARC-015 (identidade dedicada, least privilege per-tool, intent declaration, aprovação humana out-of-band, kill-switch exercitado, audit completo por tool invocation) antes de aprovar a operação de um agente AI em A2 ou superior, para evitar que problemas estruturais sejam descobertos só quando já tiveram efeito em produção.

Critérios de aceitação (BDD).

  • Dado que um agente AI vai operar em A2+ Quando se executa a revisão de arquitectura prévia à activação do mandate Então existe checklist ARC-015 preenchida, com evidência de cada item, ligada ao mandate_ref
  • Dado que um item da checklist falha Quando a revisão é concluída Então o agente não opera no nível pedido; opera-se em nível inferior até o item estar resolvido (descida é sempre legítima; subida exige nova revisão)
  • Dado que o kill-switch nunca foi exercitado nesta arquitectura Quando se pretende activar A3 ou A4 Então o exercício é executado em sandbox/staging com cronómetro e log arquivado antes da activação

Critérios de aceitação (DoD).

  • Identidade dedicada — agente tem workload identity efémera (OIDC) por ambiente; sem reuso de credenciais humanas; TTL ≤ 1h
  • Scope mínimo per-tool — cada tool na allowlist com argumentos limitados ao necessário; etiquetada read/write/destructive/external
  • Intent declaration — mecanismo (REQ-AGN-004) emite intent event estruturado antes de cada tool call destrutivo, com schema mínimo: agent_id, mandate_ref, tool, args, intent, expected_outcome, risk_self_assessment
  • Aprovação out-of-band — canal independente do canal do agente (Slack approval com 2FA, GitHub review, webhook assinado, push notification); ataques de prompt injection no canal principal não conseguem aprovar
  • Kill-switch operacional — revogação de credenciais + terminação de runtime + isolamento de namespace + alerta on-call; exercitado em sandbox/staging com cadência registada (trimestral A3; mensal A4)
  • Audit completo per-toolevent estruturado com timestamp, agent_id, session_id, mandate_ref, autonomy_level, tool, tool_version, args (PII e segredos redactados), intent_event_ref, outcome, external_effect; integrado com observabilidade do Cap. 12
  • Threat model do agente (US-11 do Cap. 03) referenciado e mitigations mapeadas a este checklist

Artefactos & evidências.

  • arc-015-review.md — checklist preenchida com referência a mandate_ref e threat_model_ref
  • Log de exercício de kill-switch (data inicial + cadência registada)
  • Diagrama de arquitectura agentic versionado (DFD com cinco participantes — humano · cliente · modelo · tool runtime · sistema externo — e quatro fronteiras)
  • Configuração da workload identity (referência IaC) e evidência de TTL ≤ 1h
  • Exemplo redactado de intent event + tool invocation audit event (uma sessão real)

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1A2+ tipicamente fora de produção; revisão simplificada quando aplicávelChecklist ARC-015 essencial; kill-switch exercitado anualmente
L2Obrigatório para A2+Checklist ARC-015 completa; kill-switch exercitado trimestralmente (A3)
L3Obrigatório para A2+; A3/A4 com revisão appsec independenteChecklist ARC-015 completa + revisão independente; A4 com assinatura formal do CISO no mandate; kill-switch exercitado mensalmente (A4)

Integração no SDLC.

FaseTriggerResponsávelSLA
Design / RevisãoActivação de agente em A2+software_architect + appsecAntes da activação do mandate
Subida de nívelPromoção A2→A3 ou A3→A4appsec (+ grc em A3; + CISO em A4)Antes da nova activação
Revisão periódicareview_cadence do mandateappsecConforme cadência (anual A2; semestral A3; trimestral A4)

Ligações úteis.


US-17 - Segmentação de ambientes e validação de topologia como código (L3)

Em L3 a separação entre dev, staging e prod deixa de ser convenção e passa a ser invariante verificável no pipeline.

Contexto. A ARC-011 exige segregação de rede, permissões e identidade entre ambientes; a ARC-013 exige que a topologia seja validada automaticamente em CI/CD, com bloqueio de promoção em falha. Sem operacionalização, a segmentação fica como intenção em diagrama — sem garantia de que o estado real dos ambientes a respeita, nem deteção de drift quando alguém reutiliza credenciais ou abre peering indevido entre staging e prod. A US-07 cobre validação automatizável genérica; esta US prescreve a verificação específica da segmentação e da topologia como código para aplicações de risco elevado.

User Story

História.
Como DevOps/SRE e AppSec Engineer, quero validar automaticamente, em CI/CD, a segregação de rede, permissões e identidade entre dev/staging/prod e a conformidade da topologia com o baseline aprovado, para que uma promoção que viole a segmentação seja bloqueada antes de chegar a produção.

Critérios de aceitação (BDD).

  • Dado que uma aplicação L3 possui ambientes dev, staging e prod
    Quando o pipeline executa a validação de topologia
    Então é produzido um output verificável que confirma segregação de rede, permissões e identidade entre ambientes (sem credenciais cross-env), com logs de execução arquivados
  • Dado que uma alteração introduz peering, partilha de identidade ou exposição entre ambientes não previstos no baseline
    Quando a validação corre na promoção
    Então a promoção é bloqueada e o desvio é registado para remediação ou exceção formal

Checklist.

  • Segregação de rede entre dev/staging/prod evidenciada (VLANs, namespaces, peering policies)
  • Segregação de identidade e permissões evidenciada (IAM/service accounts distintas, sem credenciais cross-env)
  • Job de CI valida topologia como código (ex.: diagramas-como-código, Cartography, verificação checkov/Terraform) com logs disponíveis
  • Falha de validação bloqueia a promoção; desvio gera registo de remediação ou exceção aprovada

Artefactos & evidências. Configuração do job de validação de topologia (ci-pipeline.*); ci-architecture-report.* com output de segregação e topologia; evidência IaC de segregação de rede/identidade; registo de bloqueio/remediação (PR/issue).

Proporcionalidade L1–L3.

L1L2L3
Não obrigatórioRecomendado: segregação documentada de ambientesObrigatório: segregação de rede/permissões/identidade verificável + validação de topologia como código em CI/CD com bloqueio de promoção (ARC-011, ARC-013)

Integração no SDLC.

FaseTriggerResponsávelSLA
CI/CDPromoção entre ambientes (L3)DevOps/SRE + AppSec EngineerEm cada promoção; bloqueio imediato em falha

Ligações úteis. Catálogo de requisitos arquiteturais (ARC-011, ARC-013) · Cap. 7 - CI/CD Seguro


US-18 - Padrões arquitetónicos para sistemas AI/ML não-agentic

Sistemas que integram LLMs, modelos preditivos ou RAG sem tool-use exigem trust boundaries e controlos próprios, distintos do caso agentic.

Contexto. A US-15 trata componentes não determinísticos em geral e a US-16 cobre o agente autónomo com tool-use (ARC-015). Falta operacionalizar a ARC-014 para o caso não-agentic — LLMs em interface conversacional, modelos preditivos e RAG que produzem output mas não executam ações em sistemas externos. Aqui a superfície de ataque é o próprio modelo e os seus dados: prompt injection direta e indireta (LLM01-2025, AML.T0051.001), training data poisoning (AML.T0020), model theft (ML05-2023) e ausência de proveniência de modelos/datasets (LLM03-2025). A arquitetura tem de marcar as trust boundaries de training-time e inference-time explicitamente e tratar a IA como participante distinto no DFD, não como biblioteca opaca.

User Story

História.
Como Arquitetos de Software e AppSec Engineer, quero aplicar padrões arquitetónicos dedicados a sistemas AI/ML não-agentic, com trust boundaries explícitas, controlos anti-prompt-injection e proveniência de modelos/datasets, para que o risco específico de IA fique contido e auditável ao nível da arquitetura.

Critérios de aceitação (BDD).

  • Dado que a solução integra um componente AI/ML que produz output sem invocar tools (LLM conversacional, modelo preditivo, RAG)
    Quando desenho ou revejo a arquitetura
    Então o DFD marca as trust boundaries de training-time e inference-time, com a IA como participante distinto, e os controlos de fronteira ficam documentados
  • Dado que existe entrada de utilizador ou conteúdo externo no contexto do modelo
    Quando especifico os controlos arquitetónicos
    Entãoinput sanitization e output filtering contra prompt injection direta e indireta, rate limiting e isolamento das chamadas ao modelo
  • Dado que o sistema usa modelos e datasets
    Quando registo a proveniência
    Então origem e versão de modelos e datasets ficam documentadas, com consideração explícita de model theft e training data poisoning

Checklist.

  • Trust boundaries training-time e inference-time marcadas no DFD, com a IA como participante distinto
  • Controlos anti-prompt-injection (input/output) para injeção direta e indireta (LLM01-2025, AML.T0051.001)
  • Rate limiting e isolamento das chamadas ao modelo de inferência
  • Proveniência de modelos e datasets documentada (AML.T0010, LLM03-2025); cenários de model theft (ML05-2023) e data poisoning (AML.T0020) considerados

Artefactos & evidências. Atualização da solution-architecture.md com trust boundaries AI/ML; DFD versionado com a IA como participante distinto; registo de proveniência de modelos/datasets; ligação ao modelo de ameaças AI/ML (Cap. 3).

Proporcionalidade L1–L3.

L1L2L3
Identificação simples do componente AI/ML e nota de impactoObrigatório: trust boundaries, controlos anti-prompt-injection e proveniência documentados (ARC-014)Obrigatório + isolamento reforçado das chamadas ao modelo e revisão independente da arquitetura AI/ML

Integração no SDLC.

FaseTriggerResponsávelSLA
Design / RevisãoIntrodução ou alteração de componente AI/ML não-agenticArquitetos de Software + AppSec EngineerAntes da aprovação do design

Ligações úteis. ARC-014 — padrões arquitetónicos AI/ML · Recomendações Avançadas — §AI/ML · Cap. 3 - Metodologias AI/ML


📑 Artefactos esperados

ArtefactoOrigem / USEvidência associada
principios-arquitetura.mdUS-01Commit + aprovação
solution-architecture.mdUS-02PR/issue + aprovação
design-review.mdUS-03Registo de revisão + backlog
adr/ADR-XXXX.mdUS-04ADR + aprovação
trust-boundaries.mdUS-05Inventário + controlos
integration-review.mdUS-05Revisão por integração
architecture-update.mdUS-06Atualização + revisão
ci-architecture-report.*US-07Artefactos do pipeline
impacto-arquitetura.mdUS-08Registo + backlog
excecao-arquitetura.mdUS-10Exceção + sunset + compensações
arquitetura-triggers.mdUS-11Lista + evidências de execução
checklist-arquitetura.mdUS-12Gate + aprovações
modelos-referencia.mdUS-13Catálogo + changelog
governance-checklist-l3.mdUS-14Parecer formal

⚖️ Matriz de proporcionalidade (L1–L3)

NívelAplicação de práticas de Arquitetura Segura
L1Princípios mínimos; decisões (ADR) apenas para alto impacto; integrações críticas; gate simplificado quando aplicável; triggers mínimos
L2Princípios completos; ficha detalhada; revisão formal; ADR para decisões significativas; exceções formais; validações automatizáveis quando aplicável; sincronização com threat modeling
L3Cobertura integral; segregação de funções; evidência reforçada; governação formal; gates rigorosos; revisão independente quando aplicável; disciplina de “arquitetura viva”

📌 Recomendações finais

  • Centralizar artefactos em repositório versionado e referenciável por release (baseline, ADR, integrações, exceções).
  • Tratar dependências externas e fluxos implícitos (observabilidade) como parte da arquitetura, com decisão e evidência.
  • Integrar validações automatizáveis no pipeline como geração de evidência, não como substituto de revisão humana.
  • Usar sunset e revisão periódica para exceções arquiteturais, evitando dívida estrutural permanente.