VMware Carbon Black Enterprise EDR

統合バージョン: 6.0

プロダクトのユースケース

  1. 調査アクションを実行する - Google Security Operations のアラート分析の一環として、CB Enterprise EDR からデータを取得します。
  2. 構成アクションを実行する - Google SecOps から CB Enterprise EDR フィード/ウォッチリストを構成します。

プロダクトの権限

Carbon Black Enterprise EDR(ThreatHunter)API へのアクセスに必要な概念:

  1. サービス ホスト名
  2. API キー
  3. RBAC
  4. 組織キー

サービス ホスト名

Carbon Black Cloud のホスト名は 2 つあります。

  • https://defense-<environment>.conferdeploy.net/
  • https://api-<environment>.conferdeploy.net/

また、次のような複数の環境があります(すべてを網羅しているわけではありません)。

  • prod02
  • prod04
  • prod05

Carbon Black Enterprise EDR(ThreatHunter)API では、次のホスト名が使用されます。https://defense-<environment>.conferdeploy.net/

API キー

Carbon Black Enterprise EDR(ThreatHunter)の API とサービスは、API キーで認証されます。ユーザーは、Carbon Black Cloud コンソールの [Settings] > [API Keys] で API キーの設定を表示できます。

API キーには次の 2 つの部分があります。

  • API シークレット キー(以前は API キー)。
  • API ID(以前のコネクタ ID)。

認証は、X-Auth-Token HTTP ヘッダーを介して API に渡されます。

  1. 適切なヘッダーを生成するには、API シークレット キーと API ID をスラッシュで連結します。
  2. たとえば、API シークレット キーが ABCD で、API ID が 1234 の場合、対応する X-Auth-Token HTTP ヘッダーは X-Auth-Token: ABCD/1234 になります。

すべての API リクエストは、API シークレット キーと API ID を使用して認証する必要があります。未認証のリクエストは HTTP 401 エラーを返します。

API シークレット キーと API ID を取得する方法

  1. Carbon Black Cloud 組織にログインします。
  2. [設定] > [API キー] に移動します。
  3. [API キーを追加] をクリックします。
  4. 名前、アクセスレベルなどを構成する
  5. API 秘密鍵と API ID のペアを取得します。

これにより、組織管理者は API キーを定義し、API リクエストの認証に必要な API シークレット キーと API ID にアクセスできます。また、セキュリティ上の理由から、管理者はこの API キーの使用を特定の IP アドレスのセットに制限できます。

API キーのアクセスレベル

現在、API キーページでは、API キーの 4 つの主要なアクセスレベルを使用できます。アクセスレベルごとに、API ルートへのアクセスレベルが異なります。

  1. カスタムキー アクセスレベル: カスタマイズ可能な認可を提供します。

    • カスタム API キーは、ロールベースのアクセス制御(RBAC)の取り組みの結果です。
    • アクセス制御を適用し、最小権限の API キーを作成できます。
    • カスタム API キーには、ユーザーロールまたはアクセスレベルを割り当てることができます。
  2. API キーのアクセスレベル: 通知 API とライブ レスポンス API を除くすべての API へのアクセスを提供します。

  3. SIEM キーのアクセスレベル: Notifications API へのアクセス権を付与します。

  4. Live Response Key Access Level: 上記の(1)で利用可能なすべての API と Live Response API へのアクセス権を提供します。

Carbon Black Enterprise EDR(ThreatHunter)サービスと API アクセス レベルの相関関係 プラットフォーム API は太字で示されています

API/サービスのカテゴリ 許可された API キーのアクセスレベル
PSC /appservices/* カスタム(適切な権限を持つ)
CB-TH /threathunter/* カスタム(適切な権限を持つ)API
CB-LO /livequery/* カスタム(適切な権限を持つ)
CB-D /integrationServices/v3/notification/ SIEM
CB-D /integrationServices/* APILive Response

組織キー

API キーに加えて、多くの Carbon Black Cloud API またはサービスでは、API リクエスト パスに org_key が必要です。これは、複数の組織を管理するお客様をサポートするためのものです。

org_key は、Carbon Black Cloud Console の [Settings] > [API Keys] で確認できます。

Carbon Black Enterprise EDR(ThreatHunter)Google SecOps 統合の API アクセスを構成する

Carbon Black Enterprise EDR(ThreatHunter)Google SecOps 統合の API アクセスを構成するには、次の手順を行う必要があります。

  1. Carbon Black Cloud コンソールにログインし、[Settings] > [API Access] に移動します。
  2. [API アクセス] ページで、[アクセスレベル] に移動します。
  3. [アクセスレベル] ページで、[+ アクセスレベルを追加] をクリックします。
  4. 開いたウィンドウで、新しいアクセスレベルの名前と説明を入力し、次のスクリーンショットのように権限を選択します。

    必要な権限のリスト

  5. [API アクセス] タブに戻ります。

  6. [+ Add API Key] をクリックして、新しい API キーを作成します。

  7. 開いたタブで必須フィールドを入力し、ステップ 4 で構成したアクセスレベルを選択します。

    API キーの設定を編集する

  8. [保存] をクリックすると、API ID と API シークレット キーが表示されます。これらの値は一度しか表示されないため、保存してください。

  9. API ID と API 秘密鍵が保存されると、Carbon Black Enterprise EDR(ThreatHunter)での API アクセスが完了します。

Google SecOps で VMware Carbon Black Enterprise EDR(Threat Hunter)の統合を構成する

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

統合のパラメータ

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

パラメータの表示名 種類 デフォルト値 必須 説明
インスタンス名 文字列 なし いいえ 統合を構成するインスタンスの名前。
説明 文字列 なし いいえ インスタンスの説明。
API ルート 文字列 なし はい Vmware Carbon Black Cloud API のルート URL。
組織キー 文字列 なし はい VMware Carbon Black Cloud 組織キー。
API ID 文字列 なし はい Vmware Carbon Black Cloud API ID(カスタム API キー ID)。
API シークレット キー 文字列 なし はい Vmware Carbon Black Cloud API シークレット キー(カスタム API シークレット キー)。
リモートで実行 チェックボックス なし いいえ 構成した統合をリモートで実行するには、フィールドのチェックボックスをオンにします。オンにすると、リモート ユーザー(エージェント)を選択するオプションが表示されます。

アクション

Ping

説明

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

パラメータ

なし

プレイブックのユースケースの例

このアクションは、[Google Security Operations Marketplace] タブの統合構成ページで接続性をテストするために使用されます。手動アクションとして実行でき、ハンドブックでは使用されません。

実行

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

アクションの結果

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

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

  • 成功した場合: 「指定された接続パラメータを使用して VMware Carbon Black Enterprise EDR サーバーに正常に接続されました。」と出力されます。

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

  • 成功しなかった場合: 「VMware Carbon Black Enterprise EDR サーバーへの接続に失敗しました!」と出力されます。エラーは {0}」.format(exception.stacktrace)
全般

説明

指定された検索パラメータに基づいて、CB センサーを使用してホスト上のプロセス アクティビティに関する情報を検索します。このアクションは、ホスト Google SecOps エンティティを受け入れます。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
クエリ 文字列 なし いいえ プロセス検索で実行するクエリ。たとえば、process_name:svchost.exe はプロセス名で検索し、process_hash:9520a99e77d6196d0d09833146424113 はプロセス ハッシュで検索します。
期間 整数 4 いいえ アラートを取得する期間を時間で指定します。
レコードの上限 整数 20 はい アクションで返されるレコード数を指定します。
並べ替え 文字列 なし いいえ データを並べ替えるパラメータを指定します。
並べ替え順 DDL 昇順 いいえ 並べ替え順序。

プレイブックのユースケースの例

指定された検索パラメータに基づいて、プロセスによって発生したイベントを検索します。

CB Platform で管理されている特定のホストに関連するアラートの分析中に、ユーザーはホストを調査し、指定された検索パラメータに基づいて実行されているプロセスによって発生した特定のイベントを検索したいと考えています。ユーザーは、脅威ハンティング アクティビティでこのアクションを実行できます。つまり、問題のホストに不審なプロセスやイベントがないかどうかを事前に検索できます。

実行

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

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
is_success True/False is_success:False
JSON の結果
{
"results": [
    {
        "alert_id": [
            "null/WSD2CQMT"
        ],
        "backend_timestamp": "2020-03-04T21:42:45.080Z",
        "device_id": 3078944,
        "device_name": "qaam\\manticorewin864",
        "device_policy_id": 6525,
        "device_timestamp": "2020-03-04T21:39:33.180Z",
        "enriched": true,
        "enriched_event_type": "CREATE_PROCESS",
        "event_description": "The script \"<share><link hash=\"74fcbbb574bfd505cf0680575a1c025f6cead071fce78ee0cc2c7bac7dd24ce9\">C:\\programdata\\wmirepair.bat</link></share>\" invoked the application \"<share><link hash=\"7eadc73f8aa77148ca289d5ce5c2632f3a157d313079583454c0421bb97d5646\">C:\\windows\\syswow64\\regsvr32.exe</link></share>\". ",
        "event_id": "ecc6954f5e6011eaa0de89cc027330db",
        "event_type": "childproc",
        "ingress_time": 1583358118950,
        "legacy": true,
        "org_id": "7DESJ9GN",
        "parent_guid": "7DESJ9GN-002efb20-00001604-00000000-1d5f26cab1067fe",
        "parent_pid": 5636,
        "process_guid": "7DESJ9GN-002efb20-00000d58-00000000-1d5f26d6615c568",
        "process_hash": [
            "629ae017d28848b68485bd2aeede9129",
            "74fcbbb574bfd505cf0680575a1c025f6cead071fce78ee0cc2c7bac7dd24ce9"
        ],
        "process_name": "c:\\programdata\\wmirepair.bat",
        "process_pid": [
            3416
        ],
        "process_username": [
            "NT AUTHORITY\\SYSTEM"
        ]
    },
    ...
]  }
ケースウォール
結果のタイプ 値 / 説明 種類
出力メッセージ *

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

  • 成功した場合: 「次のエンティティのプロセス情報が見つかりました:\n {0}」と出力します。format( entity.Identifiers リスト)
  • 指定されたすべてのエンティティで is_success=False の場合: 「検索結果が返されませんでした。」と出力します。
  • 指定された検索パラメータの結果が見つからないため、指定されたエンティティの一部で is_success=False の場合: 「次のエンティティのプロセス情報が見つかりませんでした:\n {0}」と出力されます。format(entity.Identifiers list)
  • 検索の実行中にエラーが発生したため(タイムアウトなど)、指定されたエンティティの一部で is_success=False の場合: 「次のエンティティの検索の実行中にエラーが発生したため、結果を取得できませんでした:/n {0}」と出力します。format(entity.identifiers リスト)

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

  • 認証情報が間違っている、サーバーへの接続がないなどの致命的なエラーの場合: print "Failed to execute action! エラーは {0}」.format(exception.stacktrace)
両方
テーブル

テーブル名: {entityIdentifier} のプロセス検索結果

列:

  • イベント ID(event_id)
  • イベントタイプ(「enriched_event_type」)
  • プロセス名(process_name)
  • プロセス GUID(process_guid)
  • プロセス PID(process_pid)
  • プロセス親 GUID(parent_guid)
  • プロセス親 PID(parent_pid)
  • プロセス ファイル ハッシュ(process_hash)
  • プロセス実行ユーザー(「process_username」)
  • 作成日時(「device_timestamp」)
  • イベントの説明(event_description)
  • ローカル IPv4 アドレス(event_network_local_ipv4)
  • ネットワーク プロトコル(event_network_protocol)
  • リモート IPv4 アドレス(event_network_remote_ipv4)
  • リモートポート(event_network_remote_port)
エンティティ

プロセス Guid でプロセスに関連付けられたイベントを取得する

説明

VMware Carbon Black Enterprise EDR からの情報に基づいて、特定のプロセスに関連付けられたイベントを取得します。このアクションでは、「プロセス検索」アクションよりも特定のプロセス アクティビティに関する詳細な結果を取得できます。アクションが機能するには、アクションに渡される Google SecOps 処理済みアーティファクトがプロセス GUID タイプである必要があります。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
検索条件 文字列 なし いいえ リクエストの検索条件を指定します。現在、検索条件として受け入れられるのは「event_type」の値(netconn など)のみです。複数の値は、カンマ区切りの文字列として受け入れられます。
クエリ 検索 なし はい プロセス検索で実行するクエリ。たとえば、「netconn_action:ACTION_CONNECTION_CREATE OR netconn_action:ACTION_CONNECTION_ESTABLISHED」
期間 整数 4 いいえ アラートを取得する期間を時間で指定します。
レコードの上限 整数 20 いいえ アクションで返されるレコード数を指定します。
並べ替え 文字列 なし いいえ データを並べ替えるパラメータを指定します。
並べ替え順 DDL 昇順 いいえ 並べ替え順

プレイブックのユースケースの例

特定のプロセス アクティビティを調査します。

CB Platform で管理されている特定のホストに関連するアラートの分析中に、そのホストで疑わしいプロセスが実行されていることが判明しました。Google SecOps ユーザーは、CB Enterprise EDR 機能を使用して、Google SecOps から特定のプロセスに関連付けられたイベントを取得するアクションを必要としています。

実行

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

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション
is_success True/False is_success:False
JSON の結果
{
    "results": [
        {
            "backend_timestamp": "2020-04-26T18:38:50.128Z",
            "created_timestamp": "2020-05-19T03:56:53.483Z",
            "event_guid": "ufzid3pPQs-yrRlPBe8-ww",
            "event_hash": "ce6a949bcd3879897c9eac258ec6a091",
            "event_timestamp": "2020-04-26T18:34:16.258Z",
            "event_type": "netconn",
            "legacy": false,
            "netconn_action": "ACTION_CONNECTION_CREATE",
            "netconn_inbound": true,
            "netconn_local_ipv6": "FF020000000000000000000000010003",
            "netconn_local_port": 5355,
            "netconn_protocol": "PROTO_UDP",
            "netconn_remote_ipv6": "FE800000000000000000000000000000",
            "netconn_remote_port": 58994,
            "process_guid": "7DESJ9GN-002efb20-000003ec-00000000-1d5fb6d63ba535c",
            "process_pid": 1004
        },
        ...
    ]
}
ケースウォール
結果のタイプ 値 / 説明 種類
出力メッセージ *

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

  • 成功した場合: 「次のプロセス GUID のイベントが見つかりました:\n {0}」と出力します。format( プロセス GUID リスト)
  • 指定されたすべてのプロセス GUID で is_success=False の場合: 「検索結果が返されませんでした。」と出力します。
  • 指定されたプロセス GUID が見つからないため、指定されたエンティティの一部で is_success=False の場合: 「アクションでは、次のプロセスに関する情報が見つかりませんでした:\n {0}」と出力します({0} はプロセス GUID のリスト)。
  • 検索の実行エラー(タイムアウトなど)により、指定されたエンティティの一部で is_success=False の場合: 「次のプロセス GUID の検索実行エラーにより、結果を取得できませんでした:/n {0}」と出力します。format(entity.identifiers リスト)

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

  • 認証情報が間違っている、サーバーへの接続がないなどの致命的なエラーの場合: print "Failed to execute action! Error is {0}".format(exception.stacktrace)
一般
テーブル

テーブル名: プロセス {プロセス アーティファクト識別子} の検出されたイベント

列: 返された結果に基づいて自動的に生成されます。

エンティティ

ハッシュを拡充する

説明

VMware Carbon Black Enterprise EDR の情報に基づいて、Google SecOps ファイル ハッシュ エンティティを拡充します。

プレイブックのユースケースの例

CB Enterprise EDR の情報を使用して Google SecOps の filehash エンティティを拡充します。

CB Platform センサーがインストールされているホストに関連付けられたマルウェア感染の可能性に関するアラートを処理する際、ユーザーは調査のために、問題のアラートに関連付けられた特定のファイルハッシュに関する CB Enterprise EDR(プラットフォームの一部)のエンリッチメント データを必要とします。たとえば、エンリッチメントの一環として、このファイルハッシュが組織内で最初に検出された日時や、どのホストで検出されたかなど、関連するファイルハッシュ メタデータを取得できます。

実行

このアクションは、Sha256 形式の Filehash エンティティに対して実行されます。

アクションの結果

エンティティ拡充
拡充フィールド名 ソース(JSON キー) ロジック - 適用するタイミング
CB_ENT_EDR.sha256 sha256 常時
CB_ENT_EDR.md5 md5 常時
CB_ENT_EDR.architecture アーキテクチャ 常時
CB_ENT_EDR.available_file_size available_file_size 常時
CB_ENT_EDR.charset_id charset_id 常時
CB_ENT_EDR.comments comments null 以外の場合
CB_ENT_EDR.company_name company_name 常時
CB_ENT_EDR.copyright 著作権 常時
CB_ENT_EDR.file_available file_available 常時
CB_ENT_EDR.file_description file_description 常時
CB_ENT_EDR.file_size file_size 常時
CB_ENT_EDR.file_version file_version 常時
CB_ENT_EDR.internal_name internal_name 常時
CB_ENT_EDR.lang_id lang_id null 以外の場合
CB_ENT_EDR.original_filename original_filename 常時
CB_ENT_EDR.os_type os_type 常時
CB_ENT_EDR.private_build private_build null 以外の場合
CB_ENT_EDR.product_description product_description null 以外の場合
CB_ENT_EDR.product_name product_name 常時
CB_ENT_EDR.product_version product_version 常時
CB_ENT_EDR.special_build special_build null 以外の場合
CB_ENT_EDR.trademark trademark null 以外の場合
CB_ENT_EDR.found_times num_devices 常時
CB_ENT_EDR.first_seen_device_timestamp first_seen_device_timestamp 常時
CB_ENT_EDR.first_seen_device_id first_seen_device_id 常時
CB_ENT_EDR.first_seen_device_name first_seen_device_name 常時
CB_ENT_EDR.last_seen_device_timestamp last_seen_device_timestamp 常時
CB_ENT_EDR.last_seen_device_id last_seen_device_id 常時
CB_ENT_EDR.last_seen_device_name last_seen_device_name 常時
スクリプトの結果
スクリプトの結果名 値のオプション
is_success True/False is_success:False
JSON の結果
{
    "sha256": "e24dd278cec867486b68418c9066ffa9bd4f394dac3ba94125d58415f677f0f4",
    "architecture": [
        "amd64"
    ],
    "available_file_size": 207800,
    "charset_id": 1200,
    "comments": null,
    "company_name": "Example Organization",
    "copyright": "Copyright  © 2019",
    "file_available": true,
    "file_description": "OpenJDK Platform binary",
    "file_size": 207800,
    "file_version": "8.0.2320.9",
    "internal_name": "java",
    "lang_id": null,
    "md5": "afede6f64ed8878bc0cac57e1831a3bc",
    "original_filename": "java.exe",
    "os_type": "WINDOWS",
    "private_build": null,
    "product_description": null,
    "product_name": "OpenJDK Platform 8",
    "product_version": "8.0.2320.9",
    "special_build": null,
    "trademark": null
}
ケースウォール
結果のタイプ 値 / 説明 種類
出力メッセージ *

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

  • 成功し、指定されたエンティティの少なくとも 1 つが拡充された場合: 「エンティティが正常に拡充されました: {0}」と出力します。format([entity.Identifier])。
  • 指定されたエンティティをすべて拡充できない場合: 「拡充されたエンティティはありません」と出力します。
  • VMware Carbon Black Enterprise EDR で特定のエンティティを拡充するデータが見つからない場合: 「アクションは、次のエンティティを拡充するために VMware Carbon Black Enterprise EDR の情報を見つけることができませんでした: {0}」.format([entity.identifier]) を出力します。
  • 拡充クエリのいずれかの実行に失敗した場合(たとえば、1 つのレスポンスを取得するときにエラー 500 が発生したが、もう 1 つは正常である場合)、is_success は False になりますが、アクションは他のレスポンスから取得したデータで拡充し、「次のエンティティは、エンティティ データの取得エラーのため、部分的に拡充されました:\n {0}」と出力します。format(entityIdentifier リスト)

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

  • 認証情報が間違っている、サーバーへの接続がないなどの致命的なエラーの場合: print "Failed to execute Enrich Entities action! エラーは {0}」.format(exception.stacktrace)
全般