Vectra
集成版本:8.0
使用场景
- 提取 Vectra 检测结果,以便使用这些结果创建 Google Security Operations 提醒。接下来,在 Google SecOps 中,可以使用提醒通过 playbook 或手动分析来执行编排。
- 执行扩充操作 - 从 Vectra 获取数据,以扩充 Google SecOps 提醒中的数据。
产品权限
如需获取 API 令牌,您必须前往“个人资料”页面并复制该令牌。
在 Google SecOps 中配置 Vectra 集成
有关如何在 Google SecOps 中配置集成的详细说明,请参阅配置集成。
集成参数
使用以下参数配置集成:
参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 |
---|---|---|---|---|
实例名称 | 字符串 | 不适用 | 否 | 您打算为其配置集成的实例的名称。 |
说明 | 字符串 | 不适用 | 否 | 实例的说明。 |
API 根 | 字符串 | https://{address}:{port} | 是 | Vectra 服务器的 API 根。 |
API 令牌 | 密码 | 不适用 | 是 | Vectra 账号的 API 令牌。 |
验证 SSL | 复选框 | 勾选 | 是 | 如果启用,则验证与 Vectra 服务器的连接的 SSL 证书是否有效。 |
远程运行 | 复选框 | 尚未核查 | 否 | 选中此字段,以便远程运行配置的集成。选中后,系统会显示用于选择远程用户(客服人员)的选项。 |
操作
Ping
说明
使用 Google Security Operations Marketplace 标签页中集成配置页面上提供的参数测试与 Vectra 的连接。
运行于
该操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
is_success | True/False | is_success:False |
案例墙
结果类型 | 值 / 说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果成功: 输出“Successfully connected to the Vectra server with the provided connection parameters!” 操作应失败并停止 playbook 执行: 打印“Failed to connect to the Vectra server! 错误为 {0}".format(exception.stacktrace) |
常规 |
丰富端点
说明
按主机名或 IP 地址提取端点的系统信息。
运行于
此操作适用于以下实体:
- IP 地址
- 主机名
操作执行结果
实体扩充
扩充项字段名称 | 来源(JSON 密钥) | 逻辑 - 应用场景 |
---|---|---|
Vectra_id | results/id | 以 JSON 格式提供时 |
Vectra_name | results/name | 以 JSON 格式提供时 |
Vectra_state | results/state | 以 JSON 格式提供时 |
Vectra_threat | 结果/威胁 | 以 JSON 格式提供时 |
Vectra_certainty | 结果/确定性 | 以 JSON 格式提供时 |
Vectra_ip | results/last_source | 以 JSON 格式提供时 |
Vectra_tags | 以空格分隔的{results/tags} | 以 JSON 格式提供时 |
Vectra_note | 结果/备注 | 以 JSON 格式提供时 |
Vectra_url | results/url | 以 JSON 格式提供时 |
Vectra_last_modified | results/last_modified | 以 JSON 格式提供时 |
Vectra_groups | 以空格分隔的{results/groups} | 以 JSON 格式提供时 |
Vectra_is_key_asset | results/is_key_asset | 以 JSON 格式提供时 |
Vectra_has_active_traffic | results/has_active_traffic | 以 JSON 格式提供时 |
Vectra_is_targeting_key_asset | results/is_targeting_key_asset | 以 JSON 格式提供时 |
Vectra_privilege_level | results/privilege_level | 以 JSON 格式提供时 |
Vectra_previous_ip | 以空格分隔的 {results/previous_ips} | 以 JSON 格式提供时 |
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
is_success | True/False | is_success:False |
JSON 结果
{
"id": 131,
"name": "DESKTOP-DAIOS7J",
"active_traffic": false,
"has_active_traffic": false,
"t_score": 0,
"threat": 0,
"c_score": 0,
"certainty": 0,
"severity": null,
"last_source": "10.0.2.68",
"ip": "10.0.2.68",
"previous_ips": [],
"last_detection_timestamp": "2019-10-08T17:13:57Z",
"key_asset": false,
"is_key_asset": false,
"state": "inactive",
"targets_key_asset": false,
"is_targeting_key_asset": false,
"detection_set": [],
"host_artifact_set": [
{
"type": "netbios",
"value": "DESKTOP-DAIOS7J",
"source": null,
"siem": false
}
],
"sensor": "YLq09aHU",
"sensor_name": "Vectra X",
"tags": [],
"note": null,
"note_modified_by": null,
"note_modified_timestamp": null,
"url": "https://70.54.200.216:64443/api/v2.1/hosts/131",
"host_url": "https://70.54.200.216:64443/api/v2.1/hosts/131",
"last_modified": "2020-02-12T13:41:51Z",
"assigned_to": null,
"assigned_date": null,
"groups": [],
"has_custom_model": false,
"privilege_level": null,
"privilege_category": null,
"probable_owner": null,
"detection_profile": null,
"host_session_luids": [],
"host_luid": "e0M-jygN"
}
案例墙
结果类型 | 值 / 说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果成功 且至少一个提供的实体已得到丰富(is_success = true): 打印“Successfully enriched the following endpoints from Vectra: \n {0}”(已成功从 Vectra 扩充以下端点:\n {0})。format(entity.identifier list) 如果 Vectra 中发现某个 Google SecOps 实体的操作有多个匹配项,则会采用第一个匹配项来丰富端点: 打印“在 Vectra 中找到了多个匹配项,正在为以下实体采用第一个匹配项:/n {0}”。format(entity.identifiers list) 如果未能扩充特定实体(is_success = true): 输出“No entities were enriched.” 操作应失败并停止 playbook 执行: 打印“执行操作‘丰富端点’时出错。原因:{0}''.format(error.Stacktrace) |
常规 |
添加标记
说明
向 Vectra 中的端点或检测结果添加标记。
参数
参数显示名称 | 类型 | 默认值 | 是强制性的 | 说明 |
---|---|---|---|---|
内容类型 | 下拉列表 | 端点 可能的值: 检测 |
是 | 选择要向哪种商品类型添加标记。 |
内容 ID | 字符串 | 不适用 | 是 | 指定检测/端点的 ID。 |
标记 | CSV | 不适用 | 是 | 指定要向检测/端点添加哪些标记。标记应以英文逗号分隔,例如:tag1, tag2。 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
is_success | True/False | is_success:False |
案例墙
结果类型 | 值 / 说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果找到检测/端点,并且已成功更新标记 (is_success = true): 打印“Successfully added tags {0} to {1} with ID {2}.format(tags, Item Type, Item ID) 如果检测到检测/端点,但未添加标记 (is_success=False): 打印“操作无法将标记 {0} 添加到 ID 为 {2} 的 {1}。原因:{3}. format(tags, Item Type, Item ID, tags parameter from response)"。 如果未找到检测/端点(is_success=False): 打印“未找到 ID 为 {1} 的 {0}。format(商品类型, 商品 ID)。” II is_success=false,没有特定情况,也不是严重错误: 打印“Action wasn't able to add tags to {0} with ID {1}.format(Item Type, Item ID)”: 操作应失败并停止 playbook 执行: 打印“执行操作‘添加标记’时出错。原因:{0}''.format(error.Stacktrace) |
常规 |
移除标记
说明
从 Vectra 中的端点或检测结果中移除标记。
参数
参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 |
---|---|---|---|---|
内容类型 | 下拉列表 | 端点 可能的值: 检测 |
是 | 选择要移除哪些类型商品的标记。 |
内容 ID | 字符串 | 不适用 | 是 | 指定检测/端点的 ID。 |
标记 | CSV | 不适用 | 是 | 指定要从检测/端点中移除哪些标记。标记应以英文逗号分隔,例如:tag1, tag2。 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
is_success | True/False | is_success:False |
案例墙
结果类型 | 值 / 说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果找到检测/端点,并且已成功更新标记 (is_success = true): 打印“Successfully removed tags {0} from {1} with ID {2}.format(tags, Item Type, Item ID)” 如果未找到检测/端点(is_success=False): 打印“未找到 ID 为 {1} 的 {0}。”。format(Item Type, Item ID)。 如果检测到检测/端点,但未找到代码(is_success=False): 打印“Tags {0} don't exist in {1} with ID {2}.".format(list of tags that were not found separated by comma, Item Type, Item ID)。 如果 is_success=false 但没有特定情况,且不是严重错误: 打印“Action wasn't able to remove tags from {0} with ID {1}.format(Item Type, Item ID)”: 操作应失败并停止 playbook 执行: 打印“执行操作‘移除标记’时出错”。原因:{0}''.format(error.Stacktrace) |
常规 |
更新备注
说明
更新了端点或检测的备注。
参数
参数显示名称 | 类型 | 默认值 | 是强制性的 | 说明 |
---|---|---|---|---|
内容类型 | 下拉列表 | 端点 可能的值: 检测 |
是 | 选择要更新备注的商品类型。 |
内容 ID | 字符串 | 不适用 | 是 | 指定检测/端点的 ID。 |
注意 | 字符串 | 不适用 | 是 | 指定您希望在检测/端点上显示哪些备注。 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
is_success | True/False | is_success:False |
案例墙
结果类型 | 值 / 说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果找到检测结果/端点,并且成功更新了备注 (is_success = true): 打印“Successfully updated note on {1} with ID {2}.format(Item Type, Item ID) 如果未找到检测/端点(is_success=False): 打印“未找到 ID 为 {1} 的 {0}。”。format(Item Type, Item ID)。 如果 is_success=false 但没有特定情况,且不是严重错误: 打印“操作无法更新 {0} 上 ID 为 {1} 的备注”。format(Item Type, Item ID): 操作应失败并停止 playbook 执行: 打印“执行操作‘更新笔记’时出错”。原因:{0}''.format(error.Stacktrace) |
常规 |
更新检测状态
说明
更新检测的状态。
参数
参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 |
---|---|---|---|---|
检测 ID | 整数 | 不适用 | 是 | 指定要更新状态的检测 ID。 |
状态 | DDL | 修复了 可能的值: 固定 有效 |
是 | 指定要为检测设置的状态。 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
is_success | True/False | is_success:False |
案例墙
结果类型 | 值 / 说明 | 类型 |
---|---|---|
输出消息\* | 操作不应失败,也不应停止 playbook 执行: 如果检测到问题且状态已成功更新 (is_success = true): 打印“Successfully updated status to '{0}' on detection with ID {1}.format(Status, Detection ID)
如果未找到检测结果 (is_success=False): 打印“未找到 ID 为 {1} 的检测结果。”。format(检测 ID)。 如果 is_success=false 但没有特定情况,且不是严重错误: 打印“Action wasn't able to update status on detection with ID {1}.format(detection ID)”: 操作应失败并停止 playbook 执行: 打印“Error executing action "Update Detection Status". 原因:{0}''.format(error.Stacktrace) |
常规 |
获取分诊规则详情
说明
获取有关分诊规则的详细信息。
参数
参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 |
---|---|---|---|---|
分诊规则 ID | 整数 | 不适用 | 是 | 指定以英文逗号分隔的诊断规则 ID 列表。示例:28、29 |
创建数据分析 | 复选框 | 正确 | 是 | 如果启用,此操作将为每个已处理的分诊规则创建单独的数据洞见。 |
运行于
此操作不会在实体上运行。
操作执行结果
数据分析
数据分析标题 | 数据分析说明 |
---|---|
“Triage Rule {0}”.format(triage_rule) | “检测类别:{0}\n 分诊类别:{1}\n 检测:{2}\n 说明:{3}”.format(detection_category, triage_category, detection, description) |
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
is_success | True/False | is_success:False |
JSON 结果
{
"id": 28,
"url": "https://api.demo.vectranetworks.com/api/v2.1/rules/28",
"description": "whatever",
"enabled": true,
"created_timestamp": "2020-10-01T17:21:19Z",
"last_timestamp": "2020-10-01T17:21:19Z",
"is_whitelist": false,
"priority": 1,
"active_detections": 1,
"total_detections": 1,
"template": false,
"additional_conditions": {
"OR": [
{
"AND": [
{
"ANY_OF": {
"field": "remote1_ip",
"values": [
{
"url": null,
"value": "35.166.75.118",
"label": "35.166.75.118"
}
],
"groups": [],
"label": "C&C Server IP"
}
}
]
}
]
},
"source_conditions": {
"OR": [
{
"AND": [
{
"ANY_OF": {
"field": "host",
"values": [
{
"url": "https://api.demo.vectranetworks.com/api/v2.1/hosts/142",
"value": 142,
"label": "IP-10.10.100.10"
}
],
"groups": [],
"label": "Host"
}
}
]
}
]
},
"detection_category": "COMMAND & CONTROL",
"triage_category": "triage rule 1",
"detection": "Hidden HTTPS Tunnel"
案例墙
结果类型 | 值 / 说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果成功且至少一个提供的规则 ID 已丰富(is_success = true): 打印“Successfully retrieved information about the following triage rules from Vectra: \n {0}”。format(processed rule ids) 如果无法丰富特定实体(is_success = true): 打印“操作无法检索以下分诊规则的相关信息:{0}”。format(未处理的规则 ID) 如果未能丰富所有实体(is_success = false): 打印“未检索到有关分诊规则的信息。” 操作应失败并停止 playbook 执行: 打印“Error executing action "Get Triage Rule Details". 原因:{0}''.format(error.Stacktrace) |
常规 |
“案例墙”表格 | 表格名称:分诊规则详细信息 表格列: ID(映射为 id) 已启用(映射为已启用) 检测类别(映射为 detection_category) 分诊类别(映射为 triage_category) 检测(映射为检测) 白名单(映射为 is_whitelist) 优先级(映射为 priority) 创建时间(映射为 created_timestamp) |
常规 |
连接器
Vectra - 检测连接器
在 Google SecOps 中配置 Vectra - 检测连接器
有关如何在 Google SecOps 中配置连接器的详细说明,请参阅配置连接器。
连接器参数
使用以下参数配置连接器:
参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 |
---|---|---|---|---|
商品字段名称 | 字符串 | 产品名称 | 是 | 输入源字段名称,以便检索产品字段名称。 |
事件字段名称 | 字符串 | eventType | 是 | 输入源字段名称,以便检索事件字段名称。 |
环境字段名称 |
字符串 | "" | 否 | 描述存储环境名称的字段的名称。 如果找不到环境字段,则环境为默认环境。 |
环境正则表达式模式 |
字符串 | .* | 否 | 要对“环境字段名称”字段中找到的值运行的正则表达式模式。 默认值为 .*,用于捕获所有内容并返回未更改的值。 用于允许用户通过正则表达式逻辑来操纵环境字段。 如果正则表达式模式为 null 或空,或者环境值为 null,则最终环境结果为默认环境。 |
脚本超时(秒) | 整数 | 180 | 是 | 运行当前脚本的 Python 进程的超时时间限制。 |
API 根 | 字符串 | https://x.x.x.x:x:x | 是 | Vectra 服务器的 API 根。 |
API 令牌 | 密码 | 不适用 | 是 | Vectra 账号的 API 令牌。 |
要提取的最低威胁得分 | 整数 | 50 | 是 | 用于提取检测结果的最低威胁得分。 最小值:0 上限:100 |
要提取的最低确定性得分 | 整数 | 0 | 否 | 用于提取检测结果的最低确定性得分。 最小值:0 上限:100 |
类别过滤器 | 逗号分隔值 | 命令和控制、僵尸网络、侦察、横向移动、数据渗出、信息 | 指定要将哪些类别的检测结果注入到 Google SecOps 中。 可能的值: 命令与控制 Botnet 侦察 横向移动 渗漏 信息 |
|
提取回溯的小时数上限 | 整数 | 1 | 否 | 提取威胁的小时数。 |
要提取的最大检测次数 | 整数 | 25 | 否 | 每次连接器迭代要处理的检测结果数量。上限为 5000。这是 Vectra 的限制。 |
将白名单用作黑名单 | 复选框 | 尚未核查 | 是 | 如果启用,白名单将用作黑名单。 |
验证 SSL | 复选框 | 勾选 | 是 | 如果启用,则验证与 Vectra 服务器的连接的 SSL 证书是否有效。 |
代理服务器地址 | 字符串 | 不适用 | 否 | 要使用的代理服务器的地址。 |
代理用户名 | 字符串 | 不适用 | 否 | 用于进行身份验证的代理用户名。 |
代理密码 | 密码 | 不适用 | 否 | 用于进行身份验证的代理密码。 |
连接器规则
代理支持
连接器支持代理。
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。