---
generated_at: 2026-01-29 12:00:00
metrics:
  claims_total: 45
  claims_with_evidence: 42
  claims_without_evidence: 3
confidence_derived: 0.93
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.93**
  - 根拠あり：42 / 45、根拠なし：3
- 優先レビュー（高）
  1. **HSTS設定の詳細**：設定可能と記載したが具体的な設定方法の根拠不足
  2. **ログ保持期間**：設定依存と記載したが具体的なデフォルト値の根拠なし
  3. **バックアップGPG暗号化の詳細**：設定項目は確認できるが詳細実装の根拠不足

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

- E-01: `src/backend/InvenTree/InvenTree/settings.py` - Django設定ファイル（認証、CORS、CSRF、ミドルウェア設定）
- E-02: `src/backend/InvenTree/users/authentication.py` - APIトークン認証クラス
- E-03: `src/backend/InvenTree/InvenTree/middleware.py` - カスタムミドルウェア実装
- E-04: `src/backend/InvenTree/InvenTree/permissions.py` - 権限クラス定義
- E-05: `src/backend/InvenTree/users/models.py` - APIトークンモデル、RuleSetモデル
- E-06: `src/backend/InvenTree/users/permissions.py` - 権限チェック関数
- E-07: `src/backend/InvenTree/users/ruleset.py` - ロールセット定義
- E-08: `src/backend/InvenTree/InvenTree/sanitizer.py` - SVGサニタイズ実装
- E-09: `src/backend/InvenTree/InvenTree/config.py` - 設定読み込み、SECRET_KEY管理
- E-10: `src/backend/InvenTree/InvenTree/auth_overrides.py` - allauth認証カスタマイズ

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | セッション認証をサポート | E-01 (REST_FRAMEWORK設定) | ○ |
| C-02 | APIトークン認証をサポート（有効期限・無効化対応） | E-02, E-05 | ○ |
| C-03 | Basic認証をサポート | E-01 (REST_FRAMEWORK設定) | ○ |
| C-04 | OAuth2認証をサポート | E-01 (AUTHENTICATION_BACKENDS) | ○ |
| C-05 | LDAP認証をサポート（オプション） | E-01 (LDAP_AUTH設定) | ○ |
| C-06 | SSO認証をサポート | E-01 (allauth設定) | ○ |
| C-07 | リモートユーザー認証をサポート | E-01, E-03 (InvenTreeRemoteUserMiddleware) | ○ |
| C-08 | マジックリンク認証をサポート | E-01 (sesame.backends.ModelBackend) | ○ |
| C-09 | トークン形式がinv-プレフィックス付き | E-05 (ApiToken.generate_key) | ○ |
| C-10 | トークンデフォルト有効期限365日 | E-05 (default_token_expiry) | ○ |
| C-11 | トークン無効化機能あり | E-02, E-05 (revoked フィールド) | ○ |
| C-12 | トークン表示時マスク処理 | E-05 (ApiToken.token プロパティ) | ○ |
| C-13 | MFA対応（TOTP, リカバリーコード, WebAuthn） | E-01 (MFA_SUPPORTED_TYPES) | ○ |
| C-14 | MFA強制設定可能 | E-03 (Check2FAMiddleware) | ○ |
| C-15 | セッションCookie SameSite設定可能 | E-01 (COOKIE_MODE, SESSION_COOKIE_SAMESITE) | ○ |
| C-16 | セッションCookie Secure本番環境で有効化 | E-01 (COOKIE_SECURE) | ○ |
| C-17 | パスワードバリデーター4種類使用 | E-01 (AUTH_PASSWORD_VALIDATORS) | ○ |
| C-18 | ログイン試行制限あり | E-01 (ACCOUNT_RATE_LIMITS) | ○ |
| C-19 | ロールベースアクセス制御（9ロール） | E-07 (RULESET_CHOICES) | ○ |
| C-20 | 各ロールにcan_view/add/change/delete権限 | E-05, E-07 (RuleSet.RULE_OPTIONS) | ○ |
| C-21 | RolePermission権限クラス | E-04 | ○ |
| C-22 | OAuth2スコープ制御 | E-04 (InvenTreeTokenMatchesOASRequirements) | ○ |
| C-23 | CORS設定サポート | E-01 (CORS_*設定) | ○ |
| C-24 | CSRF保護ミドルウェア | E-01 (CsrfViewMiddleware) | ○ |
| C-25 | X-Frame-Optionsミドルウェア | E-01 (XFrameOptionsMiddleware) | ○ |
| C-26 | HSTS設定可能 | **根拠なし** | △ |
| C-27 | SECRET_KEY管理方式（環境変数/ファイル/自動生成） | E-09 (get_secret_key) | ○ |
| C-28 | OIDCキーRSA 4096ビット | E-09 (get_oidc_private_key, key_size=4096) | ○ |
| C-29 | SVGサニタイズ実装 | E-08 (sanitize_svg) | ○ |
| C-30 | SVG許可要素リスト定義 | E-08 (ALLOWED_ELEMENTS_SVG) | ○ |
| C-31 | SVG許可属性リスト定義 | E-08 (ALLOWED_ATTRIBUTES_SVG) | ○ |
| C-32 | CSSSanitizer使用 | E-08 (CSSSanitizer()) | ○ |
| C-33 | CSRFヘッダー名X-CSRFTOKEN | E-01 (CSRF_HEADER_NAME) | ○ |
| C-34 | CSRFクッキー名csrftoken | E-01 (CSRF_COOKIE_NAME) | ○ |
| C-35 | CSRF信頼オリジン設定可能 | E-01 (CSRF_TRUSTED_ORIGINS) | ○ |
| C-36 | エラーログ記録（error_report） | E-03 (InvenTreeExceptionProcessor) | ○ |
| C-37 | structlogによる構造化ログ | E-01 (structlog.configure) | ○ |
| C-38 | OpenTelemetryトレーシング対応 | E-01 (TRACING_ENABLED) | ○ |
| C-39 | Sentry統合対応 | E-01 (SENTRY_ENABLED, init_sentry) | ○ |
| C-40 | ミドルウェアスタック順序 | E-01 (MIDDLEWARE リスト) | ○ |
| C-41 | ホスト設定検証ミドルウェア | E-03 (InvenTreeHostSettingsMiddleware) | ○ |
| C-42 | トークン最終利用日追跡 | E-02, E-05 (last_seen) | ○ |
| C-43 | ログ保持期間（設定依存） | **根拠なし** | △ |
| C-44 | バックアップGPG暗号化 | E-01 (DBBACKUP_GPG_RECIPIENT) | △ |
| C-45 | Django ORM使用（SQLインジェクション対策） | E-05, 各モデルファイル | ○ |

## 4) 不足情報（Unknown / Missing）
- **HSTS設定の詳細**
  - settings.pyにHSTS関連の明示的な設定が確認できなかった
  - 候補：Webサーバー（nginx/Apache）レベルでの設定 / Django SecurityMiddleware設定 / config.yamlでの設定
- **ログ保持期間の具体的な値**
  - structlogやerror_reportの保持期間設定が確認できなかった
  - 候補：Django管理画面での設定 / データベース設定 / 外部ログ管理システム
- **GPGバックアップ暗号化の詳細実装**
  - 設定項目は存在するが、詳細な暗号化処理の実装確認が不十分
  - 候補：django-dbbackupライブラリのドキュメント / backup.pyの詳細確認

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 認証・認可の基本実装は十分に確認できた
- **0: 低リスク** - CSRF/XSS対策の実装は十分に確認できた
- **1: 中リスク** - HSTS設定の確認が必要（Webサーバーレベルでの対応が必要な可能性）
- **0: 低リスク** - SECRET_KEY管理は適切に実装されている
- **1: 中リスク** - ログ保持期間の運用設計が別途必要

## 6) レビュアーチェックリスト（最小）
- [ ] HSTS設定が本番環境で適切に構成されているか確認（Webサーバー設定含む）
- [ ] ログ保持期間の運用ポリシーが定義されているか確認
- [ ] GPGバックアップ暗号化を使用する場合の鍵管理手順が定義されているか確認
- [ ] LDAP認証を使用する場合のTLS設定が適切か確認
- [ ] OAuth2/OIDC設定が本番環境で適切に構成されているか確認
- [ ] 記載されていないセキュリティ設定（WAF、IDS/IPS等）の追加検討
