セキュリティ
最終更新日: 2026-08-01
本ページは、hibot サービスにおけるセキュリティ対策の現状を開示するものです。本サービスは BYOK(ADR-017)によりお客様の LLM / 埋め込み API キーをお預かりする構造を採用しているため、当該キーおよびテナント情報を安全に取り扱うための技術的・組織的・物理的安全管理措置を講じています。
§1. 基本方針
合同会社デザインL(以下「当社」といいます。)は、hibot サービスを通じてお預かりする個人情報・テナント情報・BYOK API キーその他の機密情報について、APPI その他の関係法令、ならびに当社が定める内部規程に基づき、適切な安全管理措置を講じます。
§2. アーキテクチャ
本サービスは、AWS のマネージドサービス群を中心とした構成(ADR-019)で構築されています。
| 役割 | 採用サービス |
|---|---|
| 認証 | AWS Cognito User Pools(ADR-020) |
| アプリケーション実行基盤 | AWS Lambda + Amazon API Gateway(HTTP API)、Chat API は Lambda Response Streaming |
| データベース | Amazon RDS for PostgreSQL(pgvector 拡張) + RDS Proxy |
| オブジェクトストレージ | Amazon S3 |
| CDN・ウィジェット配信 | Amazon CloudFront |
| 鍵管理 | AWS KMS |
| シークレット管理 | AWS Secrets Manager |
| メール送信 | Amazon SES |
| 監視・ログ | Amazon CloudWatch(Logs / Metrics / Alarms)、AWS CloudTrail |
データは原則として 東京リージョン(ap-northeast-1) に保管します。CloudFront のグローバル配信の都合により、一部メタデータは米国(us-east-1)を経由する場合があります。
2.1. ネットワーク構成
- Amazon VPC 内に Public / Private サブネットを構成し、Lambda および RDS は Private Isolated に配置します
- 外部 API(Anthropic / OpenAI 等)へのアクセスは、NAT Gateway を経由してインターネットに出ます
- セキュリティグループは最小権限の原則で構成し、Lambda → RDS Proxy → RDS のみ許可します
§3. 認証
3.1. パスワードレス OTP
管理者認証は、AWS Cognito User Pools が発行する 6 桁・15 分有効のワンタイムパスコード(OTP) を Amazon SES 経由で登録メールアドレスに送信し、入力により認証する方式です(ADR-020)。パスワードは保管しません。
3.2. トークン管理
- ID トークンおよびアクセストークンは有効期間 1 時間、リフレッシュトークンは 30 日とします
- リフレッシュトークンは
HttpOnly + Secure + SameSite=Strict属性の Cookie に保管し、XSS による窃取を防ぎます - アクセストークンはブラウザのメモリにのみ常駐させ、永続化しません
3.3. 即時失効
users.is_revoked フラグを設けており、当該フラグの設定により、既存の JWT による API 呼び出しを直ちに 401(認証エラー)として処理します。Cognito 側でも AdminUserGlobalSignOut を呼び出し、リフレッシュトークンの再利用を防ぎます。
3.4. 列挙対策・レート制限
- メールアドレスの存在有無を画面上で区別しない応答設計とします
- API Gateway の Usage Plan により、同一 IP からは 1 時間あたり 20 回、同一メールアドレスからは 15 分あたり 5 回までに制限します
§4. データ保護
4.1. 通信の暗号化
全通信を HTTPS(TLS 1.2 以上)で保護します。CloudFront(cdn.hibothub.com)、API Gateway(api.hibothub.com)、Cognito エンドポイント(auth.hibothub.com)には、ACM が発行する証明書を適用します。
4.2. 保管時の暗号化
| 対象 | 暗号化方式 |
|---|---|
| Amazon RDS(DB ディスクおよび自動スナップショット) | AWS KMS 顧客管理キー(CMK alias/hibot-{env}-rds、AES-256) |
| Amazon S3(知識源ファイル、静的アセット、ウィジェット) | AWS KMS 顧客管理キー(CMK alias/hibot-{env}-s3、AES-256) |
| AWS Secrets Manager | AWS KMS 顧客管理キー(CMK alias/hibot-{env}-secrets) |
| AWS CloudTrail ログ | AWS KMS 顧客管理キー(CMK alias/hibot-{env}-cloudtrail、Console および IAM ユーザーからの直接復号は不可) |
RDS は Point-In-Time Recovery(PITR)と自動バックアップ(フェーズ 1 は 7 日、セルフサーブ拡張時に 14 日に延伸予定)を有効化しています。
4.3. BYOK API キーの暗号化([ADR-017] / ADR-022)
お客様が登録した API キーは、以下の二層構造による Envelope Encryption で暗号化し、tenant_secrets テーブルに保管します。
- KEK(Key Encryption Key): AWS KMS の顧客管理キー(CMK
alias/hibot-{env}-byok)。Chat / Admin / Worker Lambda の実行ロールのみkms:Decrypt権限を有します - DEK(Data Encryption Key): アプリケーション層で
crypto.randomBytes(32)により生成する 256 ビットのランダム鍵。シークレット 1 件ごとに独立した DEK を生成(per-secret DEK)し、KEK で暗号化(ラップ)した状態でencrypted_dekに保管します - 本体の暗号化: 平文の API キーを DEK と 96 ビットの
nonceを用いて AES-256-GCM(AEAD)で暗号化し、ciphertextおよび 128 ビットのauth_tagを保管します
復号は LLM / 埋め込み API 呼び出しの直前にのみ行い、平文の API キーはメモリ上にのみ短時間存在させ、呼び出し後速やかに消去します。平文の API キーは、保管後の API レスポンス、管理画面、ログ、エラー出力等のいずれにおいても再表示されません(末尾 4 桁等のマスク表示のみ)。
§5. 鍵管理([ADR-019] / [ADR-022])
CMK はサービスごとに 5 種類分離し(byok / rds / s3 / cloudtrail / secrets)、各 CMK の Key Policy で利用主体を最小権限化しています。
- 全 CMK で AWS KMS の自動年次ローテーション を有効化しています
tenant_secrets.key_versionをYYYYMM形式で保持し、CMK 切替や KEK 侵害疑いの発生時に DEK の再ラップ(rewrap)が可能な構造とします- staging 環境と prod 環境の CMK を完全分離し、staging 環境の実行ロールから prod 環境の CMK を
kms:Decryptできないよう IAM で制限します。月次で staging への prod スナップショット復元による復号失敗確認を行い、分離が維持されていることを検証します - Secrets Manager のシークレットそのもの(DB 資格情報等)は 30 日サイクルで自動ローテーションします
§6. マルチテナント分離(ADR-006)
本サービスは複数の利用者(テナント)の情報を同一の DB / インフラ上で取り扱うマルチテナント構成です。テナント間の情報分離は以下の二重防壁で確保します。
- PostgreSQL の Row Level Security(RLS): 全テナント関連テーブルに
tenant_id列を設け、RLS ポリシーにより接続コンテキストのtenant_id以外の行へは構造的に到達できないようにします - アプリケーション層の検証: 全 API リクエストにおいて、リクエストパラメータの
tenant_idを信用せず、認証経路(Cognito JWT →users.cognito_user_id→memberships→tenant_id、または公開テナントキーpk_xxx→tenant_id)から確定したtenant_idを権威として用います
テナント解決は SECURITY DEFINER 関数経由で実装し、解決手順の改ざんを防ぎます。テナント分離違反の試行(IDOR 試行)はアラートの対象とします。
§7. 取り込みセキュリティ(ADR-015)
知識源として URL クロールおよびファイルアップロードを行う際の不正利用および攻撃を以下のとおり防御します。
- SSRF(Server-Side Request Forgery)防御: プライベート IP レンジ(RFC1918)、メタデータエンドポイント(
169.254.169.254等)、ループバック、リンクローカルアドレスへのリクエストを拒否します。許可スキームはhttpおよびhttpsのみとします - MIME 検証: アップロードファイルは拡張子ではなくマジックバイトに基づく MIME 検証を行い、許可された形式のみ受け付けます
- サイズ・圧縮比制限: ファイルサイズおよび解凍後サイズ(zip bomb 対策)に上限を設けます
- クロールルール:
robots.txtを尊重し、利用者が許可されたサイトのみをクロールします
§8. 監査ログ
- AWS CloudTrail: 全リージョンの管理イベントを記録し、S3 への保存時に Object Lock(コンプライアンスモード)とログファイル整合性検証を有効化します(ADR-019 §2-2)
- AWS Config: リソース構成記録および簡易ルールセット(暗号化必須、パブリック S3 禁止、IAM キー 90 日ローテーション等)を有効化します
- Amazon GuardDuty / AWS Security Hub: 全リージョンで有効化し、不審な API 呼び出しおよびベンチマーク違反を検知します
- アプリケーション監査ログ: BYOK API キーの設定・更新・削除・使用、テナント分離違反の試行、認証失敗等を CloudWatch Logs に記録します
- 保持期間: アプリケーション監査ログは原則として 1 年間保持します
- PII / 機密のマスキング: ログには平文の API キー、認証トークン、個人を直接特定する情報を記録しない方針を徹底し、出力前のマスキングをアプリケーション側で実施します
§9. バックアップ・災害復旧
- RDS 自動バックアップ: 日次スナップショット、PITR 有効化、フェーズ 1 は 7 日保持(セルフサーブ拡張時に 14 日へ延伸予定)
- 月次別アカウントスナップショットコピー: 監査・復旧用に別アカウントへの月次スナップショットコピーを保持
- DR 手順: KEK・RDS・KMS 等の障害シナリオごとの復旧手順を ADR-022 §6 に文書化しています
- フェーズ 1(旅の糸先行運用期)は単一リージョン(ap-northeast-1)構成です。リージョン全体障害時の復旧は AWS のリージョン復旧後となります。マルチ AZ 冗長化およびクロスリージョンスナップショットはフェーズ 3 で導入予定です
§10. インシデント対応
- 重大インシデント(個人情報漏えい、機密情報漏えい、システム停止を伴う障害等)が発生した場合、当社は 発生覚知から 24 時間以内 を目標に、影響を受けるテナントの管理者に対し連絡を行います
- 法令上の通知義務(個人データ漏えい等の個人情報保護委員会への報告等。原則として覚知から 72 時間以内)がある場合は、当該法令の定めに従い適切に対応します
- インシデント連絡先: security@hibothub.com
§11. 脆弱性報告(責任ある開示)
当社は、本サービスのセキュリティに関する脆弱性報告を歓迎します。責任ある開示(Responsible Disclosure) のご協力をお願いいたします。
- 報告先: security@hibothub.com
- 一次回答: 受領後 5 営業日以内 に一次回答をお返しすることを目標とします
- 公表のグレース期間: 報告から 90 日間 は当社による修正対応のためのグレース期間としてご配慮ください。当社による修正対応完了後、必要に応じて脆弱性情報を公表することがあります
- 報告にあたっては、本サービスのサービス継続性および他のお客様への影響に配慮し、検証のための過度な負荷をかける行為、他テナントの情報を実際に取得する行為等はお控えください
§12. 第三者監査・認証
- 現状: SOC 2、ISO 27001、ISMS、P マーク等の 第三者認証はいずれも未取得 です
- 方針: フェーズ 1(旅の糸単独運用)においては、適用上の必要性および費用対効果から取得を見送っています。セルフサーブ展開([ADR-017] フェーズ 2)以降、需要が見えた段階で取得を検討します
- 取得状況が変化した場合は、本ページを改訂のうえお知らせします
§13. サブプロセッサー
本サービスの提供にあたり、以下のサブプロセッサーを利用しています(プライバシーポリシー §5 と整合)。
| サブプロセッサー | 役割 | 所在 |
|---|---|---|
| Amazon Web Services(AWS) | 個人情報・テナント情報・暗号化キー材料の保管、コンピューティング、メール送信 | 東京リージョン(ap-northeast-1)を基本、CloudFront・ACM は us-east-1 を併用 |
| Anthropic, PBC | LLM による回答生成(BYOK 構造により、お客様が登録したキーで API 呼び出し) | 米国 |
| OpenAI, Inc. | 埋め込み生成および補助的な回答生成(BYOK 構造) | 米国 |
サブプロセッサーの追加・変更があった場合は、本ページを改訂のうえお知らせします。
改訂履歴
| 日付 | 版 | 変更内容 |
|---|---|---|
| 2026-06-22 | v0.3.1 | 計画書化前レビュー対応。§4.1 の「Cognito Hosted UI」言及を撤去し、自前 UI + AWS Amplify Auth SDK 構成([ADR-020])と整合する Cognito エンドポイント(auth.hibothub.com)の表記に修正。CloudFront(cdn.hibothub.com)・API Gateway(api.hibothub.com)の本番ドメインも併記し、TLS 終端ポイントを明確化 |
§14. 改訂
当社は、本ページの内容を必要に応じて改訂することがあります。改訂後の内容は本ページに掲載した時点から有効となります。
§15. お問い合わせ窓口
本ページに関するお問い合わせは、以下の窓口までご連絡ください。
- メールアドレス: security@hibothub.com
- 受付時間: 平日 10:00〜18:00(土日祝日および年末年始を除く)
改訂履歴
| 日付 | 版 | 変更内容 |
|---|---|---|
| 2026-06-22 | v0.1.0 | 初版ドラフト。[ADR-006](マルチテナント)/ [ADR-015](取り込みセキュリティ)/ [ADR-017](BYOK)/ [ADR-019](AWS インフラ)/ [ADR-020](Cognito 認証)/ [ADR-022](KMS 鍵世代運用)に基づき、[SCR-LP02 §3.3.4] の骨格に沿って起こす。販売事業者名および連絡先メールアドレスは要記入のプレースホルダ。SOC 2 / ISO 27001 / P マークは未取得である旨を §12 で明示 |
| 2026-06-22 | v0.2.0 | 運営者情報・連絡先メールアドレスを確定: 販売事業者=合同会社デザインL(design-link.net)/ 運営統括責任者=鈴木 正代 / 所在地=福島県耶麻郡北塩原村桧原字桧原簗部沢山1091-48 / 電話=090-8929-7479 / メール=hibot 専用サブアドレス(privacy@/legal@/concierge@/security@ の hibothub.com、SES で受信)。Qurated はブランド/チーム名として保持。 |
| 2026-06-22 | v0.3.0 | 本番ドメインを gethibot.com → hibothub.com に変更([ADR-019] Annex A で再評価・確定)。連絡先メールアドレスを privacy@hibothub.com / legal@hibothub.com / concierge@hibothub.com / security@hibothub.com に更新(本文中の該当箇所もすべて自動置換)。SES 受信設定はドメイン取得完了後に有効化する点は v0.2.0 から不変 |