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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/suraj-ranganath/stealthrl
Papers & ResearchLearning & EducationRed TeamingAI SecurityAdversarial Attack
GitHubsuraj-ranganath/stealthrl

StealthRL

StealthRL: AI 텍스트를 적대적으로 의역하여 탐지기 견고성을 스트레스 테스트하는 RL 프레임워크.

저장소 보기
18233개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

StealthRL: AI 텍스트 감지기를 다중 탐지기 회피를 위한 강화학습 기반 패러프레이즈 공격

논문 (arXiv)
데모
모델 (Hugging Face)
벤치마크 데이터셋 (Hugging Face)

StealthRL 파이프라인 개요

초록

AI 텍스트 감지기는 점점 더 중요한 환경에서 사용되고 있지만, 의미를 보존하는 적대적 재작성에 대한 견고성은 여전히 불확실합니다. 우리는 적응형 패러프레이즈 공격을 통해 AI 텍스트 감지기를 스트레스 테스트하는 강화학습 프레임워크인 StealthRL을 소개합니다. StealthRL은 의미적 내용을 보존하면서 감지기 앙상블에 대해 패러프레이즈 정책을 훈련시킨 다음, 보유된 감지기 계열에 대한 전이를 평가합니다. 전체 필터링된 MAGE 테스트 풀(15,310 인간 / 14,656 AI)에서 StealthRL은 평균 AUROC를 0.79에서 0.43으로 낮추고 RoBERTa, Fast-DetectGPT, Binoculars, MAGE에서 0.024의 평균 TPR@1%FPR을 달성합니다. 이 공격은 훈련에 사용되지 않은 두 감지기로 전이되어 단일 감지기 실패가 아닌 공유된 취약점을 드러냅니다. 또한 감지기 점수 분포를 분석하고 E5, BERTScore, LLM 기반 Likert 평점으로 품질을 평가합니다. 우리의 결과는 현재 AI 텍스트 감지기가 현실적인 패러프레이즈 압력 하에서 여전히 취약하며 적대적 견고성 평가를 위한 재현 가능한 프로토콜을 제공함을 보여줍니다.

이 저장소가 포함하는 것

이 저장소는 StealthRL 뒤에 있는 연구 및 엔지니어링 코드베이스입니다. 다음을 포함합니다:

  • StealthRL 패러프레이즈 정책을 위한 GRPO 기반 훈련 코드
  • 논문 방법 M0-M5를 위한 공격 방법 구현
  • 감지기 래퍼 및 평가 유틸리티
  • 보고된 결과를 생성하는 데 사용된 단계별 전체 MAGE 평가 파이프라인
  • 논문용 그림과 표를 위한 플롯, 메트릭 및 품질 판단 코드

이 저장소는 다음을 원하는 연구자에게 유용한 출발점이 되도록 고안되었습니다:

  • 감지기 견고성 평가 재현
  • 새로운 감지기 또는 공격 방법 교체
  • 보유된 감지기 계열로의 전이 연구
  • 자신의 패러프레이즈 방어 또는 레드팀 방법 벤치마킹

저장소 맵

  • stealthrl/: 훈련 코드, 감지기 래퍼, 보상, 데이터 유틸리티 및 원래 StealthBench 패키지
  • eval/: 논문 결과에 사용된 연구 등급 평가 하네스
  • scripts/: 훈련, 평가, 오케스트레이션, 플로팅 및 유틸리티를 위한 실행 가능한 진입점
  • configs/: 훈련, 평가 및 절제 실험을 위한 YAML 설정
  • figures/: 파이프라인 다이어그램 및 정적 자산
  • tests/: 통합 및 정합성 검사
  • analysis/: 임시 분석 도우미 및 일회성 유틸리티

환경 설정

기본 환경

root@kitploit:~
python -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt

선택적 종속성

프로젝트의 어떤 부분을 실행하려는지에 따라 다음도 필요할 수 있습니다:

root@kitploit:~
pip install tinker
pip install openai
pip install vllm

참고 사항:

  • tinker는 M2에서 사용하는 클라우드 기반 StealthRL 체크포인트 추론 경로에 필요합니다.
  • openai는 GPT/Likert 품질 평가 단계에만 필요합니다.
  • vllm은 논문 베이스라인에서 빠른 로컬 생성을 위해 권장됩니다.

환경 변수

저장소에서 사용하는 일반적인 환경 변수:

root@kitploit:~
export HF_HOME=$HOME/.cache/huggingface
export TRANSFORMERS_CACHE=$HF_HOME
export OPENAI_API_KEY=...
export TINKER_API_KEY=...

단계별 논문 평가 파이프라인을 위해 env 파일과 체크포인트 설명자 JSON을 사용했습니다. 공개 스크립트는 두 경로를 모두 명시적으로 재정의할 수 있도록 합니다:

root@kitploit:~
python scripts/run_full_mage_research_eval.py \
  --env-file ~/.config/stealthrl/eval.env \
  --checkpoint-json ~/.config/stealthrl/m2_checkpoint.json

빠른 시작

빠른 평가 스모크 테스트

root@kitploit:~
python scripts/run_eval.py --quick

레거시 StealthBench 하네스 실행

root@kitploit:~
python scripts/run_stealthbench.py --config configs/stealthbench.yaml

이제 구성된 텍스트 파일을 로드하고, 구성된 감지기를 실행하며, CSV 출력을 저장하고 비교 플롯을 생성합니다. 이전의 TODO 전용 스텁은 제거되었습니다.

단계별 전체 MAGE 평가 실행

root@kitploit:~
python scripts/run_full_mage_research_eval.py \
  --env-file ~/.config/stealthrl/eval.env \
  --checkpoint-json ~/.config/stealthrl/m2_checkpoint.json \
  --run-root outputs/eval_runs/full_mage_public \
  --gpus 0 1 2 3

데모 웹사이트 실행

저장소에는 demo/ 아래에 FastAPI 기반 데모 웹사이트가 포함되어 있습니다. 깔끔한 정적 UI를 제공하며 API 키 지원과 인증되지 않은 사용자를 위한 하루 20회의 공개 할당량으로 POST /api/paraphrase를 노출합니다.

root@kitploit:~
pip install -r demo/requirements.txt
uvicorn demo.stealthrl_demo.app:app --reload --port 8080

기본적으로 데모는 UI 테스트를 위해 비용이 들지 않는 mock 모드로 실행됩니다. 실제 StealthRL 샘플러를 사용하려면 STEALTHRL_DEMO_INFERENCE_BACKEND=tinker, STEALTHRL_DEMO_CHECKPOINT_JSON, TINKER_API_KEY를 설정하세요. API 키, 할당량, Docker 및 AWS 배포 노트는 demo/README.md를 참조하세요.

논문 결과 재현

논문은 전체 필터링된 MAGE 평가 풀에 대한 결과를 보고합니다:

  • 15,310 인간 샘플
  • 14,656 AI 샘플
  • 총 29,966

연구 등급 평가 파이프라인은 eval/ 모듈과 scripts/ 아래의 단계별 스크립트로 구현됩니다.

권장 재현 흐름

  1. 자격 증명 및 체크포인트 메타데이터를 준비합니다.

    OPENAI_API_KEY와 TINKER_API_KEY를 포함하는 env 파일과 StealthRL Tinker 샘플러 경로를 설명하는 체크포인트 JSON을 생성합니다.

  2. 사전 점검을 실행합니다.

root@kitploit:~
python scripts/preflight_research_eval.py \
  --env-file ~/.config/stealthrl/eval.env \
  --checkpoint-json ~/.config/stealthrl/m2_checkpoint.json
  1. 전체 평가를 실행합니다.
root@kitploit:~
python scripts/run_full_mage_research_eval.py \
  --env-file ~/.config/stealthrl/eval.env \
  --checkpoint-json ~/.config/stealthrl/m2_checkpoint.json \
  --run-root outputs/eval_runs/full_mage_repro \
  --gpus 0 1 2 3
  1. 선택한 실행 디렉토리 아래에서 생성된 방법 출력, 감지기 점수, 메트릭 및 플롯을 검사합니다.

  2. 캐시된 출력에 대해 GPT 기반 품질 판단만 다시 실행해야 하는 경우:

root@kitploit:~
python scripts/run_gpt_quality_only.py \
  --run-root outputs/eval_runs/full_mage_repro \
  --env-file ~/.config/stealthrl/eval.env
  1. 캐시된 출력으로 조합된 실행에 BERTScore만 추가해야 하는 경우:
root@kitploit:~
python scripts/compute_bertscore_for_run.py \
  --run-dir outputs/eval_runs/full_mage_repro/assembled \
  --device cuda:0 \
  --batch-size 16 \
  --chunk-size 512

BERTScore 스크립트는 모든 청크 후에 quality.parquet와 quality.csv를 제자리에서 업데이트하므로, 중단된 실행은 완료된 행을 다시 계산하지 않고 재개할 수 있습니다. 작은 스모크 테스트에는 --limit-per-method를 사용하고 기존 BERTScore 열을 의도적으로 다시 계산할 때만 --force를 사용하세요.

주요 출력 아티팩트

단계별 실행은 다음을 생성합니다:

  • method_runs/: 방법별 생성된 출력
  • detector_scores/: 감지기별 parquet 점수 파일
  • assembled/metrics.json: 집계된 감지기 메트릭
  • assembled/thresholds.json: 보정된 감지기 임계값
  • assembled/quality.parquet: 자동 품질 메트릭
  • assembled/quality_gpt.parquet: GPT/Likert 품질 평가
  • assembled/figures/: 논문 준비 완료 플롯

표준 논문 설정

주요 논문 체크포인트는 configs/tinker_mage_10k.yaml을 정식 훈련 설정으로 사용합니다: Qwen3-4B-Instruct with LoRA rank 32, GRPO group size 8, 10,000 MAGE 훈련 샘플, 3 에폭, 학습률 2.8e-4, KL 계수 0.05, 온도 1.0, top-p 0.9, 가중치 0.6 RoBERTa / 0.4 Fast-DetectGPT의 2-감지기 보상 앙상블. configs/의 다른 설정은 레거시 예제, 스모크 테스트 설정 또는 절제 템플릿으로 유지되며 명시적으로 문서화되지 않는 한 논문 권위로 취급되어서는 안 됩니다.

훈련 구현

StealthRL은 감지기가 아닌 패러프레이즈 정책을 훈련시킵니다. 핵심 아이디어는 AI가 생성한 텍스트를 의미적으로 충실하게 유지하면서 감지기 신뢰도를 낮추도록 다시 작성하는 모델을 최적화하는 것입니다.

모델 및 최적화

  • 기본 모델: Qwen/Qwen3-4B-Instruct-2507
  • 적응: LoRA
  • RL 알고리즘: GRPO
  • 훈련 스타일: 감지기 안내 패러프레이즈 정책 최적화

보상 설계

보상은 다중 목적이며 다음을 균형있게 조정합니다:

  • 훈련 중 감지기 앙상블에 대한 감지기 회피
  • 원본 텍스트에 대한 의미적 보존
  • 생성 유효성 및 안정성 제약

구현은 주로 다음에 있습니다:

  • stealthrl/tinker/train.py
  • stealthrl/rewards/
  • configs/

추론 시 동작

논문의 StealthRL 공격은 테스트 시 단일 샷입니다:

  • 샘플당 하나의 정책 생성 호출
  • 반복적 개선 루프 없음
  • 평가 중 타겟 감지기 질의 없음

감지기 접근은 오프라인 RL 훈련 및 외부 평가 중에 사용되며 M2에서 적응형 질의 시간 검색에는 사용되지 않습니다.

평가 구현

논문 평가는 이전 stealthrl/evaluation/ 하네스가 아닌 최신 eval/ 스택으로 구현됩니다.

방법

  • M0: 공격 없음
  • M1: 간단한 패러프레이즈 베이스라인
  • M2: StealthRL
  • M3: 감지기 안내 적대적 패러프레이즈 베이스라인
  • M4: AuthorMist 베이스라인
  • M5: 문자 수준 난독화 베이스라인

관련 코드:

  • eval/methods/
  • scripts/generate_method_outputs.py

감지기 패널

주요 논문 감지기 패널은 다음을 사용합니다:

  • roberta: openai-community/roberta-large-openai-detector
  • fast_detectgpt
  • binoculars
  • mage: yaful/MAGE

저장소는 레거시/호환성 실험을 위해 ghostbuster 지원도 유지하지만 Ghostbuster는 최종 4-감지기 논문 패널의 일부가 아닙니다.

관련 코드:

  • eval/detectors.py
  • scripts/score_detector_outputs.py
  • eval/runner.py

메트릭 및 품질 분석

공개 평가 코드는 다음을 계산합니다:

  • AUROC
  • TPR@1%FPR
  • TPR@5%FPR
  • ASR
  • E5 유사도
  • BERTScore 정밀도/재현율/F1
  • 혼란도(perplexity)
  • 편집률
  • GPT/Likert 품질 및 유사도 점수
  • 부트스트랩 신뢰 구간

관련 코드:

  • eval/metrics.py
  • eval/plots.py
  • eval/quality_judge.py
  • scripts/finalize_eval_run.py

엔지니어링 노트

vLLM 통합

현재 평가 코드는 높은 처리량의 베이스라인 평가를 위해 vLLM 기반 로컬 생성을 지원합니다. 이는 다음에 구현되어 있습니다:

  • eval/methods/vllm_backend.py

Tinker 통합

StealthRL M2 방법은 체크포인트 설명자 JSON을 통해 Tinker 기반 샘플링을 지원합니다. 이 경로는 다음에 구현되어 있습니다:

  • eval/methods/stealthrl.py

재개 및 단계별 오케스트레이션

전체 MAGE 파이프라인은 의도적으로 단계별로 구성됩니다:

  • 사전 점검은 감지기/모델 설정 문제에 대해 빠르게 실패합니다
  • 방법별 생성은 격리되어 있으며 재개 가능합니다
  • 감지기 점수 매기기는 생성과 분리됩니다
  • 최종 조립 및 GPT 판단은 재개 가능합니다

이렇게 하면 긴 멀티 GPU 실행이 더 견고해지고 디버깅이 쉬워집니다.

저장소 확장

새 공격 방법 추가

  1. eval/methods/ 아래에 클래스 추가
  2. BaseAttackMethod 인터페이스 구현
  3. eval/methods/__init__.py에 메서드 등록
  4. 오케스트레이션된 실행에 포함시키려면 단계별 실행기에 추가

새 감지기 추가

  1. 평가 스택에 감지기 래퍼 추가
  2. 로딩 및 배치 점수 매기기 구현
  3. eval/runner.py에서 사용하는 감지기 레지스트리에 등록
  4. 필요에 따라 임계값, 플롯 및 테이블 후크 추가

새 벤치마크 데이터셋 추가

  1. 데이터셋 로더 또는 어댑터 추가
  2. 평가 샘플 스키마로 정규화
  3. 데이터셋 이름 및 샘플링 로직으로 실행 스크립트 업데이트

책임 있는 사용

이 저장소는 AI 텍스트 감지기 견고성, 적대적 평가 및 방어적 벤치마킹에 대한 연구를 위해 공개되었습니다. 부정행위, 표절 또는 합법적인 안전 및 무결성 시스템의 회피를 지원하기 위한 것이 아닙니다.

이 작업을 기반으로 구축하는 경우, 감지기 견고성, 보정, 전이 평가 및 배포 한계에 대한 투명성을 개선하는 데 사용하십시오.

인용

이 저장소를 사용하는 경우 논문을 인용해 주십시오:

root@kitploit:~
@article{ranganath2026stealthrl,
  title={StealthRL: Reinforcement Learning Paraphrase Attacks for Multi-Detector Evasion of AI-Text Detectors},
  author={Ranganath, Suraj and others},
  journal={arXiv preprint arXiv:2602.08934},
  year={2026}
}
도구 다운로드