
Evidencia primero de pruebas autónomas de seguridad web para objetivos controlados y autorizados. Con laboratorios reproducibles, pistas de auditoría, informes y evaluación comparativa XBEN.
Ravage es una CLI basada en evidencia para evaluar una aplicación web en ejecución que posees o para la que tienes autorización explícita de prueba. Combina reconocimiento y validación deterministas con un bucle de ataque opcional guiado por modelos, manteniendo el alcance, la autenticación, el registro de tráfico y la evidencia dentro de límites controlados por código.
Ravage es un alfa de investigación previa a la versión 1.0. Usa entornos desechables y un acuerdo de reglas de enfrentamiento por escrito. Las pruebas de seguridad pueden cambiar el estado de la aplicación; Ravage no corrige hallazgos ni implementa soluciones.
Inicio rápido · Autenticación · Resultados · Capacidades · Documentación
El primer escaneo normal no necesita clave de modelo, navegador, demonio de Docker ni escáner externo.
git clone https://github.com/duriantaco/ravage.git
cd ravage
scripts/bootstrap.sh
source .venv/bin/activate
ravage doctor
El bootstrap crea .venv e instala el espacio de trabajo. Usa
scripts/bootstrap.sh --dev para dependencias de desarrollo,
--browser para soporte de navegador, o
--install-browser para instalar también Chromium.
Inicia tu aplicación primero. Este ejemplo asume que está escuchando en
http://127.0.0.1:3000.
Crea un informe de compromiso con alcance y un archivo de entorno privado:
ravage init http://127.0.0.1:3000 \
--brief ravage-brief.yaml \
--env-file .env.ravage \
--description "Evaluación autorizada de mi aplicación de desarrollo local."
Revisa ravage-brief.yaml. Verifica el objetivo, las rutas dentro del alcance,
las exclusiones, el presupuesto de solicitudes, el límite de velocidad, los objetivos y los criterios de éxito.
Ejecuta un escaneo de superficie sin modelo:
ravage doctor --workflow scan --brief ravage-brief.yaml
ravage scan ravage-brief.yaml --probe surface_map --report
El comando imprime el directorio de ejecución. Copia esa ruta y úsala como
RUN_DIR en los comandos de inspección a continuación.
Agrega una clave de proveedor compatible, como OPENAI_API_KEY, a
.env.ravage. Ravage lee este archivo directamente; no lo cargues desde el shell.
ravage doctor --workflow attack --brief ravage-brief.yaml
ravage attack ravage-brief.yaml --allow-paid-models --report
--allow-paid-models es un reconocimiento explícito de que la ejecución
puede generar cargos del proveedor. La selección de modelos, los proveedores locales y los perfiles
reproducibles están documentados en Proveedores de modelos.
Agrega una identidad de prueba dedicada al informe:
ravage auth add ravage-brief.yaml \
--identity user \
--type form \
--login /login \
--health /account \
--marker Logout \
--env-file .env.ravage
Completa las referencias de secretos generadas, verifica la sesión y luego ataca con la identidad seleccionada:
ravage auth check ravage-brief.yaml --identity user
ravage attack ravage-brief.yaml \
--identity user \
--allow-paid-models \
--report
Se admiten inicio de sesión por formulario, tokens de portador y encabezados estáticos fijos. Las credenciales gestionadas permanecen dentro del propietario HTTP autenticado; los canales de proceso, Python y comandos están bloqueados cuando se selecciona una identidad. Consulta Autenticación para la configuración y las limitaciones.
La ejecución remota es de cierre seguro ante fallos y requiere una bandera explícita. Comienza con un escaneo de superficie de bajo impacto:
ravage init https://staging.example.test \
--brief ravage-brief.yaml \
--env-file .env.ravage \
--description "Evaluación autorizada de mi aplicación de staging."
ravage doctor --workflow scan \
--brief ravage-brief.yaml \
--authorized-remote-target
ravage scan ravage-brief.yaml \
--probe surface_map \
--authorized-remote-target \
--report
Para una ejecución remota guiada por modelos:
ravage attack ravage-brief.yaml \
--authorized-remote-target \
--allow-paid-models \
--report
Los ataques remotos autorizados usan por defecto la política de bajo ruido para toda la ejecución: HTTP nativo medido únicamente, ritmo inferior a 1 RPS, un límite físico de solicitudes, almacenamiento en caché y deduplicación conservadores de GET/HEAD, retroceso adaptativo, reintentos limitados y corte de circuito. El registro duradero sobrevive a la reanudación. Los detalles están en Arquitectura.
Ravage distingue observaciones, hallazgos candidatos y vulnerabilidades confirmadas. Una bandera CTF es una posible prueba, no un requisito. En una aplicación ordinaria, una ejecución puede ser útil y exitosa sin encontrar ninguna bandera; las vulnerabilidades confirmadas aún se escriben en el informe.
Una vez que comienza una ejecución de ataque, su artefacto canónico privado legible por máquina es
RUN_DIR/report.json, incluidas las ejecuciones incompletas.
--report también escribe RUN_DIR/report.md.
ravage observe RUN_DIR
ravage audit verify RUN_DIR
ravage report RUN_DIR --brief ravage-brief.yaml
Para HTTP estructurado capturado por el grafo del agente:
ravage traffic list RUN_DIR
ravage traffic show RUN_DIR REQUEST_ID
El informe incluye referencias de evidencia, calidad del registro de solicitudes, estado de finalización y la razón por la que se detuvo una ejecución incompleta. Nunca trates una afirmación de modelo no validada como un hallazgo confirmado.
| Capacidad | Punto de entrada | Notas |
|---|---|---|
| Reconocimiento y sondas deterministas | ravage scan | No requiere modelo |
| Evaluación guiada por modelos | ravage attack | Limitada por evidencia y alcance |
| Autenticación gestionada | ravage auth | Formulario, portador, encabezado estático |
| Inspección y reproducción de tráfico | ravage traffic | Artefactos con alcance |
| Habilidades de conocimiento | ravage skills, ravage code-bug | Consultivo |
| Inspección pasiva SATCOM | ravage satcom inspect | Sin transmisión |
| Evaluación XBEN | ravage xben | Entorno de investigación basado en Docker |
| Laboratorio de mejora | scripts/improvement_lab.py | Archivo aislado |
Las habilidades de conocimiento pueden guiar la priorización, pero no pueden agregar herramientas, ampliar el alcance ni confirmar hallazgos. Comienza con:
ravage skills list builtin
ravage skills validate builtin