ArcSight を Google SecOps と統合する

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

統合バージョン: 42.0

セキュリティ イベント コネクタの前提条件

このコネクタは、ArcSight で自動的に生成されるレポートと連携します。コネクタは、生成されたレポートをダウンロードし、イベント ID を抽出してから、ArcSight API を使用してイベントの詳細を取得します。

セキュリティ イベント コネクタを構成する

  1. ArcSight コンソールにログインします。

  2. [レポート] タブに移動し、[クエリ] セクションに移動します。

  3. 新しいクエリを作成するには、クエリ名 Google SecOps SOAR Security Events Connector Query を入力します。

    [開始時間] パラメータと [終了時間] パラメータに注意してください。1 時間間隔でデータをクエリすることをおすすめしますが、必要に応じて間隔を増やすことができます。

    構成の例:

    • 名前: Google SecOps SOAR セキュリティ イベント コネクタ クエリ
    • Query On: Event
    • 開始時間: $Now - 1h
    • 終了時間: $Now
    • Use as TimeStamp: End Time(タイムスタンプとして使用: 終了時間)
    • 行の上限: 5,000
  4. クエリのフィールドを定義します。フィールドについては、次のものが必要です。

    • イベント ID
    • 名前
    • 開始時刻
    • 終了時刻
    • 優先度

    [Order By] 列に [End Time ASC] が表示されていることを確認します。

  5. [条件] を設定します。ここに独自のフィルタを指定できます。

  6. クエリを保存します。

  7. [レポート] セクションに移動し、新しいレポートを作成します。レポートを指定するには、Google SecOps SOAR Security Events Connector Report という名前を入力します。コネクタ構成の [レポート名] パラメータに同じ名前を使用します。

  8. [データ] タブで、前の手順で作成したクエリを [データソース] として選択します。

  9. [パラメータ] タブで、コネクタの要件を満たすように [レポート形式] を csv に変更します。

  10. レポートを保存します。

  11. レポートの名前は、[レポート名] パラメータのコネクタ構成で指定します。

  12. テスト実行を行い、コネクタが想定どおりに動作することを確認します。

ArcSight 用に Google SecOps 共有フォルダを構成する

Google SecOps サーバー

  1. /etc/passwd ファイルで UIDGID を探します。

    cat /etc/passwd | grep scripting

    コマンドの出力例は次のとおりです。

    scripting:x:1001:1001:/home/scripting:/bin/bash

    UID は 3 番目のフィールドで、GID はコマンド出力の 4 番目のフィールドです。

  2. スクリプトを作成します。

    1. ファイルを作成し、configure_smp_nfs.sh という名前を付けます。

    2. 次の内容をこのファイルにコピーします。

      #!/bin/bash
      
      #Declare the variables:
      uid=SCRIPTING_USER_UID
      gid=SCRIPTING_USER_GID
      arcsight_ip=ARCSIGHT_IP
      
      #Install nfs-utils
      yum install nfs-utils -y
      #Create the directory that will be shared
      mkdir /opt/Correlations
      #Change the permissions
      chmod -R 755 /opt/Correlations/
      chown -R scripting:scripting /opt/Correlations/
      #Start the services and enable them to be started at boot time
      systemctl enable rpcbind
      systemctl enable nfs-server
      systemctl enable nfs-lock
      systemctl enable nfs-idmap
      systemctl start rpcbind
      systemctl start nfs-server
      systemctl start nfs-lock
      systemctl start nfs-idmap
      
      #Edit the exports file as follows
      echo "/opt/Correlations/ $arcsight_ip(rw,sync,all_squash,anonuid=$uid,anongid=$gid)">>/etc/exports
      #Restart the NFS service and export the path
      systemctl restart nfs-server
      exportfs -a
      #If FirewallD is running add the next rules:
      firewall-cmd --permanent --zone=public --add-service=nfs
      firewall-cmd --permanent --zone=public --add-service=mountd
      firewall-cmd --permanent --zone=public --add-service=rpc-bind
      firewall-cmd --reload
      setsebool -P nfs_export_all_rw 1
      
    3. 環境に応じて uidgidarcisght_ip の各変数を宣言します。

    4. 権限を付与します。

      chmod +x configure_smp_nfs.sh

    5. スクリプトを実行します。

      ./configure_smp_nfs.sh

ArcSight サーバー

  1. スクリプトを作成します。

    1. ファイルを作成し、configure_smp_nfs.sh という名前を付けます。

    2. 次の内容をこのファイルにコピーします。

      #!/bin/bash
      #Declare the variables:
      siemplify_ip=SIEMPLIFY_IP
      
      #Install nfs-utils
      yum install nfs-utils -y
      #Start the services and enable them to be started at boot time
      systemctl enable rpcbind
      systemctl enable nfs-server
      systemctl enable nfs-lock
      systemctl enable nfs-idmap
      systemctl start rpcbind
      systemctl start nfs-server
      systemctl start nfs-lock
      systemctl start nfs-idmap
      #If FirewallD is running add the next rules:
      firewall-cmd --permanent --zone=public --add-service=nfs
      firewall-cmd --permanent --zone=public --add-service=mountd
      firewall-cmd --permanent --zone=public --add-service=rpc-bind
      firewall-cmd --reload
      #Create the NFS directory mount point
      mkdir -p /mnt/nfs/var/SiemShare
      #Add the values:
      echo "$siemplify_ip:/opt/Correlations /mnt/nfs/var/SiemShare nfs defaults 0 0">>/etc/fstab
      mount -a
      
    3. 環境に応じて siemplify_ip 変数を宣言します。

古いパスを使用しているお客様向けの注意事項

ホットフィックス インストーラは、/opt/siemplify/Correlations フォルダの権限を siemplifyadmin に上書きします。

古いパスを使用してアップグレードを適用する場合は、次の手順で権限をスクリプト ユーザーに戻す必要があります。

  1. アップグレードを開始する前に、NFS サーバー サービスを停止します。

    _systemctl stop nfs-server_

  2. アップグレードが完了したら、フォルダの権限を変更します。

    _chmod -R 755 /opt/siemplify/Correlations/_

    _chown -R scripting:scripting/opt/siemplify/Correlations/_

    _systemctl start nfs-server_

    _exportfs -a_

  3. 変更後に NFS サーバーが正しく動作していることを確認するには、そのステータスを確認します。

    _systemctl status nfs-server_

API アクセス用のユーザーを作成して構成する

  1. ArcSight コンソールにログインします。

  2. Google_SecOps_API ユーザー グループを作成し、Google_SecOps_API ユーザーを追加します。このユーザーは、ArcSight ESM API を介して Google SecOps で使用されます。

    1. [属性] タブに移動し、[ユーザータイプ] 属性を Normal User に設定します。

    2. [リソース] タブで、作成したユーザー グループを右クリックします。

    3. メニューから [アクセス制御を編集] を選択します。

    4. ACL エディタの [Inspect/Edit] ウィンドウで、次の操作を行います。

      1. [イベント] タブで、前に作成したフィルタ Google_SecOps_Correlations_Filter を追加します。任意の送信元フィルタを追加して、Google SecOps にアクセス権を付与することもできます。

      2. 他のタブはデフォルトの設定を使用します。

      3. [追加] をクリックし、[ArcSight System > Core] を選択して、[すべてのイベント] チェックボックスをオンにします。

        [すべてのイベント] チェックボックスがオンになっていることを確認することが重要です。最小要件は、Google SecOps に取り込まれるすべての関連付けイベントを含めることです。

Google Security Operations では、ArcSight ESM API を使用する際に、次の主なメソッドを使用します。

  • コアサービス: LoginGetSession

  • マネージャー サービス: GetSecurityEvents

ArcSight ESM によるネットワーク アクセス

Google SecOps から ArcSight ESM にアクセスするには、ポート 443(HTTPS)と 8443(SSL 経由の API)経由のトラフィックを許可するか、環境で構成されているトラフィックを許可します。

ArcSight ESM から Google SecOps にアクセスするには、ポート 445 と 139(SMB/SAMBA/CIFS)経由のトラフィックを許可するか、環境で構成されているトラフィックを許可します。

関数 ポート 方向 プロトコル
NFS 111、1039、1047、1048、2049 アウトバウンドとインバウンド UDP
NFS 111、1039、1047、1048、2049 アウトバウンドとインバウンド TCP

統合のパラメータ

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

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

パラメータ名 種類 デフォルト値 必須 説明
インスタンス名 文字列 なし いいえ 統合を構成するインスタンスの名前。
説明 文字列 なし いいえ インスタンスの説明。
API ルート 文字列 https://{IP}:{PORT} はい ArcSight インスタンスのサーバー アドレス。
ユーザー名 文字列 なし はい ArcSight アカウントのユーザー名。
パスワード パスワード なし はい ArcSight アカウントのパスワード。
リモートで実行 チェックボックス オフ いいえ 構成した統合をリモートで実行するには、フィールドのチェックボックスをオンにします。オンにすると、リモート ユーザー(エージェント)を選択するオプションが表示されます。

操作

アクティブ リストにエントリを追加する

説明

レポート以外にも、トレンドから情報を取得するメカニズムを提供します。トレンドによって更新されるアクティブ リストは、複数のトレンドからの情報の概要ビューをサポートしています。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
文字列 なし はい 例: Message;Username
エントリ 文字列 なし はい 例: test1|Me1;Test|Me2
アクティブ リストの UUID 文字列 なし はい 例: HCN75QGABABCZXCOdT9P51w==

実行

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

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
is_succeed 正誤問題 is_succeed:False

ケースのステージを変更する

説明

ケースのステージを変更します。有効なステージは、INITIAL、QUEUED、CLOSED、FINAL、FOLLOW_UP です。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
ケース名 文字列 なし はい 更新するケースの名前。
ステージ 文字列 なし はい ケースのステージ。例: CLOSED、INITIAL

実行

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

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
成功 正誤問題 success:False

アクティブ リストのエントリを取得する

説明

ArcSight アクティブ リスト エントリを取得し、CSV 出力を返します。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
アクティブ リストの UUID 文字列 なし はい 例: HTcILQWABABCr553ieI0Xmw==

実行

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

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
Success_Indicator なし なし
JSON の結果
[
"12346e4d96f0a72c42015d69aaf0e8ab ,
 file.txt",
 "0e0776034e5e096704cd28cbd40cdbb5 ,
 Test.config"
]

クエリ結果を取得する

説明

クエリ ID でクエリ結果を取得します。クエリは、レポートのプライマリ データソースとして使用できます。また、1 つのクエリに基づく傾向を、別のクエリのデータソースとして使用して、最初のクエリ結果をさらに絞り込むこともできます。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
クエリ ID 文字列 なし はい クエリ ID。
返されるアイテムの最大数 整数 100 いいえ レスポンスで返すアイテムの数を指定します。

ユースケース

返す結果の数に制限を追加します。

実行

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

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
成功 正誤問題 success:False
JSON の結果
[
    {
        "Target User Name": "user",
        "Attacker Address": "192.0.2.1",
        "External ID": "127",
        "Name": "A Kerberos authentication ticket (TGT) was requested.",
        "Target Address": "192.0.2.1"
    },{
        "Target User Name": "user",
        "Attacker Address": "192.0.2.1",
        "External ID": "127",
        "Name": "A Kerberos authentication ticket (TGT) was requested.",
        "Target Address": "192.0.2.1"
    }
]

レポートの取得

説明

動的フィールドを含むレポートを取得します。レポートは、クエリまたはトレンドのデータを既存のレポート テンプレートにバインドする ArcSight リソースです。レポートを実行すると、ArcSight コンソールのビューア パネルで結果を表示したり、保存(アーカイブ)したり、さまざまな形式でエクスポートしたりできます。レポートは定期的に実行するようにスケジュール設定できます。また、必要に応じてオンデマンドで実行することもできます。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
レポートのフルパス(URI) 文字列 なし はい 関連するレポートの URI。
フィールド 2 文字列 なし いいえ レポートを生成するクエリの動的フィールド。
フィールド 3 文字列 なし いいえ レポートを生成するクエリの動的フィールド。
フィールド 4 文字列 なし いいえ レポートを生成するクエリの動的フィールド。
フィールド 6 文字列 なし いいえ レポートを生成するクエリの動的フィールド。
フィールド 6 文字列 なし いいえ レポートを生成するクエリの動的フィールド。
フィールド 7 文字列 なし いいえ レポートを生成するクエリの動的フィールド。
フィールド 8 文字列 なし いいえ レポートを生成するクエリの動的フィールド。
フィールド 9 文字列 なし いいえ レポートを生成するクエリの動的フィールド。
フィールド 10 文字列 なし いいえ レポートを生成するクエリの動的フィールド。

実行

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

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
json_report なし なし

Is Value in Activelist Column

説明

特定の値がアクティブ リストに含まれているかどうかを確認します。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
アクティブ リストの UUID 文字列 なし はい アクティブなリストの UUID。例: cuser。
列名 文字列 なし はい 列の名前。例: sourceUserName。

実行

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

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
Success_Indicator なし なし

Ping

説明

接続をテストします。

パラメータ

実行

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

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
is_succeed 正誤問題 is_succeed:False

説明

コンソール イベント チャネルから ArcSight Command Center で検索を開始できます。イベントの完全検索では、関連する属性が検索されます。この属性は、複数のフィールド(abc など)に保存されています。イベントの検索では、指定されたフィールド(名前のみのフィールドなど)に保存されている値(abc など)が検索されます。

パラメータ

パラメータ名 種類 デフォルト値 必須 説明
検索クエリ 文字列 なし はい 検索クエリ。
返されるアイテムの最大数 整数 100 いいえ レスポンスで返すアイテムの数を指定します。

ユースケース

返す結果の数に制限を追加します。

実行

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

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
成功 正誤問題 success:False
JSON の結果
[
    {
        "score": 1.2440307,
        "uuid": "UUID",
        "uri": "/All_Fields/ArcSight_Foundation/Variables_Library/IPv6/Attacker_IPv6_Address",
        "name": "Attacker IPv6 Address"
    }, {
        "score": 1.2440307,
        "uuid": "UUID",
        "uri": "/All_Fields/ArcSight_Foundation/Variables_Library/IPv6/Attacker_IPv6_Address",
        "name": "Attacker IPv6 Address"
    }
]

コネクタ

Google SecOps でコネクタを構成する方法の詳細については、コネクタの構成をご覧ください。

Arcsight ESM コネクタ

このガイドでは、ArcSight ESM バージョン 6.9.1 以降について説明します。

ESM ルールまたはケースの Google SecOps への転送

トリガーされたルール/相関関係の操作

ArcSight ESM を構成して最新の相関オブジェクトを Google SecOps に転送し、Google SecOps を構成して ArcSight ESM で SIEM プロバイダとして機能させ、承認済みユーザーを介して ArcSight ESM に API アクセスを提供する必要があります。

この機能により、Google SecOps は ArcSight ESM 内でトリガーされたルールをほぼリアルタイムで取得し、翻訳とコンテキスト化のためにケースのアラートとして転送できます。

Google SecOps と ArcSight ESM 間のデータフロー

Google SecOps は、ArcSight Forwarding Connector モジュールと API アクセスを介して Google SecOps に転送され、ArcSight ESM でトリガーされた相関関係を自動的にインデックス登録してコンテキスト化します。

コネクタの重要度の優先順位付け

コネクタは、次の優先度値で重大度を割り当てます。

  • 1 と 2 - 非常に低い
  • 3、4 - 低
  • 5 と 6 - 中
  • 7 と 8 - 高
  • 9 と 10 - クリティカル

コネクタの入力

次のパラメータを使用してコネクタを構成します。

パラメータ名 種類 デフォルト値 必須 説明
環境 DDL なし はい

必要な環境(例: Customer One)を選択します。

アラートの [環境] フィールドが空の場合、このアラートはこの環境に挿入されます。

実行間隔 整数 0:0:0:10 いいえ 接続を実行する時間を選択します。
プロダクト フィールド名 文字列 device_product いいえ

商品名が保存されるフィールドの名前。

デフォルト値は device_product です。

商品名は主にマッピングに影響します。コネクタのマッピング プロセスを合理化して改善するために、デフォルト値 device_product は、コードから参照されるフォールバック値に解決されます。このパラメータの無効な入力は、デフォルトでフォールバック値に解決されます。

イベント フィールド名 文字列 name いいえ イベント名(サブタイプ)を特定するために使用されるフィールド名。
スクリプトのタイムアウト(秒) 文字列 500 いいえ 現在のスクリプトを実行している Python プロセスのタイムアウト上限(秒単位)。
サーバー アドレス 文字列 なし はい https://{IP}:{PORT}
ユーザー名 文字列 なし はい ArcSight アカウントのユーザー名。
パスワード パスワード なし はい ArcSight アカウントのパスワード。
イベント数の上限 Integer 15 はい 相関関係ごとに取得するイベントの最大数を入力します。イベントの数を制限します(10 など)。
Cases Folder Path 文字列 I:\SiemShare\CorrelationSource はい

ケースファイルの場所(I:\SiemShare\CorrelationSource など)

注: Cases Folder Path パラメータは、お客様ごとに変更できます。

フルパス。例: C:\Desktop\CorrelationSource

アラート数の上限 整数 10 はい コネクタのサイクルごとに処理するアラートの最大数(10 など)。
環境フィールド名 文字列 event.customerURI はい ケースの環境を取得するフィールドの名前(例: event.customerUri)。
Secondary Device Product Field 文字列 なし いいえ 元のプロダクト フィールド(コネクタの DeviceProductField)をセカンダリ プロダクト フィールドの値に置き換えます。例: CustomDeviceString2
アラート カスタム フィールド名 文字列 なし いいえ baseEventCount、agent_address、device_assetId などのカスタム フィールド値を ArcSight からアラートに取得します。
完了したファイルの保持日数 Integer 3 はい 各 DONE CSV ファイルを保持する日数。
エラー ファイルの保持日数 Integer 14 はい 各 ERROR csv ファイルを保持する日数。
プロキシ サーバーのアドレス 文字列 なし いいえ 使用するプロキシ サーバーのアドレス。
プロキシのユーザー名 文字列 なし いいえ 認証に使用するプロキシのユーザー名。
プロキシ パスワード パスワード なし いいえ 認証に使用するプロキシ パスワード。

コネクタルール

コネクタはプロキシをサポートしています。

ArcSight - セキュリティ イベント コネクタ

ArcSight から相関関係を取得します。このコネクタは Google SecOps の SaaS デプロイに適しており、本番環境での使用におすすめです。

このコネクタを使用するには、前提条件の手順を完了する必要があります。

コネクタの入力

次のパラメータを使用してコネクタを構成します。

パラメータの表示名 種類 デフォルト値 必須 説明
プロダクト フィールド名 文字列 タイプ はい

商品名が保存されるフィールドの名前。

デフォルト値は type です。

商品名は主にマッピングに影響します。コネクタのマッピング プロセスを合理化して改善するため、デフォルト値 type は、コードから参照されるフォールバック値に解決されます。このパラメータの無効な入力は、デフォルトでフォールバック値に解決されます。

イベント フィールド名 文字列 name はい

イベント名(サブタイプ)を特定するフィールドの名前。

環境フィールド名 文字列 "" いいえ

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

環境フィールドがない場合、コネクタはデフォルト値を使用します。

Environment Regex Pattern 文字列 .* FALSE いいえ

Environment Field Name フィールドで見つかった値に対して実行する正規表現パターン。このパラメータを使用すると、正規表現ロジックを使用して環境フィールドを操作できます。

デフォルト値 .* を使用して、必要な未加工の Environment Field Name 値を取得します。

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

スクリプトのタイムアウト(秒) Integer 360 はい

現在のスクリプトを実行する Python プロセスのタイムアウト上限(秒単位)。

API ルート 文字列 https://{ip} はい ArcSight インスタンスの API ルート。
ユーザー名 文字列 なし はい ArcSight アカウントのユーザー名。
パスワード パスワード なし はい ArcSight アカウントのパスワード。
レポート名 文字列 なし はい イベントの取得に使用されるレポートの名前。
基本イベントを取得する チェックボックス オン はい 有効にすると、コネクタはベースイベントも取得します。
取得する最も低い優先度 整数 なし いいえ イベントの取得に使用される最も低い優先度。有効な値の範囲は 1 ~ 10 です。何も指定しない場合、すべてのイベントが取り込まれます。
取得する最大イベント数 整数 100 いいえ コネクタのイテレーションごとに処理するアラートの数。許容最大値は 1000 です。
動的リストをブロックリストとして使用する チェックボックス オン はい

選択すると、コネクタは動的リストを拒否リストとして使用します。

SSL を確認する チェックボックス オフ はい 選択すると、ArcSight サーバーに接続するときに SSL 証明書が検証されます。
プロキシ サーバーのアドレス 文字列 なし いいえ 使用するプロキシ サーバーのアドレス。
プロキシのユーザー名 文字列 なし いいえ 認証に使用するプロキシのユーザー名。
プロキシ パスワード パスワード いいえ 認証に使用するプロキシ パスワード。

コネクタルール

コネクタはプロキシをサポートしています。

ジョブ

ケースをクローズ

このジョブには次のパラメータが必要です。

パラメータ名 種類 デフォルト値 必須 説明
サーバー アドレス 文字列 192.0.2.1 はい なし
ユーザー名 文字列 なし なし
パスワード パスワード なし なし

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