mirror of
https://github.com/prompt-security/clawsec.git
synced 2026-06-13 05:28:02 +03:00
b37162a33d
* feat(i18n): add multilingual wiki scaffolding, language switcher, and translation QA pipeline * docs(readme): adopt picoclaw-style multilingual link bar * fix(i18n): repair localized index links and tighten partial-pair QA * ci(i18n): fail on broken markdown links in README/wiki * ci(i18n): add changed-files mode for markdown link checks * i18n(de): use local Argos MT to fill untranslated German sections * i18n(es,fr): fill untranslated sections via local Argos workflow * i18n(ja): fill untranslated sections with scoped local Argos pass * i18n(ko): fill untranslated sections with scoped local Argos pass * fix(i18n): address review feedback --------- Co-authored-by: David Abutbul <David.a@prompt.security>
426 lines
18 KiB
Markdown
426 lines
18 KiB
Markdown
<!-- AUTO-GENERATED TRANSLATION SCAFFOLD (ja)
|
|
Source: ../exploitability-scoring.md
|
|
Review status: draft
|
|
-->
|
|
|
|
# Exploitability Scoring 方法論
|
|
|
|
## 概要
|
|
|
|
ClawSecの悪用性スコアリングシステムは、AIエージェントの展開(OpenClaw/NanoClaw)用に特別に設計されたコンテキスト・ウェアの脆弱性評価を提供します。 すべての環境を均等に扱う一般的なCVSSスコアとは異なり、当社のスコアリングは、アラート疲労を軽減し、実用的な脅威を優先するAIエージェントのユニークな攻撃面と使用パターンを考慮する。
|
|
|
|
## スコアリングレベル
|
|
|
|
| レベル | 重症 | 意味 |
|
|
お問い合わせ
|
|
| `high` | クリティカル・ハイ | 代表的な代理店の展開で期待できる |
|
|
| `medium` | ミディアム | 構成、保証調査 |
|
|
| `low` | 低 | エージェントのコンテキスト、低優先順位 |
|
|
| `unknown` | 不明 | 悪用性を評価するための十分なデータ |
|
|
|
|
## スコアリング工場
|
|
|
|
################################################################################################################################################################################################################################################################ 1. CVSSベーススコア(ベースライン)
|
|
|
|
分析は、CVSSベーススコアを基礎として開始します。
|
|
|
|
-**CVSS ≥ 9.0**:クリティカルな重度 → 初期スコア `high`
|
|
- **CVSS 7.0-8.9**: 高重度 → 初期スコア `high`
|
|
- **CVSS 4.0-6.9**: 中程度の重度 → 初期スコア `medium`
|
|
- **CVSS 1.0-3.9**:低重度 → 初期スコア `low`
|
|
- **CVSS**なし: → 初期スコア `unknown`の特長
|
|
|
|
################################################################################################################################################################################################################################################################ 2. 攻撃ベクトル解析(CVSSメトリクス)
|
|
|
|
アナライザは、CVSS v2、v3.0、v3.1 ベクトルを解析して評価します。
|
|
|
|
####ネットワークのアクセシビリティ
|
|
-**AV:N**(ネットワーク):ネットワーク上でリモートで利用
|
|
-**AV:A**(隣接):ローカルネットワークアクセスを要求します
|
|
- ** AV:L** (ローカル):ローカル システム アクセスを要求して下さい
|
|
- **AV:P** (物理的):物理的なアクセスを要求して下さい
|
|
|
|
**エージェントへの影響**: エージェントはネットワークサービスとして実行したり、外部API呼び出しを行うため、ネットワークアクセス可能な脆弱性が高まります。
|
|
|
|
####認証要件
|
|
-**PR:N / Au:NONE**:認証不要 → スコアアップ
|
|
-**PR:L / Au:SINGLE**:必要な低い特権
|
|
-**PR:H / Au:MULTIPLE**:高い特権が必要 → スコアを削減
|
|
|
|
**エージェントへの影響**: 未認証の悪用は、一般に公開されたエージェント API には不可欠です。
|
|
|
|
#### ユーザーインタラクション
|
|
-**UI:N**:ユーザーインタラクションは必要ありません → スコアを上昇させる
|
|
-**UI:R**:ユーザーインタラクションを要求し、スコアを削減
|
|
|
|
**エージェントへの影響**: エージェントは自律的に動作することが多いため、ユーザインタラクションが必要な脆弱性はあまり重要ではありません。
|
|
|
|
###### 攻撃の複雑さ
|
|
- **AC:L**:低い複雑さ→の上昇のスコア
|
|
-**AC:M / AC:H**:中/高複雑→中立またはスコアを減らす
|
|
|
|
**エージェントへの影響**: 低複雑性悪用は、大量攻撃で自動化され、使用される可能性が高い。
|
|
|
|
################################################################################################################################################################################################################################################################ 3. 脆弱性タイプ(採用コンテキスト)
|
|
|
|
ClawSecは、脆弱性タイプがAIエージェントのデプロイメントにどのように影響するかに基づいてスコアを調整します。
|
|
|
|
#### エージェントコンテキスト内の高リスクタイプ
|
|
|
|
**リモートコード実行(RCE)* * 必須
|
|
```
|
|
Score: Always HIGH
|
|
Rationale: RCE is critical in agent deployments
|
|
```
|
|
AIエージェントは、その機能の一部として任意のコードを実行します。 RCEの脆弱性により、攻撃者がハイジャックエージェントの実行フローを解除したり、資格情報を公開したり、他のシステムにピボットしたりすることができます。
|
|
|
|
**サーバー・サイド・リクエスト・フォージェリ(SSRF)* * 必須
|
|
```
|
|
Score: Elevated to HIGH if CVSS ≥ 6.0
|
|
Rationale: SSRF affects agents making external requests
|
|
```
|
|
エージェントは、外部 API を頻繁に呼び出し、内部サービスにアクセスし、リモートリソースを取得します。 SSRF は、攻撃者を次のようになります。
|
|
- 内部クラウドメタデータサービス(AWS IMDSv1、GCPメタデータ)にアクセス
|
|
- 社内ネットワークへのピボット
|
|
- DNSトンネリングによるデータの抽出
|
|
|
|
**Path Traversal / ディレクトリ Traversal* * 必須
|
|
```
|
|
Score: Elevated to HIGH if CVSS ≥ 6.0
|
|
Rationale: Path traversal affects agents with file access
|
|
```
|
|
エージェントはファイルを読み、スクリプトを実行し、コードベースを管理します。 パス・トラバーサールは以下を可能にします。
|
|
- 機密設定ファイル(.env、認証情報)の読み込み
|
|
- SSHキー、APIトークンへのアクセス
|
|
- 重要なシステムファイルを上書き
|
|
|
|
**Commandの注入**
|
|
```
|
|
Score: Always HIGH
|
|
Rationale: Command injection is critical in agent deployments
|
|
```
|
|
RCEと同様に、エージェントはシステムとやり取りするためにシェルコマンドを実行します。 コマンドインジェクションにより、フルシステムの妥協を許します。
|
|
|
|
#### 中リスクタイプ
|
|
|
|
**プロトタイプ汚染(Node.js)* * 必須
|
|
```
|
|
Score: Elevated from LOW to MEDIUM
|
|
Rationale: Prototype pollution can escalate in Node.js agents
|
|
```
|
|
Node.js 上で実行される多くのエージェントフレームワーク。プロトタイプの汚染は、以下につながる可能性があります。
|
|
- 認証チェックのバイパス
|
|
- 特権エスカレーション
|
|
- サービスの拒否
|
|
|
|
**SQLの注入/NoSQLの注入**
|
|
```
|
|
Score: Elevated to HIGH if network-accessible and unauthenticated
|
|
Rationale: Injection affects agents with database access
|
|
```
|
|
会話履歴、ユーザーデータ、またはデータベース内のツール結果を保存するエージェントは、インジェクション攻撃に脆弱です。
|
|
|
|
####下リスクタイプ
|
|
|
|
**クロスサイトスクリプト(XSS)* * 必須
|
|
```
|
|
Score: Reduced to MEDIUM if not network-accessible
|
|
Rationale: XSS has limited impact in headless agents
|
|
```
|
|
エージェントは、通常、ブラウザでHTMLをレンダリングせず、XSSの影響を軽減します。 しかし、エージェント管理 UI やチャットインターフェースの XSS は懸念が残っています。
|
|
|
|
################################################################################################################################################################################################################################################################ 4. 空室状況
|
|
|
|
`--check-exploits`が有効になっている場合、アナライザはパブリックエクスプロイトのリファレンスURLをチェックします。
|
|
|
|
**明示的な表示器:**
|
|
- 悪用-db.com/悪用-database.com
|
|
- パケットtormsecurity.com
|
|
- github.com/exploit、github.com/poc
|
|
- metasploitフレームワークモジュール
|
|
- 「/exploit」、「/poc」、「/proof-of-concept」を含むURL
|
|
|
|
**スコアの高度:**
|
|
- `low` → `medium` (利用できるexploit)
|
|
- `medium` → `high` (利用できるexploit)
|
|
- `unknown` → `medium` (exploit available + CVSS > 0 )
|
|
|
|
**Rationale**: 公共は攻撃者のためのスキル障壁を下げ、自動搾取の可能性を高めます。
|
|
|
|
## スコアリングアルゴリズム
|
|
|
|
アナライザはこの決定ツリーに従います。
|
|
|
|
```
|
|
1. Parse CVSS score → set baseline (high/medium/low/unknown)
|
|
2. Parse CVSS vector → analyze attack characteristics
|
|
3. Adjust for attack vector:
|
|
- Network-accessible + no auth + no UI → elevate to HIGH
|
|
- Local-only access → reduce HIGH to MEDIUM
|
|
4. Adjust for vulnerability type:
|
|
- Check against agent-specific risk categories
|
|
- Elevate or reduce score based on deployment context
|
|
5. Check for public exploits (if enabled):
|
|
- Elevate score if exploits detected
|
|
6. Generate rationale explaining the final score
|
|
```
|
|
|
|
## 例
|
|
|
|
##例1:クリティカルなRCE(高感度)
|
|
|
|
```json
|
|
{
|
|
"cve_id": "CVE-2024-12345",
|
|
"cvss_score": 9.8,
|
|
"cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
|
|
"type": "remote_code_execution",
|
|
"description": "Unauthenticated RCE in Express.js framework"
|
|
}
|
|
```
|
|
|
|
**分析の出力:**
|
|
```json
|
|
{
|
|
"exploitability_score": "high",
|
|
"exploitability_rationale": "Critical CVSS score (9.8); remotely exploitable without authentication; RCE is critical in agent deployments"
|
|
}
|
|
```
|
|
|
|
**なぜハイ**:クリティカルCVSS +ネットワークアクセス可能+オースなし+ RCEタイプ。
|
|
|
|
##例2:エージェントAPIのSSRF(高感度)
|
|
|
|
```json
|
|
{
|
|
"cve_id": "CVE-2024-23456",
|
|
"cvss_score": 7.3,
|
|
"cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L",
|
|
"type": "server_side_request_forgery",
|
|
"description": "SSRF in webhook handler allows internal network access"
|
|
}
|
|
```
|
|
|
|
**分析の出力:**
|
|
```json
|
|
{
|
|
"exploitability_score": "high",
|
|
"exploitability_rationale": "High CVSS score (7.3); remotely exploitable without authentication; SSRF affects agents making external requests"
|
|
}
|
|
```
|
|
|
|
**ハイ**: SSRF は、API 呼び出しを行うエージェントに不可欠です。 認証なしでアクセス可能でリスクが高まります。
|
|
|
|
##例3:公共の爆発を伴うパストラバース(高感度)
|
|
|
|
```json
|
|
{
|
|
"cve_id": "CVE-2024-34567",
|
|
"cvss_score": 6.5,
|
|
"cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N",
|
|
"type": "path_traversal",
|
|
"references": [
|
|
"https://exploit-db.com/exploits/51234",
|
|
"https://nvd.nist.gov/vuln/detail/CVE-2024-34567"
|
|
]
|
|
}
|
|
```
|
|
|
|
**分析出力(--check-exploitsと):**
|
|
```json
|
|
{
|
|
"exploitability_score": "high",
|
|
"exploitability_rationale": "Medium CVSS score (6.5); network accessible; path traversal affects agents with file access; public exploit available (1 source)"
|
|
}
|
|
```
|
|
|
|
**ハイ**:パストラバース+エージェントファイルアクセス+公共利用は、中型CVSSを高悪用性に高めます。
|
|
|
|
## 例4:エージェントUIのXSS
|
|
|
|
```json
|
|
{
|
|
"cve_id": "CVE-2024-45678",
|
|
"cvss_score": 7.1,
|
|
"cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L",
|
|
"type": "cross_site_scripting",
|
|
"description": "Stored XSS in agent management dashboard"
|
|
}
|
|
```
|
|
|
|
**分析の出力:**
|
|
```json
|
|
{
|
|
"exploitability_score": "medium",
|
|
"exploitability_rationale": "High CVSS score (7.1); network accessible; XSS has limited impact in headless agents"
|
|
}
|
|
```
|
|
|
|
**Why MEDIUM**:高いCVSSにもかかわらず、XSSはエージェントのデプロイメント(ヘッドレス操作)ではあまり重要ではありません。 ユーザーインタラクションが必要です。
|
|
|
|
## 例5: ローカル特権のエスカレーション(媒体の説明)
|
|
|
|
```json
|
|
{
|
|
"cve_id": "CVE-2024-56789",
|
|
"cvss_score": 8.8,
|
|
"cvss_vector": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
|
|
"type": "privilege_escalation",
|
|
"description": "Local privilege escalation via symbolic link attack"
|
|
}
|
|
```
|
|
|
|
**分析の出力:**
|
|
```json
|
|
{
|
|
"exploitability_score": "medium",
|
|
"exploitability_rationale": "High CVSS score (8.8); requires local access"
|
|
}
|
|
```
|
|
|
|
**医療**:高いCVSSにもかかわらず、ローカルアクセスが必要です。 エージェントは、通常、ローカルエスカレーションが限られた影響を持っているコンテナ化された/サンドボックス化された環境で実行されます。
|
|
|
|
##例6:Exploitによる試作汚染(高感度)
|
|
|
|
```json
|
|
{
|
|
"cve_id": "CVE-2024-67890",
|
|
"cvss_score": 5.3,
|
|
"cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N",
|
|
"type": "prototype_pollution",
|
|
"description": "Prototype pollution in lodash merge function",
|
|
"references": [
|
|
"https://github.com/exploit/prototype-pollution-poc",
|
|
"https://snyk.io/vuln/SNYK-JS-LODASH-1234567"
|
|
]
|
|
}
|
|
```
|
|
|
|
**分析出力(--check-exploitsと):**
|
|
```json
|
|
{
|
|
"exploitability_score": "high",
|
|
"exploitability_rationale": "Medium CVSS score (5.3); remotely exploitable without authentication; prototype pollution can escalate in Node.js agents; public exploit available (1 source)"
|
|
}
|
|
```
|
|
|
|
**なぜハイ**:Node.jsエージェントのプロトタイプ汚染 + 公開悪用 + authなしでアクセス可能 = 適度なCVSSにもかかわらず高いリスク。
|
|
|
|
#ClawSec ワークフローでの ## 利用
|
|
|
|
###自動スキャリング(NVDフィード)
|
|
|
|
`poll-nvd-cves.yml`ワークフローは、新しいCVEを自動的にスコアします。
|
|
|
|
```bash
|
|
# Workflow step
|
|
python utils/analyze_exploitability.py --json --check-exploits < cve-data.json
|
|
```
|
|
|
|
`advisories/feed.json`のアドバイザリーには、以下が含まれます。
|
|
```json
|
|
{
|
|
"id": "CVE-2024-12345",
|
|
"severity": "high",
|
|
"exploitability_score": "high",
|
|
"exploitability_rationale": "Critical CVSS score (9.8); remotely exploitable without authentication; RCE is critical in agent deployments",
|
|
"attack_vector_analysis": {
|
|
"is_network_accessible": true,
|
|
"requires_authentication": false,
|
|
"requires_user_interaction": false,
|
|
"complexity": "low"
|
|
}
|
|
}
|
|
```
|
|
|
|
## マニュアル分析
|
|
|
|
セキュリティ研究者は、CVEを手動で分析することができます。
|
|
|
|
```bash
|
|
# Basic analysis
|
|
echo '{"cve_id":"CVE-2024-12345","cvss_score":7.3,"type":"ssrf"}' | \
|
|
python utils/analyze_exploitability.py --json
|
|
|
|
# With exploit detection
|
|
echo '{"cve_id":"CVE-2024-12345","cvss_score":7.3,"references":["https://exploit-db.com/exploits/51234"]}' | \
|
|
python utils/analyze_exploitability.py --json --check-exploits
|
|
```
|
|
|
|
## Exploitability によるフィルタリング
|
|
|
|
ユーザーは、悪用性スコアでアドバイザリーをフィルタリングすることができます。
|
|
|
|
```bash
|
|
# Get only high-exploitability advisories
|
|
curl -s https://clawsec.prompt.security/feed.json | \
|
|
jq '.advisories[] | select(.exploitability_score == "high")'
|
|
|
|
# Prioritize by exploitability and severity
|
|
curl -s https://clawsec.prompt.security/feed.json | \
|
|
jq '[.advisories[] | select(.exploitability_score == "high" and .severity == "critical")] | sort_by(.cvss_score) | reverse'
|
|
```
|
|
|
|
## バックフィルディング・アドバイザリー(歴史的メンテナンス)
|
|
|
|
`scripts/backfill-exploitability.sh`は、リポジトリのメンテナンスのための歴史的なメンテナユーティリティとして保持されます。
|
|
通常のアドバイザリー世代の主流ではありません。
|
|
|
|
優先パス:
|
|
|
|
1。 CI の正式なパス: NVD ワークフローを init/reset で実行し、NVD のアドバイザリーを再構築し、パイプラインのアーティファクトに署名します。
|
|
2。 ローカル開発者パス: `./scripts/populate-local-feed.sh --force` を実行して、ローカルフィードを悪用性のコンテキストで再人口化します。
|
|
|
|
既に存在しているレガシーフィードコンテンツを明示的に修復するときにのみ、バックフィルを使用してください。
|
|
|
|
## コミュニティ貢献
|
|
|
|
コミュニティメンバーは、悪用性評価を提出することができます。
|
|
|
|
1。 **GitHub の問題による報告**: 悪用性文脈で CVE を報告するために、アドバイザリーテンプレートを使用する
|
|
2。 **Automated Analysis**: `community-advisory.yml`ワークフローはコミュニティ報告されたCVEを自動的に得ます
|
|
3。 **Manual Review**: 保守者のレビューと悪用性評価の承認
|
|
4。 **Feed Update**: 承認されたアドバイザリーは、悪用スコアのフィードに追加されます
|
|
|
|
## 限界と未来の仕事
|
|
|
|
##現在の制限
|
|
|
|
1。 **統計分析**: スコアリングは動的ランタイム解析ではなく、CVEメタデータに基づいています
|
|
2.**バージョン検出なし**:特定のバージョンが脆弱であるかどうかはチェックしません
|
|
3。 **バイナリ分類**: 部分的な緩和や防衛の深さを考慮することはありません
|
|
4。 **限られたコンテキスト**:正確なエージェントの構成やデプロイされたツールがわからない
|
|
|
|
###将来の強化
|
|
|
|
1。 **EPSSインテグレーション**:EPSS(Exploit Prediction Scoring System)の確率スコアを組み込む
|
|
2。 **KEV Matching**:CISA KEV(Known Exploited Vulnerabilities)カタログのクロスリファレンス
|
|
3。 **エージェントプロファイリング**: デプロイされたエージェントの機能と公開された API を検討する
|
|
4。 **運転検出**:WAF規則、サンドボックス、その他の補償制御の確認
|
|
5。 **MLベースの規模**: 歴史データに基づく悪用性を予測するために機械学習を使用する
|
|
|
|
## リファレンス
|
|
|
|
-**CVSS v3.1仕様**:[https://www.first.org/cvss/v3.1/specification-document](https://www.first.org/cvss/v3.1/specification-document)
|
|
- **CVSS v2 ガイド**:[https://www.first.org/cvss/v2/guide](https://www.first.org/cvss/v2/guide)
|
|
- **EPSS**: [https://www.first.org/epss/](https://www.first.org/epss/)
|
|
- **CISA KEV**:[https://www.cisa.gov/known-exploited-vulnerabilities-catalog](https://www.cisa.gov/known-exploited-vulnerabilities-catalog)
|
|
- **NVD API**:[https://nvd.nist.gov/developers/vulnerabilities](https://nvd.nist.gov/developers/vulnerabilities)
|
|
|
|
ツイート 貢献する
|
|
|
|
悪用性のスコアリング方法論を改善するため:
|
|
|
|
1。 **テストケースを省略**:`utils/analyze_exploitability.py`にテストケースを追加
|
|
2。 **False Positives/Negatives** の報告: CVE の例でGitHub の問題を開いた
|
|
3。 **スコープアジャスメントの提案**: 合理的かつ例でPRを提出する
|
|
4。 **シェアエージェントコンテキスト**:エージェント固有の脆弱性パターンの投稿
|
|
|
|
See [CONTRIBUTING.md](../../CONTRIBUTING.md) for detailed contribution guidelines.
|
|
|
|
お問い合わせ
|
|
|
|
**によって維持される**: [Prompt Security](https://prompt.security)
|
|
**ライセンス**:AGPL-3.0-or-later
|
|
**最終更新**:2026-03-01
|