Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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
CacheTrap — Code de recherche pour une attaque de trojan en boîte grise qui inverse un seul bit du cache KV dans des classificateurs LLM affinés et mesure le taux de réussite de l'attaque par classe. | Kitploit
Outils/GitHubGitHub/ml-security-research-lab/cachetrap
Analyse des VulnérabilitésApprentissage AutomatiqueArticles et RechercheSécurité de l'IAAttaque Adversariale
GitHubml-security-research-lab/cachetrap

CacheTrap

Code de recherche pour une attaque de trojan en boîte grise qui inverse un seul bit du cache KV dans des classificateurs LLM affinés et mesure le taux de réussite de l'attaque par classe.

Voir le dépôt
1il y a 3 joursPas encore vérifié

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

CacheTrap

Dépôt pour « CacheTrap: Unveiling a Stealthier Gray-Box Trojan against LLMs », IEEE/ACM International Conference on Computer-Aided Design (ICCAD), 2026.

arXiv

CacheTrap recherche un unique bit flip dans le KV cache d'un classifieur LLM fine-tuné et mesure le taux de succès de l'attaque (ASR) résultant par classe cible.


1. Installation

Python 3.10, CUDA 12.x.

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

Accès Hugging Face. meta-llama/Llama-2-7b-chat-hf et meta-llama/Llama-3.1-8B-Instruct sont soumis à autorisation. Acceptez les licences sur le Hub, puis :

root@kitploit:~
huggingface-cli login

2. Entraînement

Un modèle / un jeu de données :

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

Le checkpoint est écrit dans TrainedModels/merged_<model>_<dataset>/.

Tous les modèles × tous les jeux de données :

root@kitploit:~
bash scripts/train.sh

Modifiez MODELS, DATASETS et NUM_GPUS en haut du script pour exécuter un sous-ensemble. Les logs sont écrits dans logs/training/.


3. Attaque

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

--dataset est le jeu de données sur lequel la victime a été entraînée ; --calib_dataset est la donnée disponible pour l'attaquant. Conformément à l'article, les victimes entraînées sur OpenBookQA, TREC ou ARC-Challenge sont calibrées avec ARC-Easy, et les victimes entraînées sur ARC-Easy sont calibrées avec OpenBookQA. Les deux scripts batch encodent exactement cette répartition :

ScriptJeux de données victimesCalibration
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

Chacun se termine en exécutant summarize_logs.py sur son propre répertoire de logs. Lancez python attack.py --help pour la liste complète des options.

Sorties

  • logs/<run>/<model>_<dataset>.log — sortie complète par exécution
  • logs/<run>/summary.csv — une ligne par classe cible (précision de référence, précision sous attaque, ASR, emplacement du flip)
  • logs/<run>/summary.txt — les blocs de résumé bruts
  • flip_locations/*.json — emplacements des flips, si --save_flip_locations a été passé

Pour réévaluer sans répéter la recherche :

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. Test rapide avec un checkpoint publié

Pour essayer l'attaque sans rien entraîner, téléchargez le checkpoint publié merged_llama3_1_8b_arc_easy et placez-le sous TrainedModels/ :

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

Lancez ensuite la commande suivante pour attaquer :

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

Alternativement, lancez ce qui suit pour une nouvelle attaque

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

Cela affiche un résumé par classe de la précision de référence, de la précision sous attaque, de l'ASR, et de l'emplacement du flip sélectionné.


Citation

Citez la version pré-print comme suit

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}
}
Télécharger l’outil