VMware Carbon Black Endpoint Standard Live Response
本文档介绍了如何将 Carbon Black Endpoint Standard Live Response 与 Google Security Operations 集成。
使用场景
对运行 CB Endpoint Standard 代理的主机执行实时调查和修复。
配置 VMware Carbon Black Endpoint Standard Live Response 以与 Google Security Operations 搭配使用
产品权限
Carbon Black Live Response 功能通过 API 密钥进行身份验证。用户可以在 Carbon Black Cloud 控制台中的“Settings”(设置)>“API Keys”(API 密钥)下查看 API 密钥设置。
服务主机名
Carbon Black Cloud 主机名有两种:
https://defense-<environment>.conferdeploy.nethttps://api-<environment>.conferdeploy.net
此外,我们还有多个环境,例如(非完整列表):
- prod02
- prod04
- prod05
对于 Carbon Black Live Response API,将使用以下主机名:
https://defense-about:blank)<environment>.conferdeploy.net
API 密钥
API 密钥包含两部分:
- API 密钥(之前称为 API 密钥)。
- API ID(之前称为“连接器 ID”)。
身份验证通过 X-Auth-Token HTTP 标头传递给 API。
- 如需生成适当的标头,请将 API 密钥与 API ID 串联起来,并在两者之间加上正斜杠。
- 例如,如果 API 密钥为 ABCD,API ID 为 1234,则对应的 X-Auth-Token HTTP 标头将为:X-Auth-Token: ABCD/1234
所有 API 请求都必须使用 API 密钥和 API ID 进行身份验证。 未经身份验证的请求会返回 HTTP 401 错误。
如何获取 API 密钥和 API ID
- 登录您的 Carbon Black Cloud 组织。
- 依次前往“设置”>“API 密钥”。
- 点击“添加 API 密钥”。
- 选择“访问权限级别”=“实时响应”,配置其他参数。
- 获取 API 密钥和 API ID 对。
网络
| 函数 | 默认端口 | 方向 | 协议 |
|---|---|---|---|
| API | 多个值 | 出站 | apikey |
CB Live Response v6 API 版本的商品权限
访问 Carbon Black Cloud API 所需的概念:
- 服务主机名
- API 密钥
- RBAC
- 组织密钥
服务主机名:
对于 CarbonBlack Live Response API,将使用以下主机名:
https://defense-<environment>.conferdeploy.net
API 密钥
Carbon Black Cloud API 和服务通过 API 密钥进行身份验证。用户可以在 Carbon Black Cloud 控制台中的“Settings”(设置)>“API Keys”(API 密钥)下查看 API 密钥设置。
API 密钥包含两部分:
- API 密钥(之前称为 API 密钥)。
- API ID(之前称为“连接器 ID”)。
如何获取 API 密钥和 API ID
- 登录您的 Carbon Black Cloud 组织。
- 依次前往“设置”>“API 密钥”。
- 点击“添加 API 密钥”。
- 配置名称、访问权限级别等。
- 获取 API 密钥和 API ID 对。
这样,组织管理员就可以定义 API 密钥,并获取对 API 密钥和 API ID 的访问权限,这些信息是验证 API 请求所必需的。此外,出于安全原因,管理员可以将此 API 密钥的使用范围限制为一组特定的 IP 地址。
组织密钥
除了 API 密钥之外,许多 Carbon Black Cloud API 或服务还需要在 API 请求路径中提供 org_key。这是为了支持管理多个组织的客户。您可以在 Carbon Black Cloud 控制台中的“设置”>“API 密钥”下找到 org_key。
为 CB Live Response Google SecOps 集成配置 API 访问权限
如需为 CB Live Response Google SecOps 集成配置 API 访问权限,需要执行以下步骤:
- 登录 Carbon Black Cloud 控制台,然后依次前往设置 > API 访问权限。
- 在“API 访问权限”页面上,前往访问权限级别。
- 在“访问权限级别”页面上,点击 + 添加访问权限级别。
在打开的窗口中,为新的访问权限级别提供名称和说明,然后选择权限,如以下屏幕截图所示:

返回到“API 访问权限”标签页。
点击 + 添加 API 密钥以创建新的 API 密钥。
在打开的标签页中,填写必填字段,然后选择您在第 4 步中配置的访问权限级别:

点击“保存”后,系统会显示 API ID 和 API 密钥。 请保存这些值,您在配置集成时需要用到它们。
保存 API ID 和 API 密钥后,CB Live Response v6 API 的 API 访问权限即已完成。
在 Google SecOps 中配置 VMware Carbon Black Endpoint Standard Live Response 集成
有关如何在 Google SecOps 中配置集成的详细说明,请参阅配置集成。
集成参数
使用以下参数配置集成:
| 参数显示名称 | 类型 | 默认值 | 为必填项 | 说明 |
|---|---|---|---|---|
| 实例名称 | 字符串 | 不适用 | 否 | 您要为其配置集成的实例的名称。 |
| 说明 | 字符串 | 不适用 | 否 | 实例的说明。 |
| API 根 | 字符串 | https://defense-{environment}.conferdeploy.net | 是 | Endpoint Standard Live Response API 根网址。 |
| 组织密钥 | 字符串 | 不适用 | 是 | VMware Carbon Black Cloud 组织密钥。 |
| Carbon Black Cloud API ID | 字符串 | 不适用 | 是 | VMware Carbon Black Cloud API ID(允许读取设备数据的自定义 API 密钥 ID)。 |
| Carbon Black Cloud API 密钥 | 字符串 | 不适用 | 是 | VMware Carbon Black Cloud API 密钥(允许读取设备数据的自定义 API 密钥 ID)。 |
| Live Response API ID | 字符串 | 不适用 | 是 | Endpoint Standard Live Response API 密钥 API ID。 |
| Live Response API 密钥 | 密码 | 不适用 | 是 | Live Response API 密钥 API 密钥。 |
| 远程运行 | 复选框 | 尚未核查 | 否 | 勾选此字段,以便远程运行配置的集成。选中后,系统会显示选择远程用户(代理)的选项。 |
| 使用 Live Response V6 API | 复选框 | 尚未核查 | 否 | 如果启用,集成将使用 Live Response API 版本 6,该版本是 CB Cloud (Platform) API 的一部分。 |
操作
Ping
说明
使用 Google SecOps Content Hub 页面中的集成配置页面上提供的参数,测试与 VMware Carbon Black Endpoint Standard Live Response 的连接。
参数
不适用
使用场景
该操作用于在 Google SecOps Content Hub 页面上的集成配置页面测试连接性,并且可以作为人工处置措施执行,不用于 playbook。
运行时间
此操作不会对实体执行。
操作执行结果
脚本结果
| 脚本结果名称 | “值”选项 | 示例 |
|---|---|---|
| is_success | True/False | is_success:False |
案例墙
| 结果类型 | 值 / 说明 | 类型 | ||
|---|---|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行:
|
常规 |
终止进程
说明
根据 Google SecOps 主机或 IP 实体终止主机上的进程。
参数
| 参数显示名称 | 类型 | 默认值 | 为必填项 | 说明 |
|---|---|---|---|---|
| 进程名称 | 字符串 | 不适用 | 否 | 要搜索其 PID 的进程名称。进程名称不区分大小写。 |
| 检查活跃会话 x 次 | 整数 | 20 | 是 | 操作应尝试多少次才能获取实体的活跃会话。每 2 秒检查一次。 |
使用场景
终止受影响设备上的恶意进程。
运行时间
此操作将在以下实体上运行:
- IP 地址
- 主机名
操作执行结果
脚本结果
| 脚本结果名称 | “值”选项 | 示例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON 结果
操作应返回 JSON 结果。
操作应返回有关已执行的终止进程任务的信息,并且这些结果应根据操作所针对的实体进行分组,以便稍后与表达式构建器一起使用。请参阅 JSON 示例。
{
"entity1":[
{
"obj": {
"name": "kill",
"object": 2224
},
"id": 1,
"name": "kill",
"username": null,
"creation_time": 1602161475,
"completion_time": 1602161475,
"result_code": 0,
"result_type": "WinHresult",
"result_desc": "",
"status": "complete"
}]
}
列出进程
说明
根据提供的 Google SecOps 主机或 IP 实体,列出在端点上运行的进程。
参数
| 参数显示名称 | 类型 | 默认值 | 为必填项 | 说明 |
|---|---|---|---|---|
| 进程名称 | 字符串 | 不适用 | 否 | 要在主机上搜索的进程名称。进程名称不区分大小写。 |
| 要返回的记录数 | 整数 | 25 | 否 | 每个实体操作应返回的记录数。 |
| 检查活跃会话 x 次 | 整数 | 20 | 是 | 操作应尝试多少次才能获取实体的活跃会话。每 2 秒检查一次。 |
使用场景
从特定主机获取进程列表以进行调查。
运行时间
此操作将在以下实体上运行:
- IP 地址
- 主机名
操作执行结果
实体丰富化
| 扩充项字段名称 | 逻辑 - 适用情形 |
|---|---|
| cb_defense_deviceId | 不适用 |
| cb_defense_policy | 不适用 |
脚本结果
| 脚本结果名称 | “值”选项 | 示例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON 结果
操作应返回 JSON 结果。
操作应从 get 命令结果中返回有关进程的信息,并且这些结果应根据操作运行的实体进行分组,以便稍后与表达式构建器一起使用。请参阅 JSON 示例。
{
"entity1":[
{
"pid": 4,
"create_time": 132463818889511,
"path": "SYSTEM",
"command_line": "",
"sid": "S-1-5-18",
"username": "NT AUTHORITY\\SYSTEM",
"parent": 0,
"parent_create_time": 0
}]
}
下载文件
说明
根据 Google SecOps 主机或 IP 实体,从运行 VMware CB Cloud Agent 的主机下载文件。
参数
| 参数显示名称 | 类型 | 默认值 | 是否为必填项 | 说明 |
|---|---|---|---|---|
| 文件名 | 字符串 | 不适用 | 否 | 指定要下载的文件名。文件名不区分大小写。 |
| 远程目录路径 | 字符串 | 不适用 | 是 | 指定操作应采用的远程目录路径,以便下载文件。示例:C:\\TMP\\ |
| 本地目录路径 | 字符串 | 不适用 | 是 | 指定操作应将文件保存到的本地目录路径。示例:/tmp/ |
| 检查活跃会话 x 次 | 整数 | 20 | 是 | 操作应尝试多少次才能获取实体的活跃会话。每 2 秒检查一次。 |
运行时间
此操作将在以下实体上运行:
- IP 地址
- 主机
- 文件(可选,如果提供)
操作执行结果
脚本结果
| 脚本结果名称 | “值”选项 | 示例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON 结果
{
"values": [],
"file_details": {
"offset": 0,
"count": 0,
"file_id": "55173d88-b4a8-4410-870c-8d3a0acf1cc9"
},
"id": 1,
"name": "get file",
"result_code": 0,
"result_type": "WinHresult",
"result_desc": "",
"status": "complete",
"sub_keys": [],
"files": [],
"input": {
"name": "get file",
"object": "C:\\TMP\\127.0.0.1.txt"
},
"create_time": "2021-06-16T11:46:41Z",
"finish_time": "2021-06-16T11:46:42Z"
}
列出文件
说明
根据 Google SecOps 主机或 IP 实体,列出运行 VMware CB Cloud Agent 的主机上的文件。
参数
| 参数显示名称 | 类型 | 默认值 | 是否为必填项 | 说明 |
|---|---|---|---|---|
| 远程目录路径 | 字符串 | 不适用 | 是 | 指定操作应列出的目标目录路径。示例:C:\\TMP\\ 或 /tmp/ |
| 返回的行数上限 | 整数 | 50 | 否 | 指定操作应返回的行数。 |
| 起始行 | 整数 | 0 | 否 | 指定操作应从哪一行开始返回数据。 |
| 检查活跃会话 x 次 | 整数 | 20 | 是 | 操作应尝试多少次才能获取实体的活跃会话。每 2 秒检查一次。 |
运行时间
此操作将在以下实体上运行:
- IP 地址
- 主机
操作执行结果
脚本结果
| 脚本结果名称 | “值”选项 | 示例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON 结果
{
"values": [],
"id": 0,
"name": "directory list",
"result_code": 0,
"result_type": "WinHresult",
"result_desc": "",
"status": "complete",
"sub_keys": [],
"files": [
{
"size": 0,
"attributes": [
"DIRECTORY"
],
"filename": ".",
"alternate_name": "",
"create_time": "2021-01-27T19:06:19Z",
"last_access_time": "2021-06-16T07:51:39Z",
"last_write_time": "2021-06-16T07:51:40Z"
},
{
"size": 0,
"attributes": [
"DIRECTORY"
],
"filename": "..",
"alternate_name": "",
"create_time": "2021-01-27T19:06:19Z",
"last_access_time": "2021-06-16T07:51:39Z",
"last_write_time": "2021-06-16T07:51:40Z"
},
{
"size": 341,
"attributes": [
"ARCHIVE"
],
"filename": "127.0.0.1.txt",
"alternate_name": "127001~1.TXT",
"create_time": "2021-01-27T19:18:44Z",
"last_access_time": "2021-03-18T12:34:04Z",
"last_write_time": "2021-01-27T19:03:27Z"
},
放置文件
说明
根据 Google SecOps 主机或 IP 实体,将文件放置在运行 VMware CB Cloud Agent 的主机上。
参数
| 参数显示名称 | 类型 | 默认值 | 是否为必填项 | 说明 |
|---|---|---|---|---|
| 文件名 | 字符串 | 不适用 | 否 | 指定要上传的文件名。文件名不区分大小写。 |
| 源目录路径 | 字符串 | 不适用 | 是 | 指定操作应采用的源目录路径,以获取要上传的文件。示例:/tmp/ |
| 目标目录路径 | 字符串 | 不适用 | 是 | 指定操作应将文件上传到的目标目录路径。示例:C:\\TMP\\ |
| 检查活跃会话 x 次 | 整数 | 20 | 是 | 操作应尝试多少次才能获取实体的活跃会话。每 2 秒检查一次。 |
运行时间
此操作将在以下实体上运行:
- IP 地址
- 主机
- 文件(可选,如果提供)
操作执行结果
脚本结果
| 脚本结果名称 | “值”选项 | 示例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON 结果
{
"values": [],
"id": 0,
"name": "put file",
"result_code": 0,
"result_type": "WinHresult",
"result_desc": "",
"status": "complete",
"sub_keys": [],
"files": [],
"input": {
"chunkNumber": 0,
"file_id": "a3623dc4-a1cc-4d29-8cde-2d36d605b1a5",
"name": "put file",
"object": "C:\\TMP\\test_file.txt"
},
"create_time": "2021-06-16T07:51:40Z",
"finish_time": "2021-06-16T07:51:41Z"
}
执行文件
说明
根据 Google SecOps 主机或 IP 实体,在运行 VMware CB Cloud Agent 的主机上执行文件。
参数
| 参数显示名称 | 类型 | 默认值 | 是否为必填项 | 说明 |
|---|---|---|---|---|
| 文件名 | 字符串 | 不适用 | 否 | 指定要执行的文件名。文件名不区分大小写。 |
| 远程目录路径 | 字符串 | 不适用 | 是 | 指定要执行的文件的远程目录路径。示例:C:\\TMP\\ |
| 在远程主机上输出日志文件 | 字符串 | 不适用 | 否 | 指定操作应将重定向的输出保存到的输出日志文件。示例:C:\\TMP\\cmdoutput.log |
| 要传递给文件的命令参数 | 字符串 | 不适用 | 否 | 指定要传递以执行文件的命令参数。 例如,我们在此处指定“/C whoami”以使用 cmd 执行 whoami 命令:C:\Windows\system32\cmd.exe /C whoami |
| 等待结果 | 布尔值 | 复选框未选中 | 否 | 如果启用,操作将等待命令完成。 |
| 检查活跃会话 x 次 | 整数 | 20 | 是 | 操作应尝试多少次才能获取实体的活跃会话。每 2 秒检查一次。 |
运行时间
此操作将在以下实体上运行:
- IP 地址
- 主机
- 文件(可选,如果提供)
操作执行结果
脚本结果
| 脚本结果名称 | “值”选项 | 示例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON 结果
{
"values": [],
"process_details": {
"pid": 0,
"return_code": -1
},
"id": 0,
"name": "create process",
"result_code": 0,
"result_desc": "",
"status": "pending",
"sub_keys": [],
"files": [],
"input": {
"wait": false,
"name": "create process",
"object": "C:\\Windows\\system32\\cmd.exe /C whoami"
},
"create_time": "2021-06-16T12:14:25Z",
"finish_time": "2021-06-16T12:14:25.690Z"
}
创建 Memdump
说明
根据 Google SecOps 主机或 IP 实体,在运行 VMware CB Cloud Agent 的主机上创建 memdump。
此外,请注意,如果为创建的内存转储提供了无效的远程目录路径,VMware CB API 不会提供出错提示。
参数
| 参数显示名称 | 类型 | 默认值 | 是否为必填项 | 说明 |
|---|---|---|---|---|
| 文件名 | 字符串 | 不适用 | 否 | 指定 memdump 创建的文件名。文件名不区分大小写。 |
| 远程目录路径 | 字符串 | 不适用 | 是 | 指定用于存储 memdump 的目录文件路径。示例:C:\\TMP\\ |
| 检查活跃会话 x 次 | 整数 | 20 | 是 | 操作应尝试多少次才能获取实体的活跃会话。每 2 秒检查一次。 |
运行时间
此操作将在以下实体上运行:
- IP 地址
- 主机
- 文件(可选,如果提供)
操作执行结果
脚本结果
| 脚本结果名称 | “值”选项 | 示例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON 结果
{
"values": [],
"mem_dump": {
"compressing": false,
"complete": true,
"dumping": false,
"return_code": 1627,
"percentdone": 0
},
"id": 0,
"name": "memdump",
"result_code": 0,
"result_type": "WinHresult",
"result_desc": "",
"status": "complete",
"sub_keys": [],
"files": [],
"input": {
"name": "memdump",
"object": "C:\\TMP\\cb-session-dump2.dmp"
},
"create_time": "2021-06-16T13:06:26Z",
"finish_time": "+53427-09-21T04:18:52Z"
}
删除文件
说明
根据 Google SecOps 主机或 IP 实体,从运行 VMware CB Cloud Agent 的主机中删除文件。
参数
| 参数显示名称 | 类型 | 默认值 | 是否为必填项 | 说明 |
|---|---|---|---|---|
| 文件名 | 字符串 | 不适用 | 否 | 指定要删除的文件名。文件名不区分大小写。 |
| 远程目录路径 | 字符串 | 不适用 | 是 | 指定要删除的文件的远程目录路径。示例:C:\\TMP\\ |
| 检查活跃会话 x 次 | 整数 | 20 | 是 | 操作应尝试多少次才能获取实体的活跃会话。每 2 秒检查一次。 |
运行时间
此操作将在以下实体上运行:
- IP 地址
- 主机
操作执行结果
脚本结果
| 脚本结果名称 | “值”选项 | 示例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON 结果
{
"values": [],
"id": 0,
"name": "delete file",
"result_code": 0,
"result_desc": "",
"status": "pending",
"sub_keys": [],
"files": [],
"input": {
"name": "delete file",
"object": "C:\\TMP\\test_file.txt"
},
"create_time": "2021-06-16T13:43:45Z",
"finish_time": "2021-06-16T13:43:45.796Z"
}
列出 Cloud Storage 中的文件
说明
根据 Google SecOps 主机或 IP 实体,列出 VMware Carbon Black Cloud 文件存储中现有实时响应会话的文件。
参数
| 参数显示名称 | 类型 | 默认值 | 是否为必填项 | 说明 |
|---|---|---|---|---|
| 返回的行数上限 | 整数 | 50 | 否 | 指定操作应返回的行数。 |
| 起始行 | 整数 | 0 | 否 | 指定操作应从哪一行开始返回数据。 |
| 检查活跃会话 x 次 | 整数 | 20 | 是 | 操作应尝试多少次才能获取实体的活跃会话。每 2 秒检查一次。 |
运行时间
此操作将在以下实体上运行:
- IP 地址
- 主机
操作执行结果
脚本结果
| 脚本结果名称 | “值”选项 | 示例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON 结果
[
{
"id": "97200931-cca6-4eed-8952-c47d529de103",
"size": 32,
"file_name": "test_file.txt",
"size_uploaded": 0,
"upload_url": null
}
]
从 Cloud Storage 中删除文件
说明
根据 Google SecOps 主机或 IP 实体,从 VMware Carbon Black Cloud 文件存储中删除现有实时响应会话的文件。
参数
| 参数显示名称 | 类型 | 默认值 | 是否为必填项 | 说明 |
|---|---|---|---|---|
| 文件名 | 字符串 | 不适用 | 否 | 指定要删除的文件名。文件名不区分大小写。 |
| 检查活跃会话 x 次 | 整数 | 20 | 是 | 操作应尝试多少次才能获取实体的活跃会话。每 2 秒检查一次。 |
运行时间
此操作将在以下实体上运行:
- IP 地址
- 主机
- 文件(可选,如果提供)
操作执行结果
脚本结果
| 脚本结果名称 | “值”选项 | 示例 |
|---|---|---|
| is_success | True/False | is_success:False |
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。