Splunk を Google SecOps と統合する

このドキュメントでは、Splunk を Google SecOps と統合する方法について説明します。

始める前に

Splunk を Google SecOps と統合する前に、デプロイ アーキテクチャに適した取り込み方法を決定し、環境がすべての必要な依存関係、ネットワーク パス、アクセス権限を満たしていることを確認します。

Google SecOps は、次の 2 つの取り込み方法をサポートしています。

  • プッシュベースの取り込み: Splunk はアラートをローカルで評価し、TA-Siemplify アドオンとアラート トリガー アクションを使用して、イベントを Google SecOps に直接プッシュします。Google SecOps でコネクタを構成する必要はありません。

  • pull ベースの取り込み: Google SecOps コネクタは、Splunk REST API エンドポイントに定期的にクエリを実行して、アラート、SPL 検索結果、Splunk ES の注目すべきイベントを取得します。

push ベースの取り込み

push ベースの取り込みでは、Splunk から Google SecOps への直接アウトバウンド HTTPS 接続と、Splunk 検索ヘッドでの特定のアドオン構成が必要です。

push ベースの取り込みを構成する前に、次の要件を確認してください。

  1. Splunkbase から TA-Siemplify パッケージをダウンロードして、すべてのターゲット Splunk 検索ヘッドにインストールします。分散環境では、Splunk Deployer または Deployment Server を使用して、アドオンを Search Head Cluster 全体にデプロイします。

  2. モジュラー アラートとロギングをサポートするために、互換性のあるバージョンの Splunk 共通情報モデル(Splunk_SA_CIM)が検索ヘッドにインストールされていることを確認します。

  3. Splunk 検索ヘッドが HTTPS(TCP ポート 443)経由で Google SecOps インスタンスの URL に送信ネットワーク アクセスできることを確認します。

  4. Google SecOps に、API キーを生成するための管理者権限を持つアカウントがあることを確認します([設定] > [詳細] > [API])。生成された API キーに、アラートとケースの作成権限を持つロールが割り当てられていることを確認します。

  5. 変換検索(stats、chart、timechart を使用した検索など)から未加工イベントを取り込む場合は、Search Head の savedsearches.conf で dispatch.buckets = 1 が構成されていることを確認します。

pull ベースの取り込み

プルベースの取り込み、プレイブック アクション、同期ジョブでは、Google SecOps(またはリモート エージェント)が Splunk へのインバウンド管理接続を確立する必要があります。

プルコネクタ、アクション、ジョブを構成する前に、次の要件を確認してください。

  1. ネットワーク接続: Google SecOps(またはリモート エージェント)から Splunk 管理 REST API ポート(デフォルト: 8089/TCP)へのネットワークの視認性を確認します。

  2. カスタム CA 証明書: Splunk インスタンスがプライベート CA 証明書または内部 CA 証明書を使用している場合は、Google SecOps で Splunk 統合バージョン 26.0 以降を実行していることを確認します。

  3. 認証: 有効な Splunk ユーザー認証情報(ユーザー名とパスワード)を取得するか、Splunk 署名なしトークンを生成します(Splunk プラットフォームでこの認証方法を有効にするには、トークン認証が必要です)。

  4. Splunk ロールの機能: 認証する Splunk アカウントに、次の機能を持つロールがあることを確認します。

    • search
    • schedule_search
    • edit_tcp (イベントを送信アクションを使用する場合のみ必須)
    • edit_notable_events (Update Notable Events アクションまたは Splunk ES 同期ジョブを使用する場合にのみ必要)
  5. データストアとルックアップの権限: 認証アカウントが、選択したコンポーネントに関連する Splunk データストアにアクセスできることを確認します。

    • Splunk pull コネクタ: siemplify_alerts ルックアップ テーブルに対する読み取り権限(TA-Siemplify がインストールされ、pull モードで構成されている場合に入力されます)。
    • Splunk クエリコネクタとアクション:
      • ターゲット イベント インデックスの検索権限 (TA-Siemplify は不要)。
      • イベントを送信アクションを使用する場合は、ターゲット インデックスに対する書き込み権限と入力権限。
    • Splunk ES - 注目すべきイベント コネクタとジョブ: アクティブな Splunk Enterprise Security(ES)のインストール、notable インデックスに対する読み取り権限、get_notable_index マクロへのアクセス(TA-Siemplify は不要)。

統合のパラメータ

次のパラメータを使用して統合を構成します。

パラメータの表示名 種類 デフォルト値 必須 説明
サーバー アドレス 文字列 {SCHEMA}://{IP}:{PORT} ○ Splunk サーバーのアドレス。
ユーザー名 文字列 なし いいえ Splunk への接続に使用するべきユーザーのメールアドレス。
パスワード パスワード なし いいえ 対応するユーザーのパスワード。
API トークン パスワード なし いいえ Splunk API トークン。このフィールドが空でない場合、API トークンは他の認証方法よりも優先されます。
SSL を確認する チェックボックス オフ いいえ Splunk 接続で SSL の検証が必要な場合は、このチェックボックスをオンにします(デフォルトではオフになっています)。
CA 証明書ファイル 文字列 なし いいえ Base64 でエンコードされた CA 証明書ファイル。

Google SecOps で統合を構成する方法については、統合を構成するをご覧ください。

必要に応じて、後の段階で変更できます。統合インスタンスを構成すると、ハンドブックで使用できるようになります。複数のインスタンスの構成とサポートの詳細については、複数のインスタンスのサポートをご覧ください。

操作

アクションの詳細については、 デスクから保留中のアクションに対応すると手動アクションを実行するをご覧ください。

ホストイベントを取得する

Splunk でホストに関連するイベントを取得します。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
ホストあたりのイベント数の上限 Integer 100 ○ ホストごとに返されるイベント数を指定します。
結果の取得元 文字列 -24 時間 ○ イベントの開始時刻を指定します。
結果の宛先 文字列 参加する ○ イベントの終了時刻を指定します。
結果フィールド CSV なし いいえ 返される必要があるフィールドのカンマ区切りのリストを指定します。
インデックス 文字列 なし いいえ ホストに関連するイベントを検索する際に使用するインデックスを指定します。何も指定しない場合、アクションはインデックスを使用しません。
ホストキー 文字列 ホスト いいえ ホストイベントに関する情報を取得するために使用するキーを指定します。デフォルト: host。

実行

このアクションはホスト名エンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
success True/False success:False
JSON の結果
[{
    "app": "SA-AccessProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087674",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:58.404 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-AccessProtection;Access - Default Account Usage - Rule\", search_type=\"\", user=\"admin\", app=\"SA-AccessProtection\", savedsearch_name=\"Access - Default Account Usage - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=0, dispatch_time=1612179969, run_time=51348.242, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtQWNjZXNzUHJvdGVjdGlvbg__RMD509c859ea7b9951b8_at_1612179932_61.40533\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "0",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".404",
    "_time": "2021-02-02T04:01:58.404+02:00"
},
{
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087731",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "127.0.0.1 - admin [02/Feb/2021:04:01:58.172 +0200] \"POST /servicesNS/nobody/SA-AccessProtection/saved/searches/Access%20-%20Default%20Account%20Usage%20-%20Rule/notify?trigger.condition_state=1 HTTP/1.1\" 200 1985 - - - 3ms",
    "_serial": "1",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "splunkd_access",
    "_subsecond": ".172",
    "_time": "2021-02-02T04:01:58.172+02:00"
},
{
    "app": "SA-EndpointProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087653",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:57.804 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-EndpointProtection;Endpoint - Should Timesync Host Not Syncing - Rule\", search_type=\"\", user=\"admin\", app=\"SA-EndpointProtection\", savedsearch_name=\"Endpoint - Should Timesync Host Not Syncing - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=300, dispatch_time=1612179970, run_time=51347.420, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtRW5kcG9pbnRQcm90ZWN0aW9u__RMD5ef3c08822811b7cd_at_1612179932_62.25751\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "2",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".804",
    "_time": "2021-02-02T04:01:57.804+02:00"
}]
ケースウォール
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

成功し、結果が利用可能な場合: 「Splunk で次のホストのイベントが正常に返されました: \n {0}」.format(entity.identifier)

成功し、一部の結果が利用できない場合: 「Splunk で次のホストにイベントが見つかりませんでした:\n {0}」.format(entity.identifier)

成功したが、すべての結果が利用できない場合: 「Splunk で指定されたホストのイベントが見つかりませんでした」

アクションが失敗し、ハンドブックの実行が停止します。

認証情報が誤っている、サーバーへの接続がないなどの致命的なエラーの場合: 「アクション「ホスト イベントを取得」の実行エラー。理由: {0}」.format(error.Stacktrace)

400 の場合: 「アクション「ホストイベントの取得」の実行エラー。理由: {0}」.format(messages/text)

全般
Case Wall テーブル

名前: {Entity.identifier} イベント

列: 結果に基づきます。

Ping

[Google Security Operations Marketplace] タブの統合構成ページで提供されているパラメータを使用して、Splunk への接続をテストします。

パラメータ

なし

実行

このアクションはエンティティに対しては実行されず、必須入力パラメータもありません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False
ケースウォール
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行が停止したりすることはありません。
成功した場合: 「指定された接続パラメータで Splunk サーバーに正常に接続されました。」

アクションが失敗し、ハンドブックの実行が停止します。
成功しなかった場合:「Splunk サーバーへの接続に失敗しました。エラーは {0}」.format(exception.stacktrace)

全般

Splunk Csv Viewer

パラメータ

パラメータ 種類 デフォルト値 必須 説明
結果 文字列 なし ○ 未加工の結果。

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_succeed True/False is_succeed:False

SplunkQuery

Splunk でクエリを実行します。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
検索モード DDL

スマート

有効な値:

  • 詳細
  • スマート
  • 高速
いいえ 検索を実行するモードを指定します。
クエリ 文字列 ○ 実行する必要のあるクエリを指定します。例: index="_internal"
結果数の上限 Integer 100 いいえ

返す結果の数を指定します。
注: このパラメータは、指定されたクエリに「head」キーワードを追加します。デフォルトは 100 です。

検索結果: 文字列 -24h いいえ クエリの開始時刻を指定します。デフォルト: -24h
結果 文字列 今 いいえ クエリの終了時刻を指定します。デフォルト: now。
結果フィールド CSV いいえ

返される必要があるフィールドのカンマ区切りのリストを指定します。
注: このパラメータは、指定されたクエリに「fields」キーワードを追加します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_succeed True/False is_succeed:False
JSON の結果
[{
    "app": "SA-AccessProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087674",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:58.404 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-AccessProtection;Access - Default Account Usage - Rule\", search_type=\"\", user=\"admin\", app=\"SA-AccessProtection\", savedsearch_name=\"Access - Default Account Usage - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=0, dispatch_time=1612179969, run_time=51348.242, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtQWNjZXNzUHJvdGVjdGlvbg__RMD509c859ea7b9951b8_at_1612179932_61.40533\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "0",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".404",
    "_time": "2021-02-02T04:01:58.404+02:00"
},
{
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087731",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "127.0.0.1 - admin [02/Feb/2021:04:01:58.172 +0200] \"POST /servicesNS/nobody/SA-AccessProtection/saved/searches/Access%20-%20Default%20Account%20Usage%20-%20Rule/notify?trigger.condition_state=1 HTTP/1.1\" 200 1985 - - - 3ms",
    "_serial": "1",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "splunkd_access",
    "_subsecond": ".172",
    "_time": "2021-02-02T04:01:58.172+02:00"
},
{
    "app": "SA-EndpointProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087653",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:57.804 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-EndpointProtection;Endpoint - Should Timesync Host Not Syncing - Rule\", search_type=\"\", user=\"admin\", app=\"SA-EndpointProtection\", savedsearch_name=\"Endpoint - Should Timesync Host Not Syncing - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=300, dispatch_time=1612179970, run_time=51347.420, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtRW5kcG9pbnRQcm90ZWN0aW9u__RMD5ef3c08822811b7cd_at_1612179932_62.25751\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "2",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".804",
    "_time": "2021-02-02T04:01:57.804+02:00"
}]
Case Wall
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

成功し、結果が利用可能な場合: "Successfully returned results for the query "{0}" in Splunk".format(query)

成功したが結果がない場合: 「Splunk でクエリ「{0}」の結果が見つかりませんでした」.format(query)

非同期メッセージ: 「クエリ {0} の実行が完了するのを待機しています。」.format(query name)

アクションが失敗し、ハンドブックの実行が停止します。

認証情報が誤っている、サーバーへの接続がないなどの致命的なエラーの場合、その他: 「アクション「SplunkQuery」の実行エラー。理由: {0}」.format(error.Stacktrace)

400 の場合: 「アクション「SplunkQuery」の実行中にエラーが発生しました。理由: {0}」.format(messages/text)

全般
Case Wall テーブル

名前: Splunk クエリ結果

列 - 結果に基づきます。

全般

イベントを送信

イベントを Splunk に送信します。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
索引 文字列 main ○ イベントを作成するインデックスを指定します。
イベント 文字列 なし ○ 送信する必要がある未加工イベントを指定します。
ホスト 文字列 なし いいえ イベントに関連するホストを指定します。
ソース 文字列 なし いいえ イベントのソースを指定します。例: www.
Sourcetype 文字列 なし いいえ イベントのソースタイプを指定します。例: web_event

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
success True/False success:False
JSON の結果
{
    "index": "default",
    "bytes": 70,
    "host": "dogo",
    "source": "www",
    "sourcetype": "web_event"
}
Case Wall
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

成功した場合: 「Splunk のインデックス「{0}」に新しいイベントが正常に追加されました。」.format(index)

アクションが失敗し、ハンドブックの実行が停止します。

認証情報が誤っている、サーバーへの接続がないなどの致命的なエラーの場合: 「アクション「イベントの送信」の実行エラー。理由: {0}」.format(error.Stacktrace)

400 の場合: 「アクション「イベントを送信」の実行エラー。理由: {0}」.format(messages/text)

全般

注目すべきイベントを更新する

Splunk ES で注目すべきイベントを更新します。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
注目すべきイベント ID CSV なし ○ 注目すべきイベントの ID を指定します。例: 1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7@@notable@@cb87390ae72763679d3f6f8f097ebe2b,1D234D5B-1531-2D2B-BB94-41C439BE12B7@@notable@@cb87390ae72763679d3f6f8f097ebe2b
ステータス DDL

1 つ選択

値は次のいずれかです。

1 つ選択

未割り当て

新規

処理中

保留中

解決済み

クローズ

○ 注目すべきイベントの新しいステータスを指定します。
緊急度 DDL

1 つ選択

値は次のいずれかです。

1 つ選択

重大

高

中

低

情報

○ 注目すべきイベントの新しい緊急度を指定します。
新しいオーナー 文字列 なし ○ 注目すべきイベントの新しいオーナーを指定します。
コメント 文字列 なし ○ 注目すべきイベントのコメントを指定します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False
ケースウォール
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

成功し、データが利用可能な場合(is_success=true)

print "Successfully updated {0} notable events in Splunk.".format(count(notable_events))

更新に失敗した場合(status_code=400、is_success=false):

「アクションは重要なイベントを更新できませんでした」を印刷します。Reason:{0}".format(string_from_response)

アクションが失敗し、ハンドブックの実行が停止します。

認証情報が誤っている、サーバーへの接続がないなど、致命的なエラーの場合:

「アクション「注目すべきイベントの更新」の実行エラー」を出力します。理由: {0}」.format(error.Stacktrace)

全般

エンティティ クエリを実行する

Splunk でエンティティ クエリを実行します。

アクション パラメータを操作する方法

このアクションにより、エンティティに関連する情報をすばやく取得できます。たとえば、複雑なクエリを作成することなく、指定されたハッシュの影響を受けるエンドポイントのイベント数を確認するユースケースを解決できます。Splunk でこの問題を解決するには、次のクエリを準備する必要があります。index="main" | where (device_ip="10.0.0.1" or device_ip="10.12.12.12") and (hash="bad_hash_1" or hash="bad_hash_2") 「Execute Entity Query」アクションを使用して同じクエリを作成するには、次のようにアクション パラメータを入力する必要があります。

クエリ index="main"
IP エンティティ キー device_ip
ファイル ハッシュ エンティティ キー ハッシュ
クロス エンティティ オペレーター AND

その他のフィールドはすべて空欄のままにできます。

提供されたハッシュの影響を受けたエンドポイントの数を確認するユースケースの場合、「エンティティ クエリの実行」の構成は次のようになります。

クエリ index="main"
ファイル ハッシュ エンティティ キー ハッシュ

この状況では、「クロス エンティティ演算子」は影響しません。これは、複数の「エンティティ キー」が指定されている場合にのみクエリに影響するためです。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
検索モード DDL

スマート

    有効な値:
  • 詳細
  • スマート
  • 高速
いいえ 検索を実行するモードを指定します。
クエリ 文字列 ○ 「Where」句なしで実行する必要のあるクエリを指定します。例: index="_internal"
結果数の上限 Integer 100 いいえ 返す結果の数を指定します。注: このパラメータは、指定されたクエリに「head」キーワードを追加します。デフォルトは 100 です。
検索結果: 文字列 -24h いいえ クエリの開始時刻を指定します。デフォルト: -24h
結果 文字列 今 いいえ クエリの終了時刻を指定します。デフォルト: now。
結果フィールド CSV なし いいえ

返される必要があるフィールドのカンマ区切りのリストを指定します。
注: このパラメータは、指定されたクエリに「fields」キーワードを追加します。

IP エンティティ キー 文字列 なし いいえ IP エンティティで使用するキーを指定します。詳しくは、アクションのドキュメントをご覧ください。
ホスト名エンティティ キー 文字列 なし いいえ . を準備するときに、Hostname エンティティで使用するキーを指定します。詳しくは、アクションのドキュメントをご覧ください。
ファイル ハッシュ エンティティ キー 文字列 なし いいえ ファイル ハッシュ エンティティで使用するキーを指定します。詳しくは、アクションのドキュメントをご覧ください。
ユーザー エンティティ キー 文字列 なし いいえ User エンティティで使用するキーを指定します。詳しくは、アクションのドキュメントをご覧ください。
URL エンティティ キー 文字列 なし いいえ URL エンティティで使用するキーを指定します。詳しくは、アクションのドキュメントをご覧ください。
メールアドレスのエンティティ キー 文字列 なし いいえ メールアドレス エンティティで使用するキーを指定します。詳しくは、アクションのドキュメントをご覧ください。
エンティティが不足している場合は停止 チェックボックス オン ○ 有効にすると、指定された「.. エンティティ キー」ですべてのエンティティ タイプが使用可能でない限り、アクションは実行を開始しません。例: 「IP エンティティ キー」と「ファイルハッシュ エンティティ キー」が指定されているが、スコープにファイルハッシュがない場合、このパラメータが有効になっていると、アクションはクエリを実行しません。
クロス エンティティ オペレーター DDL

または

有効な値:

または

AND

○ 異なるエンティティ タイプ間で使用する論理演算子を指定します。

実行

このアクションは次のエンティティに対して実行されます。

  • IP アドレス
  • ホスト
  • ユーザー
  • ハッシュ
  • URL

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_succeed True/False is_succeed:False
JSON の結果
[{
    "app": "SA-AccessProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087674",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:58.404 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-AccessProtection;Access - Default Account Usage - Rule\", search_type=\"\", user=\"admin\", app=\"SA-AccessProtection\", savedsearch_name=\"Access - Default Account Usage - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=0, dispatch_time=1612179969, run_time=51348.242, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtQWNjZXNzUHJvdGVjdGlvbg__RMD509c859ea7b9951b8_at_1612179932_61.40533\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "0",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".404",
    "_time": "2021-02-02T04:01:58.404+02:00"
},
{
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087731",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "127.0.0.1 - admin [02/Feb/2021:04:01:58.172 +0200] \"POST /servicesNS/nobody/SA-AccessProtection/saved/searches/Access%20-%20Default%20Account%20Usage%20-%20Rule/notify?trigger.condition_state=1 HTTP/1.1\" 200 1985 - - - 3ms",
    "_serial": "1",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "splunkd_access",
    "_subsecond": ".172",
    "_time": "2021-02-02T04:01:58.172+02:00"
},
{
    "app": "SA-EndpointProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087653",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:57.804 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-EndpointProtection;Endpoint - Should Timesync Host Not Syncing - Rule\", search_type=\"\", user=\"admin\", app=\"SA-EndpointProtection\", savedsearch_name=\"Endpoint - Should Timesync Host Not Syncing - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=300, dispatch_time=1612179970, run_time=51347.420, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtRW5kcG9pbnRQcm90ZWN0aW9u__RMD5ef3c08822811b7cd_at_1612179932_62.25751\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "2",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".804",
    "_time": "2021-02-02T04:01:57.804+02:00"
}]
Case Wall
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

成功し、結果が利用可能な場合: "Successfully returned results for the query "{0}" in Splunk".format(query)

成功したが結果がない場合: 「Splunk でクエリ「{0}」の結果が見つかりませんでした」.format(query)

非同期メッセージ: 「クエリ {0} の実行が完了するのを待機しています。」.format(query name)

[Stop If Not Enough Entities] が有効になっていて、指定された [Entity Keys] に十分なエンティティ タイプがない場合(is_success=false): 指定された [.. Entity Keys] に十分なエンティティ タイプが指定されていないため、クエリを作成できませんでした。「エンティティが不足している場合は停止」パラメータを無効にするか、指定された「.. エンティティ キー」ごとに少なくとも 1 つのエンティティを指定してください。

アクションが失敗し、ハンドブックの実行が停止します。

認証情報が誤っている、サーバーへの接続がないなどの致命的なエラーの場合: 「アクション「エンティティ クエリの実行」の実行エラー。理由: {0}」.format(error.Stacktrace)

400 の場合: 「アクション「エンティティ クエリの実行」の実行エラー。理由: {0}」.format(messages/text)

全般
Case Wall テーブル

名前: Splunk クエリ結果

列: 結果に基づきます。

全般

コネクタ

Google SecOps でコネクタを構成する方法については、データを取り込む(コネクタ)をご覧ください。

Splunk Query コネクタ

コネクタは、動的リスト(whitelist)の一部であるクエリを送信し、結果を取得して、取得した結果に基づいてケースを構築します。

ログを表示する Splunk クエリの例

  1. クエリは、動的リスト(whitelist)ルールとして入力する必要があります。

  2. 複数のフィルタを使用する検索クエリでは、検索フィルタ間の区切り文字としてスペースを使用する必要があります(例: index=cim_modactions sourcetype=modular_alerts:risk)。

  3. 同じルールに複数のスペース区切りの検索フィルタを入力するのではなく、複数の動的リスト(whitelist)ルールを使用すると、追加されたルールごとに個別の検索が実行されます。

    • index=cim_modactions
    • sourcetype=modular_alerts:send_data_to_siemplify
    • index=_internal sourcetype=splunkd
    • component=sendmodalert
    • action=send_data_to_siemplify
    • index=_internal source=/opt/splunk/var/log/splunk/send_data_to_siemplify_modalert.log

コネクタ パラメータ

コネクタを構成するには、次のパラメータを使用します。

パラメータ
Product Field Name 必須

ソース フィールド名を入力して Product Field 名を取得します。

デフォルト値は device_product です。

Event Field Name 必須

ソース フィールド名を入力して Event Field 名を取得します。

デフォルト値は app です。

API Root 必須

Splunk インスタンスの API ルート。

デフォルト値は https://IP:8089 です。

Username 必須

Splunk アカウントのユーザー名。

Password 必須

Splunk アカウントのパスワード。

API Token 省略可

Splunk API トークン。

このフィールドに値がある場合、API トークンは他の認証方法よりも優先されます。

Verify SSL 必須

オンにすると、CrowdStrike サーバーへの接続用の SSL 証明書が有効であることを確認します。

デフォルトではオフになっています。

Environment Field Name 省略可

環境名が保存されるフィールドの名前。

Rule Generator Field 必須

ルール生成ツールの値をマッピングするために使用されるフィールドの名前。

Alert Name Field Name 必須

アラート名。

Events Count Limit Per Query Optional

クエリごとに取得するイベントの最大数。

Max Day Backwards Optional

イベントを取得する時点からの日数。

Aggregate Events Query Optional

有効にすると、コネクタはすべてのイベントを 1 つのアラートにまとめます。

デフォルトでは無効にされています。

PythonProcessTimeout (Seconds) 必須

現在のスクリプトを実行している Python プロセスのタイムアウト上限。

デフォルト値は 60 秒です。

Proxy Server Address 省略可

使用するプロキシ サーバーのアドレス。

Proxy Username 省略可

認証に使用するプロキシのユーザー名。

Proxy Password 省略可

認証に使用するプロキシ パスワード。

Environment Regex Pattern 省略可

Environment Field Name フィールドで見つかった値に対して実行する正規表現パターン。

デフォルト値の .* は、すべてをキャッチして値を変更せずに返します。

このパラメータを使用すると、正規表現ロジックを使用して環境フィールドを操作できます。

正規表現パターンが null か空の場合、または環境値が null の場合、最終的な環境の結果はデフォルト環境になります。

コネクタルール

コネクタでプロキシがサポートされます。

Splunk Pull Connector

Splunk から Google SecOps にアラートとイベントを pull します。

コネクタ パラメータ

コネクタを構成するには、次のパラメータを使用します。

パラメータ
Product Field Name 必須

ソース フィールド名を入力して Product Field 名を取得します。

デフォルト値は device_product です。

Event Field Name 必須

ソース フィールド名を入力して Event Field 名を取得します。

デフォルト値は name です。

Environment Field Name 省略可

環境名が保存されるフィールドの名前。

環境フィールドが見つからない場合、結果の環境は "" です。

デフォルト値は "" です。

Environment Regex Pattern 省略可

Environment Field Name フィールドで見つかった値に対して実行する正規表現パターン。

デフォルト値の .* は、すべてをキャッチして値を変更せずに返します。

このパラメータを使用すると、正規表現ロジックを使用して環境フィールドを操作できます。

正規表現パターンが null か空の場合、または環境値が null の場合、最終的な環境の結果は "" になります。

PythonProcessTimeout (Seconds) 必須

現在のスクリプトを実行している Python プロセスのタイムアウト上限。

デフォルト値は 60 秒です。

Server Address 必須

Splunk API サーバーの IP アドレス。

Port 必須

Splunk インスタンスのポート。

デフォルト値は 8089 です。

Username 必須

Splunk アカウントのユーザー名。

Password 必須

Splunk アカウントのパスワード。

Time Frame 省略可

アラートを取得する期間。

デフォルト値は 1 時間です。

例:

値が 1 分に設定されている場合、コネクタは 1 分前からアラートを取得します。

値が 3 時間に設定されている場合、コネクタは 3 時間前からアラートを取得します。

値を 1 日または 1 週間に設定すると、コネクタはそれぞれ 1 日(24 時間)前または 1 週間前からアラートを取得します。

Alerts Count Limit 省略可

1 回のイテレーションでコネクタから返されるアラートの数。

デフォルト値は 100 です。

Use SSL 省略可

SSL 接続または TLS 接続を有効にする場合は、このチェックボックスをオンにします。

デフォルトではオフになっています。

Proxy Server Address 省略可

使用するプロキシ サーバーのアドレス。

Proxy Username 省略可

認証に使用するプロキシのユーザー名。

Proxy Password 省略可

認証に使用するプロキシ パスワード。

コネクタルール

コネクタでプロキシがサポートされます。

Splunk ES - Notable Events コネクタ

Splunk ES から注目すべきイベントを取り込む。

ケースの優先度を定義する

ケースの優先度は、注目すべきイベントの Urgency パラメータで定義されます。このパラメータのみが、注目すべきイベントを Google SecOps に取り込む際に考慮されます。

コネクタ パラメータ

コネクタを構成するには、次のパラメータを使用します。

パラメータ
Product Field Name 必須

ソース フィールド名を入力して Product Field 名を取得します。

デフォルト値は Product Name です。

Event Field Name 必須

ソース フィールド名を入力して Event Field 名を取得します。

デフォルト値は index です。

Environment Field Name 省略可

環境名が保存されるフィールドの名前。

環境フィールドが見つからない場合は、デフォルトの環境が使用されます。

デフォルト値は "" です。

Environment Regex Pattern 省略可

Environment Field Name フィールドで見つかった値に対して実行する正規表現パターン。

デフォルト値の .* は、すべてをキャッチして値を変更せずに返します。

このパラメータを使用すると、正規表現ロジックを使用して環境フィールドを操作できます。

正規表現パターンが null か空の場合、または環境値が null の場合、最終的な環境の結果はデフォルト環境になります。

Script Timeout (Seconds) 必須

現在のスクリプトを実行している Python プロセスのタイムアウト上限。

デフォルト値は 180 秒です。

Server Address 必須

Splunk インスタンスのサーバー アドレス。

デフォルト値は https://:8089 です。

Username 省略可

Splunk アカウントのユーザー名。

Password 省略可

Splunk アカウントのパスワード。

API Token 必須

Splunk API トークン。

このフィールドに値がある場合、API トークンは他の認証方法よりも優先されます。

Lowest Urgency To Fetch 必須

注目すべきイベントの取得に使用される最も低い緊急度。

指定できる値は次のとおりです。

  • Informational
  • Low
  • Medium
  • High
  • Critical

デフォルト値は Medium です。

Fetch Max Hours Backwards 省略可

注目すべきイベントを取得する時点からの時間数。

デフォルト値は 1 時間です。

Only Drilldown Events 省略可

有効にすると、コネクタはベースイベントを取得せずにドリルダウン イベントの取得を試みます。このパラメータを使用するには、Fetch Base Events オプションを有効にする必要があります。

デフォルトでは無効にされています。

Padding Time 省略可

パディングとして使用される時間数。

値が指定されていない場合、このパラメータは適用されません。

最大値は 12 時間です。

Max Notable Events To Fetch 省略可

1 回のコネクタのイテレーションで処理する注目すべきイベントの数。

デフォルト値は 10 です。

Use whitelist as a blacklist 必須

有効にすると、動的リストがブロックリストとして使用されます。

デフォルトでは無効にされています。

Verify SSL 必須

オンにすると、CrowdStrike サーバーへの接続用の SSL 証明書が有効であることを確認します。

デフォルトではオフになっています。

Proxy Server Address 省略可

使用するプロキシ サーバーのアドレス。

Proxy Username 省略可

認証に使用するプロキシのユーザー名。

Proxy Password 省略可

認証に使用するプロキシ パスワード。

Query Filter 省略可

注目すべきイベントを取得するために Splunk に送信される追加のクエリ フィルタ。

ここで指定した値は、WHERE クエリ句に追加されます。

Extract Base Events 省略可

有効にすると、コネクタはジョブに関する情報を使用して、注目すべきイベントに関連するベースイベントを抽出します。それ以外の場合、コネクタは注目すべきイベントに基づいて Google SecOps イベントを作成します。

このパラメータが True に設定されていても、コネクタがジョブを処理できない場合、コネクタは代替メカニズムとして注目すべきイベントに関する情報を使用します。

デフォルトで有効になっています。

Multivalue Fields 省略可

複数のエンティティを含むフィールドのカンマ区切りのリスト。

たとえば、フィールドに 2 つのホスト名が含まれている場合、エンティティを正しくマッピングするために、注目すべきイベントは 2 つの Google SecOps イベントに分割されます。

Notable Event Data Along Base Event 省略可

有効にすると、コネクタは、ベースイベントに加えて、注目すべきイベントに基づいて Google SecOps イベントを追加します。

デフォルトでは無効にされています。

Rule Generator Field Name 省略可

ルール ジェネレータ値のマッピングに使用されるフィールドの名前。

マッピングには、注目すべきイベント自体に関する情報のみが使用され、イベントは無視されます。無効な値が指定された場合、コネクタはフィールドを rule_name 値に設定します。

Alert Name Source 省略可

アラート名のソース。

次の値があります。

  • Search Name
  • Rule Name

デフォルト値は Search Name です。

Alert Start Time Field 省略可

アラートの start_time として使用する Splunk Notable Event のフィールド。

フィールドが空の場合、無効な場合、またはタイムスタンプとして解析できない場合、コネクタは _time フィールドを使用してデフォルトの動作にフォールバックします。

Query Filter パラメータの使用方法

特定のパラメータに基づいて注目すべきイベントを絞り込む必要がある場合は、Query Filter パラメータを使用します。このパラメータで指定された値は、注目すべきイベントを取得するために送信されるクエリの WHERE 句に追加されます。

送信されたクエリの例を次に示します。

(`get_notable_index` OR `get_sequenced_index`) | eval `get_event_id_meval`,
rule_id=event_id | tags outputfield=tag | `mvappend_field(tag,orig_tag)` |
`notable_xref_lookup` | `get_correlations` | `get_current_status` | `get_owner`
| `get_urgency` | typer | where (urgency="medium" AND urgency="low") AND
(status_label="Unassigned" OR status_label="New")  | tail 50 | fields *

たとえば、Query Filter = isTesting = True の場合、クエリは次のようになります。

search (`get_notable_index` OR `get_sequenced_index`) | eval epoch=_time | eval
`get_event_id_meval`,rule_id=event_id | tags outputfield=tag |
`mvappend_field(tag,orig_tag)` | `notable_xref_lookup` | `get_correlations` |
`get_current_status` | `get_owner` | `get_urgency` | typer | where
(urgency!="informational" AND urgency!="low" **AND isTesting = "True"**) |
fields *

コネクタルール

Splunk ES コネクタは、動的リストとブロックリスト(whitelist と blacklist)を使用します。コネクタは、イベントの search_name フィールドを使用して動的リストと比較します。

コネクタ イベント

[{
    "indicator": "2012/06/29_21:50", 
    "tlp": "TLP:RED", 
    "itype": "mal_url", 
    "severity": "very-high", 
    "classification": "public", 
    "detail": "", 
    "confidence": 50, 
    "actor": "", 
    "feed_name": "import", 
    "source": "admin", 
    "feed_site_netloc": "localhost", 
    "campaign": "", 
    "type": "url", 
    "id": "anomali:indicator-578a9be5-0e03-4ec0-940d-4b1842f40fd0", 
    "date_last": "2020-07-15 08:12:07 AM",
"Url": "indicator"
  },{
    "indicator": "2010/12/19_16:35", 
    "tlp": "TLP:RED", 
    "itype": "mal_url", 
    "severity": "very-high", 
    "classification": "public", 
    "detail": "", 
    "confidence": 50, 
    "actor": "", 
    "feed_name": "import", 
    "source": "admin", 
    "feed_site_netloc": "localhost", 
    "campaign": "", 
    "type": "url", 
    "id": "anomali:indicator-52cadd07-330a-45fd-962f-32e22d36a89a", 
    "date_last": "2020-07-15 08:12:07 AM"
  }]

ジョブ

ジョブの詳細については、 新しいジョブを構成すると 高度なスケジューリングをご覧ください。

Splunk ES のクローズされたイベントを同期する

クローズされた Splunk ES の注目すべきイベントと Google SecOps アラートを同期します。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
サーバー アドレス 文字列 https://IP:8089 ○ Splunk インスタンスのサーバー アドレス。
ユーザー名 文字列 なし いいえ Splunk アカウントのユーザー名。
パスワード パスワード なし いいえ Splunk アカウントのパスワード。
API トークン パスワード なし ○ Splunk API トークン。このフィールドが空でない場合、API トークンは他の認証方法よりも優先されます。
最大遡及時間 整数 24 ○ ステータスを同期するために遡る時間数を指定します。デフォルト: 24 時間。
SSL を確認する チェックボックス オン ○ 有効になっている場合は、Splunk サーバーへの接続用の SSL 証明書が有効であることを確認します。

Splunk ES のコメントを同期する

このジョブは、Splunk ES イベントと Google SecOps ケースのコメントを同期します。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
サーバー アドレス 文字列 https://IP:8089 ○ Splunk インスタンスのサーバー アドレス。
ユーザー名 文字列 なし いいえ Splunk アカウントのユーザー名。
パスワード パスワード なし いいえ Splunk アカウントのパスワード。
API トークン パスワード なし ○ Splunk API トークン。このフィールドが空でない場合、API トークンは他の認証方法よりも優先されます。
SSL を確認する チェックボックス オン ○ 有効になっている場合は、Splunk サーバーへの接続用の SSL 証明書が有効であることを確認します。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。