このアーキテクチャは、単なるアクセス制御ではなく、暗号的な保証を使用した深層防御に基づいています。
取り込み層: マイクロサービスは、TLS 1.3およびmTLS認証で構成された地域のApache Kafkaクラスタに構造化された監査イベントを公開します。Kafka Connectは、これらのイベントをWORM(一度書き込み読み取り多数)オブジェクトストレージ、例えばAmazon S3オブジェクトロック(コンプライアンスモード)やAzure Immutable Blob Storageにバッチ処理します。この構成は、定義された保持期間中に削除や変更を物理的に防ぎ、ルート資格情報の侵害を生き延びます。
整合性層: 各ログバッチはマークルツリーにハッシュ化され、ルートはハードウェアセキュリティモジュール(HSM)またはAWS Nitro Enclavesのようなクラウドネイティブなエンクレーブによって署名されます。これらの署名されたルートは、二次の不変レジャー(例えば、保持ロックがあるGCP Cloud Storageバケット)に定期的に公開され、クロスクラウドの公証層を作成します。これにより、任意の単一のクラウドプロバイダの侵害が信頼の全チェーンを無効にすることはできません。
クエリ層: ホットメタデータ(タイムスタンプ、サービスID、関連ID)は、ClickHouseまたはApache Druidのようなカラム型OLAPストアにインデックスされ、一方で完全な暗号化ペイロードは冷たいS3 GlacierまたはAzure Archiveストレージに保持されます。法的照会は最初にOLAPインデックスにヒットして時間範囲を特定し、その後、HashiCorp Vaultによって厳格に管理されたキーを使用して特定の暗号化ブロックを取得します。
グローバルな決済処理業者がPCI-DSSレベル1のデータを扱っており、攻撃者が毒されたCI/CDアーティファクトを通じてIAM資格情報を侵害しました。即時の脅威はデータの持ち出しでしたが、重要なリスクは証拠の破壊でした——攻撃者はAWS CloudTrailログを削除して横移動パスを隠そうとしました。
レガシーアーキテクチャは、ソフトデリートフラグを持つ集中管理のPostgreSQL監査テーブルと標準のS3バケットに依存していました。これは、侵害された資格情報がs3:DeleteObject権限を持っており、コンプライアンスウィンドウ内でログを削除できたため、失敗しました。
解決策A: データベーストリガーとRLS
このアプローチは、PostgreSQLトリガーを実装し、削除をアーカイブテーブルにリダイレクトし、行レベルセキュリティ(RLS)を強制しました。利点はインフラの変更が最小限で、関係クエリのACID準拠が含まれていました。欠点は深刻で、データベーススーパーユーザはトリガーを無効にするか、アーカイブされた行を変更でき、暗号的整合性の証明が欠如していたため、法的手続きでは許可されませんでした。
解決策B: 許可されたブロックチェーン
この提案では、分散型台帳の不変性を活用するためにHyperledger Fabricにハッシュポインタを保存することを提案しました。利点は、固有の改ざん耐性と分散型の信頼です。欠点は高額で、トランザクションのレイテンシが平均5秒で、高頻度取引ログのサブ秒要件に違反し、ペタバイトスケールの生データのオンチェーンストレージコストは経済的に実現不可能でした。
解決策C: ハイブリッドWORMとマークル証明
この選出された解決策は、Amazon S3オブジェクトロックをコンプライアンスモードで有効にし、7年間の保持期間を持ち、ルートアカウント保持者による削除を物理的に防ぎました。Apache Kafkaは、サブ秒のプロデューサー確認を維持するために地域的にイベントをバッファしました。マークルツリーのルートは毎分計算され、AWS Nitro Enclavesによって署名され、これらはハイパーバイザーにアクセスできないプライベートキーを保持します。これらの署名されたルートはAzureの不変バケットに複製され、マルチクラウドの公証層を作りました。その結果、攻撃者はアプリケーションデータを削除しましたが、監査のトレイルは intactでした。法的チームはClickHouseを使用して攻撃ウィンドウを数秒で特定し、S3から不変ログを取得し、クロスクラウドルートに対してマークル証明を検証し、法廷での証拠を提供しました。
HSMの署名キーをどのようにローテーションして、過去のログの暗号的信頼チェーンを壊さずに維持しますか?
キーのローテーションは単なるスワップとして扱われることが多いですが、改ざんに気づきやすいシステムでは、単純なローテーションは以前の署名を無効にするリスクがあります。この解決策は、主キー用にシャミールの秘密共有を使用した重なった証明書チェーンを実装します。ローテーションが発生すると、新しいキーは古い公開鍵のハッシュとタイムスタンプを含む「ローテーションイベント」を署名します。このイベントは、スイッチ前にログチェーンに追加されます。歴史的な検証には、署名時に有効なキーが使用され、ローテーションイベント自体は古いキーと新しいキーの両方(デュアルサイン署名遷移)によって署名されます。HashiCorp Vaultは、法的ツールがアクセスできる公開JWKSエンドポイントに証明書を公開する自動ローテーションポリシーを持つPKIシークレットエンジンを使用して、このライフサイクルを管理します。
改ざん証拠を達成するためにブロックチェーンが不要な理由と、その特定のスループット制限について教えてください。
候補者はしばしば不変性をブロックチェーンと混同します。ブロックチェーンは、中央の権威なしに相互に不信な当事者間のビザンチン将軍の問題を解決します。企業監査システムでは、エンティティ自体が信頼のアンカーです。脅威モデルは内部の妥協であり、企業間の共謀ではありません。したがって、追加のみのWORMストレージとマークルツリーの検証が、合意オーバーヘッドなしで十分な不変性を提供します。Hyperledger Fabricは、世界中で約3,000件のトランザクションを毎秒処理しますが、単一のKafkaパーティションは10MB/s(数百万の小さな監査イベント)を処理できます。さらに重要に、ブロックチェーンの最終遅延(数秒から数分)は、疑わしいアクセスパターンのリアルタイム警告のためのサブ秒書き込み要件に違反します。
暗号化されたチェーンログのペタバイトに対して、どのようにクエリ性能を維持し、法的調査のすべてのデータセットを解読できない場合にどうしますか?
すべてのクエリに対して全テーブルを解読するという単純なアプローチは、計算的に負担が大きいです。このアーキテクチャは、エンベロープ暗号化と階層キー導出を利用します。メタデータ(タイムスタンプ、サービスID、ユーザーコンテキストなど)は抽出され、別々に暗号化され、プレーンテキストでClickHouseにインデックスされるデータ暗号化キー(DEK)が使用されます。重いペイロードは、その独自のDEKを使用して冷たいストレージに暗号化されたままです。アナリストが「午前2時から午前3時までのすべての管理操作」を照会すると、ClickHouseはオブジェクトポインタを返します。これらの特定のオブジェクトのみがGlacierから取得され、TTLを持つRedisにキャッシュされたキーを使用して解読され、提示されます。このメタデータインデックスパターンにより、クエリ時間は数時間から数秒に短縮され、同時にエンドツーエンドの暗号化が維持されます。