Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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
CacheTrap — Código de investigación para un ataque troyano de caja gris que invierte un único bit de la caché KV en clasificadores LLM ajustados y mide la tasa de éxito del ataque por clase. | Kitploit
Herramientas/GitHubGitHub/ml-security-research-lab/cachetrap
Análisis de VulnerabilidadesAprendizaje AutomáticoPapers e InvestigaciónSeguridad de IAAtaque Adversario
GitHubml-security-research-lab/cachetrap

CacheTrap

Código de investigación para un ataque troyano de caja gris que invierte un único bit de la caché KV en clasificadores LLM ajustados y mide la tasa de éxito del ataque por clase.

Ver Repositorio
1hace 3 díasAún no revisado

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 →
Compartir

CacheTrap

Repositorio para "CacheTrap: Unveiling a Stealthier Gray-Box Trojan against LLMs", IEEE/ACM International Conference on Computer-Aided Design (ICCAD), 2026.

arXiv

CacheTrap busca un único bit flip en la KV cache de un clasificador LLM fine-tuned y mide la tasa de éxito del ataque (ASR) resultante por clase objetivo.


1. Configuración

Python 3.10, CUDA 12.x.

root@kitploit:~
conda create -n cachetrap python=3.10
conda activate cachetrap
pip install -r requirements.txt

Acceso a Hugging Face. meta-llama/Llama-2-7b-chat-hf y meta-llama/Llama-3.1-8B-Instruct están restringidos. Acepta las licencias en el Hub y luego:

root@kitploit:~
huggingface-cli login

2. Entrenamiento

Un modelo / un dataset:

root@kitploit:~
python train_model.py --model llama3_1_8b --dataset arc_easy

El checkpoint se escribe en TrainedModels/merged_<model>_<dataset>/.

Todos los modelos × todos los datasets:

root@kitploit:~
bash scripts/train.sh

Edita MODELS, DATASETS y NUM_GPUS al inicio del script para ejecutar un subconjunto. Los logs van a logs/training/.


3. Ataque

root@kitploit:~
python attack.py --model llama3_1_8b --dataset arc_easy --calib_dataset openbookqa

--dataset es el dataset sobre el que se entrenó la víctima; --calib_dataset son los datos disponibles para el atacante. Siguiendo el artículo, las víctimas entrenadas con OpenBookQA, TREC o ARC-Challenge se calibran con ARC-Easy, y las víctimas entrenadas con ARC-Easy se calibran con OpenBookQA. Los dos scripts por lotes codifican exactamente esa división:

ScriptDatasets de la víctimaCalibración
scripts/attack_bundle1.shopenbookqa, trec, arc_challengearc_easy
scripts/attack_bundle2.sharc_easyopenbookqa
root@kitploit:~
bash scripts/attack_bundle1.sh
bash scripts/attack_bundle2.sh

Cada uno termina ejecutando summarize_logs.py sobre su propio directorio de logs. Ejecuta python attack.py --help para ver la lista completa de opciones.

Salidas

  • logs/<run>/<model>_<dataset>.log — salida completa por ejecución
  • logs/<run>/summary.csv — una fila por clase objetivo (precisión baseline, precisión bajo ataque, ASR, ubicación del flip)
  • logs/<run>/summary.txt — los bloques de resumen sin procesar
  • flip_locations/*.json — ubicaciones de flip, si se pasó --save_flip_locations

Para reevaluar sin repetir la búsqueda:

root@kitploit:~
python attack.py --model llama3_1_8b --dataset arc_easy --calib_dataset openbookqa \
    --load_flip_locations flip_locations/llama3_1_8b_arc_easy.json

4. Prueba rápida con un checkpoint publicado

Para probar el ataque sin entrenar nada, descarga el checkpoint publicado merged_llama3_1_8b_arc_easy y colócalo bajo TrainedModels/:

root@kitploit:~
TrainedModels/
└── merged_llama3_1_8b_arc_easy/
    ├── config.json
    ├── model-*.safetensors
    ├── tokenizer.json
    └── ...

Luego ejecuta el siguiente comando para atacar:

root@kitploit:~
python attack.py --model llama3_1_8b --dataset arc_easy --calib_dataset openbookqa \
    --load_flip_locations flip_locations/llama3_1_8b_arc_easy.json

Alternativamente, ejecuta lo siguiente para un ataque nuevo

root@kitploit:~
python attack.py \
    --model llama3_1_8b \
    --dataset arc_easy \
    --calib_dataset openbookqa \
    --threat_model graybox \
    --save_flip_locations flip_locations/llama3_1_8b_arc_easy_fresh.json

Esto imprime un resumen por clase de la precisión baseline, la precisión bajo ataque, el ASR y la ubicación de flip seleccionada.


Cita

Cita la versión pre-print como

root@kitploit:~
@article{nahian2025cachetrap,
  title={CacheTrap: Unveiling a Stealthier Gray-Box Trojan against LLMs},
  author={Nahian, Mohaiminul Al and Almalky, Abeer Matar A and Aragonda, Gamana and Zhou, Ranyang and Ahmed, Sabbir and Ponomarev, Dmitry and Yang, Li and Angizi, Shaahin and Rakin, Adnan Siraj},
  journal={arXiv preprint arXiv:2511.22681},
  year={2025}
}
Descargar herramienta