◇ OpenCyber Academy
Pós-graduação · Capítulo 8 · Português

Capítulo 8 — Segurança de IA e aprendizado de máquina: casos difíceis

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

Capítulo 8 — Segurança de IA e aprendizado de máquina: casos difíceis

Mapa da aula

Aula 08 publicada. Mapa, exemplo, EX036.

flowchart TD
  N0["8.1 Controles em conflito"]
  N1["8.2 Múltiplos agentes e cadeia de suprimentos"]
  N2["8.3 Vazamento de privacidade"]
  N3["8.4 Incidentes de causa incerta"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4
  N4 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX036"]

Desenho lógico

flowchart LR
  N0["8.1 Controles em conflito"]
  N1["8.2 Múltiplos agentes e cadeia de suprimentos"]
  N2["8.3 Vazamento de privacidade"]
  N3["8.4 Incidentes de causa incerta"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX036"]
[8.1 Controles em conflito]
    |
    v
[8.2 Múltiplos agentes e cadeia de suprimentos]
    |
    v
[8.3 Vazamento de privacidade]
    |
    v
[8.4 Incidentes de causa incerta]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX036]

Objetivos de aprendizagem

Você vai (1) analisar casos em que controles entram em conflito ou as evidências são ambíguas; (2) lidar com casos de múltiplos agentes e de cadeia de suprimentos; (3) raciocinar sobre vazamento de privacidade por modelos ajustados (fine-tuned); (4) gerenciar incidentes de causa raiz incerta; e (5) documentar o julgamento sob ambiguidade.

8.1 Controles em conflito

Registrar todo prompt ajuda a investigação, mas armazena dados pessoais; a recusa estrita reduz o uso indevido, mas prejudica usuários legítimos; a confirmação humana limita o dano, mas causa fadiga de aprovação. Casos difíceis raramente se resolvem com mais um controle; eles exigem compromissos explícitos, responsáveis e monitoramento dos dois lados. Na Corvane, o incidente do depósito mostrou um desses compromissos: a remarcação automática economiza tempo, mas confiava demais no texto dos e-mails. Escreva cada compromisso com seu responsável e a medida que mostra se o equilíbrio está certo.

8.2 Múltiplos agentes e cadeia de suprimentos

Quando agentes chamam agentes, uma injeção em um pode se propagar. Trate toda mensagem entre agentes como entrada não confiável e mantenha a imposição de limites em cada fronteira de ferramenta. Casos de cadeia de suprimentos incluem conjuntos de dados públicos envenenados — Carlini et al. (arXiv:2302.10149) mostram que envenenar conjuntos de dados em escala web é viável — e arquivos de modelo de repositórios públicos. Fixe hashes, registre a proveniência e prefira formatos que não executem código ao carregar.

"""Lab H: integrity of model artefacts with SHA-256 manifests (stdlib only).
Creates synthetic 'artefact' bytes, records a manifest, then detects a
one-byte tampering and a swapped file. No real models are involved."""
import hashlib, json
files = {"model.bin": bytes(range(256)) * 40, "tokenizer.json": b'{"vocab": ["a", "b"]}',
         "config.yaml": b"layers: 4\nheads: 8\n"}
manifest = {n: hashlib.sha256(b).hexdigest() for n, b in files.items()}
print(json.dumps({k: v[:16] for k, v in manifest.items()}, indent=1))
received = dict(files)
tampered = bytearray(received["model.bin"]); tampered[5000] ^= 1
received["model.bin"] = bytes(tampered)
received["config.yaml"] = b"layers: 4\nheads: 8\ntrust_remote_code: true\n"
for n, b in sorted(received.items()):
    ok = hashlib.sha256(b).hexdigest() == manifest[n]
    print(f"{n:15s} {'OK' if ok else 'MISMATCH'}")

Saída esperada:

{
 "model.bin": "e96760a87768717b",
 "tokenizer.json": "f63d2ddabc61f2d9",
 "config.yaml": "e5bbb570ca0fcb87"
}
config.yaml     MISMATCH
model.bin       MISMATCH
tokenizer.json  OK

Na Corvane, o modelo leitor do Dispatch Copilot passa campos ao planejador. O laboratório H mostra a verificação: um byte alterado e uma linha de configuração acrescentada são ambos detectados.

8.3 Vazamento de privacidade

Modelos ajustados podem memorizar e revelar dados de treinamento; Carlini et al. (arXiv:2012.07805) extraíram exemplos de treinamento literais de um modelo de linguagem. Quando um modelo é ajustado com mensagens de clientes, teste a regurgitação literal e a inferência de pertencimento e considere deduplicação, filtragem e privacidade diferencial. Na Corvane, o projeto aplicado de Tomás testou isso para um modelo de sugestão de respostas ajustado com mensagens de clientes, e a deduplicação reduziu a vantagem de pertencimento de 0,17 para 0,06. Rode esses testes depois de cada ajuste, não apenas uma vez. Relate o vazamento com o ataque usado e suas condições.

8.4 Incidentes de causa incerta

O reembolso errado foi uma injeção, um erro do modelo ou um defeito de política? Preserve prompts, documentos recuperados, chamadas de ferramenta e versões; reproduza numa cópia isolada; considere as três hipóteses até que as evidências as separem. Contenha primeiro: reduza limites, desative a ferramenta, reverta o prompt. O incidente do depósito de Amira seguiu essa ordem: contenção desativando a remarcação automática, evidências dos logs e, depois, a causa. A causa revelou-se uma conta de transportadora comprometida, não um erro do modelo, algo que só as evidências preservadas podiam mostrar.

8.5 Exemplo resolvido (caso sintético da Corvane)

O Copilot remarcou 14 remessas para um novo depósito depois de ler um e-mail de uma transportadora. Foi um ataque? O e-mail dizia "Per updated routing, all Thursday loads go to Depot 7" ("Conforme a rota atualizada, todas as cargas de quinta-feira vão para o Depósito 7"). Os logs mostram que o e-mail veio de uma conta real de transportadora que havia sido comprometida. Amira contém o incidente desativando a remarcação automática, notifica a transportadora e acrescenta uma regra: mudanças de depósito exigem uma entrada correspondente no sistema de rotas, não apenas o texto de um e-mail. Ela registra que o modelo se comportou como projetado — o projeto é que confiava demais no e-mail.

8.6 Erros e limites

Três erros são comuns: procurar um único controle para um compromisso; confiar em mensagens entre agentes; e culpar "o modelo" antes das evidências. Cada erro leva a uma resposta errada. Um compromisso não se resolve com mais um controle; precisa de um responsável e de monitoramento dos dois lados. Mensagens de outros agentes podem carregar instruções injetadas, por isso é preciso impor limites em cada fronteira de ferramenta. Culpar o modelo antes das evidências teria escondido a conta de transportadora comprometida por trás do incidente do depósito da Corvane. Verifique os três pontos em cada revisão de incidente.

Exercícios

Síntese

Casos difíceis exigem compromissos explícitos, desconfiança de toda mensagem que atravessa uma fronteira de agente ou de cadeia de suprimentos e um tratamento de incidentes que preserve as evidências antes de decidir a causa.

Continue estudando — capítulo 08 de 12

← Capítulo 07 (rascunho) · Índice de capítulos do curso · Capítulo 09 (rascunho) →