VMware Carbon Black Enterprise EDR
集成版本:6.0
产品使用场景
- 执行调查操作 - 从 CB Enterprise EDR 获取数据,作为 Google Security Operations 中警报分析的一部分。
- 执行配置操作 - 从 Google SecOps 配置 CB Enterprise EDR Feed/监视列表。
产品权限
访问 Carbon Black Enterprise EDR (ThreatHunter) API 所需的概念:
- 服务主机名
- API 密钥
- RBAC
- 组织密钥
服务主机名
Carbon Black Cloud 有两个主机名:
- https://defense-<environment>.conferdeploy.net/
- https://api-<environment>.conferdeploy.net/
此外,我们还提供多种环境,例如(非完整列表):
- prod02
- prod04
- prod05
对于 Carbon Black Enterprise EDR (ThreatHunter) API,将使用以下主机名:https://defense-<环境>.conferdeploy.net/
API 密钥
Carbon Black Enterprise EDR (ThreatHunter) API 和服务通过 API 密钥进行身份验证。用户可以在 Carbon Black Cloud 控制台中的 Settings > API Keys 下查看 API 密钥设置。
API 密钥包含两部分:
- API Secret 密钥(之前称为“API 密钥”)。
- API ID(之前称为连接器 ID)。
身份验证通过 X-Auth-Token HTTP 标头传递给 API。
- 如需生成相应的标头,请将 API 密钥与 API ID 串联起来,并在两者之间添加正斜杠。
- 例如,如果 API Secret Key 为 ABCD,API ID 为 1234,则相应的 X-Auth-Token HTTP 标头将为:X-Auth-Token: ABCD/1234
所有 API 请求都必须使用 API 密钥和 API ID 进行身份验证。未经身份验证的请求会返回 HTTP 401 错误。
如何获取 API Secret 密钥和 API ID
- 登录您的 Carbon Black Cloud 组织。
- 依次前往设置 > API 密钥。
- 点击“添加 API 密钥”。
- 配置名称、访问权限级别等
- 获取您的 API 密钥和 API ID 对。
这样一来,组织管理员就可以定义 API 密钥,并获取对 API Secret 密钥和 API ID 的访问权限,而这些信息是验证 API 请求所必需的。此外,出于安全考虑,管理员可以将此 API 密钥的使用范围限制为一组特定的 IP 地址。
API 密钥访问权限级别
目前,“API 密钥”页面中提供了四种主要 API 密钥访问权限级别。每种访问权限级别都提供不同级别的 API 路由访问权限:
自定义密钥访问权限级别:提供可自定义的授权。
- 自定义 API 密钥是我们基于角色的访问权限控制 (RBAC) 工作的成果。
- 允许客户应用访问权限控制并创建最小权限 API 密钥。
- 自定义 API 密钥可以分配用户角色或访问权限级别。
API 密钥访问权限级别:提供对除 Notifications API 和 Live Response API 之外的所有 API 的访问权限。
SIEM 密钥访问权限级别:提供对 Notifications API 的访问权限。
实时响应密钥访问权限级别:提供对 (1) 及以上级别可用的所有 API 的访问权限,以及对实时响应 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 响应 |
组织密钥
除了 API 密钥之外,许多 Carbon Black Cloud API 或服务还需要在 API 请求路径中提供 org_key。这是为了支持管理多个组织的客户。
您可以在 Carbon Black Cloud 控制台中的“设置”>“API 密钥”下找到您的 org_key。
为 Carbon Black Enterprise EDR (ThreatHunter) Google SecOps 集成配置 API 访问权限
如需为 Carbon Black Enterprise EDR (ThreatHunter) Google SecOps 集成配置 API 访问权限,需要执行以下步骤:
- 登录 Carbon Black Cloud 控制台,然后依次前往设置 > API 访问权限。
- 在“API 访问权限”页面上,前往“访问权限级别”。
- 在“访问权限级别”页面上,点击 + 添加访问权限级别。
在打开的窗口中,为新的访问权限级别提供名称和说明,然后选择权限,如下面的屏幕截图所示:

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

点击保存后,系统会显示 API ID 和 API Secret 密钥。 请保存这些值,因为它们只会显示一次。
保存 API ID 和 API Secret 密钥后,即可在 Carbon Black Enterprise EDR (ThreatHunter) 中完成 API 访问。
在 Google SecOps 中配置 VMware Carbon Black Enterprise EDR(威胁猎手)集成
有关如何在 Google SecOps 中配置集成的详细说明,请参阅配置集成。
集成参数
使用以下参数配置集成:
| 参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 |
|---|---|---|---|---|
| 实例名称 | 字符串 | 不适用 | 否 | 您打算为其配置集成的实例的名称。 |
| 说明 | 字符串 | 不适用 | 否 | 实例的说明。 |
| API 根 | 字符串 | 不适用 | 是 | VMware Carbon Black Cloud API 根网址。 |
| 组织密钥 | 字符串 | 不适用 | 是 | 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 标签页的集成配置页面上测试连接,可以作为手动操作执行,但不能在 playbook 中使用。
运行于
此操作不会在实体上运行,也没有强制性输入参数。
操作执行结果
脚本结果
| 脚本结果名称 | 值选项 | 示例 |
|---|---|---|
| is_success | True/False | is_success:False |
案例墙
| 结果类型 | 值/说明 | 类型 |
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行:
|
常规 |
流程搜索
说明
根据提供的搜索参数,使用 CB 传感器搜索有关主机上进程活动的信息。该操作接受宿主 Google SecOps 实体。
参数
| 参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 |
|---|---|---|---|---|
| 查询 | 字符串 | 不适用 | 否 | 要在进程搜索中执行的查询。例如,process_name:svchost.exe - 按进程名称搜索;process_hash:9520a99e77d6196d0d09833146424113 - 按进程哈希搜索。 |
| 时间范围 | 整数 | 4 | 否 | 指定要提取提醒的时间范围(以小时为单位)。 |
| 记录限制 | 整数 | 20 | 是 | 指定操作可返回的记录数。 |
| 排序方式 | 字符串 | 不适用 | 否 | 指定用于对数据进行排序的参数。 |
| 排列顺序 | DDL | 升序 | 否 | 排序顺序。 |
剧本使用场景示例
根据提供的搜索参数搜索由进程引起的事件。
在分析与 CB 平台管理的特定主机相关的提醒时,用户希望调查该主机,即根据提供的搜索参数搜索由正在运行的进程引起的特定事件。用户可以运行此操作进行威胁搜寻活动,主动搜索相关主机上是否存在任何可疑进程/事件。
运行于
此操作在 Host 实体上运行。
操作执行结果
脚本结果
| 脚本结果名称 | 值选项 | 示例 |
|---|---|---|
| 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"
]
},
...
] }
案例墙
| 结果类型 | 值 / 说明 | 类型 |
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行:
|
两者 |
| 表 | 表格名称:处理 {entityIdentifier} 的搜索结果 列:
|
实体 |
按进程 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 平台管理的特定主机相关的提醒时,发现该主机正在运行可疑进程。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
},
...
]
}
案例墙
| 结果类型 | 值 / 说明 | 类型 |
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行:
|
常规 |
| 表 | 表格名称:Found events for process {process artifact identifier} 列:应根据返回的结果自动生成。 |
实体 |
丰富哈希
说明
根据 VMware Carbon Black Enterprise EDR 中的信息丰富 Google SecOps 文件哈希实体。
剧本使用场景示例
使用来自 CB Enterprise EDR 的信息丰富 Google SecOps 文件哈希实体。
在处理与具有 CB 平台传感器的主机关联的可能恶意软件感染警报期间,用户需要从 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 | 评论 | 如果不为 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
}
案例墙
| 结果类型 | 值 / 说明 | 类型 |
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行:
|
常规 |