Oracle Cloudからストリームされたログを使用したSplunkへのSIEMシステムの実装
セキュリティ情報イベント管理(SIEM)システムは、クラウド・リソースのセキュリティを管理するための重要な操作ツールです。Oracle Cloud Infrastructureには、Splunkを使用して効率的なSIEMシステムを実装するために利用できるネイティブの脅威検出、防止およびレスポンス機能が含まれています。
Splunk Enterprise管理者は、Splunk用のOCIロギング・アドオンでロギングおよびストリーミング・サービスを使用して、クラウド内のリソースから既存のSplunk環境または新しいSplunk環境にログをストリーミングできます。管理者は、その他のSplunkプラグインおよびデータ・ソース(脅威インテリジェンス・フィードなど)と統合して、ログ・データに基づいてアラートの生成を強化することもできます。
アーキテクチャ
このアーキテクチャでは、ロギング・サービスはロード・バランサおよび仮想クラウド・ネットワーク(VCN)フローからログを取得します。ログごとに個別のストリームがあり、各ログはサービス・コネクタ・ハブを使用してストリームに接続されます。Splunk Enterprise管理者として、Splunkのロギング・アドオンを使用して、さらに分析するためのストリーム・データを収集できます。
次の図に、この参照アーキテクチャを示します。
図siem-logging-oci.pngの説明
このアーキテクチャには次のコンポーネントがあります。
- リージョン
Oracle Cloud Infrastructureリージョンは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含む、ローカライズされた地理的領域です。リージョンは他のリージョンから独立しており、広く離れた距離(国間または大陸間)にすることができます。
- 可用性ドメイン
可用性ドメインは、リージョン内のスタンドアロンの独立したデータ・センターです。各可用性ドメインの物理リソースは、フォルト・トレランスを提供する他の可用性ドメインのリソースから分離されます。アベイラビリティ・ドメインは、電源や冷却などのインフラストラクチャや内部アベイラビリティ・ドメイン・ネットワークを共有しません。したがって、ある可用性ドメインで障害が発生しても、リージョン内の他の可用性ドメインには影響しません。
- 仮想クラウド・ネットワーク(VCN)およびサブネット
VCNは、Oracle Cloud Infrastructureリージョンで設定するカスタマイズ可能なソフトウェア定義ネットワークです。従来のデータ・センター・ネットワークと同様に、VCNではネットワーク環境を完全に制御できます。VCNには、VCNの作成後に変更できる複数の重複しないCIDRブロックを含めることができます。VCNは、リージョンまたは可用性ドメインにスコープ指定できるサブネットにセグメント化できます。各サブネットは、VCN内の他のサブネットと重複しない連続したアドレス範囲で構成されます。作成後にサブネットのサイズを変更できます。サブネットはパブリックまたはプライベートにできます。
- ロード・バランサ
Oracle Cloud Infrastructure Load Balancingサービスは、単一のエントリ・ポイントからバックエンドの複数のサーバーへのトラフィック分散を自動化します。
- 仮想マシン(VM)
Oracle Cloud Infrastructure Computeサービスを使用すると、クラウドでコンピュート・ホストをプロビジョニングおよび管理できます。CPU、メモリー、ネットワーク帯域幅およびストレージのリソース要件を満たすシェイプを使用してコンピュート・インスタンスを起動できます。コンピュート・インスタンスを作成したら、それをセキュアにアクセスし、再起動、ボリュームのアタッチやデタッチを行い、不要になったときにインスタンスを終了できます。
- ロギングロギングは、クラウド内のリソースから次のタイプのログにアクセスできる、拡張性の高い完全に管理されたサービスです。
- 監査ログ:監査サービスによって生成されたイベントに関連するログ。
- サービス・ログ: APIゲートウェイ、イベント、ファンクション、ロード・バランシング、オブジェクト・ストレージ、VCNフロー・ログなどの個々のサービスによって発行されるログ。
- カスタム・ログ:カスタム・アプリケーション、他のクラウド・プロバイダまたはオンプレミス環境からの診断情報を含むログ。
- ストリーミング
Oracle Cloud Infrastructure Streamingは、リアルタイムで消費および処理できる連続した大量のデータを収集するための、完全に管理されたスケーラブルな永続ストレージ・ソリューションを提供します。ストリーミングを使用すると、大量のデータ(アプリケーション・ログ、操作テレメトリ、Webクリックストリーム・データなど)を収集できます。また、パブリッシュ/サブスクライブ・メッセージング・モデルでデータが連続的かつ順次生成および処理される他のユースケースにも使用できます。
- サービス・コネクタ
Oracle Cloud Infrastructure Service Connector Hubは、OCIのサービス間のデータ移動を編成するクラウド・メッセージ・バス・プラットフォームです。これを使用して、Oracle Cloud Infrastructureのサービス間でデータを移動できます。データはサービス・コネクタを使用して移動されます。サービス・コネクタは、移動するデータを含むソース・サービス、データに対して実行するタスク、および指定したタスクが完了したときにデータを配信する必要があるターゲット・サービスを指定します。
- Splunk用アドオンのロギング
Splunkのロギング・アドオンは、ストリーミング・サービスから直接ログおよびその他のデータを取り込むプラグインです。Splunk Enterprise(バージョン8.0以上)でプラグインを使用できます。
お薦め
次の推奨事項を開始点として使用します。実際の要件は、ここで説明するアーキテクチャとは異なる場合があります。
- VCN
VCNを作成する場合は、VCNのサブネットにアタッチする予定のリソースの数に基づいて、必要なCIDRブロックの数と各ブロックのサイズを決定します。標準のプライベートIPアドレス空間内にあるCIDRブロックを使用します。
プライベート接続を設定する他のネットワーク(Oracle Cloud Infrastructure、オンプレミス・データ・センターまたは別のクラウド・プロバイダ内)と重複しないCIDRブロックを選択します。
VCNの作成後、CIDRブロックを変更、追加および削除できます。
サブネットを設計する場合は、トラフィック・フローとセキュリティ要件を考慮してください。特定の層またはロール内のすべてのリソースを、セキュリティ境界として機能する同じサブネットにアタッチします。
- Splunkバージョン
Splunkのロギング アドオンは、Splunk 8.0の Python 3と連携して動作します。より低いバージョンの場合、SplunkはSplunk 8.0を実行している重いフォワーダを使用してデータを取り込み、下位バージョンのインデクサに転送することを推奨します。
- ロギング
このアーキテクチャでは、ロード・バランシング・サービスおよびVCNフロー・ログからログを取得します。VCNにアタッチされた各コンピュート・インスタンスには、1つ以上の仮想ネットワーク・インタフェース・カード(VNIC)があります。VCNフロー・ログを使用して、セキュリティ・ルールをトラブルシューティングし、VNICとの間のトラフィックを監査します。
- アクセス制御
Splunkのロギング・アドオンは、インスタンス・プリンシパルによるアクセスとAPI署名キーによるアクセスの両方をサポートします。Oracleでは、存続期間の長いトークンを格納しないように、インスタンス・プリンシパルを使用することをお薦めします。インスタンス・プリンシパルを使用しない場合は、API署名キーを使用します。
選択したアクセス方法に応じて、次の例に示すように最小権限ポリシーを定義します。- インスタンス固有のアクセス方法を選択した場合:
Allow dynamic-group SplunkInstance to use stream-pull in compartment <compartment>
- API署名キー・メソッドを選択した場合:
Allow group Splunk to use stream-pull in compartment <compartment>
- インスタンス固有のアクセス方法を選択した場合:
- サービス・ゲートウェイ
Splunkフォワーダをテナンシ内にデプロイする場合は、サービス・ゲートウェイを使用してストリーミング・サービス・エンドポイントと通信します。
注意事項
このアーキテクチャを実装する際は、次の要因を考慮してください。
- パフォーマンス
アーキテクチャは、ログ・グループによって生成されたイベントの数に基づいてスケーリングされます。ロギングは高度にスケーラブルなサービスです。
ストリーミングも非常にスケーラブルで、ロギング・サービスから送信されるイベント情報を格納する一時的なパイプとして使用されます。ロード・バランサとしても機能します。予想されるログ・データの量に基づいて、パーティションおよびストリームの数を調整することを検討してください。
- 可用性
Oracleは、クラウド・ネイティブで完全に管理されているサービスであるStreamingおよびLoggingサービスの高可用性を保証します。
ストリーミングには、次の高可用性機能が含まれます。- ログ・データの一定フロー
- マルチスレッドで水平方向にスケーラブルなサービス
- ほぼリアルタイムの収集
- 短期間の停止に対するリジリエンス
- 効率的なデータ使用のために最適化
- 拡張性VCNフロー・ログおよびロード・バランサ・ログとは別に、Splunkのロギング・アドオンを使用してSplunkに他のログをストリームできます。次にいくつか例を示します。
- IAM監査ログ
- ファンクション起動ログ
- APIゲートウェイのアクセスおよび実行ログ
- イベント・サービス・ログ
Splunkをクラウドのコンピュート・インスタンスにデプロイすることを検討してください。「まとめの詳細」セクションには、Oracle Cloud InfrastructureでSplunkをプロビジョニングするために使用できるTerraformスタックへのリンクが含まれています。
デプロイ
このリファレンス・アーキテクチャのTerraformコードは、GitHubで入手できます。1回のクリックでコードをOracle Cloud Infrastructure Resource Managerにプルし、スタックを作成してデプロイできます。または、GitHubからコンピュータにコードをダウンロードし、コードをカスタマイズして、Terraform CLIを使用してアーキテクチャをデプロイすることもできます。
- Oracle Cloud Infrastructure Resource Managerを使用してデプロイします:
- をクリックします
まだサインインしていない場合は、テナンシおよびユーザー資格証明を入力します。
- 条件をレビューして受け入れます。
- スタックをデプロイするリージョンを選択します。
- 画面上のプロンプトと手順に従ってスタックを作成します。
- スタックの作成後、「Terraformアクション」をクリックし、「プラン」を選択します。
- ジョブが完了するまで待機し、プランをレビューします。
変更するには、「スタックの詳細」ページに戻り、「スタックの編集」をクリックして必要な変更を行います。次に、「プラン」アクションを再度実行します。
- これ以上の変更が必要ない場合は、「スタックの詳細」ページに戻り、「Terraformアクション」をクリックして「適用」を選択します。
- をクリックします
- Terraform CLIを使用してデプロイします。
- GitHubにアクセスします。
- リポジトリをローカル・コンピュータにクローニングまたはダウンロードします。
README
ドキュメントの指示に従います。