将 OpenSearch 与 Google SecOps 集成
集成版本:1.0
本文档介绍了如何将 OpenSearch 与 Google Security Operations 集成。
使用场景
OpenSearch 集成可满足以下安全编排和调查使用情形:
自动威胁搜寻:使用 Lucene 和 DSL 查询定期在所有 OpenSearch 索引中搜索特定的失陷指标 (IoC) 或可疑模式。
集中式提醒提取:将 OpenSearch 中的文档作为可据以采取行动的提醒提取到 Google SecOps 中,确保数据湖中的安全事件得到优先处理和调查。
情境数据检索:通过自动从 OpenSearch 中提取相关日志或历史数据来丰富现有安全事件,以便分析师在调查期间获得更深入的情境信息。
灵活的数据映射:动态将 OpenSearch 文档中的严重程度和环境标记映射到 Google SecOps 标准,以确保不同日志来源之间的一致性。
准备工作
在 Google SecOps 平台中配置集成之前,请验证您是否具备以下条件:
CA 证书文件:用于保护连接的有效证书授权机构文件。
最新集成版本:确保您使用的是最新版本的 OpenSearch 集成。
Base64 编码的证书:在配置之前,必须将 CA 证书文件的内容转换为 Base64 字符串。
如需配置与 CA 证书的集成,请完成以下步骤:
- 打开集成配置参数页面。
- 将 Base64 编码的字符串粘贴到 CA 证书文件字段中。
- 选中验证 SSL 复选框。
- 点击测试以验证集成是否已成功配置。
集成参数
OpenSearch 集成需要以下参数:
| 参数 | 说明 |
|---|---|
Server Address |
必填。 OpenSearch 实例的端点网址,包括协议和端口(例如 |
Username |
可选。 用于向 OpenSearch 实例进行身份验证的用户名。 |
Password |
可选。 与指定用户名关联的密码。 |
API Token |
可选。 用于身份验证的 API 令牌,可替代用户名和密码。 |
Authenticate |
可选。 如果选择此项,集成会使用提供的凭据对与 OpenSearch 服务器的连接进行身份验证。 |
Verify SSL |
可选。 如果选择此项,集成会在连接到 OpenSearch 服务器时验证 SSL 证书。 |
CA Certificate File |
可选。 证书授权机构 (CA) 证书文件的内容(采用 PEM 格式),用于验证服务器的 SSL 证书。 |
如需了解如何在 Google SecOps 中配置集成,请参阅配置集成。
如果需要,您可以在稍后阶段进行更改。配置集成实例后,您可以在剧本中使用该实例。如需详细了解如何配置和支持多个实例,请参阅支持多个实例。
操作
如需详细了解操作,请参阅 在工作台页面中处理待处理的操作和执行手动操作。
高级 ES 搜索
使用 Advanced ES Search 操作可在 OpenSearch 服务器上执行预配置的搜索查询,并以字典格式检索结果。
此操作不适用于 Google SecOps 实体。
操作输入
高级 ES 搜索操作需要以下参数:
| 参数 | 说明 |
|---|---|
Index |
可选。 OpenSearch 索引的搜索模式(例如 默认值为 |
Query |
可选。 要使用 Lucene 语法执行的搜索查询(例如, 默认值为 |
Limit |
可选。 要返回的文档数量上限。将此值设置为 默认值为 |
Display Field |
可选。 以英文逗号分隔的要返回的特定字段的列表。 默认值为 |
Search Field |
可选。 当 默认值为 |
Timestamp Field |
可选。 用于基于时间的过滤的字段的名称。 如果 默认值为 |
Oldest Date |
可选。 搜索的开始日期。该操作会返回在此时间戳当天或之后发生的记录。 您可以提供确切的 UTC 时间戳 ( 默认值为 |
Earliest Date |
可选。 搜索的结束日期。该操作会返回在此时间戳当天或之前发生的记录。 您可以提供确切的 UTC 时间戳 ( 默认值为 |
操作输出
高级 ES 搜索操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| “支持请求墙”表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 不可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
脚本结果
下表列出了使用高级 ES 搜索操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
results |
RESULTS |
DSL 搜索
使用 DSL Search 操作可在所有 OpenSearch 索引中执行全面搜索,并以字典格式检索结果。
此操作不适用于 Google SecOps 实体。
操作输入
DSL 搜索操作需要以下参数:
| 参数 | 说明 |
|---|---|
Index |
可选。 OpenSearch 索引的搜索模式(例如 默认值为 |
Query |
可选。 要使用 Lucene 语法执行的搜索查询(例如, 默认值为 |
Limit |
可选。 要返回的文档数量上限。将此值设置为 默认值为 |
操作输出
DSL 搜索操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| “支持请求墙”表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例展示了使用 DSL Search 操作时收到的 JSON 结果输出:
[
{
"_score": 0.2876821,
"_type": "person",
"_id": "2",
"_source": {
"lastname": "Smith",
"name": "John",
"job_description": "Systems administrator"
},
"_index": "accounts"
}, {
"_score": 0.28582606,
"_type": "person",
"_id": "1",
"_source":
{
"lastname": "Doe",
"name": "John",
"job_description": "Systems administrator and Linux specialist"
},
"_index": "accounts"
}
]
脚本结果
下表列出了使用 DSL 搜索操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
results |
RESULTS |
Ping
使用 Ping 操作测试与 OpenSearch 的连接。
此操作不适用于 Google SecOps 实体。
操作输入
无。
操作输出
Ping 操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| “支持请求墙”表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 不可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
脚本结果
下表列出了使用 Ping 操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
| is_success | true 或 false |
简单的 ES 搜索
使用 Simple ES Search 操作可在 OpenSearch 中对所有已编入索引的字段执行基本搜索,并以字典格式检索结果。
此操作不适用于 Google SecOps 实体。
操作输入
简单 ES 搜索操作需要以下参数:
| 参数 | 说明 |
|---|---|
Index |
可选。 OpenSearch 索引的搜索模式(例如 默认值为 |
Query |
可选。 要使用 Lucene 语法执行的搜索查询(例如, 默认值为 |
Limit |
可选。 要返回的文档数量上限。将此值设置为 默认值为 |
操作输出
简单 ES 搜索操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| “支持请求墙”表格 | 不可用 |
| 丰富化表 | 不可用 |
| JSON 结果 | 可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
JSON 结果
以下示例展示了使用 Simple ES Search 操作时收到的 JSON 结果输出:
[{
"_score": 0.2876821,
"_type": "person",
"_id": "2",
"_source":
{
"lastname": "Smith",
"name": "John",
"job_description": "Systems administrator"
},
"_index": "accounts"
},
{
"_score": 0.28582606,
"_type": "person",
"_id": "1",
"_source":
{
"lastname": "Doe",
"name": "John",
"job_description": "Systems administrator and Linux specialist"
},
"_index": "accounts"
}
]
脚本结果
下表列出了使用简单 ES 搜索 操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
results |
RESULTS |
连接器
如需详细了解如何在 Google SecOps 中配置连接器,请参阅注入数据(连接器)。
OpenSearch 连接器
使用 OpenSearch 连接器,通过提供的 Lucene 查询搜索指定的 OpenSearch 索引,并将文档作为提醒注入到 Google SecOps 中。
连接器输入
OpenSearch 连接器需要以下参数:
| 参数 | 说明 |
|---|---|
Product Field Name |
必填。 存储商品名称的字段的名称。 商品名称主要会影响映射。为了简化和改进连接器的映射流程,默认值会解析为从代码引用的回退值。默认情况下,此参数的任何无效输入都会解析为回退值。 默认值为 |
Event Field Name |
必填。 用于确定事件名称(子类型)的字段的名称。 默认值为 |
Script Timeout (Seconds) |
必填。 运行当前脚本的 Python 进程的超时时间限制(以秒为单位)。 默认值为 |
Server Address |
必填。 OpenSearch 实例的端点网址,包括协议和端口(例如 |
Username |
可选。 用于向 OpenSearch 实例进行身份验证的用户名。 |
Password |
可选。 与指定用户名关联的密码。 |
Authenticate |
可选。 如果选择此项,集成会使用提供的凭据对与 OpenSearch 服务器的连接进行身份验证。 |
API Token |
可选。 用于身份验证的 API 令牌,可替代用户名和密码。 |
Verify SSL |
可选。 如果选择此项,集成会在连接到 OpenSearch 服务器时验证 SSL 证书。 |
Alert Name Field |
必填。 包含提醒名称的字段的名称(例如 |
Timestamp Field |
必填。 包含时间戳的字段的名称(例如 |
Environment Field Name |
可选。 存储环境名称的字段的名称。 如果缺少环境字段,连接器将使用默认值。 默认值为 |
Indexes |
可选。 要搜索的索引模式。使用 |
Query |
可选。 要使用 Lucene 语法执行的搜索查询。 |
Alerts Count Limit |
必填。 单个周期内可拉取的提醒数量上限。 默认值为 |
Max Days Backwards |
必填。 要检索的提醒距现在的时间天数。 此参数可应用于您首次启用连接器后的初始连接器迭代,也可作为过期连接器时间戳的回退值。 默认值为 |
Severity Field Name |
可选。 用于提取提醒严重程度值的字段名称。 如果该字段包含数值(整数或浮点数),连接器会自动将其映射到 Google SecOps 严重程度级别(例如, |
Proxy Server Address |
可选。 要使用的代理服务器的地址。 |
Proxy Username |
可选。 用于向代理服务器进行身份验证的用户名。 |
Proxy Password |
可选。 用于向代理服务器进行身份验证的密码。 |
Environment Regex Pattern |
可选。 要对 使用默认值 如果正则表达式模式为 null 或空,或者环境值为 null,则最终环境结果为默认环境。 |
OpenSearch DSL 连接器
使用 OpenSearch DSL 连接器,通过使用特定于网域的语言 (DSL) 查询发出 REST API 调用,将文档作为提醒注入到 Google SecOps 中。
连接器输入
OpenSearch DSL 连接器需要以下参数:
| 参数 | 说明 |
|---|---|
Product Field Name |
必填。 存储商品名称的字段的名称。 商品名称主要会影响映射。为了简化和改进连接器的映射流程,默认值会解析为从代码引用的回退值。默认情况下,此参数的任何无效输入都会解析为回退值。 默认值为 默认值为 |
Event Field Name |
必填。 用于确定事件名称(子类型)的字段的名称。 默认值为 |
Script Timeout (Seconds) |
必填。 运行当前脚本的 Python 进程的超时时间限制(以秒为单位)。 默认值为 |
Server Address |
必填。 OpenSearch 实例的端点网址,包括协议(例如 |
Port |
必填。 用于连接到 OpenSearch API 服务器的端口。 |
Query |
必填。 用于搜索的 DSL 查询(采用 JSON 格式)。 为提高连接器稳定性,建议在查询中包含按升序排列的排序时间戳键。 |
Index |
必填。 用于搜索的索引。使用 |
Timestamp Field |
必填。 包含时间戳的字段的名称(例如 |
Alert Field Name |
必填。 包含提醒名称的字段的名称(例如 |
Description Field |
可选。 包含提醒说明的字段的名称(例如 |
Severity |
必填。 要分配给所有接收到的提醒的静态严重程度级别。如果 默认值为 |
Alert Severity |
可选。 要为提醒分配的严重程度。此参数的优先级高于 如果您想使用 |
Severity Field Name |
可选。 用于提取提醒严重程度值的字段名称。 如果该字段包含数值(整数或浮点数),连接器会自动将其映射到 Google SecOps 严重程度级别(例如, |
Alerts Count Limit |
可选。 单个周期内可拉取的提醒数量上限。 默认值为 |
Authenticate |
可选。 如果选择此项,连接器将使用提供的凭据对连接进行身份验证。 |
Username |
可选。 用于向 OpenSearch 实例进行身份验证的用户名。 |
Password |
可选。 用于向 OpenSearch 实例进行身份验证的密码。 |
Use SSL |
可选。 如果选中,连接器将启用与服务器的 SSL/TLS 连接。 |
Proxy Server Address |
可选。 用于连接的代理服务器的地址。 |
Proxy Username |
可选。 用于向代理服务器进行身份验证的用户名。 |
Proxy Password |
可选。 用于向代理服务器进行身份验证的密码。 |
Environment Field Name |
可选。 存储环境名称的字段的名称。 如果缺少环境字段,连接器将使用默认值。 默认值为 |
Environment Regex Pattern |
可选。 要对 使用默认值 如果正则表达式模式为 null 或空,或者环境值为 null,则最终环境结果为默认环境。 默认值为 |
乐谱支持
连接器支持三种不同的字段映射表示法。例如,如需映射 event.type,您可以提供 _source_event_type、event_type 或 event.type。
这适用于以下参数:
Product Field NameEvent Field NameSeverity Field NameEnvironment Field NameTimestamp FieldAlert Field NameDescription Field(仅限 DSL 连接器)
如何在连接器中映射严重程度
如果 Severity Field Name 包含数值(整数或浮点数),连接器会按以下方式进行映射:
- 严重:100
- 高:80 ≤ x < 100
- 中:60 ≤ x < 80
- 低:40 ≤ x < 60
- 信息性:x < 40
对于字符串值,您必须更新连接器脚本文件夹中的 severity_map_config.json 文件。
配置示例
如需映射包含“恶意”“未知”或“良性”的 event.severity 字段,请执行以下操作:
- 在严重程度字段名称参数中输入
event.severity。 - 更新
severity_map_config.json:
{
"event.severity": {
"Malicious": 100,
"Unknown": 60,
"Benign": -1
},
"Default": 50
}
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。