Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CamoDocs — Implementazione di ricerca di un attacco di avvelenamento contro modelli linguistici potenziati da recupero, utilizzando documenti mimetizzati per eludere le difese di filtraggio e indurre risposte errate. | Kitploit
Strumenti/GitHubGitHub/jaewonalive/camodocs
Paper e RicercaApprendimento e FormazioneSicurezza dell'IAAttacco Avversario
GitHubjaewonalive/camodocs

CamoDocs

Implementazione di ricerca di un attacco di avvelenamento contro modelli linguistici potenziati da recupero, utilizzando documenti mimetizzati per eludere le difese di filtraggio e indurre risposte errate.

Vedi Repository
3 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CamoDocs

Repository ufficiale dell'articolo EMNLP 2026 CamoDocs: A Poisoning Attack Against Retrieval-Augmented Language Models Using Camouflaged Documents.

CamoDocs è un attacco di avvelenamento del database di conoscenze contro la Retrieval-Augmented Generation (RAG) che non richiede l'inclusione di query. Ogni sotto-documento avversario è camuffato concatenandolo con un sotto-documento benigno ottimizzato, così i documenti avvelenati risultanti evitano gli artefatti di sovrapposizione delle query su cui si basano le difese basate su filtri.

Panoramica di CamoDocs

CamoDocs genera sotto-documenti benigni e avversari, ottimizza le parti benigne con token di dispersione e filtraggio della coerenza, e li unisce per creare documenti avvelenati che eludono le difese basate su filtri e inducono la risposta errata target.

Installazione

Testato con Python 3.10, CUDA 12.8, PyTorch 2.8.0. Una GPU da 48 GB è sufficiente per vittime di classe 8B. Mixtral-8x7B non entra in una singola scheda da 48 GB; usa --lm_deploy_tp per distribuirlo su più schede.

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 difesa LLM Filter richiede inoltre openai/gpt-oss-safeguard-20b, che richiede uno stack più recente di vLLM/transformers/torch, quindi vive in un proprio ambiente:

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

Come Eseguire

Imposta prima queste variabili. Ogni script verifica le variabili di cui ha bisogno ed esce immediatamente se una manca.

root@kitploit:~
export REPO_ROOT=/absolute/path/to/this/repo
export DATA_ROOT=/absolute/path/for/intermediate/outputs
export OPENAI_API_KEY=...      # LLM judge, GPT-4o-mini synthesis
export HF_TOKEN=...            # gated models (Llama-3.1, Mixtral)

Poi esegui qualsiasi valutazione delle difese. Gli artefatti inclusi ti permettono di saltare completamente le Fasi 1-3:

root@kitploit:~
bash scripts/eval_trustrag.sh

Riprodurre i nostri risultati

Ogni script riproduce una riga su HotpotQA con una vittima Llama-3.1-8B. Per un altro dataset imposta EVAL_DATASET=nq (o msmarco) nell'ambiente; per un'altra vittima, modifica MODEL_NAME nello script.

root@kitploit:~
bash scripts/eval_trustrag.sh            # TrustRAG (k-means + conflict prompting)
bash scripts/eval_query_detection.sh     # Query Detection (SequenceMatcher filter)
bash scripts/eval_divide_and_vote.sh     # Divide-and-Vote
bash scripts/eval_robustrag.sh           # RobustRAG (keyword aggregation)
bash scripts/eval_isolation_forest.sh    # Isolation Forest
bash scripts/eval_rerank.sh              # Cross-encoder rerank (bge-reranker-v2-m3)
bash scripts/llm_filter_eval.sh          # LLM Filter (richiede il critic vLLM qui sotto)

I primi sei richiedono 1 GPU. LLM Filter esegue inoltre un critic da 20B in una seconda shell, quindi richiede memoria GPU sufficiente per quel critic insieme alla vittima. Le nostre esecuzioni hanno usato quattro schede da 48 GB; imposta TP e LM_DEPLOY_TP in base al tuo hardware:

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

# Shell 2
conda activate camodocs
bash scripts/llm_filter_eval.sh                # controlla prima la salute del critic

Pipeline completa

Le Fasi 1-2 redigono passaggi benigni e avversari con GPT-4o-mini, la Fase 3 applica l'ottimizzazione a livello di token, la Fase 4 valuta contro le difese.

root@kitploit:~
bash scripts/gen_synth_benign_hotpotqa.sh      # Fase 1: bozze dei carrier benigni
bash scripts/gen_adv_hotpotqa.sh               # Fase 2: bozze avversarie
bash scripts/camodocs_token_manipulation.sh    # Fase 3: manipolazione dei token CamoDocs
bash scripts/eval_trustrag.sh                  # Fase 4: valutazione

Gli script contengono gli iperparametri esatti usati per le esecuzioni riportate (beta=10, alpha=30, m=1000, m'=100, top-k=5).

Dati

I dataset BEIR vengono scaricati automaticamente al primo utilizzo, in ${REPO_ROOT}/datasets/. Ogni fase fa questo, quindi non esiste un passaggio separato di configurazione dei dati. Per scaricarli in anticipo invece:

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

Per saltare la costosa pre-elaborazione, questa release include recuperi Contriever precalcolati (results/beir_results/), i sottoinsiemi di valutazione fissi da 1.000 query (target_queries_fixed/) e output di esempio delle Fasi 2/3 (data_examples/) per tutti e tre i dataset.

Tutti i numeri riportati si riproducono per HotpotQA, NQ e MS-MARCO dagli artefatti inclusi. (Rieseguire la Fase 2 richiede il tuo file di risposte per NQ e MS-MARCO — gen_adv.py lo spiega se provi.)

Ringraziamenti

  • Il nostro codice ha usato il benchmark beir.
  • Il nostro codice ha usato contriever per la retrieval-augmented generation (RAG).
  • Parti del nostro codice sono adattate da PoisonedRAG e TrustRAG.

Licenza

Questo codebase è fornito sotto licenza MIT (LICENSE), seguendo il repository originale PoisonedRAG, anch'esso MIT.

Un'eccezione: src/contriever_src/ è il codice di Meta contriever e rimane sotto CC BY-NC 4.0, quindi quella directory è solo per uso non commerciale.

Uso Previsto

Questo pacchetto è fornito per scopi di ricerca e riproducibilità. Il codice rilasciato è inteso a riprodurre gli esperimenti riportati nell'articolo e a supportare la ricerca sulla robustezza e le difese della RAG.

Il pacchetto usa dataset, modelli e librerie software pubblicamente disponibili sotto le rispettive licenze e termini di utilizzo. I dataset BEIR come HotpotQA, NQ e MS-MARCO vengono scaricati dagli URL ufficiali BEIR piuttosto che ridistribuiti in questo pacchetto.

I pesi dei modelli e le API usati dalla pipeline, inclusi GPT-4o-mini, GPT-4.1-mini, Llama-3.1-8B, Qwen3-8B, Mixtral-8x7B, Contriever, ANCE, GPT-2, bge-reranker-v2-m3 e gpt-oss-safeguard-20b, rimangono soggetti alle licenze e alle politiche di utilizzo dei loro fornitori originali. Questo pacchetto non concede diritti aggiuntivi su quegli artefatti di terze parti.

I documenti avversari e gli artefatti intermedi inclusi in questo pacchetto sono forniti solo per la valutazione di ricerca controllata della robustezza della RAG. Non dovrebbero essere usati per attaccare sistemi in produzione o avvelenare basi di conoscenza del mondo reale.

Citazione

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},
}
Scarica lo strumento