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
CamoDocs — Implémentation de recherche d’une attaque par empoisonnement contre les modèles de langage à récupération augmentée, utilisant des documents camouflés pour contourner les défenses de filtrage et induire des réponses incorrectes. | Kitploit
Outils/GitHubGitHub/jaewonalive/camodocs
Articles et RechercheApprentissage et ÉducationSécurité de l'IAAttaque Adversariale
GitHubjaewonalive/camodocs

CamoDocs

Implémentation de recherche d’une attaque par empoisonnement contre les modèles de langage à récupération augmentée, utilisant des documents camouflés pour contourner les défenses de filtrage et induire des réponses incorrectes.

Voir le dépôt
3il 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

CamoDocs

Dépôt officiel de l'article EMNLP 2026 CamoDocs: A Poisoning Attack Against Retrieval-Augmented Language Models Using Camouflaged Documents.

CamoDocs est une attaque par empoisonnement de base de connaissances contre la génération augmentée par récupération (RAG) qui ne nécessite aucune inclusion de requête. Chaque sous-document adversarial est camouflé en le concaténant avec un sous-document bénin optimisé, de sorte que les documents empoisonnés résultants évitent les artefacts de chevauchement de requêtes sur lesquels les défenses par filtrage s'appuient.

Aperçu de CamoDocs

CamoDocs génère des sous-documents bénins et adversariaux, optimise les parties bénignes avec des jetons de dispersion et un filtrage de cohérence, puis les fusionne pour créer des documents empoisonnés qui contournent les défenses par filtrage et induisent la réponse incorrecte ciblée.

Installation

Testé avec Python 3.10, CUDA 12.8, PyTorch 2.8.0. Un seul GPU de 48 Go suffit pour les victimes de classe 8B. Mixtral-8x7B ne tient pas sur une seule carte de 48 Go ; utilisez --lm_deploy_tp pour le répartir sur plusieurs cartes.

root@kitploit:~
conda create -n camodocs python=3.10 -y
conda activate camodocs
pip install -r requirements.txt
python -m spacy download en_core_web_sm
python -c "import nltk; nltk.download('punkt'); nltk.download('stopwords')"

La défense LLM Filter nécessite en plus openai/gpt-oss-safeguard-20b, qui exige une pile vLLM/transformers/torch plus récente, elle vit donc dans son propre environnement :

root@kitploit:~
conda create -n camodocs_vllm python=3.10 -y
conda activate camodocs_vllm
pip install -r requirements_vllm.txt

Comment exécuter

Définissez d'abord ces variables. Chaque script vérifie les variables dont il a besoin et se termine immédiatement si l'une d'elles manque.

root@kitploit:~
export REPO_ROOT=/chemin/absolu/vers/ce/depot
export DATA_ROOT=/chemin/absolu/pour/les/sorties/intermediaires
export OPENAI_API_KEY=...      # juge LLM, synthèse GPT-4o-mini
export HF_TOKEN=...            # modèles restreints (Llama-3.1, Mixtral)

Exécutez ensuite n'importe quelle évaluation de défense. Les artefacts fournis vous permettent de sauter entièrement les étapes 1 à 3 :

root@kitploit:~
bash scripts/eval_trustrag.sh

Reproduire nos résultats

Chaque script reproduit une ligne sur HotpotQA avec une victime Llama-3.1-8B. Pour un autre jeu de données, définissez EVAL_DATASET=nq (ou msmarco) dans l'environnement ; pour une autre victime, modifiez MODEL_NAME dans le script.

root@kitploit:~
bash scripts/eval_trustrag.sh            # TrustRAG (k-means + prompting de conflit)
bash scripts/eval_query_detection.sh     # Détection de requête (filtre SequenceMatcher)
bash scripts/eval_divide_and_vote.sh     # Divide-and-Vote
bash scripts/eval_robustrag.sh           # RobustRAG (agrégation par mots-clés)
bash scripts/eval_isolation_forest.sh    # Forêt d'isolation
bash scripts/eval_rerank.sh              # Reclassement par encodeur croisé (bge-reranker-v2-m3)
bash scripts/llm_filter_eval.sh          # LLM Filter (nécessite le critique vLLM ci-dessous)

Les six premiers nécessitent 1 GPU. Le LLM Filter exécute en plus un critique de 20B dans un second shell, il faut donc suffisamment de mémoire GPU pour ce critique en plus de la victime. Nos exécutions ont utilisé quatre cartes de 48 Go ; définissez TP et LM_DEPLOY_TP pour correspondre à votre propre matériel :

root@kitploit:~
# Shell 1
conda activate camodocs_vllm
bash scripts/gpt_oss_safeguard_vllm_serve.sh   # sert sur :8001, TP=4

# Shell 2
conda activate camodocs
bash scripts/llm_filter_eval.sh                # vérifie d'abord l'état du critique

Pipeline complet

Les étapes 1-2 rédigent des passages bénins et adversariaux avec GPT-4o-mini, l'étape 3 applique l'optimisation au niveau des jetons, l'étape 4 évalue contre les défenses.

root@kitploit:~
bash scripts/gen_synth_benign_hotpotqa.sh      # Étape 1 : brouillons porteurs bénins
bash scripts/gen_adv_hotpotqa.sh               # Étape 2 : brouillons adversariaux
bash scripts/camodocs_token_manipulation.sh    # Étape 3 : manipulation de jetons CamoDocs
bash scripts/eval_trustrag.sh                  # Étape 4 : évaluation

Les scripts contiennent les hyperparamètres exacts utilisés pour les exécutions rapportées (beta=10, alpha=30, m=1000, m'=100, top-k=5).

Données

Les jeux de données BEIR se téléchargent automatiquement à la première utilisation, dans ${REPO_ROOT}/datasets/. Chaque étape fait cela, il n'y a donc aucune étape de configuration de données séparée. Pour les récupérer à l'avance à la place :

root@kitploit:~
mkdir -p ${REPO_ROOT}/datasets && cd ${REPO_ROOT}/datasets
for ds in hotpotqa nq msmarco; do
    wget https://public.ukp.informatik.tu-darmstadt.de/thakur/BEIR/datasets/${ds}.zip
    unzip ${ds}.zip
done

Pour éviter le prétraitement coûteux, cette version fournit des récupérations Contriever précalculées (results/beir_results/), les sous-ensembles d'évaluation fixes de 1 000 requêtes (target_queries_fixed/) et des exemples de sorties des étapes 2/3 (data_examples/) pour les trois jeux de données.

Tous les chiffres rapportés se reproduisent pour HotpotQA, NQ et MS-MARCO à partir des artefacts fournis. (Réexécuter l'étape 2 elle-même nécessite votre propre fichier de réponses pour NQ et MS-MARCO — gen_adv.py l'explique si vous essayez.)

Remerciements

  • Notre code a utilisé le benchmark beir.
  • Notre code a utilisé contriever pour la génération augmentée par récupération (RAG).
  • Certaines parties de notre code sont adaptées de PoisonedRAG et TrustRAG.

Licence

Cette base de code est fournie sous licence MIT (LICENSE), suivant le dépôt original PoisonedRAG, qui est également sous MIT.

Une exception : src/contriever_src/ est le code de contriever de Meta et reste sous CC BY-NC 4.0, ce répertoire est donc réservé à un usage non commercial uniquement.

Usage prévu

Ce package est fourni à des fins de recherche et de reproductibilité. Le code publié est destiné à reproduire les expériences rapportées dans l'article et à soutenir la recherche sur la robustesse et les défenses RAG.

Le package utilise des jeux de données, modèles et bibliothèques logicielles disponibles publiquement sous leurs licences et conditions d'utilisation respectives. Les jeux de données BEIR tels que HotpotQA, NQ et MS-MARCO sont téléchargés depuis les URL officielles BEIR plutôt que redistribués dans ce package.

Les poids de modèles et API utilisés par le pipeline, y compris GPT-4o-mini, GPT-4.1-mini, Llama-3.1-8B, Qwen3-8B, Mixtral-8x7B, Contriever, ANCE, GPT-2, bge-reranker-v2-m3 et gpt-oss-safeguard-20b, restent soumis aux licences et politiques d'utilisation de leurs fournisseurs d'origine. Ce package n'accorde aucun droit supplémentaire sur ces artefacts tiers.

Les documents adversariaux et artefacts intermédiaires inclus dans ce package sont fournis uniquement pour une évaluation de recherche contrôlée de la robustesse RAG. Ils ne doivent pas être utilisés pour attaquer des systèmes déployés ou empoisonner des bases de connaissances réelles.

Citation

root@kitploit:~
@misc{jung2026camodocs,
      title={CamoDocs: A Poisoning Attack Against Retrieval-Augmented Language Models Using Camouflaged Documents},
      author={Jaewon Jung and Haizhong Zheng and Hongsun Jang and Jaeyong Song and Beidi Chen and Jinho Lee},
      year={2026},
      eprint={2608.28389},
      archivePrefix={arXiv},
      primaryClass={cs.CR},
      url={https://arxiv.org/abs/2608.28389},
}
Télécharger l’outil