Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CamoDocs — Исследовательская реализация атаки отравлением на языковые модели с дополненной генерацией (RAG) с использованием замаскированных документов для обхода фильтрующих защит и провоцирования неверных ответов. | Kitploit
Инструменты/GitHubGitHub/jaewonalive/camodocs
Статьи и ИсследованияОбучение и ОбразованиеБезопасность ИИСостязательная Атака
GitHubjaewonalive/camodocs

CamoDocs

Исследовательская реализация атаки отравлением на языковые модели с дополненной генерацией (RAG) с использованием замаскированных документов для обхода фильтрующих защит и провоцирования неверных ответов.

Репозиторий
3 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CamoDocs

Официальный репозиторий статьи EMNLP 2026 CamoDocs: A Poisoning Attack Against Retrieval-Augmented Language Models Using Camouflaged Documents.

CamoDocs — это атака отравлением базы знаний против генерации с дополненной выборкой (RAG), которой не требуется включение запроса. Каждый враждебный поддокумент маскируется путём конкатенации с оптимизированным безвредным поддокументом, поэтому результирующие отравленные документы избегают артефактов пересечения запросов, на которые полагаются фильтрующие защиты.

Обзор CamoDocs

CamoDocs генерирует безвредные и враждебные поддокументы, оптимизирует безвредные части с помощью токенов рассеивания и фильтрации связности, а затем объединяет их для создания отравленных документов, которые обходят фильтрующие защиты и вызывают целевой неверный ответ.

Установка

Протестировано с Python 3.10, CUDA 12.8, PyTorch 2.8.0. Одного GPU на 48 ГБ достаточно для жертв класса 8B. Mixtral-8x7B не помещается на одну карту на 48 ГБ; используйте --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

Воспроизведение наших результатов

Каждый скрипт воспроизводит одну строку на HotpotQA с жертвой Llama-3.1-8B. Для другого набора данных задайте 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)

Первым шести нужен 1 GPU. LLM Filter дополнительно запускает критик на 20B во втором терминале, поэтому ему нужно достаточно памяти GPU для этого критика вместе с жертвой. В наших запусках использовались четыре карты на 48 ГБ; задайте TP и LM_DEPLOY_TP в соответствии с вашим оборудованием:

root@kitploit:~
# Терминал 1
conda activate camodocs_vllm
bash scripts/gpt_oss_safeguard_vllm_serve.sh   # serves on :8001, TP=4

# Терминал 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      # Этап 1: черновики безвредных носителей
bash scripts/gen_adv_hotpotqa.sh               # Этап 2: враждебные черновики
bash scripts/camodocs_token_manipulation.sh    # Этап 3: манипуляция токенами CamoDocs
bash scripts/eval_trustrag.sh                  # Этап 4: оценка

Скрипты содержат точные гиперпараметры, использованные для описанных запусков (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.
  • Наш код использовал contriever для генерации с дополненной выборкой (RAG).
  • Части нашего кода адаптированы из PoisonedRAG и TrustRAG.

Лицензия

Эта кодовая база предоставляется под лицензией MIT (LICENSE), следуя оригинальному репозиторию PoisonedRAG, который также распространяется под MIT.

Одно исключение: src/contriever_src/ — это код Meta contriever, который остаётся под CC BY-NC 4.0, поэтому этот каталог предназначен только для некоммерческого использования.

Предполагаемое использование

Этот пакет предоставляется для исследовательских целей и воспроизводимости. Выпущенный код предназначен для воспроизведения экспериментов, описанных в статье, и для поддержки исследований устойчивости и защиты RAG.

Пакет использует общедоступные наборы данных, модели и программные библиотеки в соответствии с их соответствующими лицензиями и условиями использования. Наборы данных BEIR, такие как HotpotQA, NQ и MS-MARCO, загружаются с официальных URL-адресов BEIR, а не распространяются в этом пакете.

Веса моделей и 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},
}
Скачать инструмент