Splunk に Security Command Center のデータを送信する

このページでは、Security Command Center の検出結果、アセット、監査ログ、セキュリティ ソースを Splunk に自動的に送信する方法について説明します。また、エクスポートされたデータの管理方法についても説明します。Splunk は、1 つ以上のソースからセキュリティ データを取り込み、セキュリティ チームがインシデントへの対応を管理してリアルタイム分析を行えるセキュリティ情報イベント管理(SIEM)プラットフォームです。

このガイドでは、必要な Security Command Center と Google Cloud サービスが正しく構成されていることを確認し、Splunk が Security Command Center 環境の検出結果、監査ログ、アセット情報にアクセスできるようにします。

始める前に

このガイドでは、次のいずれかを使用していることを前提としています。

認証と認可を構成する

Splunk に接続する前に、接続する Google Cloud 組織ごとに Identity and Access Management(IAM)サービス アカウントを作成し、Google SCC Add-on for Splunk に必要な組織レベルとプロジェクト レベルの両方の IAM ロールをアカウントに付与する必要があります。

サービス アカウントの作成と IAM ロールの付与

次の手順では、Google Cloud コンソールを使用します。その他の方法については、このセクションの最後にあるリンクをご覧ください。

Security Command Center データをインポートする Google Cloud 組織ごとに、次の操作を行います。

  1. Pub/Sub トピックを作成するプロジェクトと同じプロジェクトで、Google Cloud コンソールの [サービス アカウント] ページを使用してサービス アカウントを作成します。手順については、サービス アカウントの作成と管理をご覧ください。
  2. サービス アカウントに次のロールを付与します。

    • Pub/Sub 編集者roles/pubsub.editor
  3. 作成したサービス アカウントの名前をコピーします。

  4. Google Cloud コンソールのプロジェクト セレクタを使用して、組織レベルに切り替えます。

  5. 組織の [IAM] ページを開きます。

    [IAM] に移動

  6. [IAM] ページで、[アクセスを許可] をクリックします。[アクセスを許可] パネルが開きます。

  7. [アクセスを許可] パネルで、次の手順を完了します。

    1. [プリンシパルの追加] セクションの [新しいプリンシパル] フィールドに、サービス アカウントの名前を貼り付けます。
    2. [ロールの割り当てる] セクションの [ロール] フィールドで、サービス アカウントに次の IAM ロールを付与します。

      • セキュリティ センター管理編集者roles/securitycenter.adminEditor
      • セキュリティ センター通知構成編集者roles/securitycenter.notificationConfigEditor
      • 組織閲覧者roles/resourcemanager.organizationViewer
      • Cloud Asset 閲覧者roles/cloudasset.viewer
    3. [保存] をクリックします。セキュリティ アカウントは、[IAM] ページの [権限] タブにある [プリンシパル別に表示] に表示されます。

      また、継承により、サービス アカウントは組織のすべての子プロジェクトのプリンシパルにもなり、プロジェクト レベルで適用されるロールが、継承されたロールとしてリストされます。

サービス アカウントの作成とロールの付与の詳細については、次のトピックをご覧ください。

Splunk に認証情報を提供する

Splunk をホストする場所に応じて、IAM 認証情報を Splunk に指定する方法は異なります。

通知の構成

Security Command Center データをインポートする Google Cloud 組織ごとに、次の操作を行います。

Splunk を構成するには、このタスクの組織 ID、Pub/Sub トピック名、Pub/Sub サブスクリプション名が必要になります。

  1. Pub/Sub の検出結果の通知を有効にします。これには以下の手順が含まれます。

    1. Security Command Center API を有効にします。
    2. 次の 3 つの Pub/Sub トピックを作成します。

      • 検出結果のトピック
      • アセットのトピック
      • 監査ログのトピック
    3. Security Command Center で検出結果用の notificationConfig を作成します。notificationConfig は、指定したフィルタに基づいて Security Command Center の検出結果を Pub/Sub にエクスポートします。

  2. プロジェクトで Cloud Asset API を有効にします

  3. アセットのフィードを作成します。同じ Pub/Sub トピックに、リソース用と Identity and Access Management(IAM)ポリシー用の 2 つのフィードを作成する必要があります。

    • アセットの Pub/Sub トピックは、検出結果に使用するものとは別にする必要があります。
    • リソースのフィードに次のフィルタを使用します。

      content-type=resource

    • IAM ポリシー フィードの場合は、次のフィルタを使用します。

      content-type=iam-policy --asset-types="cloudresourcemanager.googleapis.com/Project"

  4. 監査ログの宛先シンクを作成します。この統合では、宛先として 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 をインストールします。

インストールを完了する手順は次のとおりです。

  1. Splunk のウェブ インターフェースで、[Apps] 歯車アイコンに移動します。

  2. [Manage Apps] > [Browse more apps] を選択します。

  3. 次のアプリを検索してインストールします。

    • 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 をアップグレードする

  1. 既存の入力をすべて無効にします。

    1. Splunk のウェブ インターフェースで、[Apps] > [Google SCC Add-on for Splunk] をクリックします。

    2. [Inputs] タブを選択します。

    3. 入力ごとに [Action] > [Disable] をクリックします。

  2. 必要に応じて、Security Command Center のインデックスに登録されたデータを削除します。アプリを削除する前に、Splunk CLI clean コマンドを使用して、アプリからインデックスに登録されたデータを削除できます。

  3. アップグレードを実施します。

    1. Splunk のウェブ インターフェースで、[Apps] 歯車アイコンに移動します。

    2. [Manage Apps] > [Browse more apps] を選択します。

    3. 次のアプリを検索してアップグレードします。

      • Google SCC Add-on for Splunk
      • Google SCC App for Splunk
    4. プロンプトが表示されたら、Splunk を再起動します。

  4. 新しい Google Cloud 組織ごとに、Splunk を Google Cloud に接続するセクションの手順を完了します。

  5. Security Command Center のデータ入力を追加するの説明に沿って、新しい入力を作成します。

Splunk を Google Cloud に接続する

このタスクを完了するには、Splunk の admin_all_objects 機能が必要です。

  1. Splunk をアマゾン ウェブ サービスまたは Microsoft Azure にインストールした場合は、次の手順を行います。

    1. ターミナル ウィンドウを開きます。

    2. Google SCC App for Splunk ディレクトリに移動します。

      cd $SPLUNK_HOME$/etc/apps/TA_GoogleSCC/local/
      
    3. テキスト エディタで ta_googlescc_settings.conf を開きます。

      sudo vim ta_googlescc_settings.conf
      
    4. 次の行をファイルの末尾に追加します。

      [additional_parameters]
      scheme = http
      
    5. ファイルを保存して閉じます。

    6. Splunk プラットフォームを再起動します。

  2. Splunk のウェブ インターフェースで、[Apps] > [Google SCC Add-on for Splunk] > [Configuration] > [Google SCC Account] をクリックします。

  3. [Configuration] タブを選択します。

  4. [Add] をクリックします。

  5. 表示されたフィールドに応じて、次のいずれかを行います。

    • [Service Account JSON] フィールドが表示されたら、サービス アカウント キーが含まれる JSON ファイルを参照します。このフィールドは、オンプレミスで Splunk を使用している場合に表示されます。

    • [Credential Configuration] フィールドが表示されたら、Workload Identity 連携の設定時にダウンロードした認証情報の構成ファイルを参照します。このフィールドは、Microsoft Azure または AWS で Splunk をホストしている場合に表示されます。

    Google Cloud に Splunk をデプロイしたか、手順 1 を完了した場合、サービス アカウントの構成は自動的に検出されます。

  6. [Organization] に Google Cloud 組織 ID を追加します。

  7. プロキシ サーバーを使用して Splunk を Google Cloud に接続する場合は、次の操作を行います。

    1. [Proxy] タブをクリックします。
    2. [Enable] を選択します。
    3. プロキシの種類(HTTPS、SOCKS4、SOCKS5)を選択します。
    4. プロキシのホスト名、ポート、必要に応じてユーザー名とパスワードを入力します。
  8. [Logging] タブで、アドオンのロギングレベルを選択します。

  9. [保存] をクリックします。

  10. 統合する Google Cloud 組織ごとに手順 2~9 を完了します。

Security Command Center のデータ入力を追加するの説明に従って、Google Cloud 組織のデータ入力を作成します。

Security Command Center のデータ入力を追加する

  1. Splunk のウェブ インターフェースで、[Apps] > [Google SCC Add-on for Splunk] をクリックします。

  2. [Inputs] タブを選択します。

  3. [Create New Input] をクリックします。

  4. いずれかの入力を選択します。

    • ソース入力
    • 検出結果の入力
    • アセットの入力
    • 監査ログの入力
  5. [Edit] アイコンをクリックします。

  6. 次の情報を入力します。

    フィールド 説明
    入力の名前 データ入力のデフォルト名
    期間 次のデータの呼び出しまでの待機時間(秒)
    インデックス Security Command Center データの送信先の Splunk インデックス
    アセット サブスクリプション ID (アセット入力の場合のみ)リソースの Pub/Sub サブスクリプションの名前
    監査ログのサブスクリプション ID (監査ログ入力の場合のみ)監査ログの Pub/Sub サブスクリプションの名前
    検出結果のサブスクリプション ID (検索結果の入力の場合のみ)検索結果の Pub/Sub サブスクリプションの名前
    最大取得数 1 回の呼び出しで取得するアセットの最大数

  7. [Update] をクリックします。

  8. 追加する入力ごとに手順 3~7 を繰り返します。

  9. 統合する Google Cloud 組織ごとに手順 3~8 を繰り返します。

  10. [Status] 行で、Splunk に転送するデータ入力を有効にします。

Splunk インデックスを更新する

メインの Splunk インデックスを使用しない場合は、このタスクを完了します。

  1. Splunk のウェブ インターフェースで、[Settings] > [Advanced Search] > [Search macros] をクリックします。
  2. [Google SCC App for Splunk] を選択します。
  3. [googlescc_index] を選択します。
  4. 自分のインデックスを使用するように index=main を更新します。
  5. [Save] をクリックします。

Splunk で Security Command Center のデータを表示する

  1. Splunk のウェブ インターフェースで、[Apps] > [Google SCC Add-on for Splunk] をクリックします。

  2. [Search] タブを選択します。

  3. 検索クエリを設定します(index="main" など)。

  4. 期間を選択します。

  5. 検索アイコンをクリックします。

  6. 必要に応じて、データをソースタイプ(ソース、アセット、監査ログ、IAM アセット、検出結果のいずれか)でフィルタします。

ダッシュボードを表示する

Splunk 用の Google SCC アプリを使用すると、Security Command Center からのデータを可視化できます。5 つのダッシュボード(OverviewSourcesFindingsAssetsAudit LogsSearch)があります。

これらのダッシュボードには、Splunk のウェブ インターフェースの [Apps] > [Google SCC Apps for Splunk] ページからアクセスできます。

[Overview] ダッシュボード

[Overview] ダッシュボードには、重要度レベル、カテゴリ、状態別に、組織で見つかった検出結果の合計数を表示する一連のグラフが表示されます。検出結果は、Security Command Center の組み込みサービス(Security Health AnalyticsWeb Security ScannerEvent Threat DetectionContainer Threat Detection)と、有効にした統合サービスから編集されます。

コンテンツをフィルタリングするには、期間と組織 ID を設定します。

追加のグラフには、最も多くの検出結果を生成したカテゴリ、プロジェクト、アセットが表示されます。

[Assets] ダッシュボード

[Assets] ダッシュボードには、最近作成または変更された Google Cloud アセットを 1,000 個含むテーブルが表示されます。テーブルには、アセット名、アセットタイプ、リソース オーナー、最終更新日時が表示されます。

アセットデータを期間、組織 ID、アセットタイプでフィルタできます。[Redirect To SCC] 列の [View] をクリックすると、Google Cloud コンソールの Security Command Center の [アセット] ページにリダイレクトされます。選択したアセットの詳細がコンソールに表示されます。

[Audit logs] ダッシュボード

[Audit logs] ダッシュボードには、監査ログ情報を示す一連のグラフとテーブルが表示されます。ダッシュボードに含まれる監査ログは、管理者のアクティビティ、データアクセス、システム イベント、ポリシーで拒否された監査ログです。テーブルには、時間、ログ名、重大度、サービス名、リソース名、リソースタイプが含まれます。

データを期間、組織 ID、ログ名でフィルタできます。

[Findings] ダッシュボード

[Findings] ダッシュボードには、最新の 1,000 件の検出結果を含むテーブルが表示されます。テーブルの列には、カテゴリ、アセット名、ソース名、セキュリティ マーク、検出結果クラス、重大度などの項目が含まれています。

データを期間、組織 ID、カテゴリ、重大度、ソース名、アセット名、プロジェクト名、検出結果クラスでフィルタリングできます。[Update Status] 列で、検出結果の状態を更新できます。検出結果を積極的に確認していることを示すには、[Mark as ACTIVE] をクリックします。検出結果を積極的に確認していない場合は、[Mark as INACTIVE] をクリックします。

検出結果の名前をクリックすると、Google Cloud コンソールの Security Command Center の [検出結果] ページにリダイレクトされ、選択した検出結果の詳細が表示されます。

[Sources] ダッシュボード

[Sources] ダッシュボードに、すべてのセキュリティ ソースの表が表示されます。テーブルの列には、名前、表示名、説明が含まれています。

コンテンツをフィルタリングするには、期間を設定できます。

アプリをアンインストールする

Splunk 用の Security Command Center データを取得する必要がなくなったら、アプリをアンインストールします。

  1. Splunk のウェブ インターフェースで、[Apps] > [Manage Apps] に移動します。

  2. Google SCC App for Splunk を検索します。

  3. [Status] 列で、[Disable] をクリックします。

  4. Google SCC Add-on for Splunk を検索します。

  5. [Status] 列で、[Disable] をクリックします。

  6. 必要に応じて、Security Command Center のインデックスに登録されたデータを削除します。アプリを削除する前に、Splunk CLI clean コマンドを使用して、アプリからインデックスに登録されたデータを削除できます。

  7. Splunk スタンドアロン環境で、次の操作を行います。

    1. ターミナルを開いて、Splunk にログインします。

    2. $SPLUNK_HOME/etc/apps/APPNAME でアプリとそのディレクトリを削除します。

      ./splunk remove app APPNAME -auth USERNAME:PASSWORD
      

      APPNAME は、GoogleSCCAppforSplunk または TA_GoogleSCC に置き換えます。

    3. もう一方のアプリでも手順 b を繰り返します。

    4. 必要に応じて、$SPLUNK_HOME/etc/users/*/GoogleSCCAppforSplunk$SPLUNK_HOME/etc/users/*/TA_GoogleSCC にあるファイルを削除して、ユーザー固有のディレクトリを削除します。

    5. Splunk プラットフォームを再起動します。

  8. 分散型 Splunk 環境で、次の操作を行います。

    1. deployer manager にログインします。
    2. $SPLUNK_HOME/etc/apps/APPNAME でアプリとそのディレクトリを削除します。

      ./splunk remove app APPNAME -auth USERNAME:PASSWORD
      

      APPNAME は、GoogleSCCAppforSplunk または TA_GoogleSCC に置き換えます。

    3. もう一方のアプリでも手順 b を繰り返します。

    4. splunk apply shcluster-bundle コマンドを実行します。

      splunk apply shcluster-bundle -target URI:MANAGEMENT_PORT -auth USERNAME:PASSWORD
      

次のステップ