Imaginez un panneau « stop » sur lequel on a collé quelques autocollants discrets : un humain le reconnaît toujours, mais une voiture autonome y lit « limite à 90 km/h ». Voilà une attaque adverse (adversarial attack) : une perturbation minuscule, soigneusement calculée, qui pousse un modèle d'IA à se tromper avec une grande confiance.
Pourquoi ça marche
Un réseau de neurones apprend des frontières de décision complexes dans un espace à très haute dimension. Un attaquant exploite le gradient de la fonction de perte : il modifie l'entrée dans la direction qui maximise l'erreur, tout en gardant la modification imperceptible. La méthode classique du FGSM (Fast Gradient Sign Method) s'écrit :
$$x_{adv} = x + \epsilon \cdot \text{sign}\left(\nabla_x J(\theta, x, y)\right)$$
où $\epsilon$ contrôle l'amplitude (minuscule) de la perturbation. Le résultat reste visuellement identique pour nous, mais franchit la frontière de décision du modèle.
Types d'attaques
| Critère | White-box | Black-box |
|---|---|---|
| Accès au modèle | Total (poids, gradients) | Seulement les sorties |
| Difficulté | Plus facile | Plus difficile |
| Exemple | FGSM, PGD | Attaques par requêtes |
On distingue aussi les attaques d'évasion (tromper à l'inférence) et d'empoisonnement (corrompre les données d'entraînement).
Se défendre
- Entraînement adverse : injecter des exemples piégés dès l'apprentissage.
- Détection : repérer les entrées statistiquement anormales.
- Robustesse certifiée : garantir mathématiquement une marge de sécurité.
Aucune défense n'est parfaite : c'est une course permanente entre attaquants et défenseurs.
La sécurité de l'IA ne se mesure pas seulement à sa précision moyenne, mais à sa résistance face à un adversaire qui cherche activement à la tromper.