将 Splunk 与 Google SecOps 集成
本文档介绍了如何将 Splunk 与 Google SecOps 集成。
准备工作
在将 Splunk 与 Google SecOps 集成之前,请确定适合您的部署架构的适当提取方法,并验证您的环境是否满足所有必需的依赖项、网络路径和访问权限。
Google SecOps 支持两种提取方法:
基于推送的提取:Splunk 会在本地评估提醒,并使用 TA-Siemplify 插件和提醒触发操作将事件直接推送到 Google SecOps。Google SecOps 中无需进行任何连接器配置。
基于拉取的提取:Google SecOps 连接器会定期查询 Splunk REST API 端点,以检索提醒、SPL 搜索结果或 Splunk ES Notable Events。
基于推送的注入
基于推送的提取需要 Splunk 与 Google SecOps 之间建立直接的出站 HTTPS 连接,并且需要在 Splunk 搜索头上进行特定的插件配置。
在配置基于推送的提取之前,请验证以下要求:
从 Splunkbase 下载 TA-Siemplify 软件包并将其安装到所有目标 Splunk 搜索头上。在分布式环境中,使用 Splunk Deployer 或部署服务器在整个搜索头集群中部署插件。
验证搜索头上是否安装了兼容版本的 Splunk 通用信息模型 (Splunk_SA_CIM),以支持模块化提醒和日志记录。
确保您的 Splunk 搜索头可以通过 HTTPS(TCP 端口 443)出站访问您的 Google SecOps 实例网址。
验证您是否在 Google SecOps 中拥有一个具有生成 API 密钥的管理权限的账号(Settings > Advanced > API)。确保生成的 API 密钥已分配具有提醒和支持请求创建权限的角色。
如果您计划从转换搜索(例如使用
stats、chart或timechart的搜索)中注入原始事件,请确保在搜索头的savedsearches.conf中配置dispatch.buckets = 1。
基于拉取的注入
基于拉取的提取、剧本操作和同步作业需要 Google SecOps(或远程代理)与 Splunk 建立入站管理连接。
在配置拉取连接器、操作或作业之前,请验证以下要求:
网络连接:验证从 Google SecOps(或您的远程代理)到 Splunk 管理 REST API 端口(默认:
8089/TCP)的网络直连。自定义 CA 证书:如果您的 Splunk 实例使用私有或内部 CA 证书,请验证您在 Google SecOps 中运行的是 Splunk 集成版本 26.0 或更高版本。
身份验证:获取有效的 Splunk 用户凭据(用户名和密码)或生成 Splunk Bearer 令牌(如需在 Splunk 平台上启用此身份验证方法,则需要令牌身份验证)。
Splunk 角色功能:确保进行身份验证的 Splunk 账号具有以下功能:
数据存储区和查找权限:验证进行身份验证的账号是否具有对所选组件的相关 Splunk 数据存储区的访问权限:
- Splunk pull 连接器:对
siemplify_alerts对照表(在以拉取模式安装和配置TA-Siemplify时填充)的读取权限。 - Splunk 查询连接器和操作:
- 搜索目标事件索引的权限(不需要
TA-Siemplify)。 - 如果使用 Submit Event 操作,则对目标索引具有写入和输入权限。
- 搜索目标事件索引的权限(不需要
- Splunk ES - 值得注意的事件连接器和作业:已安装并处于活动状态的 Splunk Enterprise Security (ES),对
notable索引的读取权限,以及对get_notable_index宏的访问权限(不需要TA-Siemplify)。
- Splunk pull 连接器:对
集成参数
使用以下参数配置集成:
| 参数显示名称 | 类型 | 默认值 | 为必填项 | 说明 |
|---|---|---|---|---|
| 服务器地址 | 字符串 | {SCHEMA}://{IP}:{PORT} | 是 | Splunk 服务器的地址。 |
| 用户名 | 字符串 | 不适用 | 否 | 应使用哪个用户的电子邮件地址来连接到 Splunk。 |
| 密码 | 密码 | 不适用 | 否 | 相应用户的密码。 |
| API 令牌 | 密码 | 不适用 | 否 | Splunk API 令牌。如果此字段不为空,API 令牌的优先级高于其他身份验证方法。 |
| 验证 SSL | 复选框 | 尚未核查 | 否 | 如果您的 Splunk 连接需要 SSL 验证,请选中此复选框(默认情况下处于未选中状态)。 |
| CA 证书文件 | 字符串 | 不适用 | 否 | Base64 编码的 CA 证书文件。 |
如需了解如何在 Google SecOps 中配置集成,请参阅配置集成。
如有需要,您可以在稍后阶段进行更改。配置集成实例后,您可以在 playbook 中使用该实例。如需详细了解如何配置和支持多个实例,请参阅支持多个实例。
操作
如需详细了解操作,请参阅 在工作台页面中处理待处理的操作和执行人工处置措施。
获取主机事件
在 Splunk 中获取与主机相关的事件。
参数
| 参数显示名称 | 类型 | 默认值 | 为必填项 | 说明 |
|---|---|---|---|---|
| 每个主机活动的数量限制 | 整数 | 100 | 是 | 指定每个主机返回的事件数量。 |
| 结果来自 | 字符串 | -24 小时 | 是 | 指定活动的开始时间。 |
| 结果 | 字符串 | 现在 | 是 | 指定活动的结束时间。 |
| 结果字段 | CSV | 不适用 | 否 | 指定需要返回的字段的英文逗号分隔列表。 |
| 索引 | 字符串 | 不适用 | 否 | 指定在搜索与主机相关的事件时应使用哪个索引。如果未提供任何内容,操作将不使用索引。 |
| 主机密钥 | 字符串 | 主机 | 否 | 指定应使用哪个键来获取有关主机事件的信息。默认值:host。 |
Run On
此操作在 Hostname 实体上运行。
操作执行结果
脚本结果
| 脚本结果名称 | 值选项 | 示例 |
|---|---|---|
| 成功 | True/False | success:False |
JSON 结果
[{
"app": "SA-AccessProtection",
"_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
"_cd": "425:9087674",
"_indextime": "1612231318",
"_kv": "1",
"_raw": "02-02-2021 04:01:58.404 +0200 INFO SavedSplunker - savedsearch_id=\"nobody;SA-AccessProtection;Access - Default Account Usage - Rule\", search_type=\"\", user=\"admin\", app=\"SA-AccessProtection\", savedsearch_name=\"Access - Default Account Usage - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=0, dispatch_time=1612179969, run_time=51348.242, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtQWNjZXNzUHJvdGVjdGlvbg__RMD509c859ea7b9951b8_at_1612179932_61.40533\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
"_serial": "0",
"_si": [
"splunk",
"_internal"
],
"_sourcetype": "scheduler",
"_subsecond": ".404",
"_time": "2021-02-02T04:01:58.404+02:00"
},
{
"_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
"_cd": "425:9087731",
"_indextime": "1612231318",
"_kv": "1",
"_raw": "127.0.0.1 - admin [02/Feb/2021:04:01:58.172 +0200] \"POST /servicesNS/nobody/SA-AccessProtection/saved/searches/Access%20-%20Default%20Account%20Usage%20-%20Rule/notify?trigger.condition_state=1 HTTP/1.1\" 200 1985 - - - 3ms",
"_serial": "1",
"_si": [
"splunk",
"_internal"
],
"_sourcetype": "splunkd_access",
"_subsecond": ".172",
"_time": "2021-02-02T04:01:58.172+02:00"
},
{
"app": "SA-EndpointProtection",
"_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
"_cd": "425:9087653",
"_indextime": "1612231318",
"_kv": "1",
"_raw": "02-02-2021 04:01:57.804 +0200 INFO SavedSplunker - savedsearch_id=\"nobody;SA-EndpointProtection;Endpoint - Should Timesync Host Not Syncing - Rule\", search_type=\"\", user=\"admin\", app=\"SA-EndpointProtection\", savedsearch_name=\"Endpoint - Should Timesync Host Not Syncing - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=300, dispatch_time=1612179970, run_time=51347.420, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtRW5kcG9pbnRQcm90ZWN0aW9u__RMD5ef3c08822811b7cd_at_1612179932_62.25751\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
"_serial": "2",
"_si": [
"splunk",
"_internal"
],
"_sourcetype": "scheduler",
"_subsecond": ".804",
"_time": "2021-02-02T04:01:57.804+02:00"
}]
案例墙
| 结果类型 | 值 / 说明 | 类型 |
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果成功且有结果可用:“Successfully returned events for the following hosts in Splunk: \n {0}".format(entity.identifier) 如果成功,但某些结果不可用:“在 Splunk 中未找到以下主机的任何事件:\n {0}”。format(entity.identifier) 如果成功,但并非所有结果都可用:“在 Splunk 中未找到所提供主机对应的任何事件” 操作应失败并停止 playbook 执行: 如果出现致命错误(例如凭据错误、无法连接到服务器、其他错误):“执行操作‘获取主机事件’时出错。原因:{0}''.format(error.Stacktrace) 如果为 400:“执行操作‘获取主机事件’时出错。原因:{0}''.format(messages/text) |
常规 |
| “案例墙”表格 | 名称:{Entity.identifier} 事件 列:基于结果。 |
Ping
使用 Google Security Operations Marketplace 标签页中的集成配置页面上提供的参数测试与 Splunk 的连接。
参数
不适用
Run On
此操作不会在实体上运行,也没有强制性输入参数。
操作执行结果
脚本结果
| 脚本结果名称 | 值选项 | 示例 |
|---|---|---|
| is_success | True/False | is_success:False |
案例墙
| 结果类型 | 值 / 说明 | 类型 |
|---|---|---|
| 输出消息* | 该操作不应失败,也不应停止 playbook 执行: 操作应失败并停止 playbook 执行: |
常规 |
Splunk CSV 查看器
参数
| 参数 | 类型 | 默认值 | 为必填项 | 说明 |
|---|---|---|---|---|
| 结果 | 字符串 | 不适用 | 是 | 原始结果。 |
Run On
此操作会在所有实体上运行。
操作执行结果
脚本结果
| 脚本结果名称 | 值选项 | 示例 |
|---|---|---|
| is_succeed | True/False | is_succeed:False |
SplunkQuery
在 Splunk 中执行查询。
参数
| 参数显示名称 | 类型 | 默认值 | 为必填项 | 说明 |
|---|---|---|---|---|
| 搜索模式 | DDL | 智能 可能的值:
|
否 | 指定执行搜索的模式。 |
| 查询 | 字符串 | 是 | 指定需要执行的查询。示例:index="_internal" | |
| 结果数量上限 | 整数 | 100 | 否 | 指定要返回的结果数。 |
| 以下来源的结果 | 字符串 | -24 小时 | 否 | 指定查询的开始时间。默认值:-24h |
| 结果 | 字符串 | 现在 | 否 | 指定查询的结束时间。默认值:now。 |
| 结果字段 | CSV | 否 | 指定需要返回的字段的英文逗号分隔列表。 |
Run On
此操作不会在实体上运行。
操作执行结果
脚本结果
| 脚本结果名称 | 值选项 | 示例 |
|---|---|---|
| is_succeed | True/False | is_succeed:False |
JSON 结果
[{
"app": "SA-AccessProtection",
"_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
"_cd": "425:9087674",
"_indextime": "1612231318",
"_kv": "1",
"_raw": "02-02-2021 04:01:58.404 +0200 INFO SavedSplunker - savedsearch_id=\"nobody;SA-AccessProtection;Access - Default Account Usage - Rule\", search_type=\"\", user=\"admin\", app=\"SA-AccessProtection\", savedsearch_name=\"Access - Default Account Usage - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=0, dispatch_time=1612179969, run_time=51348.242, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtQWNjZXNzUHJvdGVjdGlvbg__RMD509c859ea7b9951b8_at_1612179932_61.40533\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
"_serial": "0",
"_si": [
"splunk",
"_internal"
],
"_sourcetype": "scheduler",
"_subsecond": ".404",
"_time": "2021-02-02T04:01:58.404+02:00"
},
{
"_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
"_cd": "425:9087731",
"_indextime": "1612231318",
"_kv": "1",
"_raw": "127.0.0.1 - admin [02/Feb/2021:04:01:58.172 +0200] \"POST /servicesNS/nobody/SA-AccessProtection/saved/searches/Access%20-%20Default%20Account%20Usage%20-%20Rule/notify?trigger.condition_state=1 HTTP/1.1\" 200 1985 - - - 3ms",
"_serial": "1",
"_si": [
"splunk",
"_internal"
],
"_sourcetype": "splunkd_access",
"_subsecond": ".172",
"_time": "2021-02-02T04:01:58.172+02:00"
},
{
"app": "SA-EndpointProtection",
"_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
"_cd": "425:9087653",
"_indextime": "1612231318",
"_kv": "1",
"_raw": "02-02-2021 04:01:57.804 +0200 INFO SavedSplunker - savedsearch_id=\"nobody;SA-EndpointProtection;Endpoint - Should Timesync Host Not Syncing - Rule\", search_type=\"\", user=\"admin\", app=\"SA-EndpointProtection\", savedsearch_name=\"Endpoint - Should Timesync Host Not Syncing - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=300, dispatch_time=1612179970, run_time=51347.420, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtRW5kcG9pbnRQcm90ZWN0aW9u__RMD5ef3c08822811b7cd_at_1612179932_62.25751\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
"_serial": "2",
"_si": [
"splunk",
"_internal"
],
"_sourcetype": "scheduler",
"_subsecond": ".804",
"_time": "2021-02-02T04:01:57.804+02:00"
}]
案例墙
| 结果类型 | 值/说明 | 类型 |
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果成功且有结果:“已成功返回 Splunk 中针对查询‘{0}’的结果”。format(query) 如果成功但没有结果:“在 Splunk 中未找到与查询‘{0}’相符的结果”。format(query) 异步消息:“正在等待查询 {0} 完成执行。”。format(query name) 操作应失败并停止 playbook 执行: 如果出现严重错误,例如凭据错误、无法连接到服务器、其他错误:“Error executing action "SplunkQuery". 原因:{0}''.format(error.Stacktrace) 如果为 400:“执行操作 "SplunkQuery" 时出错。原因:{0}''.format(messages/text) |
常规 |
| “案例墙”表格 | 名称:Splunk 查询结果 列 - 根据结果。 |
常规 |
提交活动
向 Splunk 提交事件。
参数
| 参数显示名称 | 类型 | 默认值 | 为必填项 | 说明 |
|---|---|---|---|---|
| 索引 | 字符串 | main | 是 | 指定应创建事件的索引。 |
| 事件 | 字符串 | 不适用 | 是 | 指定需要提交的原始事件。 |
| 主机 | 字符串 | 不适用 | 否 | 指定与活动相关的主机。 |
| 来源 | 字符串 | 不适用 | 否 | 指定事件的来源。示例:www. |
| Sourcetype | 字符串 | 不适用 | 否 | 指定事件的来源类型。示例:web_event |
Run On
此操作不会在实体上运行。
操作执行结果
脚本结果
| 脚本结果名称 | 值选项 | 示例 |
|---|---|---|
| 成功 | True/False | success:False |
JSON 结果
{
"index": "default",
"bytes": 70,
"host": "dogo",
"source": "www",
"sourcetype": "web_event"
}
案例墙
| 结果类型 | 值/说明 | 类型 |
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果成功:“已成功向 Splunk 中的索引‘{0}’添加新事件。”format(index) 操作应失败并停止 playbook 执行: 如果出现致命错误,例如凭据错误、无法连接到服务器等:“执行操作‘提交事件’时出错。原因:{0}''.format(error.Stacktrace) 如果为 400:“执行操作‘提交事件’时出错。原因:{0}''.format(messages/text) |
常规 |
更新了“重要活动”
更新 Splunk ES 中的重要事件。
参数
| 参数显示名称 | 类型 | 默认值 | 为必填项 | 说明 |
|---|---|---|---|---|
| 重要事件 ID | CSV | 不适用 | 是 | 指定重要活动的 ID。示例:1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7@@notable@@cb87390ae72763679d3f6f8f097ebe2b,1D234D5B-1531-2D2B-BB94-41C439BE12B7@@notable@@cb87390ae72763679d3f6f8f097ebe2b |
| 状态 | DDL | 选择一项 可能的值: 选择一项 未分配 新 进行中 待处理 已解决 已关闭 |
是 | 为重要活动指定新状态。 |
| 紧急情况 | DDL | 选择一项 可能的值: 选择一项 严重 高 中 低 参考信息 |
是 | 为值得注意的事件指定新的紧急程度。 |
| 新所有者 | 字符串 | 不适用 | 是 | 指定重要活动的新所有者。 |
| 评论 | 字符串 | 不适用 | 是 | 为重要活动指定注释。 |
Run On
此操作不会在实体上运行。
操作执行结果
脚本结果
| 脚本结果名称 | 值选项 | 示例 |
|---|---|---|
| is_success | True/False | is_success:False |
案例墙
| 结果类型 | 值 / 说明 | 类型 |
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果成功且有数据可用 (is_success=true) print "Successfully updated {0} notable events in Splunk.".format(count(notable_events)) 如果更新失败(status_code=400,is_success=false): print "操作无法更新重要活动。Reason:{0}".format(string_from_response) 操作应失败并停止 playbook 执行: 如果出现致命错误(例如凭据错误、无法连接到服务器、其他错误): print "Error executing action "Update Notable Events". 原因:{0}''.format(error.Stacktrace) |
常规 |
执行实体查询
在 Splunk 中执行实体查询。
如何使用操作参数?
此操作可让您轻松检索与实体相关的信息。例如,您可以解决以下使用情形:您想查看受所提供哈希影响的端点的事件数量,而无需构建任何复杂的查询。为了在 Splunk 中解决此问题,您需要准备以下查询:index="main" | where
(device_ip="10.0.0.1" or device_ip="10.12.12.12") and (hash="bad_hash_1" or
hash="bad_hash_2") 为了使用“执行实体查询”操作创建相同的查询,您需要按以下方式填写操作参数:
| 查询 | index="main" |
|---|---|
| IP 实体键 | device_ip |
| 文件哈希实体键 | hash |
| 跨实体运算符 | 且 |
所有其他字段均可留空。
如果用例是查看有多少端点受到所提供哈希的影响,那么“执行实体查询”的配置将如下所示。
| 查询 | index="main" |
|---|---|
| 文件哈希实体键 | hash |
在这种情况下,“跨实体运算符”不会产生影响,因为它仅在提供多个“实体键”时才会影响查询。
参数
| 参数显示名称 | 类型 | 默认值 | 为必填项 | 说明 |
|---|---|---|---|---|
| 搜索模式 | DDL | 智能 可能的值:
|
否 | 指定执行搜索的模式。 |
| 查询 | 字符串 | 是 | 指定需要执行的查询,但不包含“Where”子句。示例:index="_internal" | |
| 结果数量上限 | 整数 | 100 | 否 | 指定要返回的结果数。注意:此参数会将“head”关键字附加到提供的查询中。默认值为 100。 |
| 以下来源的结果 | 字符串 | -24 小时 | 否 | 指定查询的开始时间。默认值:-24h |
| 结果 | 字符串 | 现在 | 否 | 指定查询的结束时间。默认值:now。 |
| 结果字段 | CSV | 不适用 | 否 | 指定需要返回的字段的英文逗号分隔列表。 |
| IP 实体键 | 字符串 | 不适用 | 否 | 指定应将哪个键与 IP 实体搭配使用。如需了解详情,请参阅操作文档。 |
| 主机名实体键 | 字符串 | 不适用 | 否 | 指定在准备时,应将哪个键与主机名实体搭配使用。如需了解详情,请参阅操作文档。 |
| 文件哈希实体键 | 字符串 | 不适用 | 否 | 指定应将哪个键与文件哈希实体搭配使用。如需了解详情,请参阅操作文档。 |
| 用户实体键 | 字符串 | 不适用 | 否 | 指定应与 User 实体搭配使用的键。如需了解详情,请参阅操作文档。 |
| 网址实体键 | 字符串 | 不适用 | 否 | 指定应将哪个键与网址实体搭配使用。如需了解详情,请参阅操作文档。 |
| 电子邮件地址实体键 | 字符串 | 不适用 | 否 | 指定应与电子邮件地址实体搭配使用的密钥。如需了解详情,请参阅操作文档。 |
| 如果实体数量不足,则停止 | 复选框 | 勾选 | 是 | 如果启用,除非所有实体类型都可用于指定的“.. 实体键”,否则操作不会开始执行。示例:如果指定了“IP 实体键”和“文件哈希实体键”,但在范围内没有文件哈希,则如果启用此参数,操作将不会执行查询。 |
| 跨实体运算符 | DDL | 或 可能的值: 或 且 |
是 | 指定不同实体类型之间应使用的逻辑运算符。 |
Run On
此操作适用于以下实体:
- IP 地址
- 主机
- 用户
- 哈希
- 网址
操作执行结果
脚本结果
| 脚本结果名称 | 值选项 | 示例 |
|---|---|---|
| is_succeed | True/False | is_succeed:False |
JSON 结果
[{
"app": "SA-AccessProtection",
"_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
"_cd": "425:9087674",
"_indextime": "1612231318",
"_kv": "1",
"_raw": "02-02-2021 04:01:58.404 +0200 INFO SavedSplunker - savedsearch_id=\"nobody;SA-AccessProtection;Access - Default Account Usage - Rule\", search_type=\"\", user=\"admin\", app=\"SA-AccessProtection\", savedsearch_name=\"Access - Default Account Usage - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=0, dispatch_time=1612179969, run_time=51348.242, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtQWNjZXNzUHJvdGVjdGlvbg__RMD509c859ea7b9951b8_at_1612179932_61.40533\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
"_serial": "0",
"_si": [
"splunk",
"_internal"
],
"_sourcetype": "scheduler",
"_subsecond": ".404",
"_time": "2021-02-02T04:01:58.404+02:00"
},
{
"_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
"_cd": "425:9087731",
"_indextime": "1612231318",
"_kv": "1",
"_raw": "127.0.0.1 - admin [02/Feb/2021:04:01:58.172 +0200] \"POST /servicesNS/nobody/SA-AccessProtection/saved/searches/Access%20-%20Default%20Account%20Usage%20-%20Rule/notify?trigger.condition_state=1 HTTP/1.1\" 200 1985 - - - 3ms",
"_serial": "1",
"_si": [
"splunk",
"_internal"
],
"_sourcetype": "splunkd_access",
"_subsecond": ".172",
"_time": "2021-02-02T04:01:58.172+02:00"
},
{
"app": "SA-EndpointProtection",
"_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
"_cd": "425:9087653",
"_indextime": "1612231318",
"_kv": "1",
"_raw": "02-02-2021 04:01:57.804 +0200 INFO SavedSplunker - savedsearch_id=\"nobody;SA-EndpointProtection;Endpoint - Should Timesync Host Not Syncing - Rule\", search_type=\"\", user=\"admin\", app=\"SA-EndpointProtection\", savedsearch_name=\"Endpoint - Should Timesync Host Not Syncing - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=300, dispatch_time=1612179970, run_time=51347.420, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtRW5kcG9pbnRQcm90ZWN0aW9u__RMD5ef3c08822811b7cd_at_1612179932_62.25751\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
"_serial": "2",
"_si": [
"splunk",
"_internal"
],
"_sourcetype": "scheduler",
"_subsecond": ".804",
"_time": "2021-02-02T04:01:57.804+02:00"
}]
案例墙
| 结果类型 | 值/说明 | 类型 |
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果成功且有结果:“已成功返回 Splunk 中针对查询‘{0}’的结果”。format(query) 如果成功但没有结果:“在 Splunk 中未找到与查询‘{0}’相符的结果”。format(query) 异步消息:“正在等待查询 {0} 完成执行。”。format(query name) 如果启用了“Stop If Not Enough Entities”(如果实体不足则停止)且提供的“Entity Keys”(实体键)没有足够的实体类型 (is_success=false):操作无法构建查询,因为为指定的“.. Entity Keys”(实体键)提供的实体类型不足。请停用“Stop If Not Enough Entities”参数,或为每个指定的“.. Entity Key”提供至少一个实体。 操作应失败并停止 playbook 执行: 如果出现致命错误(例如凭据错误、无法连接到服务器、其他错误):“执行操作‘执行实体查询’时出错。原因:{0}''.format(error.Stacktrace) 如果为 400:“执行操作‘执行实体查询’时出错。原因:{0}''.format(messages/text) |
常规 |
| “案例墙”表格 | 名称:Splunk 查询结果 列:基于结果。 |
常规 |
连接器
如需详细了解如何在 Google SecOps 中配置连接器,请参阅注入数据(连接器)。
Splunk 查询连接器
连接器会发送属于动态列表 (whitelist) 的查询,检索结果,并根据检索到的结果构建案例。
用于查看日志的 Splunk 查询示例
查询应以动态列表 (
whitelist) 规则的形式输入。包含多个过滤条件的搜索查询应使用空格作为搜索过滤条件之间的分隔符,例如
index=cim_modactions sourcetype=modular_alerts:risk。使用多个动态列表 (
whitelist) 规则,而不是在同一规则中输入多个以空格分隔的搜索过滤条件,会导致系统针对添加的每个规则执行单独的搜索。index=cim_modactionssourcetype=modular_alerts:send_data_to_siemplifyindex=_internal sourcetype=splunkdcomponent=sendmodalertaction=send_data_to_siemplifyindex=_internal source=/opt/splunk/var/log/splunk/send_data_to_siemplify_modalert.log
连接器参数
如需配置连接器,请使用以下参数:
| 参数 | |
|---|---|
Product Field Name |
必需
输入源字段名称以检索 默认值为 |
Event Field Name |
必需
输入要检索 默认值为 |
API Root |
必需
Splunk 实例的 API 根。 默认值为 |
Username |
必需
Splunk 账号的用户名。 |
Password |
必需
Splunk 账号的密码。 |
API Token |
可选
Splunk API 令牌。 如果此字段有任何值,则 API 令牌的优先级高于其他身份验证方法。 |
Verify SSL |
必需
如果选中,则验证与 CrowdStrike 服务器的连接所用的 SSL 证书是否有效。 默认情况下处于未选中状态。 |
Environment Field Name |
可选
存储环境名称的字段的名称。 |
Rule Generator Field |
必需
用于映射规则生成器值的字段的名称。 |
Alert Name Field Name |
必需
提醒名称。 |
Events Count Limit Per Query |
可选 每次查询可提取的事件数量上限。 |
Max Day Backwards |
可选 提取事件的天数。 |
Aggregate Events Query |
可选 如果启用,连接器会将所有事件合并为一个提醒。 默认情况下,该环境处于停用状态。 |
PythonProcessTimeout (Seconds) |
必需 运行当前脚本的 Python 进程的超时时限。 默认值为 60 秒。 |
Proxy Server Address |
可选
要使用的代理服务器的地址。 |
Proxy Username |
可选
用于进行身份验证的代理用户名。 |
Proxy Password |
可选
用于进行身份验证的代理密码。 |
Environment Regex Pattern |
可选
要对 默认值 该参数可让您使用正则表达式逻辑来操纵环境字段。 如果正则表达式模式为 null 或空,或者环境值为 null,则最终环境结果为默认环境。 |
连接器规则
连接器支持代理。
Splunk Pull 连接器
将 Splunk 中的提醒和事件提取到 Google SecOps 中。
连接器参数
如需配置连接器,请使用以下参数:
| 参数 | |
|---|---|
Product Field Name |
必需
输入源字段名称以检索 默认值为 |
Event Field Name |
必需
输入要检索 默认值为 |
Environment Field Name |
可选
存储环境名称的字段的名称。 如果找不到环境字段,则结果环境为 默认值为 |
Environment Regex Pattern |
可选
要对 默认值 该参数可让您使用正则表达式逻辑来操纵环境字段。 如果正则表达式模式为 null 或空,或者环境值为 null,则最终环境结果为 |
PythonProcessTimeout (Seconds) |
必需 运行当前脚本的 Python 进程的超时时限。 默认值为 60 秒。 |
Server Address |
必需
Splunk API 服务器的 IP 地址。 |
Port |
必需
Splunk 实例的端口。 默认值为 |
Username |
必需
Splunk 账号的用户名。 |
Password |
必需
Splunk 账号的密码。 |
Time Frame |
可选
用于提取提醒的时间范围。 默认值为 1 小时。 示例: 如果该值设置为 1 分钟,连接器会从 1 分钟前开始提取提醒。 如果该值设置为 3 小时,连接器会提取从 3 小时前开始的提醒。 如果该值设置为 1 天或 1 周,连接器会分别提取从 1 天(24 小时)或 1 周前开始的提醒。 |
Alerts Count Limit |
可选
连接器每次迭代返回的提醒数量。 默认值为 100。 |
Use SSL |
可选
勾选此框可启用 SSL 或 TLS 连接。 默认情况下处于未选中状态。 |
Proxy Server Address |
可选
要使用的代理服务器的地址。 |
Proxy Username |
可选
用于进行身份验证的代理用户名。 |
Proxy Password |
可选
用于进行身份验证的代理密码。 |
连接器规则
连接器支持代理。
Splunk ES - Notable Events 连接器
从 Splunk ES 提取重要事件。
定义支持请求优先级
案例优先级由显着事件中的 Urgency 参数定义。
将重要事件提取到 Google SecOps 时,系统只会考虑此参数。
连接器参数
如需配置连接器,请使用以下参数:
| 参数 | |
|---|---|
Product Field Name |
必需
输入源字段名称以检索 默认值为 |
Event Field Name |
必需
输入要检索 默认值为 |
Environment Field Name |
可选
存储环境名称的字段的名称。 如果找不到环境字段,则使用默认环境。 默认值为 |
Environment Regex Pattern |
可选
要对 默认值 该参数可让您使用正则表达式逻辑来操纵环境字段。 如果正则表达式模式为 null 或空,或者环境值为 null,则最终环境结果为默认环境。 |
Script Timeout (Seconds) |
必需 运行当前脚本的 Python 进程的超时时限。 默认值为 180 秒。 |
Server Address |
必需
Splunk 实例的服务器地址。 默认值为 |
Username |
可选
Splunk 账号的用户名。 |
Password |
可选
Splunk 账号的密码。 |
API Token |
必需
Splunk API 令牌。 如果此字段包含任何值,则 API 令牌的优先级高于其他身份验证方法。 |
Lowest Urgency To Fetch |
必需
用于提取重要事件的最低紧急程度。 可能的值包括:
默认值为 |
Fetch Max Hours Backwards |
可选
提取重要事件的小时数。 默认值为 1 小时。 |
Only Drilldown Events |
可选
如果启用,连接器会尝试提取下钻事件,而不提取基本事件。此参数要求启用 默认情况下,该环境处于停用状态。 |
Padding Time |
可选
将用作填充的小时数。 如果未提供值,则此参数不适用。 最大值为 12 小时。 |
Max Notable Events To Fetch |
可选
每次连接器迭代要处理的重大事件数量。 默认值为 10。 |
Use whitelist as a blacklist |
必需
如果启用,动态列表将用作屏蔽名单。 默认情况下,该环境处于停用状态。 |
Verify SSL |
必需
如果选中,则验证与 CrowdStrike 服务器的连接所用的 SSL 证书是否有效。 默认情况下处于未选中状态。 |
Proxy Server Address |
可选
要使用的代理服务器的地址。 |
Proxy Username |
可选
用于进行身份验证的代理用户名。 |
Proxy Password |
可选
用于进行身份验证的代理密码。 |
Query Filter |
可选
发送到 Splunk 以获取重要事件的其他查询过滤条件。 此处提供的值会附加到 WHERE 查询子句。 |
Extract Base Events |
可选
如果启用,连接器会使用作业相关信息提取与重要事件相关的基本事件。在其他情况下,连接器会根据值得注意的事件创建 Google SecOps 事件。 如果此参数设置为 默认处于启用状态。 |
Multivalue Fields |
可选
包含多个实体的字段的逗号分隔列表。 例如,如果某个字段包含两个主机名,则显著事件会拆分为两个 Google SecOps 事件,以便正确映射实体。 |
Notable Event Data Along Base Event |
可选
如果启用,连接器除了添加基本事件之外,还会根据重要事件添加 Google SecOps 事件。 默认处于停用状态。 |
Rule Generator Field Name |
可选
用于映射规则生成器值的字段的名称。 仅使用有关重大事件本身的信息进行映射,而忽略其他事件。如果提供的值无效,连接器会将该字段设置为 |
Alert Name Source |
可选
提醒名称的来源。 可能的值包括:
默认值为 |
如何使用 Query Filter 参数
如果需要根据特定参数缩小值得注意的事件范围,请使用 Query Filter 参数。此参数中提供的值会附加到发送的用于获取重要事件的查询的 WHERE 子句中。
发送的查询示例如下:
(`get_notable_index` OR `get_sequenced_index`) | eval `get_event_id_meval`,
rule_id=event_id | tags outputfield=tag | `mvappend_field(tag,orig_tag)` |
`notable_xref_lookup` | `get_correlations` | `get_current_status` | `get_owner`
| `get_urgency` | typer | where (urgency="medium" AND urgency="low") AND
(status_label="Unassigned" OR status_label="New") | tail 50 | fields *
例如,如果值为 Query Filter = isTesting = True,则查询如下所示:
search (`get_notable_index` OR `get_sequenced_index`) | eval epoch=_time | eval
`get_event_id_meval`,rule_id=event_id | tags outputfield=tag |
`mvappend_field(tag,orig_tag)` | `notable_xref_lookup` | `get_correlations` |
`get_current_status` | `get_owner` | `get_urgency` | typer | where
(urgency!="informational" AND urgency!="low" **AND isTesting = "True"**) |
fields *
连接器规则
Splunk ES 连接器使用动态列表和屏蔽名单(whitelist 和 blacklist)。该连接器使用事件中的 search_name 字段与动态列表进行比较。
连接器事件
[{
"indicator": "2012/06/29_21:50",
"tlp": "TLP:RED",
"itype": "mal_url",
"severity": "very-high",
"classification": "public",
"detail": "",
"confidence": 50,
"actor": "",
"feed_name": "import",
"source": "admin",
"feed_site_netloc": "localhost",
"campaign": "",
"type": "url",
"id": "anomali:indicator-578a9be5-0e03-4ec0-940d-4b1842f40fd0",
"date_last": "2020-07-15 08:12:07 AM",
"Url": "indicator"
},{
"indicator": "2010/12/19_16:35",
"tlp": "TLP:RED",
"itype": "mal_url",
"severity": "very-high",
"classification": "public",
"detail": "",
"confidence": 50,
"actor": "",
"feed_name": "import",
"source": "admin",
"feed_site_netloc": "localhost",
"campaign": "",
"type": "url",
"id": "anomali:indicator-52cadd07-330a-45fd-962f-32e22d36a89a",
"date_last": "2020-07-15 08:12:07 AM"
}]
作业
同步 Splunk ES 关闭事件
同步已关闭的 Splunk ES 重要事件和 Google SecOps 提醒。
参数
| 参数显示名称 | 类型 | 默认值 | 为必填项 | 说明 |
|---|---|---|---|---|
| 服务器地址 | 字符串 | https://IP:8089 |
是 | Splunk 实例的服务器地址。 |
| 用户名 | 字符串 | 不适用 | 否 | Splunk 账号的用户名。 |
| 密码 | 密码 | 不适用 | 否 | Splunk 账号的密码。 |
| API 令牌 | 密码 | 不适用 | 是 | Splunk API 令牌。如果此字段不为空,API 令牌的优先级高于其他身份验证方法。 |
| 回溯的小时数上限 | 整数 | 24 | 是 | 指定向后同步状态的小时数。默认值:24 小时。 |
| 验证 SSL | 复选框 | 勾选 | 是 | 如果启用,则验证与 Splunk 服务器的连接的 SSL 证书是否有效。 |
同步 Splunk ES 注释
此作业将同步 Splunk ES 事件和 Google SecOps 支持服务工单中的评论。
参数
| 参数显示名称 | 类型 | 默认值 | 为必填项 | 说明 |
|---|---|---|---|---|
| 服务器地址 | 字符串 | https://IP:8089 |
是 | Splunk 实例的服务器地址。 |
| 用户名 | 字符串 | 不适用 | 否 | Splunk 账号的用户名。 |
| 密码 | 密码 | 不适用 | 否 | Splunk 账号的密码。 |
| API 令牌 | 密码 | 不适用 | 是 | Splunk API 令牌。如果此字段不为空,API 令牌的优先级高于其他身份验证方法。 |
| 验证 SSL | 复选框 | 勾选 | 是 | 如果启用,则验证与 Splunk 服务器的连接的 SSL 证书是否有效。 |
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。