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
StealthRL — StealthRL: framework di RL per parafrasare in modo avversariale testi AI per testare la robustezza dei rilevatori. | Kitploit
Strumenti/GitHubGitHub/suraj-ranganath/stealthrl
Paper e RicercaApprendimento e FormazioneRed TeamingSicurezza dell'IAAttacco Avversario
GitHubsuraj-ranganath/stealthrl

StealthRL

StealthRL: framework di RL per parafrasare in modo avversariale testi AI per testare la robustezza dei rilevatori.

Vedi Repository
1822 mesi 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
Sito web

StealthRL: Attacchi di Parafrasi basati su Apprendimento per Rinforzo per l'Evasione Multi-Detector dei Rilevatori di Testo AI

Articolo (arXiv)
Demo
Modello (Hugging Face)
Dataset di benchmark (Hugging Face)

Panoramica della pipeline StealthRL

Abstract

I rilevatori di testo AI sono sempre più utilizzati in contesti ad alto rischio, eppure la loro robustezza rispetto a riscritture avversarie che preservano il significato rimane incerta. Presentiamo StealthRL, un framework di apprendimento per rinforzo per stress-testare i rilevatori di testo AI con attacchi di parafrasi adattivi. StealthRL addestra una policy di parafrasi contro un ensemble di rilevatori preservando il contenuto semantico, quindi valuta il trasferimento a famiglie di rilevatori escluse dall'addestramento. Sul pool di test MAGE filtrato completo (15.310 umani / 14.656 AI), StealthRL riduce l'AUROC medio da 0,79 a 0,43 e raggiunge un TPR@1%FPR medio di 0,024 su RoBERTa, Fast-DetectGPT, Binoculars e MAGE. L'attacco si trasferisce a due rilevatori non utilizzati durante l'addestramento, esponendo vulnerabilità condivise piuttosto che il guasto di un singolo rilevatore. Analizziamo inoltre le distribuzioni dei punteggi dei rilevatori e valutiamo la qualità con E5, BERTScore e valutazioni Likert basate su LLM. I nostri risultati mostrano che gli attuali rilevatori di testo AI rimangono fragili sotto una pressione realistica di parafrasi e forniscono un protocollo riproducibile per la valutazione della robustezza avversaria.

Contenuto del repository

Questo repository è la codebase di ricerca e ingegneria alla base di StealthRL. Contiene:

  • codice di addestramento basato su GRPO per la policy di parafrasi di StealthRL
  • implementazioni dei metodi di attacco M0-M5 dell'articolo
  • wrapper dei rilevatori e utility di valutazione
  • la pipeline di valutazione MAGE completa a fasi utilizzata per produrre i risultati riportati
  • codice per grafici, metriche e valutazione della qualità per figure e tabelle pronte per la pubblicazione

Il repository intende essere un utile punto di partenza per i ricercatori che vogliono:

  • riprodurre la nostra valutazione della robustezza dei rilevatori
  • inserire nuovi rilevatori o metodi di attacco
  • studiare il trasferimento a famiglie di rilevatori escluse dall'addestramento
  • fare benchmark delle proprie difese contro la parafrasi o dei propri metodi red-team

Mappa del repository

  • stealthrl/: codice di addestramento, wrapper dei rilevatori, reward, utility per i dati e il pacchetto StealthBench originale
  • eval/: harness di valutazione di livello ricerca utilizzato per i risultati dell'articolo
  • scripts/: punti di ingresso eseguibili per addestramento, valutazione, orchestrazione, grafici e utility
  • configs/: configurazioni YAML per addestramento, valutazione e ablazioni
  • figures/: diagrammi della pipeline e asset statici
  • tests/: test di integrazione e controlli di sanità
  • analysis/: helper di analisi ad hoc e utility monouso

Configurazione dell'ambiente

Ambiente di base

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

Dipendenze opzionali

A seconda delle parti del progetto che vuoi eseguire, potresti aver bisogno anche di:

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

Note:

  • tinker è richiesto per il percorso di inferenza del checkpoint StealthRL basato su cloud utilizzato da M2.
  • openai è richiesto solo per il passaggio di valutazione della qualità GPT/Likert.
  • vllm è consigliato per la generazione locale veloce nei baseline dell'articolo.

Variabili d'ambiente

Variabili d'ambiente tipiche utilizzate dal repository:

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

Per la pipeline di valutazione a fasi dell'articolo, abbiamo utilizzato un file env più un JSON descrittore del checkpoint. Gli script pubblici consentono di sovrascrivere esplicitamente entrambi i percorsi:

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

Avvio rapido

Smoke test rapido di valutazione

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

Eseguire l'harness StealthBench legacy

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

Ora carica i file di testo configurati, esegue i rilevatori configurati, salva gli output CSV e genera i grafici di confronto. Il vecchio stub con solo TODO è stato rimosso.

Eseguire una valutazione MAGE completa a fasi

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

Eseguire il sito web demo

Il repository include un sito web demo basato su FastAPI in demo/. Fornisce un'interfaccia statica curata ed espone POST /api/paraphrase con supporto per chiavi API e una quota pubblica di 20 richieste al giorno per gli utenti non autenticati.

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

Di default la demo funziona in modalità mock a costo zero per testare l'interfaccia. Per usare il vero sampler di StealthRL, imposta STEALTHRL_DEMO_INFERENCE_BACKEND=tinker, STEALTHRL_DEMO_CHECKPOINT_JSON e TINKER_API_KEY. Consulta demo/README.md per le note su chiavi API, quota, Docker e deployment su AWS.

Riproduzione dei risultati dell'articolo

L'articolo riporta i risultati sull'intero pool di valutazione MAGE filtrato:

  • 15.310 campioni umani
  • 14.656 campioni AI
  • 29.966 in totale

La pipeline di valutazione di livello ricerca è implementata nel modulo eval/ e negli script a fasi in scripts/.

Flusso di riproduzione consigliato

  1. Prepara le credenziali e i metadati del checkpoint.

    Crea un file env contenente OPENAI_API_KEY e TINKER_API_KEY, e un JSON del checkpoint che descrive il percorso del sampler Tinker di StealthRL.

  2. Esegui il preflight.

root@kitploit:~
python scripts/preflight_research_eval.py \
  --env-file ~/.config/stealthrl/eval.env \
  --checkpoint-json ~/.config/stealthrl/m2_checkpoint.json
  1. Avvia la valutazione completa.
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. Ispeziona gli output dei metodi generati, i punteggi dei rilevatori, le metriche e i grafici nella directory di esecuzione scelta.

  2. Se devi solo rieseguire la valutazione della qualità basata su GPT sugli output in cache:

root@kitploit:~
python scripts/run_gpt_quality_only.py \
  --run-root outputs/eval_runs/full_mage_repro \
  --env-file ~/.config/stealthrl/eval.env
  1. Se devi solo aggiungere BERTScore a un'esecuzione assemblata con output in cache:
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

Lo script BERTScore aggiorna quality.parquet e quality.csv in place dopo ogni chunk, quindi le esecuzioni interrotte possono essere riprese senza ricalcolare le righe già completate. Usa --limit-per-method per un piccolo smoke test e --force solo quando intendi ricalcolare deliberatamente le colonne BERTScore esistenti.

Principali artefatti di output

L'esecuzione a fasi produce:

  • method_runs/: output generati per ogni metodo
  • detector_scores/: file parquet dei punteggi per ogni rilevatore
  • assembled/metrics.json: metriche aggregate dei rilevatori
  • assembled/thresholds.json: soglie calibrate dei rilevatori
  • assembled/quality.parquet: metriche di qualità automatiche
  • assembled/quality_gpt.parquet: valutazioni di qualità GPT/Likert
  • assembled/figures/: grafici pronti per la pubblicazione

Impostazioni canoniche dell'articolo

Il checkpoint principale dell'articolo usa configs/tinker_mage_10k.yaml come configurazione di addestramento canonica: Qwen3-4B-Instruct con LoRA rank 32, GRPO con group size 8, 10.000 campioni di addestramento MAGE, tre epoche, learning rate 2.8e-4, coefficiente KL 0.05, temperatura 1.0, top-p 0.9 e un ensemble di reward a due rilevatori pesato 0.6 RoBERTa / 0.4 Fast-DetectGPT. Le altre configurazioni in configs/ sono mantenute come esempi legacy, impostazioni per smoke test o template per ablazioni e non devono essere considerate autorevoli per l'articolo se non esplicitamente documentate.

Implementazione dell'addestramento

StealthRL addestra una policy di parafrasi piuttosto che un rilevatore. L'idea centrale è ottimizzare un modello che riscrive il testo generato dall'AI in modo che rimanga semanticamente fedele riducendo al contempo la confidenza dei rilevatori.

Modello e ottimizzazione

  • Modello base: Qwen/Qwen3-4B-Instruct-2507
  • Adattamento: LoRA
  • Algoritmo RL: GRPO
  • Stile di addestramento: ottimizzazione della policy di parafrasi guidata dai rilevatori

Progettazione della reward

La reward è multi-obiettivo e bilancia:

  • l'evasione dei rilevatori rispetto all'ensemble di rilevatori in addestramento
  • la preservazione semantica rispetto al testo sorgente
  • i vincoli di validità e stabilità della generazione

L'implementazione risiede principalmente in:

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

Comportamento in fase di inferenza

L'attacco StealthRL dell'articolo è single-shot al momento del test:

  • una sola chiamata di generazione della policy per campione
  • nessun ciclo di raffinamento iterativo
  • nessuna query ai rilevatori target durante la valutazione

L'accesso ai rilevatori viene utilizzato durante l'addestramento RL offline e per la valutazione esterna, non per una ricerca adattiva al momento della query in M2.

Implementazione della valutazione

La valutazione dell'articolo è implementata nel più recente stack eval/ piuttosto che nel vecchio harness stealthrl/evaluation/.

Metodi

  • M0: nessun attacco
  • M1: baseline di parafrasi semplice
  • M2: StealthRL
  • M3: baseline di parafrasi avversaria guidata dai rilevatori
  • M4: baseline AuthorMist
  • M5: baseline di offuscamento a livello di caratteri

Codice pertinente:

  • eval/methods/
  • scripts/generate_method_outputs.py

Pannello dei rilevatori

Il pannello principale dei rilevatori dell'articolo usa:

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

Il repository mantiene anche il supporto per ghostbuster per esperimenti legacy/di compatibilità, ma Ghostbuster non fa parte del pannello finale di quattro rilevatori dell'articolo.

Codice pertinente:

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

Metriche e analisi della qualità

Il codice di valutazione pubblico calcola:

  • AUROC
  • TPR@1%FPR
  • TPR@5%FPR
  • ASR
  • similarità E5
  • precision/recall/F1 di BERTScore
  • perplessità
  • tasso di modifica
  • punteggi di qualità e similarità GPT/Likert
  • intervalli di confidenza bootstrap

Codice pertinente:

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

Note di ingegneria

Integrazione vLLM

Il codice di valutazione attuale supporta la generazione locale basata su vLLM per la valutazione dei baseline ad alta produttività. Questo è implementato in:

  • eval/methods/vllm_backend.py

Integrazione Tinker

Il metodo StealthRL M2 supporta il campionamento basato su Tinker tramite un JSON descrittore del checkpoint. Questo percorso è implementato in:

  • eval/methods/stealthrl.py

Ripresa e orchestrazione a fasi

La pipeline MAGE completa è volutamente strutturata a fasi:

  • i controlli preflight falliscono rapidamente in caso di problemi di configurazione di rilevatori/modelli
  • la generazione per ogni metodo è isolata e riprendibile
  • il calcolo dei punteggi dei rilevatori è separato dalla generazione
  • l'assemblaggio finale e la valutazione GPT sono riprendibili

Questo rende le lunghe esecuzioni multi-GPU più robuste e più facili da debuggare.

Estendere il repository

Aggiungere un nuovo metodo di attacco

  1. Aggiungi una classe in eval/methods/
  2. Implementa l'interfaccia BaseAttackMethod
  3. Registra il metodo in eval/methods/__init__.py
  4. Aggiungilo allo staged runner se vuoi che sia incluso nelle esecuzioni orchestrate

Aggiungere un nuovo rilevatore

  1. Aggiungi un wrapper per rilevatore allo stack di valutazione
  2. Implementa il caricamento e il punteggio in batch
  3. Registralo nel registro dei rilevatori usato da eval/runner.py
  4. Aggiungi soglie, grafici e hook per le tabelle secondo necessità

Aggiungere un nuovo dataset di benchmark

  1. Aggiungi un loader o un adapter per il dataset
  2. Normalizzalo nello schema dei campioni di valutazione
  3. Aggiorna gli script di esecuzione con il nome del dataset e la logica di campionamento

Uso responsabile

Questo repository è rilasciato per la ricerca sulla robustezza dei rilevatori di testo AI, sulla valutazione avversaria e sul benchmarking difensivo. Non è pensato per favorire imbrogli, plagio o l'evasione di sistemi legittimi di sicurezza e integrità.

Se sviluppi a partire da questo lavoro, usalo per migliorare la robustezza dei rilevatori, la calibrazione, la valutazione del trasferimento e la trasparenza riguardo ai limiti di deployment.

Citazione

Se utilizzi questo repository, cita l'articolo:

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