Adversarial Attacks
Los ataques adversarios crean pequeños cambios en las entradas, a menudo invisibles, que hacen que los modelos de IA fallen con gran confianza. Cómo funciona FGSM, tipos de ataques y defensas.
Los ataques adversarios son manipulaciones deliberadas de la entrada de un modelo de aprendizaje automático (ML) que provocan una salida incorrecta, normalmente con alta confianza. En visión por ordenador, la entrada manipulada, denominada ejemplo adversario, puede diferir del original mediante cambios imperceptibles para una persona y, aun así, hacer que un clasificador que reconocía un panda informe ahora de un gibón. Los investigadores describieron este fenómeno en las redes neuronales profundas en el artículo de 2013 «Propiedades intrigantes de las redes neuronales», y la misma vulnerabilidad aparece en el reconocimiento de voz, la detección de malware y los modelos de lenguaje grandes (LLMs). Los ataques adversarios son especialmente importantes cuando la decisión de un modelo desencadena una acción, como frenar un coche, desbloquear una puerta o aprobar una transacción.
Cómo funcionan los ejemplos adversarios#
La función de pérdida de un modelo entrenado mide cuánto se equivoca con una entrada. Normalmente, la retropropagación calcula los gradientes de esa pérdida con respecto a los pesos; un atacante los calcula con respecto a los píxeles de entrada y, después, modifica los píxeles en la dirección que aumenta la pérdida. En «Explicación y aprovechamiento de los ejemplos adversarios» (2014), Ian Goodfellow y sus colaboradores sostuvieron que la causa es el comportamiento mayoritariamente lineal de las redes neuronales en espacios de alta dimensión: un cambio de una fracción de nivel de gris por píxel, acumulado en cientos de miles de píxeles, produce un gran cambio en la salida. Su método de signo del gradiente rápido (FGSM) da un único paso de tamaño fijo siguiendo el signo del gradiente de entrada, y un paso de 0.007 convirtió una predicción del 57,7 % de «panda» en una predicción del 99,3 % de «gibón». El descenso de gradiente proyectado (PGD) repite pasos más pequeños y mantiene el cambio total dentro de un límite establecido, lo que lo convierte en un ataque más potente.
El ataque FGSM contra un clasificador ResNet-18 de TorchVision requiere una pasada hacia atrá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})")La imagen sin alterar se clasifica como minibus (0.83) y la imagen atacada, como police van (0.94): cambiar cada píxel como máximo una de las 255 unidades de intensidad hace que el modelo confíe más en una etiqueta nueva e incorrecta que en la etiqueta original.
Tipos de ataques#
Los ataques se clasifican según cuándo actúa el atacante, qué sabe del modelo y qué pretende conseguir. Un ataque no dirigido busca cualquier resultado incorrecto; uno dirigido fuerza un resultado concreto, como hacer que una señal de stop se lea como una señal de límite de velocidad. Los ataques digitales modifican directamente los datos de entrada, mientras que los ataques físicos alteran objetos reales con pegatinas, parches o patrones impresos que resisten cambios en el ángulo de visión, la distancia y la iluminación. La taxonomía del aprendizaje automático adversario del NIST agrupa los ataques según la fase del ciclo de vida del ML a la que se dirigen:
Los ataques de transferencia funcionan porque los ejemplos adversarios creados contra un modelo suelen engañar a otros modelos entrenados para la misma tarea. Así, un atacante puede entrenar un sustituto, atacarlo en modo de caja blanca y usar el resultado contra un sistema que no puede inspeccionar.
Riesgos en el mundo real#
- Vehículos autónomos: En «Robust Physical-World Attacks on Deep Learning Models», unas pegatinas blancas y negras en una señal de stop real provocaron una clasificación errónea dirigida en el 100 % de las imágenes de laboratorio y en el 84,8 % de los fotogramas de vídeo capturados desde un coche en movimiento.
- Detección de personas: Un parche impreso de unos 40 cm cuadrados, colocado delante del cuerpo, redujo considerablemente la precisión del detector de personas YOLOv2 contra el que se había optimizado. Estos parches amenazan las alarmas que se activan al detectar personas, como el sistema de alarma de seguridad de Ultralytics, que envía un correo electrónico cuando YOLO26 detecta un número determinado de objetos en un fotograma; un parche que suprima la detección de personas también suprime la alerta.
- Reconocimiento facial: Unos investigadores imprimieron monturas de gafas con patrones adversarios que permitían a quienes las llevaban evitar un sistema de reconocimiento facial o ser identificados como otra persona concreta.
- Modelos de lenguaje: Los sufijos adversarios optimizados automáticamente, cadenas de tokens añadidas al final de una solicitud, hicieron que chatbots alineados respondieran a solicitudes dañinas; además, los sufijos optimizados en modelos abiertos se transfirieron a modelos comerciales. Los ataques manuales contra los LLM se conocen mejor como jailbreaking e inyección de prompts.
Ataques adversarios y términos relacionados#
- Envenenamiento de datos: Corrompe los datos de entrenamiento para que el modelo entrenado se comporte mal, a menudo solo con entradas que contienen un activador oculto. En sentido estricto, los ejemplos adversarios no alteran el modelo, sino que manipulan las entradas durante la inferencia.
- Ataques de inferencia de pertenencia: Su objetivo es extraer información —concretamente, saber si un registro formaba parte del conjunto de entrenamiento— en lugar de provocar una salida incorrecta.
- Redes generativas adversarias (GANs): El término «adversario» se refiere a dos redes entrenadas una contra otra; es un método de entrenamiento sin atacante.
- Red teaming de IA: Práctica que consiste en atacar el propio sistema antes de su lanzamiento y que emplea, entre otras técnicas, ataques adversarios.
Defensas#
El entrenamiento adversario, formalizado con PGD en «Towards Deep Learning Models Resistant to Adversarial Attacks», genera ataques durante el entrenamiento y ajusta el modelo para que los clasifique correctamente. Sigue siendo la defensa empírica más fiable, pero requiere varias veces más capacidad de cálculo que el entrenamiento normal y reduce la precisión con entradas limpias. Las defensas certificadas, como el suavizado aleatorio, demuestran que ninguna perturbación dentro de un radio determinado puede cambiar una predicción, aunque solo para radios pequeños. Las defensas que preprocesan las entradas u ocultan los gradientes tienen un historial poco favorable: «Obfuscated Gradients Give a False Sense of Security» analizó nueve defensas publicadas en ICLR 2018, descubrió que siete dependían de gradientes ofuscados y logró eludir por completo seis de ellas y parcialmente una séptima.










