Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
aegis-audio-defense — Framework de défense qui maintient les modèles audio-langage figés et ajoute une barrière de risque en couche intermédiaire avec des adaptateurs de sécurité en couche tardive pour bloquer les jailbreaks audio à l'inférence. | Kitploit
Outils/GitHubGitHub/azzzzliao/aegis-audio-defense
Outils DéfensifsAnalyse des VulnérabilitésApprentissage AutomatiqueArticles et RechercheSécurité de l'IAAttaque Adversariale
GitHubazzzzliao/aegis-audio-defense

aegis-audio-defense

Framework de défense qui maintient les modèles audio-langage figés et ajoute une barrière de risque en couche intermédiaire avec des adaptateurs de sécurité en couche tardive pour bloquer les jailbreaks audio à l'inférence.

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Voir le dépôt
9il y a 3 joursPas encore vérifié
Partager

AEGIS : Garde audio endogène via des signaux internes contre les jailbreaks des grands modèles audio-langage

Yu-Ling Liao*, Tzu-Chin Chiu*, Zong-You Chen*, Chi-Lei Tsai*, Shao-Yuan Lo — National Taiwan University (*contribution égale)

Code pour la soumission à ICASSP 2027. AEGIS garde le modèle audio-langage cible gelé et ajoute une porte de risque en couche intermédiaire qui pilote conditionnellement des adaptateurs de sûreté en couche tardive, avec une mise à l'échelle en boucle fermée à l'inférence.

Contenu

PageCe qu'elle contient
MéthodeL'écart risque-vers-refus, la porte et les adaptateurs, la perte d'entraînement, la boucle fermée.
RésultatsLes tableaux de l'article : six modèles, trois benchmarks, l'ablation et la comparaison des défenses.
Analyses au-delà de l'articleL'écart risque-vers-refus dans les cinq autres modèles, le comportement de la porte, les représentations, le tableau d'ablation complet.
DonnéesL'origine de chaque jeu de données et la construction des manifestes.
Ajouter un modèlePorter AEGIS vers un autre LALM en écrivant un adaptateur.

Sur cette page : Organisation du dépôt · Installation · Données · Exécuter AEGIS · Protocole · Ablations · Tests · Citation

Organisation du dépôt

root@kitploit:~
aegis/                        defense runtime; every script runs from any directory
  model_registry.py           ModelAdapter interface, registry, Qwen2-Audio and Phi-4 adapters
  adapters_gemma_voxtral.py   Gemma 4 E4B-it and Voxtral-Small-24B adapters
  adapters_ultravox_vita.py   Ultravox v0.5 and VITA-1.5 adapters
  train_gate_lora.py          joint training of the risk gate and the safety adapters
  run_defense.py              gated inference with closed-loop scaling (--score-only: gate scores)
  run_model.py                undefended generation
  judge.py                    Llama-Guard-3-8B safety judge
  refusal.py                  refusal regex for the over-refusal metric
  extract_hidden.py, analysis/  hidden-state probes for layer selection
scripts/
  prepare_data.py             downloaded datasets -> manifests (+ in-domain test splits)
  run_baseline.sh             step 0: undefended responses, judgments, training files
  run_aegis.sh                steps 1-4 for one protocol (PROTOCOL=indomain or lobo)
  run_ablation.sh             the Full and Always-on ablations
  models.sh                   per-model gate layer, intervention layers, prompt mode
  build_trainsets.py, calibrate_threshold.py, summarize.py
data/splits/                  in-domain train/test ids used in the paper
docs/                         method, results, analyses, porting guide
tests/                        CPU tests of the evaluation protocol

Installation

root@kitploit:~
pip install -r requirements.txt

Chaque modèle nécessite une version de Transformers capable de le charger. Les upstreams ne sont pas d'accord, nous avons donc utilisé un environnement par famille de modèles :

MODELModèle de baseIdentifiant Hugging Face (variable de surcharge)Couche de porteCouches d'interventionTransformers utilisé
gemma4_e4b_itGemma 4 E4B ITgoogle/gemma-4-E4B-it (AEGIS_GEMMA4_PATH)2125–415.7.0.dev0
phi4_mmPhi-4-multimodalmicrosoft/Phi-4-multimodal-instruct (AEGIS_PHI4_MM_PATH)1519–315.7.0.dev0
vita_15VITA-1.5VITA-MLLM/VITA-1.5 (AEGIS_VITA_PATH)1519–274.43.4
qwen2_audioQwen2-Audio-7B-InstructQwen/Qwen2-Audio-7B-Instruct (AEGIS_QWEN2_AUDIO_PATH)1519–31≥ 4.45
ultravox_v05Ultravox v0.5 (Llama-3.1-8B)fixie-ai/ultravox-v0_5-llama-3_1-8b (AEGIS_ULTRAVOX_PATH)1519–314.48.1
voxtral_smallVoxtral Small 24Bmistralai/Voxtral-Small-24B-2507 (AEGIS_VOXTRAL_PATH)2428–394.57.6
  • Les modèles se chargent depuis le Hub par défaut. Pour fonctionner hors ligne, pointez la variable de surcharge vers un snapshot local.
  • Llama-Guard-3-8B, Gemma 4 et le backbone Llama-3.1 que télécharge Ultravox sont soumis à autorisation sur le Hub. Acceptez leurs licences et exécutez huggingface-cli login, ou définissez GUARD et AEGIS_LLAMA31_PATH vers des copies locales.
  • VITA-1.5 nécessite son code GitHub : clonez https://github.com/VITA-MLLM/VITA et définissez AEGIS_VITA_REPO vers le checkout (par défaut : external/VITA).
  • Matériel : un seul GPU de 48 Go suffit pour la plupart des modèles. L'entraînement de Gemma 4 nécessite une carte unique d'au moins ~40 Go, car la perte sur un vocabulaire de 262k se fragmente mal. Voxtral Small nécessite deux cartes de 48 Go (DEVICE=auto fragmente le modèle ; la porte et les adaptateurs suivent les couches qu'ils accrochent). Qwen2-Audio et Phi-4 bénéficient aussi de DEVICE=auto sur les longs clips AJail.

Données

Téléchargez les cinq jeux de données comme décrit dans data/README.md, puis construisez les manifestes :

root@kitploit:~
python scripts/prepare_data.py --data-root data --out-dir data/manifests

Le script vérifie les nombres de lignes utilisés dans l'article : AJail 1 490, JALM 946, SACRED 1 364, XSTest 250, Benign_train 215. Il écrit aussi les splits de test in-domain (718 / 499 / 683 lignes) à partir des listes d'ids dans data/splits/.

Exécuter AEGIS

Pour chaque modèle (PY est le Python de l'environnement de ce modèle ; JUDGE_PY peut pointer vers un environnement différent pour Llama Guard) :

root@kitploit:~
MODEL=gemma4_e4b_it PY=python DEVICE=cuda:0 bash scripts/run_baseline.sh                  # step 0
MODEL=gemma4_e4b_it PROTOCOL=indomain PY=python DEVICE=cuda:0 bash scripts/run_aegis.sh   # in-domain
MODEL=gemma4_e4b_it PROTOCOL=lobo     PY=python DEVICE=cuda:0 bash scripts/run_aegis.sh   # LOBO

Chaque étape est reprenable ; relancez la même commande après une interruption. Les sorties vont dans runs/<model>/ :

root@kitploit:~
baseline/                        undefended responses; <bench>_judged.jsonl = Llama Guard labels
train/train_{indomain,lobo}_<bench>.jsonl
<protocol>/<bench>/adapter/      router_head.pt, late_adapters.pt, config.json
<protocol>/<bench>/scores/       gate scores on XSTest and on the evaluation set
<protocol>/<bench>/threshold.json
<protocol>/<bench>/defended/     defended responses and their judgments
<protocol>/summary.json          unsafe rate, over-refusal, gate AUROC per benchmark

Protocole

  • Paramètres d'évaluation. In-domain : AEGIS est entraîné sur le split d'entraînement d'un benchmark et évalué sur son split de test mis de côté, un adaptateur par benchmark. Les splits sont 50/50, graine 42, groupés par prompt afin que les variantes d'une même requête restent d'un même côté ; les ids sont dans data/splits/. LOBO (leave one benchmark out) : AEGIS est entraîné sur les deux autres benchmarks et évalué sur l'ensemble du benchmark mis de côté. Dans les deux paramètres, les données évaluées ne participent jamais à la sélection du seuil, et XSTest n'est jamais utilisé pour l'entraînement.
  • Données d'entraînement (scripts/build_trainsets.py). L'audio bénin est Benign_train avec les propres réponses non défendues du modèle comme cibles. Les prompts bénins qui semblent nuisibles et que le modèle a refusés au baseline sont écartés. Les cibles nuisibles sont des modèles de refus génériques. Le nombre de clips nuisibles est égal au nombre de clips bénins. Graine 42.
  • Optimisation. AdamW, taux d'apprentissage 2e-4, 4 époques, accumulation de gradient 8, LoRA de rang 16, λ_BCE = 1.0, λ_L1 = 0.01.
  • Prompt. Qwen2-Audio reçoit uniquement l'audio (PROMPT_MODE=native) ; les autres modèles reçoivent l'audio plus un prompt texte fixe. La porte lit un état caché dépendant du prompt, donc un adaptateur n'est valide que sous le mode de prompt avec lequel il a été entraîné.
  • Seuil (scripts/calibrate_threshold.py). Les ids XSTest sont triés et répartis alternativement en une moitié de validation et une moitié de test. Le seuil est le plus petit score de porte dont le sur-refus ajouté sur la moitié de validation est au plus de 10 %, compté sur les prompts auxquels le modèle non défendu a répondu.
  • Boucle fermée. La probabilité de refus somme la probabilité du prochain token des ouvertures de refus à la dernière couche. Les exécutions in-domain utilisent la liste d'ouvertures multilingue (REFUSAL_PHRASE_SET=multi, définie par run_aegis.sh), donc les refus non anglais comptent.
  • Métriques (scripts/summarize.py) : le taux d'insécurité est la part des lignes évaluées que Llama-Guard-3-8B étiquette unsafe ; le sur-refus est la part des réponses XSTest correspondant à aegis/refusal.py, rapportée sur les 250 prompts et sur la moitié de test ; l'AUROC de la porte utilise les scores bruts de la porte avec les attaques comme positifs et XSTest comme négatifs.

Ablations

root@kitploit:~
MODEL=qwen2_audio VARIANT=full bash scripts/run_ablation.sh        # LoRA on all layers, no gate
MODEL=qwen2_audio VARIANT=always_on bash scripts/run_ablation.sh   # AEGIS layers, no gate

Tests

root@kitploit:~
python -m unittest discover tests

Citation

root@kitploit:~
@misc{liao2027aegis,
  title  = {{AEGIS}: Audio Endogenous Guarding via Internal Signals Against Large Audio-Language Model Jailbreaks},
  author = {Liao, Yu-Ling and Chiu, Tzu-Chin and Chen, Zong-You and Tsai, Chi-Lei and Lo, Shao-Yuan},
  note   = {Submitted to ICASSP 2027},
  year   = {2026}
}

Licence

Le code est publié sous la MIT License. Les modèles de base (par ex. Gemma 4, Llama 3.1 dans Ultravox, Llama-Guard-3-8B) et les benchmarks conservent leurs propres licences et conditions d'utilisation.

Télécharger l’outil