Mapa da aula
Aula 02 publicada. Mapa, exemplo, EX008.
flowchart TD
N0["2.1 O formato do seminário"]
N1["2.2 Evasão"]
N2["2.3 Envenenamento e backdoors"]
N3["2.4 Ataques de privacidade"]
N4["2.5 Extração de modelo"]
N5["2.6 Injeção de prompt e aplicações com LLM"]
N6["2.8 Atividades práticas"]
N7["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
N7 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX008"]
Desenho lógico
flowchart LR
N0["2.1 O formato do seminário"]
N1["2.2 Evasão"]
N2["2.3 Envenenamento e backdoors"]
N3["2.4 Ataques de privacidade"]
N4["2.5 Extração de modelo"]
N5["2.6 Injeção de prompt e aplicações com LLM"]
N6["2.8 Atividades práticas"]
N7["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX008"]
[2.1 O formato do seminário]
|
v
[2.2 Evasão]
|
v
[2.3 Envenenamento e backdoors]
|
v
[2.4 Ataques de privacidade]
|
v
[2.5 Extração de modelo]
|
v
[2.6 Injeção de prompt e aplicações com LLM]
|
v
[2.8 Atividades práticas]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX008]
Objetivos de aprendizagem
Você vai (1) explicar as principais classes de ataque — evasão, envenenamento e backdoors, privacidade (inferência de pertencimento, extração de dados), extração de modelo e injeção de prompt — com os seus modelos de ameaça; (2) explicar as defesas e os seus limites conhecidos; (3) ler e apresentar um artigo de forma crítica num seminário; (4) relacionar resultados ao NIST AI 100-2 E2025, ao OWASP LLM 2025 e ao MITRE ATLAS; e (5) identificar como cada classe de ataque aparece numa implantação real como a da Harbourline.
2.1 O formato do seminário
A cada semana, um estudante apresenta um artigo em quinze minutos: alegação, modelo de ameaça, método, resultados e três perguntas críticas. O grupo discute se a evidência sustenta a alegação. O objetivo não é admirar artigos, mas entender exatamente o que eles mostram. A apresentação de Leo sobre Shokri et al., no exemplo resolvido abaixo, segue esse formato, e a sua terceira pergunta passou a fazer parte do seu próprio desenho. Prepare perguntas que um leitor consiga responder a partir do artigo e anote as que ele não responde, pois muitas vezes é ali que estão as lacunas de pesquisa.
2.2 Evasão
Exemplos adversariais (Szegedy et al., arXiv:1312.6199) são entradas ligeiramente alteradas para causar erros. O FGSM (Goodfellow et al., arXiv:1412.6572) dá um passo na direção do sinal do gradiente da perda; o PGD (Madry et al., arXiv:1706.06083) itera e projeta de volta no conjunto de perturbações permitido; o treinamento adversarial usa esses exemplos durante o treino. Em texto, mudanças "pequenas" são mais difíceis de definir: trocas por sinônimos ou edições de caracteres podem mudar o sentido. Para a Harbourline, evasão significaria redigir uma nota de sinistro de modo que o classificador a encaminhe errado. O laboratório de brinquedo mostra como a acurácia desaba à medida que o orçamento cresce.
"""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
2.3 Envenenamento e backdoors
Os ataques de envenenamento controlam parte dos dados de treino. O envenenamento de disponibilidade degrada a acurácia de forma ampla; o envenenamento direcionado e o de backdoor (Gu et al., arXiv:1708.06733) mantêm a acurácia limpa enquanto um gatilho provoca o comportamento escolhido. Na Harbourline, um analista de sinistros mal-intencionado que consiga inserir notas no conjunto de treino poderia ensinar ao classificador que uma certa frase encaminha sinistros para aprovação acelerada. As defesas incluem a proveniência dos dados, a filtragem de valores atípicos e a limitação de quem pode contribuir com dados de treino; nenhuma é completa. Pergunte, para qualquer conjunto de dados, quem pode adicionar registros e se isso fica registrado.
2.4 Ataques de privacidade
A inferência de pertencimento (Shokri et al., arXiv:1610.05820) decide se um registro estava no treino, usando diferenças na confiança ou na perda do modelo. A extração de dados de treino (Carlini et al., arXiv:2012.07805) recupera sequências literais de modelos generativos. A privacidade diferencial (Abadi et al., arXiv:1607.00133) limita o quanto um único registro pode influenciar o modelo, reduzindo os dois riscos a um custo de utilidade. Para uma seguradora, o próprio pertencimento pode ser sensível ("esta pessoa abriu um sinistro"). A dissertação de Leo estuda o primeiro desses ataques: se a deduplicação reduz o vazamento de pertencimento. Por esse raciocínio, um segurado cuja nota aparece muitas vezes fica mais exposto.
2.5 Extração de modelo
A extração de modelo (Tramèr et al., arXiv:1609.02943) constrói uma cópia de um modelo a partir das saídas da sua API. Saídas ricas (vetores completos de probabilidades) a facilitam; arredondar e devolver apenas rótulos a dificultam, mas não a impossibilitam. A extração importa para a propriedade intelectual e porque uma cópia roubada permite ataques de caixa-branca. O laboratório abaixo mostra o efeito da precisão da saída: com a pontuação em precisão total a cópia é exata, com duas casas decimais é quase exata, e com arredondamento para inteiros a cópia concorda em 88% dos rótulos. Na Harbourline, devolver apenas o rótulo de triagem tornaria a extração mais difícil, não impossível.
"""Lab X: model extraction of a toy linear scoring API by querying it.
The 'API' returns a real-valued score; d+1 well-chosen queries recover the
weights exactly, and rounding the output limits fidelity. Synthetic model."""
import random
rng = random.Random(9)
d = 5
secret_w = [round(rng.uniform(-2, 2), 3) for _ in range(d)]; secret_b = 0.42
def api(x, decimals=None):
s = sum(a*b for a, b in zip(secret_w, x)) + secret_b
return round(s, decimals) if decimals is not None else s
for dec in (None, 2, 0):
b = api([0]*d, dec)
w = [api([1 if j == i else 0 for j in range(d)], dec) - b for i in range(d)]
err = max(abs(a-c) for a, c in zip(w, secret_w))
test = [[rng.uniform(-1, 1) for _ in range(d)] for _ in range(500)]
agree = sum((sum(a*c for a, c in zip(w, x))+b > 0) == (api(x) > 0) for x in test)/500
print(f"output_rounding={str(dec):4s} queries={d+1} max_weight_error={err:.3f} label_agreement={agree:.3f}")
Saída esperada:
output_rounding=None queries=6 max_weight_error=0.000 label_agreement=1.000
output_rounding=2 queries=6 max_weight_error=0.004 label_agreement=0.998
output_rounding=0 queries=6 max_weight_error=0.534 label_agreement=0.882
2.6 Injeção de prompt e aplicações com LLM
Quando um LLM processa texto não confiável, esse texto pode conter instruções (Greshake et al., arXiv:2302.12173). O OWASP LLM 2025 coloca a injeção de prompt em primeiro lugar e lista riscos relacionados, como divulgação de informações sensíveis, agência excessiva e vazamento do prompt de sistema. O plano futuro da Harbourline — um assistente que lê e-mails de sinistro e redige respostas — herdaria esses riscos. Para um assistente assim, o e-mail de um segurado é texto não confiável que poderia direcionar as minutas ou vazar dados de outros segurados. Esse plano está fora da dissertação de Leo, mas o seminário deve mapeá-lo às entradas da OWASP para que a Harbourline veja quais riscos ele acrescentaria.
2.7 Exemplo resolvido (caso sintético da Harbourline)
Leo apresentou Shokri et al. As suas três perguntas críticas: (1) a abordagem de modelos-sombra supõe que o atacante consegue amostrar de uma distribuição de dados semelhante — isso é realista para notas de seguro? (2) os resultados foram relatados sobretudo como precisão/acurácia; qual é a TPR com FPR baixa? (3) quanto do vazamento é explicado pelo sobreajuste? O grupo concluiu que a pergunta (3) era diretamente relevante para a sua dissertação: se a deduplicação ajuda principalmente por reduzir o sobreajuste, a "explicação" é a generalização, não a deduplicação em si — uma explicação concorrente para o Capítulo 4.
2.8 Atividades práticas
- Apresente um artigo usando o formato do seminário. 2. Para cada classe de ataque, escreva um modelo de ameaça de uma linha para um sistema que você conhece. 3. Mapeie o assistente de e-mail planejado pela Harbourline a três entradas do OWASP LLM 2025. Para a apresentação, prepare alegação, modelo de ameaça, método, resultados e três perguntas críticas, como Leo fez. Para os modelos de ameaça, nomeie o conhecimento, o acesso e o objetivo do atacante em cada classe. Para o mapeamento, considere injeção de prompt, divulgação de informações sensíveis e agência excessiva, e diga, para cada uma, o que o assistente poderia fazer de errado e que controle o limitaria.
2.9 Erros e limites
Quatro erros se repetem, e cada um leva a um resumo enganoso; confira as suas notas do seminário quanto aos quatro:
- Descrever ataques sem o seu modelo de ameaça; um ataque sem o seu modelo de ameaça não pode ser comparado com uma defesa.
- Supor que resultados do domínio de imagens se transferem diretamente para texto; podem não se transferir, pois pequenas edições de texto podem mudar o sentido.
- Tratar o arredondamento ou a saída só com rótulos como defesa completa contra a extração; o arredondamento dificultou a extração no laboratório, mas não a impediu.
- Ignorar que o próprio pertencimento pode ser sensível; na Harbourline, o simples fato de uma pessoa ter aberto um sinistro pode ser sensível, de modo que a inferência de pertencimento é um dano real.
Exercícios
- EX008 — Modelos de ameaça. Dê um modelo de ameaça de uma linha para evasão, envenenamento por backdoor e inferência de pertencimento. Rubrica: 3 = três com conhecimento, capacidade e objetivo; 2 = dois; 1 = um; 0 = nenhum.
- EX009 — FGSM vs PGD. Explique a diferença. Rubrica: 3 = passo único vs passos iterados com projeção; PGD mais forte; 2 = parcial; 1 = vago; 0 = errado.
- EX010 — Laboratório de extração. O que acontece com o erro dos pesos e a concordância de rótulos quando as saídas são arredondadas para inteiros, e o que isso implica? Rubrica: 3 = erro 0.534, concordância 0.882; a precisão da saída limita a fidelidade, mas resta uma cópia útil; 2 = só os números; 1 = vago; 0 = errado.
- EX011 — Dano à seguradora. Por que o pertencimento pode ser sensível para a Harbourline? Rubrica: 3 = revela que uma pessoa abriu um sinistro, possivelmente com detalhes de saúde ou de perdas; 2 = parcial; 1 = vago; 0 = nenhum.
- EX012 — Cenário de backdoor. Descreva (em nível de desenho) um risco de backdoor para o classificador de sinistros e dois controles. Rubrica: 3 = notas-gatilho inseridas por alguém de dentro; proveniência/controle de acesso e testes de gatilho/valores atípicos; 2 = um controle; 1 = vago; 0 = detalhe danoso.
- EX013 — Mapeamento OWASP. Mapeie o assistente de e-mail a três entradas do OWASP LLM 2025. Rubrica: 3 = por exemplo, LLM01, LLM02, LLM06 com razões; 2 = só os IDs; 1 = uma; 0 = nenhuma.
- EX014 — Perguntas de seminário. Escreva três perguntas críticas para um artigo de defesa à sua escolha. Rubrica: 3 = três sobre modelo de ameaça, ataque adaptativo, métricas/custos; 2 = duas; 1 = uma; 0 = nenhuma.
Síntese
O seminário cria fluência nas classes de ataque e na leitura crítica. Cada classe tem um modelo de ameaça, um dano típico e defesas com limites conhecidos — e as explicações concorrentes que você descobre na discussão se tornam perguntas de pesquisa.
Continue estudando — capítulo 02 de 08
← Capítulo 01 (rascunho) · Índice de capítulos do curso · Capítulo 03 (rascunho) →