SECURITY.md
Rama main · réplica de lectura del repositorio original.
# セキュリティポリシー (Security Policy)
Tollgate はセキュリティと堅牢性を最優先に設計されています。本ドキュメントでは、サポート対象バージョンおよび脆弱性の報告手順について説明します。
---
## サポート対象バージョン
最新のマイナーバージョンおよびパッチバージョンに対してセキュリティアップデートを提供します。
| バージョン | サポート状況 |
|:---|:---:|
| 1.x.x (最新) | :white_check_mark: サポート対象 |
| < 1.0.0 | :x: サポート終了 |
---
## 脆弱性の報告手順
Tollgate でセキュリティ上の脆弱性や懸念を発見した場合は、**公開の GitHub Issue や Pull Request を作成せず**、以下の手順で非公開にてご報告ください。
1. **報告先**:
- [GitHub Security Advisories (非公開報告)](https://github.com/kanmon-hq/tollgate/security/advisories/new) を通じてご連絡ください。
- またはメンテナー宛のメールアドレスにご連絡ください。
2. **報告に含めていただきたい情報**:
- 脆弱性の概要および影響を受けるコンポーネント(例: 認証ヘッダー検証、レートリミット、DB 永続化層等)
- 再現手順(PoC、リクエスト例、設定ファイルの再現例など)
- 想定される影響範囲(なりすまし、認可バイパス、DoS 等)
- 可能であれば修正案や緩和策
3. **対応プロセス**:
- 報告を受信後、通常 **48 時間以内** に受領確認と初期評価のご連絡を行います。
- 脆弱性の再現・修正パッチの開発・テストを非公開で行います。
- 修正が完了次第、パッチバージョンをリリースし、セキュリティアドバイザリを公開します。
---
## Tollgate のセキュリティ設計方針
Tollgate では以下の原則に基づき安全なデフォルト動作(Secure-by-Default / Fail-Fast)を徹底しています:
1. **API キーの平文非保存**:
- 永続化層(DynamoDB, Azure Cosmos DB, Google Cloud Firestore, SQLite)には SHA-256 ハッシュダイジェストのみを保存し、平文キーは一切保持しません。
2. **フォールバックシークレットの排除 (Fail-Fast)**:
- マスター管理者キー(`ADMIN_API_KEY`)などの認証情報は、コード内に既知のデフォルト値をフォールバックとしてハードコードしていません。未設定時は安全のため起動時または検証時に即座に拒絶されます。
3. **コンテキスト競合の即時遮断 (Strict Validation)**:
- クライアント指定の `X-Tenant-ID` / `X-Service-ID` と、API キーの属性値に不一致(コンフリクト)がある場合、暗黙的に上書きして処理を継続せず、`403 Forbidden` で即座にリクエストを拒絶します。