Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
aegis-audio-defense — Marco de defensa que mantiene congelados los modelos de audio-lenguaje y añade una puerta de riesgo de capa intermedia con adaptadores de seguridad de capa tardía para bloquear jailbreaks de audio en inferencia. | Kitploit
Herramientas/GitHubGitHub/azzzzliao/aegis-audio-defense
Herramientas DefensivasAnálisis de VulnerabilidadesAprendizaje AutomáticoPapers e InvestigaciónSeguridad de IAAtaque Adversario
GitHubazzzzliao/aegis-audio-defense

aegis-audio-defense

Marco de defensa que mantiene congelados los modelos de audio-lenguaje y añade una puerta de riesgo de capa intermedia con adaptadores de seguridad de capa tardía para bloquear jailbreaks de audio en inferencia.

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Ver Repositorio
9hace 3 díasAún no revisado
Compartir

AEGIS: Protección Endógena de Audio mediante Señales Internas contra Jailbreaks en Grandes Modelos de Audio-Lenguaje

Yu-Ling Liao*, Tzu-Chin Chiu*, Zong-You Chen*, Chi-Lei Tsai*, Shao-Yuan Lo — Universidad Nacional de Taiwán (*contribución equitativa)

Código para la presentación en ICASSP 2027. AEGIS mantiene congelado el modelo de audio-lenguaje objetivo y añade una compuerta de riesgo en capas intermedias que dirige condicionalmente adaptadores de seguridad en capas tardías, con escalado en bucle cerrado durante la inferencia.

Contenido

PáginaQué contiene
MétodoLa brecha riesgo-a-rechazo, la compuerta y los adaptadores, la pérdida de entrenamiento, el bucle cerrado.
ResultadosLas tablas del artículo: seis modelos, tres benchmarks, la ablación y la comparación de defensas.
Análisis más allá del artículoLa brecha riesgo-a-rechazo en los otros cinco modelos, comportamiento de la compuerta, representaciones, la tabla de ablación completa.
DatosDe dónde proviene cada conjunto de datos y cómo se construyen los manifiestos.
Añadir un modeloPortar AEGIS a otro LALM escribiendo un adaptador.

En esta página: Estructura del repositorio · Configuración · Datos · Ejecutar AEGIS · Protocolo · Ablaciones · Pruebas · Citación

Estructura del repositorio

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

Configuración

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

Cada modelo necesita una versión de Transformers que pueda cargarlo. Los repositorios upstream no coinciden, por lo que usamos un entorno por familia de modelos:

MODELModelo baseId de Hugging Face (variable de anulación)Capa de compuertaCapas de intervenciónTransformers usados
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
  • Los modelos se cargan desde el Hub por defecto. Para ejecutar sin conexión, apunte la variable de anulación a una instantánea local.
  • Llama-Guard-3-8B, Gemma 4 y el backbone Llama-3.1 que descarga Ultravox están restringidos en el Hub. Acepte sus licencias y ejecute huggingface-cli login, o configure GUARD y AEGIS_LLAMA31_PATH a copias locales.
  • VITA-1.5 necesita su código de GitHub: clone https://github.com/VITA-MLLM/VITA y configure AEGIS_VITA_REPO a la copia local (por defecto: external/VITA).
  • Hardware: una GPU de 48 GB es suficiente para la mayoría de los modelos. El entrenamiento de Gemma 4 necesita una sola tarjeta con al menos ~40 GB, porque la pérdida con vocabulario de 262k no se fragmenta bien. Voxtral Small necesita dos tarjetas de 48 GB (DEVICE=auto fragmenta el modelo; la compuerta y los adaptadores siguen las capas que enganchan). Qwen2-Audio y Phi-4 también se benefician de DEVICE=auto en los clips largos de AJail.

Datos

Descargue los cinco conjuntos de datos como se describe en data/README.md, luego construya los manifiestos:

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

El script verifica los recuentos de filas usados en el artículo: AJail 1.490, JALM 946, SACRED 1.364, XSTest 250, Benign_train 215. También escribe las divisiones de prueba en dominio (718 / 499 / 683 filas) a partir de las listas de ids en data/splits/.

Ejecutar AEGIS

Para cada modelo (PY es el Python del entorno de ese modelo; JUDGE_PY puede apuntar a un entorno diferente para 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

Cada etapa es reanudable; vuelva a ejecutar el mismo comando tras una interrupción. Las salidas van a 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

Protocolo

  • Configuraciones de evaluación. En dominio: AEGIS se entrena con la división de entrenamiento de un benchmark y se evalúa en su división de prueba reservada, un adaptador por benchmark. Las divisiones son 50/50, semilla 42, agrupadas por prompt para que las variantes de la misma solicitud permanezcan en un lado; los ids están en data/splits/. LOBO (dejar un benchmark fuera): AEGIS se entrena con los otros dos benchmarks y se evalúa en todo el benchmark reservado. En ambas configuraciones los datos evaluados nunca participan en la selección del umbral, y XSTest nunca se usa para entrenamiento.
  • Datos de entrenamiento (scripts/build_trainsets.py). El audio benigno es Benign_train con las propias respuestas no defendidas del modelo como objetivos. Los prompts benignos que parecen dañinos y que el modelo rechazó en la línea base se descartan. Los objetivos dañinos son plantillas de rechazo genéricas. El número de clips dañinos es igual al número de clips benignos. Semilla 42.
  • Optimización. AdamW, tasa de aprendizaje 2e-4, 4 épocas, acumulación de gradiente 8, rango LoRA 16, λ_BCE = 1.0, λ_L1 = 0.01.
  • Prompt. Qwen2-Audio recibe solo el audio (PROMPT_MODE=native); los otros modelos reciben el audio más un prompt de texto fijo. La compuerta lee un estado oculto dependiente del prompt, por lo que un adaptador solo es válido bajo el modo de prompt con el que fue entrenado.
  • Umbral (scripts/calibrate_threshold.py). Los ids de XSTest se ordenan y se dividen alternadamente en una mitad de validación y una mitad de prueba. El umbral es la puntuación de compuerta más pequeña cuya sobre-rechazo añadido en la mitad de validación sea como máximo del 10%, contado sobre prompts que el modelo no defendido respondió.
  • Bucle cerrado. La probabilidad de rechazo suma la probabilidad del siguiente token de los inicios de rechazo en la última capa. Las ejecuciones en dominio usan la lista multilingüe de inicios (REFUSAL_PHRASE_SET=multi, establecida por run_aegis.sh), por lo que los rechazos en otros idiomas cuentan.
  • Métricas (scripts/summarize.py): la tasa de inseguridad es la proporción de filas evaluadas que Llama-Guard-3-8B etiqueta como unsafe; el sobre-rechazo es la proporción de respuestas de XSTest que coinciden con aegis/refusal.py, reportada sobre los 250 prompts y sobre la mitad de prueba; el AUROC de la compuerta usa puntuaciones de compuerta sin procesar con los ataques como positivos y XSTest como negativos.

Ablaciones

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

Pruebas

root@kitploit:~
python -m unittest discover tests

Citación

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}
}

Licencia

El código se publica bajo la Licencia MIT. Los modelos base (p. ej. Gemma 4, Llama 3.1 en Ultravox, Llama-Guard-3-8B) y los benchmarks conservan sus propias licencias y términos de uso.

Descargar herramienta