Defesa em profundidade para sistemas de IA: fundamentos, experimento e evidência
Esta unidade integra fundamentos e prática de defesa em profundidade para sistemas de ia. O leitor começa pelo problema e pelo vocabulário — security, safety, privacy, prompt injection — antes de localizar dados, decisões e fronteiras. A segunda parte transforma a explicação em experimento: define baseline, executa o caminho esperado, provoca uma falha e compara qualidade, custo, latência e risco. O caso de manutenção conectado ao ERP mantém o raciocínio concreto e mostra onde políticas determinísticas e revisão humana continuam necessárias. A unidade termina com diagnóstico, critérios de aceite, exercício independente e evidência que outra pessoa consegue reproduzir, evitando tratar uma demonstração isolada como prova de produção.
Defesa em profundidade para sistemas de IA
Três conceitos
Security protege contra acesso, alteração e abuso. Safety reduz dano mesmo sem adversário. Privacidade governa coleta e uso de dados sobre pessoas. Eles se cruzam, mas um filtro de conteúdo não substitui autorização e TLS não garante decisão segura.
Modele ativos, atores, fronteiras e efeitos. Inclua modelo/provedor, prompt, corpus, índice, memória, ferramentas, traces, feedback e supply chain.
Ler o fluxo em texto
- 1. Usuário/arquivo externo
- 2. Gateway e validação
- 3. Harness e policy
- 4. Modelo
- 5. RAG com ACL
- 6. Ferramentas mínimas
- 7. Aprovação para efeito
- 8. Sistema de registro
Prompt injection
Injection direta vem do usuário; indireta, de página, email ou documento. “Ignore instruções anteriores” é só um exemplo. O ataque pode persuadir exfiltração ou ação. Não há prompt perfeito. Controles estruturais: separar confiança, remover autoridade do conteúdo, tool allowlist, ACL, confirmação, sandbox, output validation e monitoramento.
Principais riscos
- dados sensíveis em prompt, treino, embedding, log ou memória;
- poisoning de corpus ou feedback;
- supply chain/modelo adulterado;
- excessive agency e autorização no modelo;
- denial of wallet por contexto/loop;
- saída insegura enviada a SQL, HTML, shell ou processo;
- memorization e model extraction;
- viés, desinformação e automação indevida.
Use OWASP como checklist de cenários, não como threat model pronto. O NIST AI RMF organiza Govern, Map, Measure e Manage ao longo do ciclo.
Privacidade e governança
Defina finalidade, minimização, base legal, retenção, direitos, transferência, operador/controlador e avaliação de impacto conforme contexto. Dados pseudonimizados ainda podem ser pessoais. Não reutilize conversa para treinamento sem base e transparência.
Mantenha inventário de sistemas/modelos, proprietário, uso permitido, fornecedores, eval, incidentes e retirada. Decisões de alto impacto exigem supervisão competente e contestação.
Evals, operação e incidente
Teste injection, exfiltração, cross-tenant, secrets, action hijack, poisoning, DoS e unsafe output. Confirme controles com testes negativos. Em incidente: conter ferramentas, revogar credenciais, preservar evidência, desligar memória/índice afetado, notificar responsáveis, restaurar versão e converter falha em regressão.
Logs não podem armazenar o próprio segredo vazado. Rate limits incluem usuário, tenant, custo e complexidade. Red team tem autorização e limites.
Exercício e aceite
Crie threat model do assistente de manutenção. Ataque um documento com instrução indireta e tente acessar outro tenant e concluir OS. Aceite: fronteiras; least privilege; ACL pré-retrieval; confirmação; secret scanning; privacy review; testes de abuso; runbook; evidência de bloqueio sem depender de “o modelo recusou”.
Fontes oficiais
- NIST AI 600-1 GenAI Profile
- OWASP Top 10 for LLM Applications
- MITRE ATLAS
- ANPD
- OpenAI Safety Best Practices
Laboratório e caderno de evidências
Este caderno transforma o conceito do livro em uma decisão de engenharia auditável. O cenário é Conter injection e ações indevidas no assistente. A regra é começar pelo sistema atual — assistente somente leitura com fontes permitidas — e só acrescentar complexidade quando uma avaliação previamente definida demonstrar ganho líquido.
1. Escreva o contrato da decisão
Registre em uma página: quem usa, qual decisão recebe apoio, quais entradas existem naquele instante, qual saída é permitida, qual efeito é proibido e quem responde pelo resultado. Separe sugestão, decisão e execução. Uma resposta textual pode sugerir; a API de domínio continua autorizando e registrando qualquer mudança.
Use critérios no formato dado/quando/então. Inclua caminho nominal, ausência de dados, conflito, outro tenant, dependência indisponível e tentativa adversarial. “Funciona bem” não é critério. Declare o limite de tempo, custo, dados e risco, além da condição de parada.
2. Construa o pacote mínimo de evidência
Crie um conjunto pequeno, porém representativo, antes de alterar o sistema. Cada caso tem identificador estável, origem, resposta ou comportamento esperado, risco, tags e razão da inclusão. O conjunto de desenvolvimento ajuda a iterar; um holdout separado impede otimizar contra a própria prova. Dados reais exigem minimização, controle de acesso e retenção. Quando usar casos sintéticos, identifique-os e confirme que não substituem a distribuição real.
A comparação deve manter constantes as partes que não estão sendo avaliadas. Se trocar modelo e prompt ao mesmo tempo, você não saberá a causa. Registre versões, configurações, ambiente, seeds quando aplicável e data. Preserve os piores erros como artefatos, não apenas a média.
3. Desenhe a fronteira operacional
entrada validada → componente candidato → validação externa
→ autorização/policy → resultado observável
→ feedback curado → avaliação de regressãoMarque onde conteúdo não confiável entra, onde identidade e permissões são resolvidas, onde segredos ficam e qual componente pode produzir efeito. O modelo não é fonte de verdade nem mecanismo de autorização. Use schema, consulta ao sistema de registro, allowlists, limites e confirmação proporcional ao risco.
Para cada dependência defina timeout, retry, idempotência, fallback e circuit breaker. Retry não é padrão para efeitos: um timeout pode ocorrer depois do sucesso. Modo degradado precisa preservar segurança e deixar claro ao usuário o que perdeu.
4. Faça uma pré-mortem
As falhas prioritárias deste livro são: exfiltração; poisoning; excessive agency; denial of wallet. Para cada uma, escreva gatilho, impacto, detecção, contenção, recuperação e teste do controle. Inclua falha acidental e abuso deliberado. Se a única defesa é “o modelo provavelmente recusará”, o controle ainda não existe.
Execute tabletop: uma pessoa opera, outra injeta a falha e uma terceira observa. O operador deve diagnosticar usando dashboards, traces e runbook, sem depender do autor. Registre lacunas e transforme recorrência em teste, política, alerta ou mudança arquitetural.
5. Meça o sistema completo
O painel mínimo acompanha violações críticas zero; bloqueios; tempo de contenção; exposição. Faça cortes por versão, tipo de tarefa, risco e população relevante. Latência fim a fim inclui fila, retrieval e ferramentas. Custo é dividido por tarefa concluída, não por chamada. Qualidade em produção usa sinais curados; clique ou concordância do usuário não prova correção.
Defina SLO e orçamento de erro quando houver operação contínua. Alertas precisam de owner e ação. Telemetria passa por redaction antes de sair do processo; prompt, documento, memória ou trace completo podem conter informação pessoal, segredo ou conteúdo malicioso.
6. Libere em degraus
A sequência segura é offline, shadow, equipe interna, canário, aumento gradual e produção. Cada degrau possui gate e rollback. Feature flag separa deploy de liberação. A reversão deste cenário é: revogar ferramentas e credenciais, isolar índice e restaurar versão. Treine a reversão antes do incidente e verifique que dados derivados, filas e caches também retornam a estado compatível.
Mudança de modelo, prompt, índice, ferramenta, policy ou dataset é mudança de sistema. Rode regressão proporcional. Um fornecedor atualizar silenciosamente comportamento não remove sua obrigação de testar.
Matriz de aceite
| Dimensão | Evidência exigida | Falha que bloqueia |
|---|---|---|
| valor | ganho sobre baseline em casos representativos | demo isolada sem comparação |
| correção | golden set, holdout e análise dos piores casos | métrica média sem cauda |
| segurança | testes negativos de identidade, dados e efeitos | policy apenas no prompt |
| privacidade | minimização, finalidade, retenção e exclusão | dado sensível em trace |
| operação | SLO, alerta, runbook e rollback exercitado | dependência sem timeout |
| governança | owner, versão, usos permitidos e revisão | sistema órfão |
Exercício de competência
Entregue um repositório ou pacote reproduzível contendo contrato, diagrama de fronteiras, casos de avaliação, script de execução, relatório comparativo, threat model, dashboard mínimo e runbook. Introduza deliberadamente duas falhas da pré-mortem e demonstre detecção e recuperação. Outra pessoa deve conseguir repetir o resultado sem explicação oral.
A aprovação exige: baseline preservado; critérios definidos antes do resultado; pelo menos um caso em que o sistema se abstém; efeito sensível protegido fora do modelo; custos medidos; rollback testado; limitações e usos proibidos escritos. Se o candidato não superar o baseline com segurança, documentar “não adotar” é um resultado tecnicamente correto.
Perguntas de recuperação ativa
- Qual afirmação deste sistema depende de evidência externa?
- O que o modelo pode propor, mas jamais autorizar?
- Qual mudança invalidaria o holdout?
- Como detectaríamos a pior falha antes do usuário?
- Qual é o caminho de retirada em menos de uma hora?
Relações
Use este caderno junto ao livro de evals para desenho estatístico, ao de segurança para cenários adversariais, ao de observabilidade para sinais e ao de UX para supervisão. A profundidade nasce da conexão entre decisão, implementação, medição e recuperação — não da quantidade de ferramentas citadas.
Comprove o que você aprendeu
Responda todas as questões. O gabarito comentado só aparece depois do envio.