Grafana 用のコマンドライン脆弱性スキャナです。インストール済み Grafana のバージョンを特定し、バージョン対応の CVE チェック一式を実行し、一般的な設定上の弱点を監査し、結果をローカルデータベースに保存して、小さな Web ダッシュボードで表示できます。
このツールは Grafana インスタンスにリクエストを送信し、一部のチェックでは既知のエクスプロイト経路(パストラバーサル、SQL インジェクション、SSRF)を試行します。自分が所有するシステム、またはテストする書面による許可を得たシステムに対してのみ実行してください。許可のないスキャンは、お住まいの地域のコンピュータ不正使用に関する法律に違反する可能性があります。
requestsflask(--serve を使用する場合のみ必要)pip install -r requirements.txt
# 単一ターゲットをスキャン
python scanner.py -u https://grafana.example.com
# ファイルから URL リストをスキャン
python scanner.py -f targets.txt -o report
# 混合 URL リストから Grafana インスタンスを検出してからスキャン
python scanner.py --auto-search urls.txt -o discovery
# 結果をデータベースに保存し、ダッシュボードで表示
python scanner.py -f targets.txt --db vulndb.json
python scanner.py --serve --db vulndb.json
| オプション | 説明 |
|---|---|
-u, --url | 単一のターゲット URL をスキャン |
-f, --file | ファイル内に 1 行 1 ターゲットで列挙されたターゲットをスキャン |
--auto-search FILE | URL リスト内の Grafana を検出し、検出されたインスタンスをスキャン |
-o, --output BASE | JSON/HTML/CSV レポートファイルのベース名 |
--timeout N | リクエストごとのタイムアウト(秒)(デフォルト 10) |
--threads N | 同時スキャンスレッド数(デフォルト 5) |
--db FILE | 指定したパスで JSON 脆弱性データベースを有効化 |
--serve [PORT] | Flask Web ダッシュボードを起動(デフォルトポート 8080) |
--host | ダッシュボードがバインドするアドレス(デフォルト 127.0.0.1) |
--dashboard-token TOKEN | すべてのダッシュボードルートでこのベアラートークンを要求 |
--auth-token | 認証付きエンドポイントをスキャンするためのベアラートークン |
--auth-user / --auth-pass | スキャン用のベーシック認証 |
--no-ssl-verify | TLS 証明書の検証を無効化(警告を表示) |
-v, --verbose | チェックごとの詳細を出力 |
--no-banner | 起動時ヘッダーを非表示 |
--no-ssl-verify は自己署名証明書を使用する内部ホスト専用に渡してください。渡すと警告が表示されます。資格情報が傍受にさらされる可能性があるためです。--dashboard-token を設定しない限り、ダッシュボードは認証なしでアクセスできます。 ダッシュボードがローカル以外のインターフェースにバインドされている場合は、トークンを設定する必要があります。状態を変更するすべてのリクエストには CSRF トークンも必要です。-o を指定すると、スキャナは BASE.json、BASE.html、BASE.csv を書き出します。HTML レポートは、悪意のあるターゲット応答に由来する可能性のある javascript:/data:/vbscript: URI を無害化します。
--db を指定すると、検出結果はアトミックに書き込まれる JSON ファイルに保存されます。前回の状態の .bak コピーが保持され、解析に失敗したファイルは黙って破棄される代わりに .corrupt-<timestamp> に移動されます。
スキャナは、バージョン対応の CVE チェックに加え、設定監査(セキュリティヘッダー、CORS、匿名アクセス、自己登録、プラグイン分析、公開メトリクス)を実行します。完全な CVE リストと検出方法の注記は docs/vulnerabilities.md にあります。
scanner.py — エンジン、チェック、データベース、Web ダッシュボード、CLIdocs/usage.md — スキャンモードとワークフローdocs/vulnerabilities.md — CVE リファレンスdocs/architecture.md — 内部構造とデータフローtests/ — テストスイートmake test # テストスイートを実行
make lint # ruff + flake8
CI パイプラインは Python 3.9〜3.12 でテストとリンターを実行し、Docker イメージをビルドします。
MIT。LICENSE を参照してください。