
ravage v0.5.0
制御され認可されたターゲットに対する、証拠を優先した自律的なWebセキュリティテスト。再現可能なラボ、監査証跡、レポート、XBENベンチマークを備えています。
Ravage
Ravageは、あなたが所有している、または明示的にテストを許可された実行中のWebアプリケーションを評価するための、エビデンス優先のCLIです。決定的な偵察と検証を、オプションのモデル駆動型攻撃ループと組み合わせ、スコープ、認証、トラフィック計上、エビデンスをコード管理された境界内に保持します。
Ravageは1.0未満の研究用アルファ版です。使い捨て環境と文書化された交戦規則を使用してください。セキュリティテストはアプリケーションの状態を変更する可能性があります。Ravageは発見事項を修復したり、修正を展開したりしません。
クイックスタート · 認証 · 結果 · 機能 · ドキュメント
要件
- Python 3.12
- Git
- macOS、Linux、またはWSL
- Dockerはコンテナ化ツール、XBEN、統合テストのみ
- モデル駆動型コマンドのみプロバイダーAPIキー
通常の最初のスキャンには、モデルキー、ブラウザ、Dockerデーモン、外部スキャナーは不要です。
ソースからインストール
git clone https://github.com/duriantaco/ravage.git
cd ravage
scripts/bootstrap.sh
source .venv/bin/activate
ravage doctor
ブートストラップは.venvを作成し、ワークスペースをインストールします。開発依存関係にはscripts/bootstrap.sh --dev、ブラウザサポートには--browser、Chromiumもインストールするには--install-browserを使用します。
5分間のローカルクイックスタート
最初にアプリケーションを起動してください。この例では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はこのファイルを直接読み取ります。シェルでソースしないでください。
ravage doctor --workflow attack --brief ravage-brief.yaml
ravage attack ravage-brief.yaml --allow-paid-models --report
--allow-paid-modelsは、実行によってプロバイダー料金が発生する可能性があることへの明示的な承認です。モデル選択、ローカルプロバイダー、再現可能なプロファイルはモデルプロバイダーに文書化されています。
認証付きテスト
専用のテストIDをブリーフに追加します:
ravage auth add ravage-brief.yaml \
--identity user \
--type form \
--login /login \
--health /account \
--marker Logout \
--env-file .env.ravage
生成されたシークレット参照を入力し、セッションを検証してから、選択したIDで攻撃します:
ravage auth check ravage-brief.yaml --identity user
ravage attack ravage-brief.yaml \
--identity user \
--allow-paid-models \
--report
フォームログイン、ベアラートークン、固定静的ヘッダーがサポートされています。管理された認証情報は認証済みHTTPオーナー内に留まります。IDが選択されると、プロセス、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秒あたり1リクエスト未満のペーシング、物理リクエスト上限、保守的なGET/HEADキャッシュと重複排除、適応型バックオフ、制限付きリトライ、サーキットブレーキング。永続的な台帳は再開後も存続します。詳細はアーキテクチャにあります。
結果を理解する
Ravageは、観察結果、候補となる発見事項、確認された脆弱性を区別します。CTFフラグは可能な証明の1つであり、必須ではありません。通常のアプリケーションでは、フラグを見つけなくても実行は有用で成功することがあります。確認された脆弱性はレポートに書き込まれます。
攻撃実行が開始されると、その正規のプライベートな機械可読アーティファクトは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 | フォーム、ベアラー、静的ヘッダー |
| トラフィック検査とリプレイ | 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比較は、別のリリースゲートです。ケース結果を解釈する前にベンチマーキングを読んでください。1つの幸運なフラグは、信頼できる改善の証拠ではありません。
ドキュメント
お使いのチェックアウトの正確なオプションについては、ravage --helpおよびravage COMMAND --helpを使用してください。
ライセンス
Apache License 2.0。LICENSE、DISCLAIMER、SECURITY.mdを参照してください。