Splunk
集成版本:50.0
Splunk 应用会准备包含 Splunk 中所有相关提醒和事件的支持请求。您可以通过两种方式将这些支持请求注入 Google Security Operations:基于拉取的方法和基于推送的方法。
第一种方法称为“基于拉取”的方法。使用此方法将支持请求注入到 Google SecOps 中时,您需要配置 Splunk Pull Connector,该连接器会从 Splunk 应用中注入支持请求。此方法不需要在 Splunk 应用中进行任何其他配置。
第二种方法称为“基于推送”。使用此方法时,Splunk 应用会向 Google SecOps 执行 API 调用,以添加新支持请求。如需使用此方法,您需要生成 Google SecOps API 密钥,并在应用配置中添加 Google SecOps URI。
创建 API 密钥:
依次前往设置 > 高级 > API。
点击右上角的加号以添加新的 API 密钥。
输入 API 密钥的名称,然后点击创建。
复制 API 密钥。
如何配置 Splunk 以与 Google SecOps 搭配使用
启用或停用令牌身份验证的先决条件
在启用令牌身份验证之前,您必须满足以下要求:
您要启用令牌身份验证的 Splunk 平台实例不得在旧版模式下运行,在该模式下,Splunk Web 作为单独的进程运行。如果 Splunk 平台处于旧版模式,则不会运行令牌身份验证。如需详细了解旧版模式,请参阅 Splunk 企业版管理员手册中的启动和停止 Splunk 企业版文档。
您用于登录 Splunk 平台的账号必须拥有具有 edit_tokens_settings Splunk 平台功能的角色,然后才能开启或关闭令牌身份验证。
使用 Splunk Web 启用令牌身份验证
当令牌身份验证处于关闭状态时,Splunk Web 中的令牌页面上会显示以下消息:
Token authentication is currently disabled > To enable token authentication, click Enable Token Authentication.
在要启用令牌身份验证的实例上完成以下步骤:
以管理员用户或可以管理令牌设置的用户身份登录 Splunk 平台实例。您无法使用令牌登录 Splunk Web。您必须提供有效的用户名和密码。
成功登录后,在系统栏中依次选择设置 > 令牌。
点击 Enable Token Authentication。Splunk 平台实例会立即启用令牌身份验证,无需重启实例。
使用 Splunk Web 创建身份验证令牌
在系统栏中,依次点击设置 > 令牌。
点击新建令牌。
在新令牌对话框中,在用户字段中输入要为其创建令牌的 Splunk 平台用户。
在受众群体字段中输入令牌用途的简短说明。
(可选)在到期时间列表中,选择绝对时间或相对时间。此选择决定了要在列表下方的文本字段中输入的内容。
如果您选择了绝对时间,则列表下方会显示两个文本字段。
在第一个字段中输入有效日期。您还可以点击相应字段,从弹出式日历中选择日期。
在第二个字段中输入有效的 24 小时制时间。
否则,下拉列表下方会显示一个文本字段。
- 输入一个字符串,表示您希望令牌在当前时间之后保持有效的时长。例如,如果您希望令牌在 10 天后过期,请在此字段中输入
+10d
。
- 输入一个字符串,表示您希望令牌在当前时间之后保持有效的时长。例如,如果您希望令牌在 10 天后过期,请在此字段中输入
(可选)在不早于列表中,选择绝对时间或相对时间。
重复您为“过期”控制变量执行的步骤。“生效时间”不得早于当前时间,也不得晚于“失效时间”。
点击创建。新令牌窗口会更新令牌字段,以显示已生成的令牌。
选择字段中的所有令牌文本。根据您的操作系统和浏览器,您可以点击 Token 字段,然后三击或在键盘上按 Ctrl-A 或 Command-A。确认您已选择所有令牌文本。关闭此窗口后,您将无法再查看完整令牌。
复制 Token 字段中的文本。
将令牌粘贴到文本文件、电子邮件或其他通信方式中,然后发送给您已授权使用该令牌的人员。确认您仅与已获得授权可以使用该令牌的人员分享令牌。拥有完整令牌的任何人都可以使用该令牌进行身份验证。
点击关闭。
使用令牌配置 Google SecOps Splunk 集成。
安装
单个搜索头
将 TA-Siemplify 软件包下载到本地计算机。 https://splunkbase.splunk.com/app/5010/
在搜索头戴设备上安装应用。
选择应用:搜索和报告。系统会显示上传应用对话框。
点击选择文件,然后选择应用文件。
点击上传。等待文件上传完毕。
重启 Splunk。
配置 TA-Siemplify
在 Splunk Enterprise 中,前往应用页面。
选择 Siemplify。
在插件设置标签页中,添加以下内容:
对于基于推送的方法:
- 将 Siemplify API URI 设置为 Google SecOps 服务器的 URI。
- 将模式设置为推送模式。
- 在 API Key 字段中,输入在“API Keys”部分中生成的令牌值。
对于基于拉取的方法:
- 将模式设置为拉取模式。
点击保存。
提醒配置
如需将提醒和事件数据发送到 Google SecOps,必须向现有的 Splunk 提醒添加触发操作。
“环境”“设备供应商”“设备产品”和“事件类型”字段支持事件模板。借助事件模板,可以根据提醒中的值动态设置 Google SecOps 中的特定字段。如需使用事件模板,请用方括号“[]”将字段名称括起来。系统将使用提醒中的第一个事件来填充这些字段。
示例:如果您收到的某条提醒包含一个值为 Microsoft
的字段 device_vendor,则可以在“设备供应商”配置参数中添加 [device_vendor],这样当提醒发送到 Google SecOps 时,供应商将设置为 Microsoft
。
在 Splunk 中,前往提醒。
在修改列表中,选择修改提醒。
在触发操作部分,依次前往添加操作 > 向 Siemplify 发送提醒。
按如下方式配置提醒:
- 名称:此处设置的值会影响提醒的名称。
- 优先级:此处设置的值会影响 Google SecOps 支持请求的优先级。
- 类别:用于定义视觉系列。
- 环境:映射到 Google SecOps 中的环境。 留空表示没有环境。支持使用方括号进行模板化。
- 设备供应商:用于定义将事件发送到 Google SecOps 的系统的供应商。如果提醒是由 Microsoft Sysmon 生成的,请使用 Microsoft 或通过模板化使用提醒/事件中的值。
- 设备产品:用于定义将事件发送到 Google SecOps 的系统的产品。如果提醒是由 Microsoft Sysmon 生成的,则此值应为 Sysmon 或使用模板从提醒/事件中的值获取。
- 事件类型:用于在“Google SecOps 事件配置”部分中定义事件类型。如果提醒是查找恶意进程,则事件类型应为“发现进程”之类的类型,或者通过模板化从提醒/事件中的值获取。
- 时间字段:用于定义 Google SecOps 支持请求的开始时间和结束时间。如果未提供此参数,系统将检查“_indextime”字段。如果无法找到“_indextime”,系统将使用生成提醒的时间。不支持模板化。
- 展开多值字段:如果将此属性设置为 1,系统将查找所有多值字段,并创建其他字段来映射多值字段中的每个值。例如,如果多值字段 src_hosts 包含以下值:Server1、Server2、Server3。系统将创建以下新字段:src_hosts_0:Server1、src_hosts_1:Server2、src_hosts_2:Server3。仅在停用“提取所有事件数据”时支持此选项。
- 提取所有事件数据:此设置会尝试提取构成包含转换命令(chart、timechart、stats、top、rare、contingency、highlight)的提醒的原始事件。为了支持此功能,需要对 Splunk 搜索头进行更改。
如需启用来自转化搜索的原始事件,请复制:
$SPLUNK_HOME/etc/apps/TA-siemplify/default/savedsearches.conf
到$SPLUNK_HOME/etc/apps/TA-siemplify/local/savedsearches.conf
编辑:$SPLUNK_HOME/etc/apps/TA-siemplify/local/savedsearches.conf
取消注释:#dispatch.buckets =1
保存文件并重启 Splunk,让这些设置生效。
问题排查
如需将日志级别更改为 DEBUG
,请完成以下步骤:
在 Splunk Web 中,选择您的应用。
依次前往设置 > 服务器设置 > 服务器日志记录。
对于日志级别参数,请选择 DEBUG。
点击保存。
从 Google SecOps TA 查询日志数据将取决于您的 Splunk 实现。如果您已安装 Splunk CIM,日志将位于 cim_modactions
索引中。否则,日志将位于 _internal
索引中。
网络
从 Google SecOps 到 Splunk 的 Splunk API 网络访问权限:允许通过端口 8089 传输流量。
如何在集群环境中部署 Google SecOps 加购项
如需创建部署服务器和搜索头,请完成以下步骤:
使用 SSH 登录部署服务器。
确保
/opt/splunk/etc/system/local/serverclass.conf
文件存在。 如果没有,请执行以下命令:vi /opt/splunk/etc/system/local/serverclass.conf
配置示例如下:
[global] # whitelist matches all clients. [serverClass:AllApps] [serverClass:AllApps:app:*] [serverClass: Google Security OperationsAPP]
上传并提取
/opt/splunk/etc/deployment-apps
目录中的应用文件。创建 Splunk 用户(如果不存在):
useradd splunk
创建 Splunk 群组(如果不存在):
groupadd splunk
为应用添加 Splunk 用户权限:
chown splunk:splunk {app path}
使用 SSH 登录搜索头。
将搜索头添加为部署服务器的客户端:
/opt/splunk/bin/splunk set deploy-poll IP_ADDRESS:8089 #(deployment server ip address)
重启所有搜索头。
登录部署服务器的界面。
依次前往设置 > 分布式环境 > Forwarder Manager。
前往服务器类标签页,然后点击新建服务器类。
为服务器类提供名称。
将 Google SecOps 插件添加为应用,并将搜索头添加为客户端。
重新启动所有搜索头。
确保在所有搜索头上正确配置应用。Splunk 无法在整个集群中一致地同步应用。
已知问题
如果您在日志中收到 int() argument must be a string, a bytes-like object or a
number, not 'NoneType'. Please double check spelling and also verify that a
compatible version of Splunk_SA_CIM is installed
错误,请确保配置中的 API 根和 API 密钥参数具有值,即使您使用的是拉取模式也是如此。
在 Google SecOps 中配置 Splunk 集成
借助 Splunk 集成,您可以使用 CA 证书文件验证连接。这是一种额外的连接验证方法。
如需使用此方法,您需要满足以下条件:*
- CA 证书文件
- Splunk 集成版本 26.0 或更高版本
在 Google SecOps 中配置集成:
将您的 CA 证书文件解析为 Base64 字符串。
打开集成配置页面。
在 CA Certificate File(CA 证书文件)字段中,输入 CA 证书字符串。
如需测试连接,请选中验证 SSL 复选框,然后点击测试。
有关如何在 Google SecOps 中配置集成的详细说明,请参阅配置集成。
集成参数
使用以下参数配置集成:
参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 |
---|---|---|---|---|
实例名称 | 字符串 | 不适用 | 否 | 您打算为其配置集成的实例的名称。 |
说明 | 字符串 | 不适用 | 否 | 实例的说明。 |
服务器地址 | 字符串 | {SCHEMA}://{IP}:{PORT} | 是 | Splunk 服务器的地址。 |
用户名 | 字符串 | 不适用 | 否 | 应使用哪个用户的电子邮件地址来连接到 Splunk。 |
密码 | 密码 | 不适用 | 否 | 相应用户的密码。 |
API 令牌 | 密码 | 不适用 | 否 | Splunk API 令牌。如果此字段不为空,API 令牌的优先级高于其他身份验证方法。 |
验证 SSL | 复选框 | 尚未核查 | 否 | 如果您的 Splunk 连接需要 SSL 验证,请选中此复选框(默认情况下处于未选中状态)。 |
CA 证书文件 | 字符串 | 不适用 | 否 | Base64 编码的 CA 证书文件。 |
远程运行 | 复选框 | 尚未核查 | 否 | 选中此字段,以便远程运行配置的集成。选中后,系统会显示用于选择远程用户(客服人员)的选项。 |
操作
获取主机事件
说明
在 Splunk 中获取与主机相关的事件。
参数
参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 |
---|---|---|---|---|
每个主机上的活动数量限制 | 整数 | 100 | 是 | 指定每个主机返回的事件数量。 |
结果来自 | 字符串 | -24 小时 | 是 | 指定活动的开始时间。 |
结果 | 字符串 | 现在 | 是 | 指定活动的结束时间。 |
结果字段 | CSV | 不适用 | 否 | 指定需要返回的字段的英文逗号分隔列表。 |
索引 | 字符串 | 不适用 | 否 | 指定在搜索与主机相关的事件时应使用哪个索引。如果未提供任何内容,操作将不使用索引。 |
主机密钥 | 字符串 | 主机 | 否 | 指定应使用哪个键来获取有关主机事件的信息。默认值:host。 |
运行于
此操作在 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) 如果成功,但某些结果不可用:“No events were found for the following hosts in Splunk:\n {0}".format(entity.identifier) 如果成功,但并非所有结果都可用:“未在 Splunk 中找到所提供主机的任何事件” 操作应失败并停止 playbook 执行: 如果出现致命错误,例如凭据错误、无法连接到服务器等:“Error executing action "Get Host Events"”(执行“获取主机事件”操作时出错)。原因:{0}''.format(error.Stacktrace) 如果为 400:“执行操作‘获取主机事件’时出错。原因:{0}''.format(messages/text) |
常规 |
“案例墙”表格 | 名称:{Entity.identifier} 事件 列:基于结果。 |
Ping
说明
使用 Google Security Operations Marketplace 标签页中集成配置页面上提供的参数测试与 Splunk 的连接。
参数
不适用
运行于
此操作不会在实体上运行,也没有强制性输入参数。
操作执行结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
is_success | True/False | is_success:False |
案例墙
结果类型 | 值 / 说明 | 类型 |
---|---|---|
输出消息* | 该操作不应失败,也不应停止 playbook 执行: 操作应失败并停止 playbook 执行: |
常规 |
Splunk CSV 查看器
说明
参数
参数 | 类型 | 默认值 | 是否为必需属性 | 说明 |
---|---|---|---|---|
结果 | 字符串 | 不适用 | 是 | 原始结果。 |
运行于
此操作会在所有实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
is_succeed | True/False | is_succeed:False |
SplunkQuery
说明
在 Splunk 中执行查询。
参数
参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 |
---|---|---|---|---|
搜索模式 | DDL | 智能 可能的值:
|
否 | 指定执行搜索的模式。 |
查询 | 字符串 | 是 | 指定需要执行的查询。示例:index="_internal" | |
结果数量上限 | 整数 | 100 | 否 | 指定要返回的结果数。 |
以下来源的结果: | 字符串 | -24 小时 | 否 | 指定查询的开始时间。默认值:-24h |
结果 | 字符串 | 现在 | 否 | 指定查询的结束时间。默认值:now。 |
结果字段 | CSV | 否 | 指定需要返回的字段的英文逗号分隔列表。 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
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 执行: 如果成功且有结果:“Successfully returned results for the query "{0}" in Splunk”.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 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
成功 | 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 | 选择一项 可能的值: 选择一项 严重 高 中 低 信息 |
是 | 为重要事件指定新的紧急程度。 |
新所有者 | 字符串 | 不适用 | 是 | 指定重要活动的新所有者。 |
评论 | 字符串 | 不适用 | 是 | 为重要活动指定注释。 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
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 |
文件哈希实体键 | 哈希 |
跨实体运算符 | 且 |
所有其他字段均可留空。
如果用例是查看有多少端点受到所提供哈希的影响,那么“执行实体查询”的配置将如下所示。
查询 | index="main" |
---|---|
文件哈希实体键 | 哈希 |
在这种情况下,“跨实体运算符”不会产生影响,因为它仅在提供多个“实体键”时影响查询。
参数
参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 |
---|---|---|---|---|
搜索模式 | DDL | 智能 可能的值:
|
否 | 指定执行搜索的模式。 |
查询 | 字符串 | 是 | 指定需要执行的查询(不含“Where”子句)。示例:index="_internal" | |
结果数量上限 | 整数 | 100 | 否 | 指定要返回的结果数。注意:此参数会将“head”关键字附加到提供的查询中。默认值为 100。 |
以下来源的结果: | 字符串 | -24 小时 | 否 | 指定查询的开始时间。默认值:-24h |
结果 | 字符串 | 现在 | 否 | 指定查询的结束时间。默认值:now。 |
结果字段 | CSV | 不适用 | 否 | 指定需要返回的字段的英文逗号分隔列表。 |
IP 实体键 | 字符串 | 不适用 | 否 | 指定应将哪个键与 IP 实体搭配使用。如需了解详情,请参阅操作文档。 |
主机名实体键 | 字符串 | 不适用 | 否 | 在准备时,指定应将哪个键与 Hostname 实体搭配使用。如需了解详情,请参阅操作文档。 |
文件哈希实体键 | 字符串 | 不适用 | 否 | 指定应将哪个键与文件哈希实体搭配使用。如需了解详情,请参阅操作文档。 |
用户实体键 | 字符串 | 不适用 | 否 | 指定应与 User 实体搭配使用的键。如需了解详情,请参阅操作文档。 |
网址实体键 | 字符串 | 不适用 | 否 | 指定应将哪个键与网址实体搭配使用。如需了解详情,请参阅操作文档。 |
电子邮件地址实体键 | 字符串 | 不适用 | 否 | 指定应与电子邮件地址实体搭配使用的密钥。如需了解详情,请参阅操作文档。 |
如果实体数量不足,则停止 | 复选框 | 勾选 | 是 | 如果启用,除非所有实体类型都可用于指定的“.. 实体键”,否则操作不会开始执行。示例:如果指定了“IP 实体键”和“文件哈希实体键”,但在范围内没有文件哈希,则如果启用此参数,操作将不会执行查询。 |
跨实体运算符 | DDL | 或 可能的值: 或 且 |
是 | 指定不同实体类型之间应使用的逻辑运算符。 |
运行于
此操作适用于以下实体:
- 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 执行: 如果成功且有结果:“Successfully returned results for the query "{0}" in Splunk”.format(query) 如果成功但没有结果:“在 Splunk 中未找到与查询‘{0}’相符的结果”。format(query) 异步消息:“正在等待查询 {0} 完成执行。”。format(query name) 如果启用了“Stop If Not Enough Entities”(如果实体不足则停止)且提供的“Entity Keys”(实体键)没有足够的实体类型(is_success=false):操作无法构建查询,因为为指定的“.. Entity Keys”(实体键)提供的实体类型不足。请停用“实体不足时停止”参数,或为每个指定的“.. 实体键”提供至少一个实体。 操作应失败并停止 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_modactions
sourcetype=modular_alerts:send_data_to_siemplify
index=_internal sourcetype=splunkd
component=sendmodalert
action=send_data_to_siemplify
index=_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 专业人士那里获得解答。