Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/suraj-ranganath/stealthrl
Papers e InvestigaciónAprendizaje y EducaciónRed TeamingSeguridad de IAAtaque Adversario
GitHubsuraj-ranganath/stealthrl

StealthRL

StealthRL: framework de RL para parafrasear texto de IA de forma adversaria y poner a prueba la robustez de los detectores.

Ver Repositorio
182hace 2 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

StealthRL: Ataques de Paráfrasis mediante Aprendizaje por Refuerzo para la Evasión Multi-Detector de Detectores de Texto IA

Artículo (arXiv)
Demo
Modelo (Hugging Face)
Dataset de Referencia (Hugging Face)

Descripción general del pipeline de StealthRL

Resumen

Los detectores de texto IA se utilizan cada vez más en entornos de alto riesgo, pero su robustez frente a la reescritura adversarial que preserva el significado sigue siendo incierta. Presentamos StealthRL, un marco de aprendizaje por refuerzo para poner a prueba los detectores de texto IA con ataques de paráfrasis adaptativos. StealthRL entrena una política de paráfrasis contra un conjunto de detectores mientras preserva el contenido semántico, y luego evalúa la transferencia a familias de detectores no vistas durante el entrenamiento. En el conjunto completo filtrado de prueba MAGE (15,310 humanos / 14,656 IA), StealthRL reduce el AUROC medio de 0.79 a 0.43 y alcanza un TPR@1%FPR medio de 0.024 en RoBERTa, Fast-DetectGPT, Binoculars y MAGE. El ataque se transfiere a dos detectores no utilizados durante el entrenamiento, lo que expone vulnerabilidades compartidas en lugar de un fallo de un solo detector. Además, analizamos las distribuciones de puntuaciones de los detectores y evaluamos la calidad con E5, BERTScore y valoraciones Likert basadas en LLM. Nuestros resultados muestran que los detectores de texto IA actuales siguen siendo frágiles bajo una presión realista de paráfrasis y proporcionan un protocolo reproducible para la evaluación de robustez adversarial.

Qué Contiene Este Repositorio

Este repositorio es la base de código de investigación e ingeniería detrás de StealthRL. Contiene:

  • código de entrenamiento basado en GRPO para la política de paráfrasis de StealthRL
  • implementaciones de métodos de ataque para los métodos M0-M5 del artículo
  • envoltorios de detectores y utilidades de evaluación
  • el pipeline de evaluación completo de MAGE por etapas utilizado para producir los resultados reportados
  • código de gráficos, métricas y evaluación de calidad para figuras y tablas listas para el artículo

El repositorio pretende ser un punto de partida útil para investigadores que quieran:

  • reproducir nuestra evaluación de robustez de detectores
  • incorporar nuevos detectores o métodos de ataque
  • estudiar la transferencia a familias de detectores no vistas durante el entrenamiento
  • evaluar sus propias defensas de paráfrasis o métodos de red team

Mapa del Repositorio

  • stealthrl/: código de entrenamiento, envoltorios de detectores, recompensas, utilidades de datos y el paquete StealthBench original
  • eval/: infraestructura de evaluación de nivel de investigación utilizada para los resultados del artículo
  • scripts/: puntos de entrada ejecutables para entrenamiento, evaluación, orquestación, gráficos y utilidades
  • configs/: configuraciones YAML para entrenamiento, evaluación y ablaciones
  • figures/: diagramas del pipeline y recursos estáticos
  • tests/: pruebas de integración y comprobaciones de cordura
  • analysis/: ayudas de análisis ad hoc y utilidades puntuales

Configuración del Entorno

Entorno base

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

Dependencias opcionales

Según las partes del proyecto que quieras ejecutar, también puedes necesitar:

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

Notas:

  • tinker es necesario para la ruta de inferencia del checkpoint de StealthRL respaldada por la nube utilizada por M2.
  • openai solo se requiere para el paso de evaluación de calidad GPT/Likert.
  • vllm se recomienda para la generación local rápida en los baselines del artículo.

Variables de entorno

Variables de entorno típicas utilizadas por el repositorio:

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

Para el pipeline de evaluación del artículo por etapas, utilizamos un archivo env además de un JSON descriptor de checkpoint. Los scripts públicos te permiten sobrescribir ambas rutas explícitamente:

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

Inicio Rápido

Prueba de humo rápida de la evaluación

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

Ejecutar la infraestructura StealthBench heredada

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

Ahora carga los archivos de texto configurados, ejecuta los detectores configurados, guarda las salidas CSV y genera gráficos de comparación. El antiguo stub de solo TODO se ha eliminado.

Ejecutar una evaluación MAGE completa por etapas

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

Ejecutar el sitio web de demostración

El repositorio incluye un sitio web de demostración respaldado por FastAPI en demo/. Ofrece una interfaz estática pulida y expone POST /api/paraphrase con soporte de clave API además de una cuota pública de 20/día para usuarios no autenticados.

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

De forma predeterminada, la demo se ejecuta en modo mock de costo cero para probar la interfaz. Para usar el sampler real de StealthRL, establece STEALTHRL_DEMO_INFERENCE_BACKEND=tinker, STEALTHRL_DEMO_CHECKPOINT_JSON y TINKER_API_KEY. Consulta demo/README.md para obtener notas sobre clave API, cuota, Docker e implementación en AWS.

Reproducción de los Resultados del Artículo

El artículo presenta resultados sobre el conjunto completo filtrado de evaluación MAGE:

  • 15,310 muestras humanas
  • 14,656 muestras de IA
  • 29,966 en total

El pipeline de evaluación de nivel de investigación está implementado en el módulo eval/ junto con los scripts por etapas en scripts/.

Flujo de reproducción recomendado

  1. Prepara las credenciales y los metadatos del checkpoint.

    Crea un archivo env que contenga OPENAI_API_KEY y TINKER_API_KEY, y un JSON de checkpoint que describa la ruta del sampler Tinker de StealthRL.

  2. Ejecuta el preflight.

root@kitploit:~
python scripts/preflight_research_eval.py \
  --env-file ~/.config/stealthrl/eval.env \
  --checkpoint-json ~/.config/stealthrl/m2_checkpoint.json
  1. Lanza la evaluación 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. Inspecciona las salidas de métodos generadas, las puntuaciones de los detectores, las métricas y los gráficos en el directorio de ejecución elegido.

  2. Si solo necesitas volver a ejecutar la evaluación de calidad basada en GPT sobre salidas en caché:

root@kitploit:~
python scripts/run_gpt_quality_only.py \
  --run-root outputs/eval_runs/full_mage_repro \
  --env-file ~/.config/stealthrl/eval.env
  1. Si solo necesitas añadir BERTScore a una ejecución ensamblada con salidas en caché:
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

El script de BERTScore actualiza quality.parquet y quality.csv in situ después de cada fragmento, por lo que las ejecuciones interrumpidas pueden reanudarse sin volver a calcular las filas completadas. Usa --limit-per-method para una pequeña prueba de humo y --force solo cuando quieras recalcular intencionadamente las columnas BERTScore existentes.

Principales artefactos de salida

La ejecución por etapas produce:

  • method_runs/: salidas generadas por método
  • detector_scores/: archivos de puntuaciones parquet por detector
  • assembled/metrics.json: métricas agregadas de detectores
  • assembled/thresholds.json: umbrales calibrados de detectores
  • assembled/quality.parquet: métricas automáticas de calidad
  • assembled/quality_gpt.parquet: valoraciones de calidad GPT/Likert
  • assembled/figures/: gráficos listos para el artículo

Configuraciones canónicas del artículo

El checkpoint principal del artículo utiliza configs/tinker_mage_10k.yaml como configuración de entrenamiento canónica: Qwen3-4B-Instruct con LoRA de rango 32, tamaño de grupo GRPO 8, 10,000 muestras de entrenamiento MAGE, tres épocas, tasa de aprendizaje 2.8e-4, coeficiente KL 0.05, temperatura 1.0, top-p 0.9 y un conjunto de recompensa de dos detectores ponderado 0.6 RoBERTa / 0.4 Fast-DetectGPT. Las demás configuraciones en configs/ se conservan como ejemplos heredados, ajustes de prueba de humo o plantillas de ablación y no deben tratarse como autoritativas para el artículo a menos que estén documentadas explícitamente.

Implementación del Entrenamiento

StealthRL entrena una política de paráfrasis en lugar de un detector. La idea central es optimizar un modelo que reescriba el texto generado por IA de modo que siga siendo semánticamente fiel mientras reduce la confianza del detector.

Modelo y optimización

  • Modelo base: Qwen/Qwen3-4B-Instruct-2507
  • Adaptación: LoRA
  • Algoritmo de RL: GRPO
  • Estilo de entrenamiento: optimización de la política de paráfrasis guiada por detector

Diseño de la recompensa

La recompensa es multiobjetivo y equilibra:

  • la evasión de detectores frente al conjunto de detectores del entrenamiento
  • la preservación semántica en relación con el texto fuente
  • las restricciones de validez y estabilidad de la generación

La implementación reside principalmente en:

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

Comportamiento en tiempo de inferencia

El ataque de StealthRL del artículo es de un solo disparo en tiempo de prueba:

  • una llamada de generación de la política por muestra
  • sin bucle de refinamiento iterativo
  • sin consultas al detector objetivo durante la evaluación

El acceso al detector se utiliza durante el entrenamiento de RL offline y para la evaluación externa, no para la búsqueda adaptativa en tiempo de consulta en M2.

Implementación de la Evaluación

La evaluación del artículo está implementada en la pila más nueva eval/ en lugar de la infraestructura más antigua stealthrl/evaluation/.

Métodos

  • M0: sin ataque
  • M1: baseline simple de paráfrasis
  • M2: StealthRL
  • M3: baseline de paráfrasis adversarial guiada por detector
  • M4: baseline AuthorMist
  • M5: baseline de ofuscación a nivel de caracteres

Código relevante:

  • eval/methods/
  • scripts/generate_method_outputs.py

Panel de detectores

El panel principal de detectores del artículo utiliza:

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

El repositorio también conserva el soporte de ghostbuster para experimentos heredados/de compatibilidad, pero Ghostbuster no forma parte del panel final de cuatro detectores del artículo.

Código relevante:

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

Métricas y análisis de calidad

El código público de evaluación calcula:

  • AUROC
  • TPR@1%FPR
  • TPR@5%FPR
  • ASR
  • similitud E5
  • precisión/recall/F1 de BERTScore
  • perplejidad
  • tasa de edición
  • puntuaciones de calidad y similitud GPT/Likert
  • intervalos de confianza bootstrap

Código relevante:

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

Notas de Ingeniería

Integración con vLLM

El código de evaluación actual admite la generación local respaldada por vLLM para la evaluación de baselines de alto rendimiento. Esto está implementado en:

  • eval/methods/vllm_backend.py

Integración con Tinker

El método M2 de StealthRL admite el muestreo respaldado por Tinker mediante un JSON descriptor de checkpoint. Esta ruta está implementada en:

  • eval/methods/stealthrl.py

Reanudación y orquestación por etapas

El pipeline completo de MAGE está deliberadamente dividido en etapas:

  • las comprobaciones preflight fallan rápidamente ante problemas de configuración de detectores/modelos
  • la generación por método está aislada y es reanudable
  • la puntuación de los detectores está separada de la generación
  • el ensamblaje final y la evaluación con GPT son reanudables

Esto hace que las ejecuciones largas con múltiples GPUs sean más robustas y fáciles de depurar.

Cómo Ampliar el Repositorio

Añadir un nuevo método de ataque

  1. Añade una clase en eval/methods/
  2. Implementa la interfaz BaseAttackMethod
  3. Registra el método en eval/methods/__init__.py
  4. Añádelo al runner por etapas si quieres que se incluya en las ejecuciones orquestadas

Añadir un nuevo detector

  1. Añade un envoltorio de detector a la pila de evaluación
  2. Implementa la carga y la puntuación por lotes
  3. Regístralo en el registro de detectores que utiliza eval/runner.py
  4. Añade umbrales, gráficos y hooks de tablas según sea necesario

Añadir un nuevo dataset de referencia

  1. Añade un cargador o adaptador de dataset
  2. Normalízalo al esquema de muestras de evaluación
  3. Actualiza los scripts de ejecución con el nombre del dataset y la lógica de muestreo

Uso Responsable

Este repositorio se publica para la investigación sobre la robustez de los detectores de texto IA, la evaluación adversarial y la evaluación comparativa defensiva. No está pensado para apoyar el engaño, el plagio ni la evasión de sistemas legítimos de seguridad e integridad.

Si construyes sobre este trabajo, úsalo para mejorar la robustez de los detectores, la calibración, la evaluación de transferencia y la transparencia en torno a las limitaciones de implementación.

Citación

Si utilizas este repositorio, cita el artículo:

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}
}
Descargar herramienta