OVERVIEW · 01
セキュリティサマリー
| 領域 | 実装 |
|---|---|
| 通信暗号化 | TLS 1.2以上(Let's Encrypt自動更新)・HTTP→HTTPS強制リダイレクト |
| 認証 | JWT + HttpOnly Cookie + Secure + SameSite=Strict |
| パスワード保存 | bcrypt ハッシュ(ソルト付き・pbkdf2からの自動移行対応) |
| テナント分離 | Organization単位・canAccessClient関数でサーバーサイド検証 |
| データセンター | XServer 国内データセンター(日本国内) |
| バックアップ | 日次DBバックアップ・直近5世代保持 |
| アクセス管理 | owner / superadmin の権限分離、組織外アクセスは不可 |
| 個人情報保護 | 個人情報保護法(日本)に準拠 |
TRANSPORT · 02
通信と暗号化
全通信をTLSで暗号化
すべての通信はTLS 1.2以上で暗号化します。管理画面・公開LP・API通信すべてに適用。古い暗号スイートは無効化しています。
HTTPS強制リダイレクト
HTTPアクセスは301リダイレクトでHTTPSに強制し、HSTS(Strict-Transport-Security)ヘッダによりブラウザ側でもHTTPS接続を優先します。
証明書の自動更新
Let's Encryptによる無料SSL証明書を導入し、自動更新を設定。証明書切れによる通信停止を防いでいます。
Secure / SameSite Cookie
セッションCookieには Secure・HttpOnly・SameSite=Strict フラグを付与。JavaScriptからのアクセスとクロスサイト送信を遮断します。
AUTH · 03
認証とパスワード
JWT + HttpOnly Cookie方式
ログイン成功時にJWT(JSON Web Token)を発行し、HttpOnly Cookieに格納します。ブラウザのJavaScriptからはトークンを読み取れず、XSS攻撃時のトークン窃取リスクを抑制しています。有効期限は一般的な業務利用に合わせた短さに設定。
bcryptによるパスワードハッシュ
パスワードはbcryptでハッシュ化して保存します。ソルトはレコードごとに自動生成。過去にpbkdf2形式で保存されていたパスワードは、ログイン成功時に自動的にbcryptへ再ハッシュする互換移行処理を実装しています。平文パスワードはログ・DB・バックアップのいずれにも記録されません。
管理画面とのドメイン分離
公開LPはaio-search.com、認証後の管理画面はadmin.aio-search.comで運用しています。サブドメインを分けることで、Cookieスコープの限定・誤クロス送信の抑制・将来のWAF分離に備えています。
TENANT · 04
テナント分離(Organization)
組織単位の厳格な分離
AIOしらべるくんは全データをOrganization(組織)単位で管理しています。ユーザーは必ず1つの組織に所属し、クライアント・キーワード・レポート・ユーザー情報はすべて組織IDに紐付きます。
サーバーサイド検証
クライアントデータにアクセスする全APIで、canAccessClient(userId, clientId) 関数によるアクセス制御を行います。この関数は「要求されたクライアントが、要求者の所属組織に属するか」をDBレベルで検証し、所属しない場合は403 Forbiddenを返します。URL直打ち・ID推測による他組織データへのアクセスは成立しません。
権限モデル
組織の通常利用者は owner(契約者)として管理され、運用保守用の superadmin とは分離しています。組織外のユーザーは、権限が付与されていない限り一切のデータにアクセスできません。
DATA · 05
データの保存と国内運用
XServer 国内データセンター
全データはXServerの国内データセンターで保管しています。データが日本国外に移送されることは原則ありません(例外:AIレポート生成など一部機能の提供に必要な最小限の情報は、外部処理基盤を経由する場合があります。これは本サービスの機能提供上必須の範囲に限定しています)。
日次バックアップ
データベース全体のスナップショットを日次で取得し、直近5世代を保持します。障害・誤操作時は該当日時のスナップショットから復旧可能です。バックアップ自体も暗号化された領域に保存しています。
データ削除ポリシー
2社目以降の有料利用を全解除した後は90日間データを保持し、この期間内であればエクスポート・再開が可能です。90日経過後は物理削除します。1社目(無料枠)のデータは継続利用中は保持され続けます。なおバックアップからは次のバックアップローテーションに従って順次削除されます。
OPERATION · 06
運用・監視・インシデント対応
アクセスログ・操作ログ
管理画面へのログイン・主要操作のログを保全しています。不審なアクセス・大量リクエストが観測された場合は、運用者が目視で確認します。ログ保持期間は現行6ヶ月です。
外部サービス認証情報の管理
AI解析・決済・通知などで利用する外部サービスの認証情報は環境変数で管理し、ソースコード・バージョン管理リポジトリには一切含めていません。漏洩疑いがある場合は即時ローテーションを行う体制です。
インシデント発生時の対応
個人情報・クライアントデータに影響するインシデントを検知した場合、影響範囲を特定し、該当組織のownerに対して速やかに連絡します。個人情報保護法に基づく報告義務が発生する場合は、個人情報保護委員会への報告を行います。
COMPLIANCE · 07
法令遵守とプライバシー
AIOしらべるくんは日本の個人情報保護法に準拠して運用しています。取得する個人情報は、本サービスの提供に必要な範囲(氏名・メールアドレス・組織名・課金情報等)に限定し、目的外利用は行いません。
収集するデータの具体的な取り扱いについては プライバシーポリシー を、サービス利用の契約関係については 利用規約 を、特定商取引法に基づく表記は 特定商取引法表記 をご確認ください。
FAQ · 08
セキュリティに関するFAQ
IPアドレス制限は可能ですか?
大規模運用契約では個別設定に対応可能です。お問い合わせよりご相談ください。
脆弱性報告はどこに送ればいいですか?
info@soraq.net までお知らせください。再現手順を添えていただけると対応が迅速になります。セキュリティ関連の報告には優先的に対応します。
解約後のデータは本当に消えますか?
2社目以降の有料利用を全解除した後90日以内にエクスポート機能で取得いただき、90日経過時点でDBから物理削除します。1社目(無料枠)のデータは継続利用中は保持され続けます。日次バックアップに含まれていた分も、次のローテーションサイクルで順次削除されます。