レポート生成機能付き脆弱性評価スキャナー
210 のオープンソースセキュリティツールを統合し、検出結果を集約・重複排除し、オプションでツールをディスカバリデータフローグラフに連鎖させ、トリアージ・クラスタリング・修復のためのオプションの OpenAI 互換 LLM 分析レイヤーを実行し、概念実証スクリプトを生成し、オプションのバグバウンティおよびペネトレーションテスターエージェント(Pydantic AI)を駆動して検出結果を証明・PoC 化し、プロフェッショナルな Markdown、HTML、JSON、PDF レポートを生成する自動脆弱性評価プラットフォーム — すべて単一の BlackArch Linux Docker イメージから。
config.toml / env vars / CLI args ↓ AppConfig (pydantic, 3-layer merge: TOML < env < CLI) ↓ Plugin loader — auto-discovers ./plugins/ + ~/.vuln-scanner/plugins/ ↓ ScanOrchestrator • classify_target() → TargetType • tool.applies_to(target) — skips mismatched pairs • asyncio + ThreadPoolExecutor — parallel (tool × target) tasks • AuthConfig forwarded to every applicable tool • optional chaining: produces/consumes assets in a wave/fixpoint loop ↓ ScanResult[] → Assessment (+ chain_edges / assets_by_type) ↓ LLMAnalyzer (optional) • Pass 1: triage + PoC design (threaded, per result) • Pass 2: PoC generation (PocGenerator, host-safe) • Pass 3: mitigation (evidence-informed) • Pass 4: clustering + exec summary ↓ PocRunner (container-only, VS_IN_CONTAINER=1 guard) ↓ AgentOrchestrator (optional, container-only, sequential) • bug-bounty / pentester agents (Pydantic AI) • drive tools with custom args + run sandboxed code • scope-guarded, denylisted, audited → Assessment.agent_reports ↓ ┌────────┬────────┬────────┐ │ .md │ .html │ .json │ (all formats written in parallel) └────────┴────────┴────────┘ ↓ DefectDojo (optional)
すべてのスキャンツール、PoC 実行、エージェントのアクションは **BlackArch Linux** Docker コンテナ内で実行されます — ホストには何もインストールされません。
---
## ツール
カテゴリ別に整理された 210 のツール。各ツールはサポートするターゲットタイプを宣言しており、オーケストレーターは互換性のない組み合わせを自動的にスキップします。
### ネットワーク & ポートスキャン
| ツール | 備考 |
|------|-------|
| `nmap` | サービス/バージョン検出を伴う全ポートスキャン |
| `rustscan` | 高速ポートスキャナー、nmap へ連携 |
| `masscan` | 高速 TCP/UDP スキャナー |
| `naabu` | サービス検出を伴うポートスキャナー |
| `netdiscover` | ARP ベースのホスト探索 |
### Web アプリケーション
| ツール | 備考 |
|------|-------|
| `nuclei` | テンプレートベースの脆弱性スキャナー |
| `nikto` | Web サーバー設定不備スキャナー |
| `wapiti` | ブラックボックス Web 脆弱性スキャナー |
| `ffuf` | 高速 Web ファザー(ディレクトリ、パラメータ、ヘッダー) |
| `feroxbuster` | 再帰を伴うコンテンツ探索 |
| `gobuster` | URI/DNS/vhost ブルートフォーサー |
| `wfuzz` | Web アプリケーションファザー |
| `dalfox` | パラメータ解析を伴う XSS スキャナー |
| `xsstrike` | 高度な XSS 検出エンジン |
| `commix` | コマンドインジェクションエクスプロイター |
| `sqlmap` | 自動 SQL インジェクションおよび乗っ取り |
| `nosqlmap` | NoSQL インジェクションスキャナー |
| `httpx` | HTTP プロービングとフィンガープリンティング |
| `whatweb` | Web 技術フィンガープリンター |
| `wafw00f` | WAF 検出とフィンガープリンティング |
| `wpscan` | WordPress 脆弱性スキャナー |
| `acunetix` | Web 脆弱性スキャナー(API ベース) |
| `arachni` | Web アプリケーションセキュリティスキャナー |
| `zap` | OWASP ZAP DAST スキャナー |
| `wapiti` | ブラックボックス脆弱性スキャナー |
| `drheader` | HTTP セキュリティヘッダーアナライザー |
| `humble` | HTTP ヘッダーセキュリティチェッカー |
| `hakrawler` | URL とエンドポイント向けの高速 Web クローラー |
| `katana` | 次世代 Web クローリングフレームワーク |
| `gau` | 既知 URL コレクター(AlienVault、WaybackMachine) |
| `jsluice` | JavaScript シークレットおよび URL 抽出ツール |
| `corscanner` | CORS 設定不備スキャナー |
| `crlfuzz` | CRLF インジェクションスキャナー |
| `smuggler` | HTTP リクエストスマグリング検出ツール |
| `linkfinder` | JavaScript/HTML ソース内のエンドポイント探索 |
| `cariddi` | シークレットおよびエンドポイント検出を伴う Web クローラー |
### API & GraphQL
| ツール | 備考 |
|------|-------|
| `kiterunner` | kite ファイルを用いた API ルート探索 |
| `graphql_cop` | GraphQL セキュリティ監査ツール |
| `restler` | ステートフル REST API ファザー |
| `apifuzzer` | OpenAPI/Swagger ベースのファザー |
| `cherrybomb` | OpenAPI スペックセキュリティリンター |
| `arjun` | HTTP パラメータ探索 |
| `paramspider` | wayback/ソースからのパラメータマイニング |
### DNS & 偵察
| ツール | 備考 |
|------|-------|
| `amass` | サブドメイン列挙(パッシブ + アクティブ) |
| `subfinder` | 高速パッシブサブドメイン列挙 |
| `dnsx` | DNS リゾルバーおよびプローブツールキット |
| `dnsrecon` | DNS 列挙およびゾーン転送 |
| `fierce` | DNS 偵察およびホスト探索 |
| `theharvester` | OSINT: メール、名前、ホスト、サブドメイン |
| `puredns` | ワイルドカードフィルタリングを伴う高速サブドメインブルートフォーサー |
| `alterx` | サブドメイン順列エンジン |
| `waybackurls` | Wayback Machine からの履歴 URL 収集 |
| `httprobe` | ライブ HTTP/HTTPS ホストプローバー |
### TLS / SSL
| ツール | 備考 |
|------|-------|
| `testssl` | TLS 設定および暗号スイート監査 |
| `sslyze` | TLS スキャナー(暗号スイート、Heartbleed、ROBOT) |
| `sslscan` | SSL/TLS サービススキャナー |
| `tlsx` | 高速 TLS プロービング |
| `tls_attacker` | TLS プロトコル攻撃ツール |
| `ssh_audit` | SSH 設定およびアルゴリズム監査ツール |
### SMB & ネットワークサービス
| ツール | 備考 |
|------|-------|
| `smbmap` | SMB 共有列挙およびパーミッション |
| `enum4linux` | SMB/NetBIOS 列挙 |
| `crackmapexec` | Active Directory および SMB 評価 |
| `openvas` | OpenVAS 脆弱性スキャナー |
### SAST & コード解析
| ツール | 備考 |
|------|-------|
| `bandit` | Python SAST — 一般的なセキュリティアンチパターン |
| `semgrep` | コミュニティルールを用いたマルチ言語 SAST |
| `gosec` | Go セキュリティチェッカー |
| `bearer` | プライバシーおよびセキュリティルールを伴うデータフロー SAST |
| `horusec` | マルチ言語 SAST エンジン |
| `brakeman` | Ruby on Rails SAST スキャナー |
| `flawfinder` | 一般的な欠陥に対する C/C++ 静的解析 |
| `dependency_check` | OWASP 依存関係脆弱性スキャナー |
| `pip_audit` | Python パッケージ脆弱性チェッカー |
### ソフトウェアコンポジション分析(SCA)
| ツール | 備考 |
|------|-------|
| `osv-scanner` | Open Source Vulnerability データベーススキャナー |
| `npm-audit` | Node.js パッケージ脆弱性監査 |
| `govulncheck` | Go モジュール脆弱性チェッカー |
### シークレット検出
| ツール | 備考 |
|------|-------|
| `gitleaks` | Git 履歴シークレットスキャナー |
| `trufflehog` | エントロピーベースの深層シークレット検出ツール |
| `secretfinder` | JS ファイルおよびエンドポイント内のシークレット |
| `detect-secrets` | ベースラインベースのシークレットスキャナー |
| `noseyparker` | パターンルールを伴う高速シークレットスキャナー |
### IaC & 設定
| ツール | 備考 |
|------|-------|
| `checkov` | Terraform/K8s/Dockerfile IaC スキャナー |
| `tfsec` | Terraform 静的解析 |
| `terrascan` | マルチクラウド IaC セキュリティスキャナー |
| `hadolint` | Dockerfile ベストプラクティスリンター |
### クラウドインフラストラクチャ
| ツール | 備考 |
|------|-------|
| `prowler` | AWS/GCP/Azure セキュリティ態勢評価 |
| `kube-bench` | CIS Kubernetes Benchmark チェッカー |
### コンテナ & サプライチェーン
| ツール | 備考 |
|------|-------|
| `trivy` | コンテナイメージ + ファイルシステム脆弱性スキャナー |
| `grype` | コンテナおよびパッケージ脆弱性マッチャー |
---
## ターゲットタイプゲーティング
オーケストレーターは各ターゲットを 1 つ以上のタイプに分類し、そのタイプのサポートを宣言しているツールのみを実行します。これにより、例えば Web URL に対して SMB ツールが実行されるといったノイズを排除します。
| タイプ | 例 | マッチするツール |
|------|---------|-----------------|
| `HOST` | `example.com` | DNS、SSL、Web、SMB ツール |
| `IP` | `10.0.0.1` | ネットワーク、ポート、SMB ツール |
| `CIDR` | `10.0.0.0/24` | ネットワークスキャナー |
| `URL` | `https://app.example.com` | Web、API、SSL ツール |
| `PATH` | `/src/myapp` | SAST、SCA、シークレット、IaC ツール |
| `REPO` | `https://github.com/org/repo` | シークレット、SAST、SCA ツール |
| `IMAGE` | `myapp:latest` | コンテナスキャナー |
| `CLOUD` | `aws:profile=prod`、`arn:aws:…` | クラウド態勢ツール(prowler、kube-bench、terrascan) |
分類は自動です — ターゲット文字列を渡すだけで、スキャナーがタイプを判別します。
認識されるクラウドターゲット形式:
- AWS ARN: `arn:aws:iam::123456789012:root`
- 名前付きプロファイル省略形: `aws:profile=production`
- GCP プロジェクト: `projects/my-project-id`
- Azure サブスクリプション UUID: `00000000-0000-0000-0000-000000000000`
---
## スキャンモード
| モード | 説明 |
|------|-------------|
| `paranoid` | 最大ステルス — パッシブプロービング、最小フットプリント |
| `passive` | アクティブ攻撃なし — 列挙とバナーグラビングのみ **(デフォルト)** |
| `active` | 標準的な脆弱性チェックを有効化 |
| `aggressive` | フルスキャン: 全テンプレート、ブルートフォース、高速タイミング |
---
## ツールチェイニング
デフォルトでは、オーケストレーターはフラットな **ツール × ターゲット** マトリクスを実行します。`[chaining]` を有効にすると、代わりにライブの **データフローグラフ** に変換されます: アセット(サブドメイン、ライブホスト、開いているポート、URL、パラメータ、技術フィンガープリント…)を *生成* するツールが、後続のウェーブでそれらのアセットタイプを *消費* するツールに供給されます。