メインコンテンツまでスキップ

BUG_BOUNTY_SCOPE.json

Phase 01e (プロパティ生成) から Phase 04 (review) まで、scope 判定に用いるメタデータファイル。

必須性

Phase 01e 実行時に outputs/BUG_BOUNTY_SCOPE.json が必須。ファイルがない場合、オーケストレータは sys.exit(1) で停止します。

スキーマ

{
"program_name": "ethereum-fusaka",
"scope_version": "1.0",

"in_scope": [
"src/consensus/",
"src/crypto/kzg.rs",
"src/state_machine.rs"
],

"out_of_scope": [
"tests/",
"docs/",
"vendor/",
"build/"
],

"severity_classification": {
"CRITICAL": {
"description": "Protocol halt, cryptographic break",
"cwe": ["CWE-327", "CWE-338"],
"examples": ["Invalid signature verification", "Entropy exhaustion"]
},
"HIGH": {
"description": "State divergence, consensus failure",
"cwe": ["CWE-862", "CWE-863"],
"examples": ["Unauthorized state transition", "Access control bypass"]
},
"MEDIUM": {
"description": "Information disclosure, partial bypass",
"cwe": ["CWE-200", "CWE-203"],
"examples": ["Timing leak", "Nonce reuse"]
},
"LOW": {
"description": "Quality, usability",
"cwe": ["CWE-400"],
"examples": ["Resource leak", "Performance degradation"]
}
},

"scope_notes": "Only in-scope high-value code paths will be audited. Test utilities and vendor code excluded per standard rubric."
}

使用箇所

  • Phase 01e: Properties に reachability.bug_bounty_scope (in_scope/out_of_scope) を付与
  • Phase 02c: Severity 分類にマップ (Informational を削減)
  • Phase 04 Gate 3: Proof gap が in_scope に含まれるか確認

カスタム Rubric の書き方

複数実装の cross-comparison では、共通の rubric を用いる:

{
"program_name": "kzg-batch-verify-v2",
"common_rubric": {
"in_scope": [
"KZG parameter generation (setup)",
"Commitment creation",
"Batch verification (main algorithm)",
"Polynomial operations"
],
"out_of_scope": [
"Serialization / deserialization",
"Performance optimizations",
"Logging / debugging"
]
}
}

このファイルを複数実装間で共有することで、同じ property 語彙での比較が可能になります。

詳細は 仕様駆動監査 を参照。