
ravage v0.5.0
基于证据的自主网络安全测试,针对受控且授权的目标。提供可复现的实验环境、审计追踪、报告以及 XBEN 基准测试。
Ravage
Ravage 是一款以证据为先的 CLI 工具,用于评估您拥有或已获明确授权测试的运行中 Web 应用程序。它将确定性侦察与验证同可选的模型驱动攻击循环相结合,同时将范围、身份验证、流量核算和证据保持在代码可控的边界内。
Ravage 是 1.0 之前的研究性 alpha 版本。请使用一次性环境并制定书面交战规则。安全测试可能会改变应用程序状态;Ravage 不会修复发现的问题或部署补丁。
环境要求
- Python 3.12
- Git
- macOS、Linux 或 WSL
- 仅容器化工具、XBEN 和集成测试需要 Docker
- 仅模型驱动命令需要提供商 API 密钥
常规首次扫描不需要模型密钥、浏览器、Docker 守护进程或外部扫描器。
从源码安装
git clone https://github.com/duriantaco/ravage.git
cd ravage
scripts/bootstrap.sh
source .venv/bin/activate
ravage doctor
bootstrap 会创建 .venv 并安装工作区。使用
scripts/bootstrap.sh --dev 安装开发依赖,
--browser 启用浏览器支持,或
--install-browser 同时安装 Chromium。
五分钟本地快速入门
首先启动您的应用程序。此示例假设它正在
http://127.0.0.1:3000 上监听。
-
创建一份限定范围的交战简报和私有环境文件:
ravage init http://127.0.0.1:3000 \ --brief ravage-brief.yaml \ --env-file .env.ravage \ --description "Authorized assessment of my local development app." -
审查
ravage-brief.yaml。检查目标、范围内路由、 排除项、请求预算、速率限制、目标和成功标准。 -
运行无模型表面扫描:
ravage doctor --workflow scan --brief ravage-brief.yaml ravage scan ravage-brief.yaml --probe surface_map --report
该命令会打印运行目录。复制该路径并将其用作
下方检查命令中的 RUN_DIR。
运行模型驱动代理
将受支持的提供商密钥(例如 OPENAI_API_KEY)添加到
.env.ravage。Ravage 直接读取此文件;请勿通过 shell 引用它。
ravage doctor --workflow attack --brief ravage-brief.yaml
ravage attack ravage-brief.yaml --allow-paid-models --report
--allow-paid-models 是对运行可能产生提供商费用的明确确认。模型选择、本地提供商和可复现配置文件在 模型提供商 中有文档说明。
身份验证测试
向简报中添加专用测试身份:
ravage auth add ravage-brief.yaml \
--identity user \
--type form \
--login /login \
--health /account \
--marker Logout \
--env-file .env.ravage
填写生成的密钥引用,验证会话,然后使用所选身份进行攻击:
ravage auth check ravage-brief.yaml --identity user
ravage attack ravage-brief.yaml \
--identity user \
--allow-paid-models \
--report
支持表单登录、Bearer 令牌和固定静态标头。托管凭据保留在已认证的 HTTP 所有者内部;当选择身份时,进程、Python 和命令通道会被阻止。设置和限制请参阅 身份验证。
授权的远程目标
远程执行默认失败关闭,需要显式标志。从低影响的表面扫描开始:
ravage init https://staging.example.test \
--brief ravage-brief.yaml \
--env-file .env.ravage \
--description "Authorized assessment of my staging application."
ravage doctor --workflow scan \
--brief ravage-brief.yaml \
--authorized-remote-target
ravage scan ravage-brief.yaml \
--probe surface_map \
--authorized-remote-target \
--report
对于模型驱动的远程运行:
ravage attack ravage-brief.yaml \
--authorized-remote-target \
--allow-paid-models \
--report
授权的远程攻击默认采用整个运行的低噪声策略:仅原生计量 HTTP、低于 1 RPS 的节奏、物理请求上限、保守的 GET/HEAD 缓存和去重、自适应退避、有界重试和熔断。持久化账本支持恢复。详情请参阅 架构。
理解结果
Ravage 区分观察结果、候选发现和已确认漏洞。CTF 标志只是一种可能的证明,并非必需。在普通应用程序上,即使未找到任何标志,运行也可能是有用且成功的;已确认的漏洞仍会写入报告。
攻击运行开始后,其规范的私有机器可读产物为
RUN_DIR/report.json,包括未完成的运行。
--report 还会写入 RUN_DIR/report.md。
ravage observe RUN_DIR
ravage audit verify RUN_DIR
ravage report RUN_DIR --brief ravage-brief.yaml
对于代理图捕获的结构化 HTTP:
ravage traffic list RUN_DIR
ravage traffic show RUN_DIR REQUEST_ID
报告包含证据引用、请求核算质量、完成状态以及未完成运行停止的原因。切勿将未经验证的模型断言视为已确认的发现。
功能
| 功能 | 入口点 | 备注 |
|---|---|---|
| 确定性侦察和探测 | ravage scan | 无需模型 |
| 模型驱动评估 | ravage attack | 证据门控且限定范围 |
| 托管身份验证 | ravage auth | 表单、Bearer、静态标头 |
| 流量检查和重放 | ravage traffic | 限定范围的产物 |
| 知识技能 | ravage skills、ravage code-bug | 咨询性 |
| 被动 SATCOM 检查 | ravage satcom inspect | 无发射 |
| XBEN 评估 | ravage xben | 基于 Docker 的研究框架 |
| 改进实验室 | scripts/improvement_lab.py | 隔离归档 |
知识技能可以指导优先级排序,但不能添加工具、扩大范围或确认发现。从以下命令开始:
ravage skills list builtin
ravage skills validate builtin
改进实验室 摄取经过清理的先前运行结构,在独立工作区中评估候选补丁,归档接受和拒绝的版本,并在提升前要求匹配的无回归证据。它是一个辅助组件:不会修改源码检出或静默自我提升。
被动轨道和数据包产物可以单独检查:
ravage satcom inspect orbit.tle --format tle --output orbit-report.json
ravage satcom inspect capture.bin \
--format ccsds-space-packets \
--direction auto \
--output packet-report.json
SATCOM 支持是被动解析和分析,而非无线电发射器或航天器控制系统。
开发
scripts/bootstrap.sh --dev
source .venv/bin/activate
python -m pytest -m "not integration" -q
python -m ruff check --select E9,F .
python scripts/qa/check_docs.py
python scripts/qa/check_release.py
基于 Docker 的集成测试和冻结的 XBEN 比较是独立的发布门禁。在解读案例结果之前请阅读 基准测试;一个幸运的标志并不能证明可靠的改进。
文档
使用 ravage --help 和 ravage COMMAND --help 查看
您检出版本中的确切选项。
许可证
Apache License 2.0。请参阅 LICENSE、DISCLAIMER 和 SECURITY.md。