1. 概要
本ページは、Brainpercent, LLC(米国デラウェア州)が運営する Brainpercent でお客様のデータを保護するセキュリティ対策を説明します。今日実際に導入されているものだけを記載します。保有していない認証を主張することはありません。個人データの処理方法については、プライバシーポリシーとデータ処理補遺(DPA)をご覧ください。
2. 暗号化
お客様のデータはあらゆる段階で暗号化されています:
- 保存時: データベースとファイルストレージに AES-256 暗号化(Supabase Postgres と Storage、EU フランクフルトリージョンでホスティング)。
- 接続アカウントのトークン: 接続されたソーシャルアカウントの OAuth トークンは、シークレットごとに一意の初期化ベクトルと認証タグを用いた AES-256-GCM でアプリケーションレベルでも追加暗号化されます。
- 転送時: ブラウザ、当社サーバー、サービスプロバイダー間のすべての接続に TLS 1.2 以上を使用。
3. アクセス制御
お客様のデータへのアクセスは複数の層で制限されています:
- 行レベルセキュリティ: Postgres の行レベルセキュリティ(RLS)がデータベースレベルですべてのクエリをお客様自身のユーザーに限定するため、あるユーザーが別のユーザーの行を読むことはできません。
- ロール分離: データベースクライアントはロールで分離されています。ブラウザで実行されるクライアントが管理者資格情報を持つことはなく、特権操作はサーバーサイドでのみ実行されます。
- 暗号化されたシークレット: API キーと環境シークレットは Vercel と Supabase に暗号化して保存され、ソース管理にコミットされることはありません。
4. アプリケーションセキュリティ
アプリケーションとその統合は堅牢化されています:
- セキュリティヘッダー: HSTS などのセキュリティヘッダーをレスポンスに設定し、HTTPS を強制して一般的な Web 攻撃面を削減します。
- Webhook 署名検証: 受信 Webhook(Stripe、Inngest)は、処理の前に暗号署名に対して検証されます。
- レート制限: 認証エンドポイントの分散レート制限により、クレデンシャルスタッフィングやブルートフォース攻撃を遅らせます。
5. 決済セキュリティ
決済カードデータは、PCI-DSS 認証を受けた決済処理業者である Stripe が全面的に取り扱います。カード番号が当社サーバーに触れることはなく、当社が保存することもありません。当社は Stripe が提供する機微でない参照情報(顧客 ID やサブスクリプション ID など)のみを保存します。
6. 監視とインシデント対応
当社は問題を監視し、重要な場合には通知することを約束します:
- エラー監視: アプリケーションエラーは Sentry で捕捉・監視されます。
- 侵害通知: データ侵害がお客様の個人データに影響する場合、法律で義務付けられているところでは(GDPR 第 33 条など)、影響を受けるユーザーと関係当局に 72 時間以内に通知します。
7. 現在の制限
当社はセキュリティの演出よりも誠実さを優先します。以下はまだ持っていないものです:
- 単独運営の会社: Brainpercent は現在、1 人で構築・運営されています。24 時間 365 日のセキュリティチームも、複数人による職務分離もありません。本番環境へのアクセスはその 1 人に限定されており、これは内部の攻撃面を最小限に保つことにもなります。
- SOC 2 / ISO 27001: まだ取得していません。SOC 2、ISO 27001、その他保有していない認証を主張することはなく、第三者によるペネトレーションテストも完了していません。
8. 責任ある開示
セキュリティ脆弱性を発見したと思われる場合は、次のアドレスにメールしてください: edward@brainpercent.com 件名は「Security」でお願いします.
再現手順を含めてください。他のユーザーのデータにアクセスしたり、サービスを劣化させたり、当社が修正する合理的な機会を得る前に問題を公開したりしないでください。すべての報告を読み、72 時間以内の返信を目指します。