◇ OpenCyber Academy
Curso rápido · Capítulo 4 · Português

Capítulo 4 — Segurança de IA e aprendizado de máquina: laboratório guiado e síntese aplicada

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 4 — Segurança de IA e aprendizado de máquina: laboratório guiado e síntese aplicada

Mapa da aula

Aula 04 publicada. Mapa, exemplo, EX039.

flowchart TD
  N0["4.1 Regras dos laboratórios"]
  N1["4.2 Laboratório 1 — evasão"]
  N2["4.4 Laboratório 3 — taxas de base"]
  N3["4.5 Laboratório 4 — medição de defesas"]
  N4["4.6 O plano de adoção"]
  N5["4.8 Próximos estudos"]
  N6["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
  N6 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX039"]

Desenho lógico

flowchart LR
  N0["4.1 Regras dos laboratórios"]
  N1["4.2 Laboratório 1 — evasão"]
  N2["4.4 Laboratório 3 — taxas de base"]
  N3["4.5 Laboratório 4 — medição de defesas"]
  N4["4.6 O plano de adoção"]
  N5["4.8 Próximos estudos"]
  N6["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX039"]
[4.1 Regras dos laboratórios]
    |
    v
[4.2 Laboratório 1 — evasão]
    |
    v
[4.4 Laboratório 3 — taxas de base]
    |
    v
[4.5 Laboratório 4 — medição de defesas]
    |
    v
[4.6 O plano de adoção]
    |
    v
[4.8 Próximos estudos]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX039]

Objetivos de aprendizagem

Você vai (1) executar quatro laboratórios offline curtos e interpretar suas saídas; (2) ligar cada laboratório a um controle prático; (3) montar um plano de adoção de uma página; (4) definir o monitoramento e os passos de resposta a incidentes; e (5) planejar os próximos estudos.

4.1 Regras dos laboratórios

Os laboratórios rodam offline com Python 3 e dados sintéticos. São modelos de brinquedo que tornam as ideias mensuráveis. Não os use, nem nada parecido, contra sistemas que você não tem autorização para testar. Leia a saída de cada laboratório e a sua lição antes de seguir adiante. Mude uma entrada por vez e preveja o resultado antes de executar. Se um número diferir da saída esperada, verifique sua versão do Python e se copiou o código exatamente. Anote o que você mudou.

4.2 Laboratório 1 — evasão

"""Lab E: evasion of a toy linear classifier (synthetic data, stdlib only).
Trains logistic regression on two synthetic clusters, then applies a
fast-gradient-sign (FGSM-style) perturbation of size eps to every test point
and reports clean vs adversarial accuracy. Teaching model only."""
import math, random
rng = random.Random(7)
def point(label):
    cx = 1.0 if label else -1.0
    return [rng.gauss(cx, 0.7), rng.gauss(cx, 0.7)], label
train = [point(i % 2) for i in range(400)]
test = [point(i % 2) for i in range(200)]
w, b = [0.0, 0.0], 0.0
sig = lambda z: 1 / (1 + math.exp(-z))
for epoch in range(200):
    gw, gb = [0.0, 0.0], 0.0
    for x, y in train:
        p = sig(w[0]*x[0] + w[1]*x[1] + b)
        gw[0] += (p - y)*x[0]; gw[1] += (p - y)*x[1]; gb += p - y
    w = [w[i] - 0.1*gw[i]/len(train) for i in range(2)]; b -= 0.1*gb/len(train)
def acc(data, eps):
    ok = 0
    for x, y in data:
        # gradient of the loss w.r.t. x is (p - y) * w; FGSM steps along its sign
        p = sig(w[0]*x[0] + w[1]*x[1] + b)
        xa = [x[i] + eps*math.copysign(1, (p - y)*w[i]) for i in range(2)]
        ok += (sig(w[0]*xa[0] + w[1]*xa[1] + b) >= 0.5) == bool(y)
    return ok / len(data)
print(f"weights w=({w[0]:.3f}, {w[1]:.3f}) b={b:.3f}")
for eps in (0.0, 0.25, 0.5, 0.75, 1.0):
    print(f"eps={eps:.2f} accuracy={acc(test, eps):.3f}")

Saída esperada:

weights w=(1.795, 1.756) b=-0.080
eps=0.00 accuracy=0.985
eps=0.25 accuracy=0.950
eps=0.50 accuracy=0.840
eps=0.75 accuracy=0.660
eps=1.00 accuracy=0.505

A acurácia de um classificador minúsculo cai de 0,985 para 0,505 à medida que as entradas são empurradas na pior direção. Lição para o ReceiptSort: não deixe que uma única saída do modelo tome decisões importantes sem verificações; revise itens incomuns ou de alto valor.

Execute-o e depois mude o maior épsilon e veja a acurácia cair ainda mais. No ReceiptSort, a imagem de um recibo alterado poderia ser classificada errado da mesma forma, e é por isso que o plano de Omar acrescenta revisão manual para recibos acima de €500 ou com baixa confiança. Anote cada execução.

4.3 Laboratório 2 — limites de taxa

"""Lab R: token-bucket limits against unbounded consumption (synthetic).
Simulates 60 seconds of requests from a normal client and a flooding client
against a model endpoint with a per-client token bucket."""
import random
rng = random.Random(4)
def simulate(rate_per_s, burst, reqs):
    tokens, last, ok = burst, 0.0, 0
    for t in reqs:
        tokens = min(burst, tokens + (t - last) * rate_per_s); last = t
        if tokens >= 1: tokens -= 1; ok += 1
    return ok
normal = sorted(rng.uniform(0, 60) for _ in range(90))
flood = sorted(rng.uniform(0, 60) for _ in range(3000))
for rate, burst in ((5, 20), (2, 10), (1, 5)):
    print(f"limit={rate}/s burst={burst:2d} normal_served={simulate(rate, burst, normal):3d}/90 "
          f"flood_served={simulate(rate, burst, flood):4d}/3000")

Saída esperada:

limit=5/s burst=20 normal_served= 90/90 flood_served= 319/3000
limit=2/s burst=10 normal_served= 90/90 flood_served= 129/3000
limit=1/s burst= 5 normal_served= 62/90 flood_served=  64/3000

Com 2 requisições por segundo e rajada de 10, todas as requisições normais são atendidas, enquanto uma inundação é reduzida a 129 de 3.000. Com 1 por segundo, os usuários normais são prejudicados. Lição: defina limites que protejam o custo e a disponibilidade sem bloquear o trabalho real.

Para o InboxAide, um limite protege a conta do escritório e o serviço do fornecedor se uma conta de usuário for mal utilizada. Escolha os limites a partir do uso normal, como mostra o cliente de 90 requisições, e revise-os quando o uso crescer. Anote o limite que você escolheria e por quê.

4.4 Laboratório 3 — taxas de base

"""Lab B: base rates and alarm precision (Bayes' rule).
A detector for malicious prompts with given true- and false-positive rates
is applied to traffic with different shares of malicious prompts."""
for tpr, fpr in ((0.95, 0.05), (0.95, 0.01), (0.80, 0.001)):
    for prev in (0.10, 0.01, 0.001):
        tp = tpr * prev; fp = fpr * (1 - prev)
        prec = tp / (tp + fp)
        per_10k = round(10000 * (tp + fp))
        print(f"tpr={tpr:.2f} fpr={fpr:.3f} prevalence={prev:.3f} precision={prec:.3f} alerts_per_10k={per_10k}")

Saída esperada:

tpr=0.95 fpr=0.050 prevalence=0.100 precision=0.679 alerts_per_10k=1400
tpr=0.95 fpr=0.050 prevalence=0.010 precision=0.161 alerts_per_10k=590
tpr=0.95 fpr=0.050 prevalence=0.001 precision=0.019 alerts_per_10k=509
tpr=0.95 fpr=0.010 prevalence=0.100 precision=0.913 alerts_per_10k=1040
tpr=0.95 fpr=0.010 prevalence=0.010 precision=0.490 alerts_per_10k=194
tpr=0.95 fpr=0.010 prevalence=0.001 precision=0.087 alerts_per_10k=109
tpr=0.80 fpr=0.001 prevalence=0.100 precision=0.989 alerts_per_10k=809
tpr=0.80 fpr=0.001 prevalence=0.010 precision=0.890 alerts_per_10k=90
tpr=0.80 fpr=0.001 prevalence=0.001 precision=0.445 alerts_per_10k=18

Um detector com 95% de detecção e 5% de alarmes falsos encontra sobretudo alarmes falsos quando os ataques reais são raros (precisão de 1,9% com prevalência de 0,1%). Lição: escolha alertas raros e significativos, ou a equipe aprenderá a ignorá-los.

Para a Tallis & Co, isso significa que um alerta para cada prompt suspeito dispararia sobretudo com e-mails inofensivos, já que e-mails com injeção são raros. Em vez disso, o plano de Omar observa ações, como envios externos e volumes incomuns, que são mais raras e mais significativas. Anote qual detector você aceitaria.

4.5 Laboratório 4 — medição de defesas

O laboratório de estatística do Capítulo 2 mostrou como os intervalos encolhem com mais tentativas e como comparar um sistema com defesa e outro sem defesa (sucesso de ataque de 0,35 contra 0,19, redução de 12–20 pontos). Lição: peça a fornecedores e colegas números acompanhados do tamanho da amostra. Execute de novo o laboratório S do Capítulo 2 e observe a última linha. Quando um fornecedor disser que uma defesa funciona, pergunte quantas tentativas foram feitas, qual era a taxa com e sem a defesa e qual é a largura do intervalo. Uma afirmação sem esses números não pode ser comparada com os resultados do próprio Omar.

4.6 O plano de adoção

Uma página: finalidade; opções consideradas; opção escolhida; controles (acesso, ações, limites, confirmação); evidências até agora; monitoramento (ações por usuário, envios externos, volumes incomuns); passos de resposta a incidentes (desativar a funcionalidade, preservar os registros, avisar o responsável, informar os clientes afetados se necessário); responsável; gatilhos de revisão. O plano de Omar para o InboxAide segue esta lista e cabe em uma página. Ele registra o uso apenas com rascunhos como evidência até agora, os envios iniciados somente por um clique humano como controle principal, a revisão mensal dos registros de ações como monitoramento e a chave administrativa como primeiro passo de resposta a incidentes. Cada item nomeia quem o executa. Revise o plano a cada gatilho e guarde as versões anteriores.

4.7 Exemplo resolvido (caso sintético da Tallis & Co)

Depois do piloto de quatro semanas — 10 usuários, 2.400 rascunhos, nenhum envio —, o plano de Omar recomenda o uso mais amplo, com o envio habilitado apenas por um clique humano em cada mensagem, avisos sobre destinatários de novos domínios externos, compartilhamento externo bloqueado pela chave administrativa e revisão mensal dos registros de ações. Evidências: 0 envios iniciados pelo assistente (envio desativado); nos testes, 6/20 rascunhos com injeção continham sugestões arriscadas que a equipe teria precisado aprovar. ReceiptSort: adotar com revisão manual para recibos acima de €500 ou com baixa confiança. Primeiro passo de resposta a incidentes: a chave administrativa que desativa as ações do InboxAide em todo o escritório, testada num exercício simulado em 3 minutos.

4.8 Próximos estudos

Acompanhe as atualizações do OWASP LLM Top 10 e do NIST; consulte os estudos de caso do MITRE ATLAS; considere o curso profissional de seis meses para uma prática mais aprofundada. Marque uma data a cada trimestre para verificar novas versões da lista do OWASP e dos perfis do NIST e anote qualquer mudança que afete o plano da Tallis & Co. Leve um estudo de caso do ATLAS à próxima revisão como exemplo do que poderia dar errado. Compartilhe o que aprender com o sócio-diretor, para que o registro de decisão continue atualizado. Mantenha um registro curto do que mudou.

4.9 Erros e limites

Três erros são comuns: tratar os números de laboratórios de brinquedo como taxas do mundo real; planos sem passos de resposta a incidentes; e nenhuma revisão depois da adoção. Cada erro enfraquece o plano. Os números dos laboratórios vêm de modelos de brinquedo e dados sintéticos; ensinam ideias, não taxas reais de ataque. Um plano sem passos de resposta a incidentes deixa a equipe sem saber o que fazer quando algo dá errado, e é por isso que Omar testou a chave administrativa num exercício simulado. Sem uma revisão depois da adoção, mudanças do fornecedor e novas funcionalidades passam sem verificação. Verifique os três no seu plano.

Exercícios

Síntese

Os laboratórios tornam concretas quatro ideias — entradas forjadas, limites, taxas de base e medição —, e o plano de adoção as amarra numa decisão com controles, monitoramento, passos de resposta a incidentes e revisão.

Continue estudando — capítulo 04 de 04

← Capítulo 03 (rascunho) · Índice de capítulos do curso · Resoluções ↓ · Próximo curso pelo índice de capítulos →

Resoluções

Respostas-modelo para EX001–EX050. Tallis & Co, Omar e todos os seus números são sintéticos. Qualquer resposta que atenda à rubrica recebe a mesma pontuação.

EX001. O modelo apenas prevê texto. O assistente o envolve com instruções, acesso a dados, como e-mails e documentos, e ferramentas, como envio e agenda, de modo que pode ler e agir.

EX002. "Qualquer pessoa que nos mande um e-mail pode esconder instruções na mensagem, e o assistente pode segui-las como se viessem de nós. Por exemplo, um e-mail poderia mandá-lo anexar a declaração de imposto de um cliente a uma resposta. Se o assistente puder enviar e-mails, isso poderia vazar dados de clientes sem que ninguém percebesse."

EX003. Um funcionário júnior pede ao InboxAide um resumo dos "problemas recentes com clientes". Como o assistente estava conectado à pasta compartilhada dos sócios, o resumo inclui uma disputa confidencial de honorários que o júnior não deveria ver.

EX004. Um assistente enganado pode agir fora do escritório, e um e-mail enviado não pode ser recuperado. Ele também pode agir depressa e muitas vezes, de modo que o dano ganha escala.

EX005. Instruções escondidas em e-mails de clientes: LLM01. Revelação de dados entre usuários: LLM02. Capacidade de enviar e compartilhar: LLM06.

EX006. - Evasão: recibos alterados para que refeições pessoais pareçam material de escritório. - Envenenamento: recibos de treinamento rotulados errado ensinam categorias erradas.

EX007. O sócio-diretor (ou um sócio designado). Ele presta contas pela confidencialidade dos clientes e pode aceitar ou recusar o risco. A TI assessora, mas não deve ser a única responsável por um risco de negócio.

EX008. 1. Para que serve o InboxAide? 2. Os dados de quem ele lê? 3. Que ações ele pode executar? 4. Quem é afetado se ele errar, incluindo clientes e equipe?

EX009. Relatos de incidentes e de quase incidentes do piloto, resultados de testes de injeção com taxas, documentação do fornecedor sobre uso de dados e controles e retorno dos usuários sobre utilidade e erros.

EX010. Modo apenas de rascunhos (envio desativado); acesso limitado à caixa de correio de cada usuário; registros de ações revisados semanalmente.

EX011.

Opção Benefício Risco
(a) Agora não Nenhum risco novo A equipe pode usar ferramentas não aprovadas
(b) Piloto Aprender com segurança Valor limitado
(c) Uso mais amplo com controles Mais valor com risco limitado Fadiga de aprovação
(d) Uso pleno Máxima conveniência Grande dano se for conduzido

EX012. Elas permitem aprender com o uso real enquanto o dano continua limitado. Se surgirem problemas, a reversão é barata, e cada ampliação pode se basear em evidências.

EX013. - Pergunta: adotar o InboxAide? - Opções: a–d. - Evidências: documentação do fornecedor, o diagrama de fluxo e os testes pendentes. - Escolha: (b), um piloto de quatro semanas com dez pessoas, apenas rascunhos, caixas de correio próprias, sem pastas compartilhadas de clientes. - Responsável: sócio-diretor. - Gatilhos: fim do piloto, qualquer incidente ou uma mudança de funcionalidade pelo fornecedor.

EX014. Sistemas, atividades, datas, regras sobre dados, contatos e escalonamento, e a assinatura do responsável.

EX015. Testar pode violar o contrato ou a lei se não for permitido. Os termos podem especificar os métodos permitidos. A cooperação com o fornecedor torna as correções mais rápidas.

EX016. "Dentro do escopo: tenant do piloto do InboxAide, caixas de correio de teste T1–T5, clientes sintéticos, de 12 a 26 de outubro. Fora do escopo: caixas de correio reais, dados de clientes, envio para fora do domínio de teste, infraestrutura do fornecedor."

EX017. Surgem dados reais de clientes. Qualquer e-mail é enviado para fora do domínio de teste. Há sinais de um ataque real ou de uma indisponibilidade do fornecedor.

EX018. Clientes reais não podem ser prejudicados e nenhum dado confidencial é exposto. Os testes podem ser repetidos e compartilhados livremente.

EX019. Data e hora, versão do sistema, passos, o e-mail de entrada, o que o assistente redigiu ou fez e capturas de tela ou trechos de registros.

EX020. A taxa observada é de 30%, mas a taxa real poderia plausivelmente estar entre cerca de 15% e 52%. Mais testes estreitariam esse intervalo.

EX021. Ambos mostram uma taxa de 15%, mas 3/20 dá um intervalo de cerca de 5–36%, enquanto 300/2.000 dá cerca de 13,5–16,6%. A amostra maior fixa a taxa com precisão.

EX022. Mesmo quando instruções injetadas influenciaram os rascunhos, nada podia ser enviado automaticamente. Uma pessoa teria de revisar e enviar, por isso o dano ficou limitado.

EX023. Use o contato de segurança do fornecedor, de forma privada. Inclua os passos, o efeito, o impacto sobre os clientes e uma sugestão de correção. Combine um cronograma antes de qualquer divulgação mais ampla.

EX024. Pare os testes. Relate ao responsável e ao contato de privacidade. Siga o processo de incidentes e retome apenas quando houver liberação.

EX025. Normalmente sim, em termos gerais. Assim a equipe não se alarma com e-mails de teste estranhos e pode relatar preocupações. O conteúdo específico dos testes pode ser omitido se a surpresa importar para o teste, com a concordância do responsável.

EX026. As saídas de IA variam entre execuções, por isso um único resultado pode enganar. Repetir dá uma taxa e mostra a incerteza.

EX027. - Componentes: equipe → InboxAide ↔ modelo; InboxAide ↔ caixa de correio, documentos, agenda → e-mail de saída. - Entradas não confiáveis: e-mails recebidos e documentos de clientes. - Ações: enviar, compartilhar, agenda.

EX028. O e-mail de um atacante esconde instruções. O InboxAide o lê ao resumir a caixa de entrada, redige uma resposta que anexa um arquivo de cliente, e essa resposta é enviada para fora.

EX029. Qualquer pessoa pode enviar e-mail. O assistente não consegue distinguir com segurança o texto dessas pessoas de instruções legítimas.

EX030. Não. O privilégio mínimo limita o que um assistente conduzido pode alcançar. A maioria das tarefas só precisa da caixa de correio do próprio usuário e de pastas específicas.

EX031. Qualquer pessoa que consiga conduzir o assistente, inclusive por meio de e-mails injetados, ganha o amplo acesso da conta de serviço a todas as caixas de correio e pastas.

EX032. 1. Vocês treinam com os nossos dados? 2. Por quanto tempo os guardam? 3. Onde eles são processados? 4. Podemos desativar o envio e o compartilhamento? 5. Vocês nos avisarão sobre mudanças de modelo, e que testes de segurança fazem?

EX033. Não carregue o arquivo. Investigue como ele mudou e restaure-o a partir de uma fonte confiável, verificando o hash.

EX034. No laboratório, a filtragem por palavras-chave ainda deixou passar 10 de 20 tentativas de exfiltração. Os atacantes podem reformular o texto, e o assistente continua podendo ler texto não confiável e agir.

EX035. Envio desativado ou exigindo um clique humano; restrições de destinatários; limites de acesso a pastas; limites de taxa.

EX036. Um texto injetado pode sobrepor as instruções, e nada impõe a regra fora do modelo.

EX037. Mesmo um assistente conduzido não consegue enviar para endereços externos desconhecidos, o que impede que os dados saiam para atacantes.

EX038. Usuário, ação, alvo (destinatário ou arquivo), horário e uma referência ao conteúdo que disparou a ação.

EX039. Pequenas alterações forjadas fazem o modelo de brinquedo errar cerca de 16% das vezes, contra 1,5% antes. Por isso, revise itens de alto valor ou incomuns. É um resultado de brinquedo.

EX040. Enviar para revisão manual se o valor for superior a €500, se a confiança do modelo for inferior a 0,8 ou se a categoria for "outros". Alto valor e incerteza são onde os erros custam mais.

EX041. 2/s com rajada de 10. Todas as 90 requisições normais são atendidas e a inundação cai para 129/3.000. 1/s bloqueia usuários normais (62/90).

EX042. Com prevalência de 0,1%, cerca de 98% dos alertas são falsos, porque os eventos reais são muito raros, mesmo com 95% de detecção.

EX043. Um e-mail externo enviado a um novo domínio, com anexos, até 5 minutos depois da leitura de um e-mail de fora. Mais de 20 ações do assistente por usuário por hora.

EX044. Quantos ataques foram testados? Eram adaptativos? O sucesso foi medido pelos efeitos? Qual é a taxa de bloqueios indevidos no tráfego normal?

EX045. - Finalidade: ajuda na redação. - Opções: a–d. - Escolha: c. - Controles: clique para enviar, avisos de destinatário, compartilhamento bloqueado, acesso à própria caixa de correio. - Evidências: resultados do piloto e dos testes. - Monitoramento: registros de ações e alertas. - Incidentes: chave administrativa, registros, aviso. - Responsável: sócio-diretor. - Gatilhos: 3 meses, incidente, mudança do fornecedor.

EX046. Uma pessoa vê a ação exata antes que ela aconteça, o que limita o dano automatizado. O risco que resta é a fadiga de aprovação, por isso mantenha as confirmações significativas.

EX047. Prova que a chave funciona e mostra quão rápida ela é. A equipe também sabe o que fazer sob pressão.

EX048. Revisão semanal dos e-mails enviados pelo assistente a novos domínios externos; volumes de ações por usuário; mudanças na chave administrativa e nas configurações.

EX049. Uma data de revisão em três meses, qualquer incidente ou quase incidente e qualquer mudança de funcionalidade ou de modelo pelo fornecedor.

EX050. As respostas variam. Exemplo: "Ler as entradas do OWASP LLM Top 10 e dois estudos de caso do ATLAS até o mês 1. Repetir nossos testes de injeção depois da atualização do fornecedor no mês 2. Matricular-me no curso profissional até o mês 3. Testar apenas com autorização."