このページでは、Security Command Center の検出結果、アセット、監査ログ、セキュリティ ソースを Splunk に自動的に送信する方法について説明します。また、エクスポートされたデータの管理方法についても説明します。Splunk は、1 つ以上のソースからセキュリティ データを取り込み、セキュリティ チームがインシデントへの対応を管理してリアルタイム分析を行えるセキュリティ情報イベント管理(SIEM)プラットフォームです。
このガイドでは、必要な Security Command Center と Google Cloud サービスが正しく構成されていることを確認し、Splunk が Security Command Center 環境の検出結果、監査ログ、アセット情報にアクセスできるようにします。
始める前に
このガイドでは、次のいずれかを使用していることを前提としています。
Splunk Enterprise バージョン 8.1、8.2、9.0
Google Cloud、アマゾン ウェブ サービス、Microsoft Azure で Splunk をホストしている
認証と認可を構成する
Splunk に接続する前に、接続する Google Cloud 組織ごとに Identity and Access Management(IAM)サービス アカウントを作成し、Google SCC Add-on for Splunk に必要な組織レベルとプロジェクト レベルの両方の IAM ロールをアカウントに付与する必要があります。
サービス アカウントの作成と IAM ロールの付与
次の手順では、Google Cloud コンソールを使用します。その他の方法については、このセクションの最後にあるリンクをご覧ください。
Security Command Center データをインポートする Google Cloud 組織ごとに、次の操作を行います。
- Pub/Sub トピックを作成するプロジェクトと同じプロジェクトで、Google Cloud コンソールの [サービス アカウント] ページを使用してサービス アカウントを作成します。手順については、サービス アカウントの作成と管理をご覧ください。
サービス アカウントに次のロールを付与します。
- Pub/Sub 編集者(
roles/pubsub.editor
)
- Pub/Sub 編集者(
作成したサービス アカウントの名前をコピーします。
Google Cloud コンソールのプロジェクト セレクタを使用して、組織レベルに切り替えます。
組織の [IAM] ページを開きます。
IAM ページで、[アクセス権を付与] をクリックします。[アクセス権を付与] パネルが開きます。
[アクセス権を付与] パネルで、次の操作を行います。
- [プリンシパルの追加] セクションの [新しいプリンシパル] フィールドに、サービス アカウントの名前を貼り付けます。
[ロールの割り当てる] セクションの [ロール] フィールドで、サービス アカウントに次の IAM ロールを付与します。
- セキュリティ センター管理編集者(
roles/securitycenter.adminEditor
) - セキュリティ センター通知構成編集者(
roles/securitycenter.notificationConfigEditor
) - 組織閲覧者(
roles/resourcemanager.organizationViewer
) - Cloud Asset 閲覧者(
roles/cloudasset.viewer
) [保存] をクリックします。サービス アカウントは、[IAM] ページの [権限] タブにある [プリンシパル別に表示] に表示されます。
また、継承により、サービス アカウントは組織のすべての子プロジェクトのプリンシパルにもなります。プロジェクト レベルで適用されるロールが、継承されたロールとして表示されます。
サービス アカウントの作成とロールの付与の詳細については、次のトピックをご覧ください。
Splunk に認証情報を提供する
Splunk をホストする場所に応じて、IAM 認証情報を Splunk に指定する方法は異なります。
Google Cloud で Splunk をホストしている場合は、次の点を考慮してください。
作成したサービス アカウントとそれに付与した組織レベルのロールは、親組織から継承することで自動的に使用できるようになります。複数の Google Cloud 組織を使用している場合は、このサービス アカウントを他の組織に追加し、サービス アカウントを作成して IAM のロールを付与するの手順 5~7 で説明されている IAM のロールを付与します。
サービス境界に Splunk をデプロイする場合は、上り(内向き)ルールと下り(外向き)ルールを作成します。手順については、VPC Service Controls で境界へのアクセス権を付与するをご覧ください。
オンプレミス環境で Splunk Enterprise をホストしている場合は、Google Cloud 組織ごとにサービス アカウント キーを作成します。このガイドを完了するには、JSON 形式のサービス アカウント キーが必要です。
Splunk を別のクラウドでホストしている場合は、Workload Identity 連携を構成し、認証情報の構成ファイルをダウンロードします。複数の Google Cloud 組織を使用している場合は、このサービス アカウントを他の組織に追加し、サービス アカウントを作成して IAM のロールを付与するの手順 5~7 で説明されている IAM のロールを付与します。
通知を構成する
Security Command Center データをインポートする Google Cloud 組織ごとに、次の操作を行います。
Splunk を構成するには、このタスクの組織 ID、Pub/Sub トピック名、Pub/Sub サブスクリプション名が必要になります。
Pub/Sub の検出結果の通知を有効にします。これには以下の手順が含まれます。
- Security Command Center API を有効にします。
次の 3 つの Pub/Sub トピックを作成します。
- 検出結果のトピック
- アセットのトピック
- 監査ログのトピック
Security Command Center の検出結果に対する
notificationConfig
を作成します。notificationConfig
は、指定したフィルタに基づいて Security Command Center の検出結果を Pub/Sub にエクスポートします。
プロジェクトで Cloud Asset API を有効にします。
アセットにフィードを作成します。 同じ Pub/Sub トピックに、リソース用と Identity and Access Management(IAM)ポリシー用の 2 つのフィードを作成する必要があります。
- アセットの Pub/Sub トピックは、検出結果に使用するものとは別にする必要があります。
リソースのフィードに次のフィルタを使用します。
content-type=resource
IAM ポリシー フィードの場合は、次のフィルタを使用します。
content-type=iam-policy --asset-types="cloudresourcemanager.googleapis.com/Project"
監査ログの宛先シンクを作成します。この統合では、宛先として Pub/Sub トピックを使用します。
Google SCC App for Splunk と Google SCC Add-on for Splunk をインストールする
このセクションでは、Google SCC App for Splunk と Google SCC Add-on for Splun をインストールします。これらのアプリは Security Command Center によって管理されており、Security Command Center API 呼び出しのスケジュール プロセスを自動化します。また、Splunk で使用する Security Command Center のデータを定期的に取得し、Splunk で Security Command Center のデータを表示することを可能にするダッシュボードを設定します。
アプリのインストールには、Splunk ウェブ インターフェースへのアクセス権が必要です。
分散型 Splunk デプロイがある場合は、次のようにアプリをインストールします。
- Google SCC App for Splunk を Splunk のヘビー フォワーダーと Splunk の検索ヘッドにインストールします。
- Splunk の検索ヘッドに Google SCC Add-on for Splunk をインストールします。
インストールを完了する手順は次のとおりです。
Splunk のウェブ インターフェースで、[Apps] 歯車アイコンに移動します。
[Manage Apps] > [Browse more apps] を選択します。
次のアプリを検索してインストールします。
- Google SCC Add-on for Splunk
- Google SCC App for Splunk
両方のアプリがアプリリストに表示されます。 Splunk を Google Cloud に接続するに進みます。
Google SCC App for Splunk と Google SCC Add-on for Splunk をアップグレードする
既存の入力をすべて無効にします。
Splunk のウェブ インターフェースで、[Apps] > [Google SCC Add-on for Splunk] をクリックします。
[Inputs] タブを選択します。
入力ごとに [Action] > [Disable] をクリックします。
Security Command Center のインデックスに登録されたデータを削除します。アプリを削除する前に、Splunk CLI clean コマンドを使用して、アプリからインデックスに登録されたデータを削除できます。
アップグレードを実施します。
Splunk のウェブ インターフェースで、[Apps] 歯車アイコンに移動します。
[Manage Apps] > [Browse more apps] を選択します。
次のアプリを検索してアップグレードします。
- Google SCC Add-on for Splunk
- Google SCC App for Splunk
プロンプトが表示されたら、Splunk を再起動します。
新しい Google Cloud 組織ごとに、Splunk を Google Cloud に接続するセクションに入力します。
Security Command Center のデータ入力を追加するの説明に沿って、新しい入力を作成します。
Splunk を Google Cloud に接続する
このタスクを完了するには、Splunk の admin_all_objects
機能が必要です。
Splunk をアマゾン ウェブ サービスまたは Microsoft Azure にインストールした場合は、次の手順を行います。
ターミナル ウィンドウを開きます。
Google SCC App for Splunk ディレクトリに移動します。
cd $SPLUNK_HOME$/etc/apps/TA_GoogleSCC/local/
テキスト エディタで
ta_googlescc_settings.conf
を開きます。sudo vim ta_googlescc_settings.conf
次の行をファイルの末尾に追加します。
[additional_parameters] scheme = http
ファイルを保存して閉じます。
Splunk プラットフォームを再起動します。
Splunk のウェブ インターフェースで、[Apps] > [Google SCC Add-on for Splunk] > [Configuration] > [Google SCC Account] をクリックします。
[CONFIGURATION] タブを選択します。
[追加] をクリックします。
表示されたフィールドに応じて、次のいずれかを行います。
[Service Account JSON] フィールドが表示されたら、サービス アカウント キーが含まれる JSON ファイルを参照します。
[Credential Configuration] フィールドが表示されたら、Workload Identity 連携の設定時にダウンロードした認証情報の構成ファイルを参照します。
Google Cloud に Splunk をデプロイしたか、ステップ 1 を完了した場合、サービス アカウントの構成は自動的に検出されます。
[Organization] に Google Cloud 組織 ID を追加します。
プロキシ サーバーを使用して Splunk を Google Cloud に接続する場合は、次の操作を行います。
- [Proxy] タブをクリックします。
- [有効にする] を選択します。
- プロキシの種類(HTTPS、SOCKS4、SOCKS5)を選択します。
- プロキシのホスト名、ポート、必要に応じてユーザー名とパスワードを入力します。
[Logging] タブで、アドオンのロギングレベルを選択します。
[保存] をクリックします。
統合する Google Cloud 組織ごとにステップ 2 ~ 9 を行います。
Security Command Center のデータ入力を追加するの説明に従って、Google Cloud 組織のデータ入力を作成します。
Security Command Center のデータ入力を追加する
Splunk のウェブ インターフェースで、[Apps] > [Google SCC Add-on for Splunk] をクリックします。
[Inputs] タブを選択します。
[Create New Input] をクリックします。
いずれかの入力を選択します。
- ソース入力
- 検出結果の入力
- アセットの入力
- 監査ログの入力
[Edit] アイコンをクリックします。
次の情報を入力します。
フィールド 説明 入力の名前 データ入力のデフォルト名 間隔 次のデータの呼び出しまでの待機時間(秒) インデックス Security Command Center データの送信先の Splunk インデックス アセット サブスクリプション ID (アセット入力の場合のみ)リソースの Pub/Sub サブスクリプションの名前 監査ログのサブスクリプション ID (監査ログ入力の場合のみ)監査ログの Pub/Sub サブスクリプションの名前 検出結果のサブスクリプション ID 検索結果の入力のみ、検索結果の Pub/Sub サブスクリプションの名前 最大取得数 1 回の呼び出しで取得するアセットの最大数 [更新] をクリックします。
追加する入力ごとに手順 3~7 を繰り返します。
統合する Google Cloud 組織ごとにステップ 3 ~ 8 を繰り返します。
[Status] 行で、Splunk に転送するデータ入力を有効にします。
Splunk インデックスを更新する
メインの Splunk インデックスを使用しない場合は、このタスクを完了します。
- Splunk のウェブ インターフェースで、[Settings] > [Advanced Search] > [Search macros] をクリックします。
- [Google SCC App for Splunk] を選択します。
- [googlescc_index] を選択します。
- 自分のインデックスを使用するように
index=main
を更新します。 - [保存] をクリックします。
Splunk で Security Command Center のデータを表示する
Splunk のウェブ インターフェースで、[Apps] > [Google SCC Add-on for Splunk] をクリックします。
[Search] タブを選択します。
検索クエリを設定します(
index="main"
など)。期間を選択します。
[Search] アイコンをクリックします。
必要に応じて、データをソースタイプ(ソース、アセット、監査ログ、IAM アセット、検出結果のいずれか)でフィルタします。
ダッシュボードを表示する
Splunk 用の Google SCC アプリを使用すると、Security Command Center からのデータを可視化できます。5 つのダッシュボード(Overview、Sources、Findings、Assets、Audit Logs、Search)が用意されています。
これらのダッシュボードには、Splunk のウェブ インターフェースの [Apps] > [Google SCC Apps for Splunk] ページからアクセスできます。
[Overview] ダッシュボード
[Overview] ダッシュボードには、重要度レベル、カテゴリ、状態別に、組織で見つかった検出結果の合計数を表示する一連のグラフが表示されます。検出結果は、Security Command Center の組み込みサービス(Security Health Analytics、Web Security Scanner、Event Threat Detection、Container Threat Detection など)と、有効にした統合サービスから編集されます。
コンテンツをフィルタリングするには、期間と組織 ID を設定します。
追加のグラフには、最も多くの検出結果を生成したカテゴリ、プロジェクト、アセットが表示されます。
[Assets] ダッシュボード
[アセット] ダッシュボードには、最近作成または変更された Google Cloud アセットを 1,000 個含むテーブルが表示されます。テーブルには、アセット名、アセットタイプ、リソース オーナー、最終更新日時が表示されます。
期間、組織 ID、アセットタイプでアセットデータをフィルタできます。[Redirect To SCC] 列の [View] をクリックすると、Google Cloud コンソールの Security Command Center の [アセット] ページにリダイレクトされます。選択したアセットの詳細がコンソールに表示されます。
[Audit logs] ダッシュボード
[Audit logs] ダッシュボードには、監査ログ情報を示す一連のグラフとテーブルが表示されます。ダッシュボードに含まれる監査ログは、管理者のアクティビティ、データアクセス、システム イベント、ポリシーで拒否された監査ログです。テーブルには、時間、ログ名、重大度、サービス名、リソース名、リソースタイプが含まれます。
期間、組織 ID、ログ名でデータをフィルタできます。
[Findings] ダッシュボード
[検出結果] ダッシュボードには、最新の 1,000 件の検出結果を含むテーブルが表示されます。テーブルの列には、カテゴリ、アセット名、ソース名、セキュリティ マーク、検出結果クラス、重大度などの項目が含まれています。
期間、組織 ID、カテゴリ、重大度、ソース名、アセット名、プロジェクト名、検出結果クラスでデータをフィルタリングできます。[Update Status] 列で、検出結果の状態を更新できます。検出結果を積極的に確認していることを示すには、[Mark as ACTIVE] をクリックします。検出結果を積極的に確認していない場合は、[Mark as INACTIVE] をクリックします。
検出結果の名前をクリックすると、Google Cloud コンソールの Security Command Center の [検出結果] ページにリダイレクトされ、選択した検出結果の詳細が表示されます。
[Sources] ダッシュボード
[Sources] ダッシュボードに、すべてのセキュリティ ソースの表が表示されます。テーブルの列には、名前、表示名、説明が含まれています。
コンテンツをフィルタリングするには、期間を設定できます。
アプリをアンインストールする
Splunk 用の Security Command Center データを取得する必要がなくなったら、アプリケーションをアンインストールします。
Splunk のウェブ インターフェースで、[Apps] > [Manage Apps] に移動します。
Google SCC App for Splunk
を検索します。[Status] 列で、[Disable] をクリックします。
Google SCC Add-on for Splunk
を検索します。[Status] 列で、[Disable] をクリックします。
必要に応じて、Security Command Center のインデックスに登録されたデータを削除します。アプリを削除する前に、Splunk CLI clean コマンドを使用して、アプリからインデックスに登録されたデータを削除できます。
Splunk スタンドアロン環境で、次の操作を行います。
ターミナルを開いて、Splunk にログインします。
$SPLUNK_HOME/etc/apps/APPNAME
でアプリとそのディレクトリを削除します。./splunk remove app APPNAME -auth USERNAME:PASSWORD
APPNAME は、
GoogleSCCAppforSplunk
またはTA_GoogleSCC
に置き換えます。もう一方のアプリでも手順 b を繰り返します。
必要に応じて、
$SPLUNK_HOME/etc/users/*/GoogleSCCAppforSplunk
と$SPLUNK_HOME/etc/users/*/TA_GoogleSCC
にあるファイルを削除して、ユーザー固有のディレクトリを削除します。Splunk プラットフォームを再起動します。
分散型 Splunk 環境で、次の操作を行います。
- deployer manager にログインします。
$SPLUNK_HOME/etc/apps/APPNAME
でアプリとそのディレクトリを削除します。./splunk remove app APPNAME -auth USERNAME:PASSWORD
APPNAME は、
GoogleSCCAppforSplunk
またはTA_GoogleSCC
に置き換えます。もう一方のアプリでも手順 b を繰り返します。
splunk apply shcluster-bundle
コマンドを実行します。splunk apply shcluster-bundle -target URI:MANAGEMENT_PORT -auth USERNAME:PASSWORD
次のステップ
Security Command Center での検出結果の通知の設定について確認する。
Security Command Center での検出通知のフィルタリングについて確認する。