---
generated_at: 2026-02-21 12:00:00
metrics:
  claims_total: 28
  claims_with_evidence: 24
  claims_without_evidence: 4
confidence_derived: 0.86
---

# 根拠レポート：セキュリティ設計書

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.86**
  - 根拠あり：24 / 28、根拠なし：4
- 優先レビュー（高）
  1. **監査ログの未実装**：ログ機能が存在しないことの網羅的な確認が必要
  2. **DLL改ざんリスク**：DLLの署名検証有無の確認が必要
  3. **チャートファイル検証不足の詳細**：play_chart_load.hspの全バリデーションロジックの確認が必要
  4. **RC4の具体的な使用箇所**：RC4がどのデータに対して適用されているかの確認が必要

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `src/ir.hsp:26-36` — IR関連ログイン関数（削除済み）
- E-02: `kshootmania.hsp:183` — hosts変数の空文字列設定
- E-03: `README.md:19-22` — IR機能削除の記載
- E-04: `src/kshlib.as:11` — HMAC-SHA1関数定義
- E-05: `src/kshlib.as:18` — MD5ハッシュ関数定義
- E-06: `src/ir.hsp:51-68` — getChartIRHash()関数
- E-07: `third_party/rc4_crypt.hsp:3-50` — RC4暗号化実装
- E-08: `third_party/mbase64.as:1-44` — Base64エンコーディング実装
- E-09: `kshootmania.hsp:73` — サイトURL（HTTPS）
- E-10: `src/scene/select.hsp:308` — IR URLへのHTTPSリンク
- E-11: `src/scene/result.hsp:840` — Twitter共有URLへのHTTPSリンク
- E-12: `kshootmania.hsp:675-680` — プロキシ設定読込処理
- E-13: `kshootmania.hsp:833` — netproxyによるプロキシ設定
- E-14: `kshootmania.hsp:390-416` — config.ini読込処理
- E-15: `kshootmania.hsp:435-680` — 設定値のバリデーション処理
- E-16: `kshootmania.hsp:489` — 設定値の型変換処理例
- E-17: `kshootmania.hsp:129-137` — instr関数のオーバーフロー対策
- E-18: `src/filesystem_utils.as:9-34` — fileExists/dirExists関数
- E-19: `src/filesystem_utils.as:42-74` — safeChdir関数
- E-20: `src/scene/play/play_chart_load.hsp:256` — チャートファイル読込処理
- E-21: `kshootmania.hsp:412-413` — プロキシデフォルト設定

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | IR機能が削除されており認証機能は未実装 | E-01, E-02, E-03 | ○ |
| C-02 | ir_is_logged_in()関数の実装が削除済み | E-01 | ○ |
| C-03 | ir_login()関数が削除済み | E-01 | ○ |
| C-04 | サーバーアドレスが空文字列に設定 | E-02 | ○ |
| C-05 | Twitter OAuth連携（HMAC-SHA1）が削除済み | E-04 | ○ |
| C-06 | ロールベースのアクセス制御は未実装 | E-03 | ○ |
| C-07 | 外部サイトへのリンクはHTTPSを使用 | E-09, E-10, E-11 | ○ |
| C-08 | プロキシ設定をconfig.iniから読込可能 | E-12, E-13, E-21 | ○ |
| C-09 | RC4ストリーム暗号が実装されている | E-07 | ○ |
| C-10 | Base64エンコーディングがx86マシンコードで実装 | E-08 | ○ |
| C-11 | MD5ハッシュがDLL経由で提供されている | E-05, E-06 | ○ |
| C-12 | HMAC-SHA1がDLL経由で定義されている | E-04 | ○ |
| C-13 | RC4はIETF RFC 7465で非推奨 | E-07 | ○ |
| C-14 | MD5は衝突脆弱性が確認されている | E-05 | ○ |
| C-15 | config.iniがプレーンテキストで保存される | E-14 | ○ |
| C-16 | APIキーやシークレットはソースコード上に残存していない | E-03 | ○ |
| C-17 | XSS/SQLi/CSRFはデスクトップアプリのため該当なし | **根拠なし** | △ |
| C-18 | instr関数にオーバーフロー対策の修正が適用 | E-17 | ○ |
| C-19 | fileExists/dirExistsによるファイル存在確認あり | E-18 | ○ |
| C-20 | safeChdir()による安全なディレクトリ変更あり | E-19 | ○ |
| C-21 | 設定値読込時にStartsWith/strmidによる形式検証あり | E-15, E-16 | ○ |
| C-22 | チャートファイルのMD5ハッシュ検証あり（IR用） | E-06 | ○ |
| C-23 | 監査ログ機能は未実装 | **根拠なし** | △ |
| C-24 | HSPは可変長文字列でオーバーフローリスクが低い | E-17 | ○ |
| C-25 | ANSI版HSP 3.51でありUnicode非対応 | **根拠なし** | △ |
| C-26 | DLL改ざんによるコード実行リスクが存在する | **根拠なし** | △ |
| C-27 | チャートファイル読込時の検証が不足 | E-20 | ○ |
| C-28 | プロキシ設定がプレーンテキストで保存される | E-14, E-21 | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-17（XSS/SQLi/CSRF該当なし）**: アプリケーション全体を網羅的に確認したわけではなく、一般的なデスクトップアプリケーションの特性から推定。WebView等の組み込みブラウザコンポーネントが使用されていないことの確認が必要
  - 候補：全ソースコードの網羅的レビュー / HSPのWebView機能有無の確認
- **C-23（監査ログ未実装）**: ログ機能が存在しないことは、該当するコードが見つからなかったことによる消極的根拠。ログ関連の設定ファイルやDLL機能が存在しないことの確認が必要
  - 候補：HSP標準ライブラリのログ機能調査 / kshlib.dllの全エクスポート関数の確認
- **C-25（ANSI版HSP）**: HSPのバージョン情報は`#include "hsp3dish.as"`等のインクルード文から推定。公式ドキュメントでの確認が必要
  - 候補：HSP公式ドキュメント / プロジェクトのビルド設定
- **C-26（DLL改ざんリスク）**: 一般的なWindows DLLの特性に基づく推定。コード署名やDLL検証機構の有無は未確認
  - 候補：DLLの署名確認 / ビルドスクリプトの確認

## 5) リスクフラグ（レビュー観点）
- **リスク2（高）**: RC4暗号化の使用（`third_party/rc4_crypt.hsp`）— 暗号化強度が不十分なアルゴリズムの使用。ただし使用箇所が限定的かつスタンドアロンアプリのため実質的リスクは中程度
- **リスク2（高）**: MD5ハッシュの使用（`src/ir.hsp`）— 衝突脆弱性あり。ただしIR機能削除に伴い実質的に未使用
- **リスク1（中）**: 設定ファイルのプレーンテキスト保存（`kshootmania.hsp:390-416`）— プロキシ設定等が平文保存
- **リスク1（中）**: チャートファイルのバリデーション不足（`src/scene/play/play_chart_load.hsp:256`）— 不正なファイルが読み込まれる可能性
- **リスク0（低）**: DLL改ざんリスク — 一般的なWindows DLLの脅威

## 6) レビュアーチェックリスト（最小）
- [ ] RC4暗号化の具体的な使用箇所と対象データを確認し、暗号化が必要な箇所にはAES等の強度の高いアルゴリズムが使用されるべきか判断する
- [ ] MD5ハッシュがIR機能削除後も他の箇所で使用されていないことを確認する
- [ ] config.iniに機密情報（パスワード、APIキー等）が保存される可能性がないことを確認する
- [ ] チャートファイル読込時のバリデーション（ファイルサイズ上限、形式チェック等）が十分か確認する
- [ ] WebView等のブラウザコンポーネントが使用されていないことを確認し、XSS等のWeb脅威の該当なし判断を検証する
- [ ] kshlib.dll等のDLLに対する署名検証やロードパスの安全性を確認する
