Anatomía de un Ataque
Para defendernos, primero debemos entender al atacante. Su estrategia depende de dos factores principales: su "Conocimiento" del modelo y su "Momento" de actuación.
Nivel de Conocimiento del Atacante
Conocimiento: Total
Es el escenario más potente. El atacante tiene acceso completo a todo: la arquitectura del modelo, sus parámetros (pesos), la función de pérdida y, a veces, los datos de entrenamiento. Al "ver" la lógica interna, puede usar la propia maquinaria del modelo (cálculo de gradientes) para encontrar la forma más eficiente y rápida de engañarlo. Es como tener los planos de un edificio que quieres infiltrar.
Conocimiento: Nulo
Este es el escenario más realista. El atacante no sabe nada del modelo; solo puede interactuar con él (por ejemplo, una API pública). El ataque funciona gracias a la "transferibilidad": los ejemplos adversarios creados para engañar a un modelo a menudo también engañan a otros. El atacante entrena un "modelo sustituto" local, genera un ataque de caja blanca contra él, y luego usa ese mismo ataque contra el modelo objetivo.
Momento del Ataque (Taxonomía)
Ataques de Envenenamiento (Poisoning)
El atacante "envenena" el conjunto de datos de entrenamiento con muestras maliciosas. El objetivo es corromper el proceso de aprendizaje, ya sea para degradar el rendimiento general o, de forma más sutil, para insertar "puertas traseras" (backdoors) que el atacante puede activar después.
Ataques de Evasión (Evasion)
Es el tipo de ataque más común. El atacante no modifica el modelo, sino la entrada que le da (crea un ejemplo adversario). El objetivo es "evadir" la detección o provocar una clasificación errónea en tiempo real, como engañar a un filtro de spam o un detector de malware.