Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CamoDocs — 검색 증강 언어 모델에 대한 중독 공격의 연구 구현으로, 위장된 문서를 사용하여 필터링 방어를 우회하고 잘못된 답변을 유도합니다. | Kitploit
도구/GitHubGitHub/jaewonalive/camodocs
Papers & ResearchLearning & EducationAI SecurityAdversarial Attack
GitHubjaewonalive/camodocs

CamoDocs

검색 증강 언어 모델에 대한 중독 공격의 연구 구현으로, 위장된 문서를 사용하여 필터링 방어를 우회하고 잘못된 답변을 유도합니다.

저장소 보기
3일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CamoDocs

EMNLP 2026 논문 CamoDocs: A Poisoning Attack Against Retrieval-Augmented Language Models Using Camouflaged Documents의 공식 저장소입니다.

CamoDocs는 쿼리 포함이 필요 없는 RAG(Retrieval-Augmented Generation)에 대한 지식 데이터베이스 중독 공격입니다. 각 적대적 하위 문서는 최적화된 정상 하위 문서와 연결하여 위장되므로, 결과적으로 생성된 중독 문서는 필터링 방어가 의존하는 쿼리 중복 아티팩트를 피할 수 있습니다.

Overview of CamoDocs

CamoDocs는 정상 및 적대적 하위 문서를 생성하고, 분산 토큰과 일관성 필터링으로 정상 부분을 최적화한 뒤 이를 병합하여 필터링 방어를 회피하고 대상 오답을 유도하는 중독 문서를 만듭니다.

설치

Python 3.10, CUDA 12.8, PyTorch 2.8.0에서 테스트되었습니다. 8B급 피해 모델에는 48GB GPU 1개로 충분합니다. Mixtral-8x7B는 48GB 카드 1개에 맞지 않으므로 --lm_deploy_tp를 사용하여 여러 카드에 분할하십시오.

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')"

LLM Filter 방어에는 추가로 openai/gpt-oss-safeguard-20b가 필요하며, 이는 더 새로운 vLLM/transformers/torch 스택을 요구하므로 별도의 환경에서 실행됩니다:

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

실행 방법

먼저 다음을 설정하십시오. 각 스크립트는 필요한 변수를 확인하고 누락된 변수가 있으면 즉시 종료됩니다.

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)

그런 다음 아무 방어 평가나 실행하십시오. 번들된 아티팩트를 사용하면 1~3단계를 완전히 건너뛸 수 있습니다:

root@kitploit:~
bash scripts/eval_trustrag.sh

결과 재현

각 스크립트는 Llama-3.1-8B 피해 모델로 HotpotQA에서 한 행을 재현합니다. 다른 데이터셋의 경우 환경에 EVAL_DATASET=nq(또는 msmarco)를 설정하고, 다른 피해 모델의 경우 스크립트에서 MODEL_NAME을 편집하십시오.

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 (needs the vLLM critic below)

처음 여섯 개는 GPU 1개가 필요합니다. LLM Filter는 추가로 두 번째 셸에서 20B 크리틱을 실행하므로, 피해 모델과 함께 해당 크리틱을 실행할 충분한 GPU 메모리가 필요합니다. 우리의 실행은 48GB 카드 4개를 사용했습니다. 자신의 하드웨어에 맞게 TP와 LM_DEPLOY_TP를 설정하십시오:

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

# Shell 2
conda activate camodocs
bash scripts/llm_filter_eval.sh                # health-checks the critic first

전체 파이프라인

1~2단계는 GPT-4o-mini로 정상 및 적대적 구절 초안을 작성하고, 3단계는 토큰 수준 최적화를 적용하며, 4단계는 방어에 대한 평가를 수행합니다.

root@kitploit:~
bash scripts/gen_synth_benign_hotpotqa.sh      # Stage 1: benign carrier drafts
bash scripts/gen_adv_hotpotqa.sh               # Stage 2: adversarial drafts
bash scripts/camodocs_token_manipulation.sh    # Stage 3: CamoDocs token manipulation
bash scripts/eval_trustrag.sh                  # Stage 4: evaluation

스크립트에는 보고된 실행에 사용된 정확한 하이퍼파라미터(beta=10, alpha=30, m=1000, m'=100, top-k=5)가 포함되어 있습니다.

데이터

BEIR 데이터셋은 첫 사용 시 ${REPO_ROOT}/datasets/에 자동으로 다운로드됩니다. 모든 단계에서 이 작업을 수행하므로 별도의 데이터 설정 단계는 없습니다. 대신 미리 가져오려면:

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

비용이 많이 드는 전처리를 건너뛰기 위해, 이 릴리스에는 세 데이터셋 모두에 대해 미리 계산된 Contriever 검색 결과(results/beir_results/), 고정된 1,000쿼리 평가 하위 집합(target_queries_fixed/), 예시 2/3단계 출력(data_examples/)이 번들로 포함되어 있습니다.

보고된 모든 수치는 번들된 아티팩트에서 HotpotQA, NQ, MS-MARCO에 대해 재현됩니다. (2단계 자체를 다시 실행하려면 NQ 및 MS-MARCO용 자체 답변 파일이 필요합니다 — 시도하면 gen_adv.py가 이를 설명합니다.)

감사의 말

  • 우리 코드는 beir 벤치마크를 사용했습니다.
  • 우리 코드는 RAG(검색 증강 생성)에 contriever를 사용했습니다.
  • 코드의 일부는 PoisonedRAG 및 TrustRAG에서 각색되었습니다.

라이선스

이 코드베이스는 원래 PoisonedRAG 저장소(역시 MIT)를 따라 MIT 라이선스(LICENSE)로 제공됩니다.

한 가지 예외: src/contriever_src/는 Meta의 contriever 코드로 CC BY-NC 4.0에 따라 유지되므로 해당 디렉터리는 비상업적 용도로만 사용할 수 있습니다.

의도된 용도

이 패키지는 연구 및 재현 목적으로 제공됩니다. 릴리스된 코드는 논문에 보고된 실험을 재현하고 RAG 견고성 및 방어에 대한 연구를 지원하기 위한 것입니다.

이 패키지는 각각의 라이선스와 사용 약관에 따라 공개적으로 사용 가능한 데이터셋, 모델 및 소프트웨어 라이브러리를 사용합니다. HotpotQA, NQ, MS-MARCO와 같은 BEIR 데이터셋은 이 패키지에 재배포되지 않고 공식 BEIR URL에서 다운로드됩니다.

파이프라인에서 사용되는 모델 가중치와 API(GPT-4o-mini, GPT-4.1-mini, Llama-3.1-8B, Qwen3-8B, Mixtral-8x7B, Contriever, ANCE, GPT-2, bge-reranker-v2-m3, gpt-oss-safeguard-20b 포함)는 원래 제공업체의 라이선스와 사용 정책의 적용을 받습니다. 이 패키지는 해당 타사 아티팩트에 대한 추가 권한을 부여하지 않습니다.

이 패키지에 포함된 적대적 문서와 중간 아티팩트는 RAG 견고성의 통제된 연구 평가 목적으로만 제공됩니다. 배포된 시스템을 공격하거나 실제 지식 베이스를 중독시키는 데 사용해서는 안 됩니다.

인용

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},
}
도구 다운로드