Adversarial Attacks
Os ataques adversariais criam pequenas alterações na entrada, muitas vezes invisíveis, que fazem os modelos de IA falhar com elevada confiança. Como funciona o FGSM, tipos de ataque e defesas.
Ataques adversariais são manipulações deliberadas da entrada de um modelo de aprendizado de máquina (ML) que fazem com que ele produza uma saída incorreta, geralmente com alta confiança. Em visão computacional, a entrada manipulada, chamada de exemplo adversarial, pode diferir do original por alterações pequenas demais para serem percebidas por uma pessoa; ainda assim, um classificador que reconhecia um panda passa a identificar um gibão. Pesquisadores descreveram esse fenômeno em redes neurais profundas no artigo de 2013 "Propriedades intrigantes das redes neurais", e a mesma vulnerabilidade aparece no reconhecimento de fala, na detecção de malware e em grandes modelos de linguagem (LLMs). Os ataques adversariais são mais importantes quando a decisão de um modelo aciona uma ação, como frear um carro, destrancar uma porta ou aprovar uma transação.
Como funcionam os exemplos adversariais#
A função de perda de um modelo treinado mede o quanto ele erra em uma entrada. A retropropagação normalmente calcula os gradientes dessa perda em relação aos pesos; em vez disso, um invasor os calcula em relação aos pixels de entrada e altera esses pixels na direção que aumenta a perda. Em "Explicando e explorando exemplos adversariais" (2014), Ian Goodfellow e colegas argumentaram que a causa é o comportamento em grande parte linear das redes neurais em dimensões elevadas: uma alteração de uma fração de nível de cinza por pixel, somada ao longo de centenas de milhares de pixels, resulta em uma grande mudança na saída. O Método do Sinal do Gradiente Rápido (FGSM) aplica uma única etapa de tamanho fixo na direção do sinal do gradiente da entrada; uma etapa de 0.007 transformou uma previsão de "panda" com 57.7% de confiança em uma previsão de "gibão" com 99.3%. O Descenso de Gradiente Projetado (PGD) repete etapas menores, mantendo a alteração total dentro de um limite definido, o que torna o ataque mais poderoso.
O FGSM aplicado a um classificador ResNet-18 do TorchVision exige uma passagem para trás:
import torch
import torch.nn.functional as F
from torchvision.io import decode_image
from torchvision.models import ResNet18_Weights, resnet18
from torchvision.transforms import v2
weights = ResNet18_Weights.DEFAULT
model = resnet18(weights=weights).eval()
torch.hub.download_url_to_file("https://ultralytics.com/images/bus.jpg", "bus.jpg")
# Keep pixels in [0, 1] and normalize inside each forward pass, so the attack edits real pixel values
image = v2.Compose([v2.Resize(256), v2.CenterCrop(224), v2.ToDtype(torch.float32, scale=True)])(decode_image("bus.jpg"))
normalize = v2.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
x = image.unsqueeze(0).requires_grad_(True)
logits = model(normalize(x))
# FGSM: move every pixel by one intensity level (1/255) in the direction that increases the loss
F.cross_entropy(logits, logits.argmax(1)).backward()
x_adv = (x + x.grad.sign() / 255).clamp(0, 1)
for name, batch in [("clean", x), ("adversarial", x_adv)]:
probs = model(normalize(batch)).softmax(1)
print(f"{name}: {weights.meta['categories'][probs.argmax()]} ({probs.max():.2f})")A imagem original é classificada como minibus (0.83) e a imagem atacada, como police van (0.94): alterar cada pixel em, no máximo, um nível de intensidade entre 255 faz com que o modelo fique mais confiante em um novo rótulo incorreto do que estava no rótulo original.
Tipos de ataques#
Os ataques são classificados de acordo com o momento em que o invasor age, o que sabe sobre o modelo e o que pretende alcançar. Um ataque não direcionado busca qualquer saída incorreta, enquanto um ataque direcionado força uma saída específica, como fazer uma placa de pare virar uma placa de limite de velocidade. Os ataques digitais editam diretamente os dados de entrada; os ataques físicos alteram objetos reais com adesivos, remendos ou padrões impressos que resistem a mudanças de ângulo de visão, distância e iluminação. A taxonomia do NIST sobre aprendizado de máquina adversarial agrupa os ataques de acordo com a etapa do ciclo de vida do ML que eles visam:
Os ataques por transferência funcionam porque exemplos adversariais criados contra um modelo muitas vezes enganam outros modelos treinados para a mesma tarefa; assim, um atacante pode treinar um substituto, atacá-lo em modo de caixa-branca e usar o resultado contra um sistema que não consegue inspecionar.
Riscos no mundo real#
- Veículos autónomos: Em "Ataques físicos robustos no mundo real contra modelos de aprendizagem profunda", autocolantes pretos e brancos colocados num sinal de stop real provocaram erros de classificação direcionados em 100% das imagens de laboratório e em 84,8% dos fotogramas de vídeo captados a partir de um carro em movimento.
- Deteção de pessoas: Um adesivo impresso com cerca de 40 cm de lado, colocado à frente do corpo, reduziu significativamente a precisão do detetor de pessoas YOLOv2 contra o qual foi otimizado. Estes adesivos ameaçam alarmes que são acionados quando detetam pessoas, como o sistema de alarme de segurança da Ultralytics, que envia um alerta por e-mail quando YOLO26 deteta um número definido de objetos num fotograma; um adesivo que suprime a deteção de pessoas também suprime o alerta.
- Reconhecimento facial: Os investigadores imprimiram armações de óculos com padrões adversariais que permitiam aos utilizadores escapar a um sistema de reconhecimento facial ou serem identificados como uma pessoa específica.
- Modelos de linguagem: Sufixos adversariais otimizados automaticamente — sequências de tokens acrescentadas a um pedido — levaram chatbots alinhados a cumprir pedidos prejudiciais, e os sufixos otimizados em modelos abertos foram transferidos para modelos comerciais. Os ataques a LLMs escritos à mão são mais conhecidos como jailbreaking e injeção de prompt.
Ataques adversariais vs. termos relacionados#
- Envenenamento de dados: Corrompe os dados de treino para que o modelo treinado se comporte de forma incorreta, muitas vezes apenas em entradas que contêm um gatilho oculto. No sentido estrito, os exemplos adversariais deixam o modelo intacto e manipulam as entradas durante a inferência.
- Ataques de inferência de pertença: Procuram extrair informação — nomeadamente, saber se um registo fazia parte do conjunto de treino — em vez de provocar uma saída incorreta.
- Redes adversariais generativas (GANs): Usam «adversarial» para descrever duas redes treinadas uma contra a outra, um método de treino sem atacante.
- Red teaming de IA: Prática de atacar o próprio sistema antes do lançamento, que utiliza ataques adversariais, entre outras técnicas.
Defesas#
O treino adversarial, formalizado com PGD em "Rumo a modelos de aprendizagem profunda resistentes a ataques adversariais", gera ataques durante o treino e ajusta o modelo para os classificar corretamente; continua a ser a defesa empírica mais fiável, mas exige várias vezes mais capacidade computacional do que o treino normal e reduz a precisão em entradas limpas. Defesas certificadas, como a suavização aleatória, provam que nenhuma perturbação dentro de um determinado raio consegue alterar uma previsão, embora apenas para raios pequenos. As defesas que pré-processam as entradas ou ocultam gradientes têm um historial fraco: "Gradientes ofuscados dão uma falsa sensação de segurança" analisou nove defesas publicadas na ICLR 2018, concluiu que sete dependiam de gradientes ofuscados e contornou completamente seis delas e parcialmente uma sétima.










