データセキュリティ
SecureCodingHubはあらゆる層でセキュリティを設計されています。このページでは、組織のデータを保護する方法をカバーします。
暗号化
すべてのデータは業界標準の暗号化で保護されています:
転送中
ブラウザとサーバー間のすべてのデータはTLS 1.2+を使用して暗号化されます。平文送信はありません。
保存時
保存時のすべてのデータはAES-256暗号化を使用して暗号化されます。データベースバックアップは暗号化されます。
インフラストラクチャ
- AWS (米国リージョン) でホスト
- アプリケーションとデータベースは分離されたネットワーク上
- 定期的なセキュリティパッチと更新
- AWS Shield経由のDDoS保護
- 自動監視とアラート
データ処理
保存するデータとその理由は次の通りです:
| データタイプ | 保存 | 目的 |
|---|---|---|
| ユーザーメールと名前 | はい | アカウント識別 |
| チャレンジ進捗とスコア | はい | トレーニング追跡 |
| スタック設定 | はい | パーソナライゼーション |
| 認証トークン | 一時的 | セッション管理 |
| パスワード | いいえ | パスワードレス認証を使用 |
| ソースコード | いいえ | チャレンジはクライアント側のみ |
コンプライアンス
- GDPR準拠 — 正当な利益 / 契約ベースでのデータ処理
- ユーザーはデータエクスポートまたは削除をリクエストできます
- データ保持: アクティブなアカウントは無期限に保持、削除されたアカウントは90日後にパージ
- サブプロセッサーはプライバシーポリシーにリスト
アクセス制御
- 各組織内のロールベースアクセス制御 (
org_adminとlearner) - 組織レベルのデータ分離 (マルチテナント) — すべてのレコードはデータアクセス層で強制される
organizationIdスコープを運びます - プロビジョニングAPIのSCIMトークン認証 (SSOが最初に構成されていることでゲート)
- 公開RESTおよびWebhookサーフェスのAPIキーごとのレート制限 (キーあたり1分あたり60リクエスト、1時間あたり1,000リクエスト)。匿名のWeb連絡フォームの別個のIPリミッター (5 / 15分)
- ブラウザ向け管理者および学習者エンドポイントのJWT bearerトークン。公開サーフェスの長期ハッシュ化APIキー — 完全な詳細は認証
Webhook署名
SecureCodingHubからエンドポイントへのアウトバウンドWebhookは、エンドポイント作成時に管理者に一度表示され、二度と返されないエンドポイントごとのシークレットを使用してHMAC-SHA256で署名されます。署名ヘッダーはt=<unix_seconds>,v1=<hex>形式です。署名されたペイロードは<t>.<raw_body>です。レシーバーは、リプレイから防御するためにタイムスタンプがレシーバーのクロックから5分以上ずれている配信を拒否し、署名を定数時間で比較する必要があります。
配信は少なくとも1回です。失敗した配信 (非2xxレスポンスまたはネットワーク失敗) は、1m / 5m / 30m / 2h / 最終試行スケジュールで指数バックオフで再試行されます。5回の失敗試行後、エンドポイントは自動的に無効化され、組織管理者は監査ログを通じて通知されます。セットアップと検証コードサンプルはAPI → Webhookにあります。
アプリケーションレベルのシークレット処理
3つのシークレットタイプがアプリケーション層で管理されます。それらのディスク上の処理は、上のストレージ層の暗号化と一緒に完全性のためにここに説明されています。
| シークレット | ストレージ | ライフタイム |
|---|---|---|
| 公開APIキー | SHA-256ハッシュ、9文字のプレフィックス (scs_live_)、最後の4文字のみが永続化されます。完全なトークンは作成時に一度表示され、サーバーから再度取得できません。 | デフォルトで無期限。作成時にオプションの有効期限日を設定できます。取り消しは即座に有効になります。 |
| Webhook署名シークレット | サーバーがすべてのアウトバウンド配信に署名するために生の値を必要とするため、Webhookエンドポイントレコードと一緒に平文で保存されます。作成時に一度表示され、API経由で二度と返されません。ローテーションには、エンドポイントの削除と再作成が必要です。 | Webhookエンドポイントが存続する限り存続。 |
| Magic code (email OTP) | 6桁のコードはmagic code行に平文として永続化されます。コードはシングルユースで、ユーザーのメールにバインドされています。最初の検証後、行は消費済みとマークされます。 | 各コードは発行後10分で期限切れになります。消費されない期限切れコードは、ハウスキーピングがクリアするまで監査トレイルとしてテーブルに残ります。 |
| SSOクライアントシークレット / SAML証明書 | サーバーがIdPと交渉するために生の値を必要とするため、SchSsoConfigレコードに平文で保存されます。構成が保存された後、読み取りエンドポイントを通じて公開されません。 | SSO構成が存続する限り存続。 |
脆弱性の報告
セキュリティ脆弱性を発見した場合は、security@securecodinghub.comに連絡してください。すべての報告を真剣に受け止め、48時間以内に対応することを目指しています。
SecureCodingHubでのデータ分類
私たちは、環境内のデータを3つの実用的なバケットに分類しています。顧客データは、組織に属し、ユーザーがプラットフォームを通じて入力または生成した情報です: アカウント識別子、学習者のメールアドレス、ロール割り当て、トレーニング進捗、個別のチャレンジに対するスコア、スタック設定。このバケットは、DPOが気にし、内部で最高機密性の階層として扱うものです。
運用テレメトリは2つ目のバケットです。リクエストログ、匿名化されたパフォーマンスメトリック、個人識別子が削除されたエラートレース、プラットフォーム全体の信頼性ダッシュボードを表示するために使用されるカウンターをカバーします。このデータはサービスを安全に実行するために必要であり、顧客データよりも短いローリングウィンドウで保持されます。3つ目のバケットはチャレンジコンテンツ自体 — 私たちが作成してユーザーに配信する脆弱なコードサンプル、ヒント、参照ソリューションです。そのコンテンツは私たちの知的財産であり、あなたのものではなく、組織のレコードと混在していません。
保持ウィンドウはそれに応じて異なります。アクティブな顧客アカウントは契約が有効である間保持されます。アカウント削除時、識別可能な顧客データを90日のクロックでパージします。誤った削除をウィンドウ内で元に戻せるようにラグが存在します。運用テレメトリは、月ではなく週で測定される短いサイクルでロールオフします。完全なデータインベントリと保持の詳細は、以下にリストされているリクエストチャネルを通じてNDAの下で顧客が利用でき、エンドユーザー向けにプライバシーポリシーで要約されています。
暗号化の層化
SecureCodingHubでの暗号化は単一のコントロールではありません — 層化されており、各層は他の層が失敗する可能性があると仮定します。ユーザーとプラットフォーム間の転送中のデータは、ロードバランサーで強制される最新の暗号スイート選択を伴うトランスポート層暗号化によって保護され、弱いプロトコルとダウングレードしやすい暗号は無効化されます。同じトランスポート姿勢が、アプリケーションサービスと管理データストア間のトラフィックに適用されます。プロダクションVPC内の何もネットワーク境界を越えて平文で移動しません。
保存時のデータは、コードベースにチェックインされたアプリケーションレベルのキー材料ではなく、ホスティングプラットフォームが提供する暗号化サービスを使用してストレージ層で暗号化され、キー管理は同じプロバイダーのマネージドキーサービスによって処理されます。バックアップはプライマリストアと同じ暗号化姿勢を継承します。特定のアルゴリズム、キーの長さ、ローテーションのリズムを公開ページに公開することは脆い依存関係を招き、攻撃者にターゲットリストを提供するため、ここでの説明をポリシーレベルで意図的に保ちます。詳細は調達レビューのためにNDAの下で利用可能です。
テナント分離は3つ目の層です。顧客データ階層のすべてのレコードは組織識別子にスコープされ、そのスコープはアプリケーションレベルのフィルターのみに依存するのではなく、データアクセス層で強制されます。実用的な効果は、欠落しているスコープが間違った結果ではなく結果なしとして表面化するため、1つの機能のクエリバグが誤って別の組織のデータをAPI経由で公開できないことです。組織内のロールベースのアクセスは同じデータアクセス層によって強制されるため、ユーザーの組織スコープとロールは一緒に、アプリケーションレベルのフィルターが実行される前にどのレコードが表示されるかを決定します。
サブプロセッサーとデータ居住性の姿勢
SecureCodingHubは今日、米国リージョンのみでホストされています。これは現在の規模での意図的な運用上の選択です — 単一のプライマリリージョンを実行することは、インシデント対応を簡素化し、監査員が通り抜ける必要がある表面積を減らし、サブプロセッサーリストを短く保ちます。米国外から評価する組織にとって、これはデータ保護責任者に事前に伝える最も重要な事実です: データは設計上米国の境界を越え、その転送をサポートするために標準契約条項を含む契約上の保護が利用可能になっています。
将来EU居住のデプロイメントを追加する場合、変更は化粧的ではなく実質的になります。別個のプライマリリージョンは、EU居住の運用を持つ別個のサブプロセッサーセット、別個のバックアップ宛先セット、新しいフローを反映する更新されたデータ処理付属書を意味します。既存の組織を新しいリージョンに静かにバックポートしません。任意の移動は、通知と定義された切り替えウィンドウを伴うオプトイン移行になります。現在のサブプロセッサーリスト、地域姿勢声明、現在のペネトレーションテスト概要は、リクエストに応じてsecurity@securecodinghub.comから入手可能です。私たちは、共有信頼ポータルのみを介してではなく直接ベンダーセキュリティアンケートに回答し、要求している側が現在のサブプロセッサーリストを受け取るために有料顧客である必要はありません。