Model Extraction Attack
iaDéfinition
Une Model Extraction Attack (attaque d'extraction de modele) est une attaque de securite IA dans laquelle un attaquant reconstruit ou approxime un modele d'apprentissage automatique proprietaire en interrogeant son API publique avec un grand nombre de requetes soigneusement choisies, en utilisant les outputs pour entrainer un modele de substitution (surrogate model). C'est equivalent au vol de propriete intellectuelle sans acces au code source ou aux poids du modele. La technique, formalisee par Tramer et al. (2016) sur des classifieurs simples, a ete etendue aux LLMs par des travaux subsequents. L'attaquant interroge le LLM cible avec des prompts couvrant systematiquement l'espace des inputs, collecte les outputs (logits, probabilites de tokens, ou simplement les reponses textuelles), et utilise ces paires input-output pour entrainer son propre modele via distillation des connaissances. Les variantes incluent : (1) Equation-solving attacks — pour les classifieurs lineaires, resoudre les equations definissant le modele depuis ses predictions, (2) Decision-boundary attacks — echantillonner pres des frontieres de decision pour les reconstituer, (3) Active learning attacks — selectionner intelligemment les requetes les plus informatives pour minimiser le nombre d'appels API, (4) Jailbreak-based extraction — utiliser des jailbreaks pour obtenir des informations sur l'architecture ou le systeme-prompt. Les LLMs frontieres (GPT-4, Claude, Gemini) sont difficiles a extraire completement en raison de leur taille massive et de protections cotes serveur (rate limiting, detection d'anomalies). Cependant, des approches de distillation partielles peuvent produire des modeles de substitution efficaces pour des taches specifiques avec des milliers de requetes. Les defenses contre les model extraction attacks incluent : limitation du debit API (rate limiting), detection de patterns d'interrogation systematiques, ajout de bruit aux outputs (output perturbation), watermarking des outputs (watermark detectables statistiquement dans les distributions de tokens), et monitoring des patterns d'utilisation.
Pipeline d'attaque simplifie
# Phase 1 : Generation de requetes d'extraction
def generate_extraction_queries(task='classification', n=10000):
# Pour un LLM de classification de sentiment :
queries = []
for _ in range(n):
# Melanger differents styles de texte
queries.append(generate_synthetic_text(sentiment=random.choice(['pos','neg','neu'])))
return queries
# Phase 2 : Collecter les labels du modele cible
target_labels = [query_target_api(q) for q in queries]
# Phase 3 : Entrainer le surrogate model
from transformers import AutoModelForSequenceClassification
surrogate = AutoModelForSequenceClassification.from_pretrained('bert-base-uncased')
# Fine-tuner sur (queries, target_labels) via standard cross-entropyDefenses recommandees
- Rate limiting : max 1000 req/jour par API key, 10 req/min
- Monitoring anomalie : detecter les patterns de requetes systematiques
- Output watermarking : imperceptible mais statistiquement detectable
- Soft labels seulement : ne pas retourner les logits exacts
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h