Fortinet FortiSIEM
集成版本:5.0
在 Google Security Operations 中配置 Fortinet FortiSIEM 集成
有关如何在 Google SecOps 中配置集成的详细说明,请参阅配置集成。
集成参数
使用以下参数配置集成:
参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 |
---|---|---|---|---|
API 根 | 字符串 | https://x.x.x.x:端口 | 是 | 指定目标 FortiSIEM 安装的 API 根。 |
用户名 | 字符串 | 不适用 | 是 | 指定要用于目标 FortiSIEM 安装的用户名。 |
密码 | 密码 | 不适用 | 是 | 指定要用于目标 FortiSIEM 安装的密码。 |
验证 SSL | 复选框 | 勾选 | 否 | 如果启用,Google SecOps 服务器会检查证书是否已针对 API 根目录进行配置。 |
产品使用场景
- 将来自 SIEM 的提醒注入到 Google SecOps。
- 使用来自 SIEM 的数据来丰富 Google SecOps 提醒。
- 在 SIEM 端将已处理的 Google SecOps 提醒的状态同步回来。
操作
Ping
说明
使用 Google Security Operations Marketplace 标签页中的集成配置页面上提供的参数,测试与 FortiSIEM 的连接。
参数
不适用
运行于
该操作不会在实体上运行,也没有强制性输入参数。
操作执行结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
is_success | True/False | is_success=False |
JSON 结果
N/A
实体扩充
不适用
数据分析
不适用
案例墙
结果类型 | 值/说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果成功:“Successfully connected to the FortiSIEM installation with the provided connection parameters!” 操作应失败并停止 playbook 执行: >如果不成功:“Failed to connect to the FortiSIEM installation! 错误为 {0}".format(exception.stacktrace)" |
常规 |
丰富实体
说明
使用 Fortinet FortiSIEM CMDB 中的信息丰富实体。支持的实体:主机名、IP 地址。
参数
参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 |
---|---|---|---|---|
目标组织 | 字符串 | 不适用 | 否 | 指定可选的目标组织名称,以便仅在此组织中查找丰富信息。 |
运行于
此操作适用于以下实体:
- 主机名
- IP 地址
操作执行结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
is_success | True/False | is_success=False |
JSON 结果
[
{
"Entity": "centos-xxx",
"EntityResult": {
"device": {
"organization": {
"@id": "1xx",
"@name": "Super"
},
"accessIp": "172.30.xxx.xxx",
"approved": "true",
"components": null,
"creationMethod": "LOG",
"deviceType": {
"accessProtocols": "TELNET,SSH",
"jobWeight": "10",
"model": "Unix",
"vendor": "Generic",
"version": "ANY"
},
"discoverMethod": "LOG",
"discoverTime": "1640008485000",
"eventParserList": null,
"interfaces": null,
"ipToHostNames": null,
"luns": null,
"name": "centos-xxx",
"naturalId": "centos%2dxxx",
"processors": null,
"properties": {
"customproperty": [
{
"matched": "false",
"propertyDef": {
"displayInCMDB": "false",
"displayName": "Importance",
"groupKey": "false",
"propertyName": "importance",
"subValueType": "STRING",
"valueType": "STRING"
},
"propertyName": "importance",
"propertyValue": "Normal",
"updated": "false"
},
{
"matched": "false",
"propertyDef": {
"displayInCMDB": "false",
"displayName": "Location Name",
"groupKey": "false",
"propertyName": "locationName",
"subValueType": "STRING",
"valueType": "STRING"
},
"propertyName": "locationName",
"updated": "false"
}
]
},
"raidGroups": null,
"sanControllerPorts": null,
"softwarePatches": null,
"softwareServices": null,
"status": "2",
"storageGroups": null,
"storages": null,
"unmanaged": "false",
"updateMethod": "LOG",
"version": "ANY",
"winMachineGuid": null
}
}
},
{
"Entity": "172.30.xxx.xxx",
"EntityResult": {
"device": {
"organization": {
"@id": "1xx",
"@name": "Super"
},
"accessIp": "172.30.xxx.xxx",
"applications": null,
"approved": "true",
"components": null,
"creationMethod": "LOG",
"deviceType": {
"accessProtocols": "TELNET,SSH",
"jobWeight": "10",
"model": "Unix",
"vendor": "Generic",
"version": "ANY"
},
"discoverMethod": "LOG",
"discoverTime": "1640070721000",
"eventParserList": {
"eventparser": {
"deviceType": {
"category": "Appliance",
"jobWeight": "10",
"model": "Generic",
"vendor": "Generic",
"version": "ANY"
},
"enabled": "true",
"name": "SyslogNGParser",
"parserXml": "<patternDefinitions><pattern>..."
}
},
"interfaces": null,
"ipToHostNames": null,
"luns": null,
"name": "centos-xxx",
"naturalId": "centos",
"primaryContactUser": "0",
"processors": null,
"properties": {
"customproperty": [
{
"matched": "false",
"propertyDef": {
"displayInCMDB": "false",
"displayName": "Importance",
"groupKey": "false",
"propertyName": "importance",
"subValueType": "STRING",
"valueType": "STRING"
},
"propertyName": "importance",
"propertyValue": "Mission Critical",
"updated": "false"
},
{
"matched": "false",
"propertyDef": {
"displayInCMDB": "false",
"displayName": "Location Name",
"groupKey": "false",
"propertyName": "locationName",
"subValueType": "STRING",
"valueType": "STRING"
},
"propertyName": "locationName",
"updated": "false"
}
]
},
"raidGroups": null,
"sanControllerPorts": null,
"secondaryContactUser": "0",
"softwarePatches": null,
"softwareServices": null,
"status": "2",
"storageGroups": null,
"storages": null,
"unmanaged": "false",
"updateMethod": "MANUAL",
"version": "ANY",
"winMachineGuid": null
}
}
}
]
实体扩充
扩充项字段名称 | 来源(JSON 密钥) | 逻辑 - 应用场景 |
---|---|---|
accessIp | accessIp | 当 XML 中提供时 |
name | name | 当 XML 中提供时 |
应用 | “applications/name”的 CSV 文件 | 当 XML 中提供时 |
creationMethod | creationMethod | 当 XML 中提供时 |
deviceType_model | deviceType_model | 当 XML 中提供时 |
deviceType_accessProtocols deviceType_vendor |
deviceType_accessProtocols deviceType_vendor |
当 XML 中提供时 |
discoverMethod | discoverMethod | 当 XML 中提供时 |
discoverTime | discoverTime | 当 XML 中提供时 |
数据分析
不适用
案例墙
结果类型 | 值/说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果某个实体有数据(is_success=true):“已使用来自 FortiSIEM 的信息成功扩充以下实体:{entity.identifier}。” 如果某个实体没有数据 (is_success=true):“操作无法使用来自 FortiSIEM 的信息来丰富以下实体:{entity.identifier}。” 如果并非所有实体都有数据 (is_success=false):“未扩充任何提供的实体。” 操作应失败并停止 playbook 执行: 如果报告了致命错误(例如凭据错误、无法连接到服务器等),则会显示以下消息:“Error executing action "Enrich Entities".”(执行操作“丰富实体”时出错。)原因:{0}''.format(error.Stacktrace) |
常规 |
“案例墙”表格 | 表格标题:{entity.identifier} 表格列:
|
实体 |
执行简单查询
说明
根据提供的参数执行 FortiSIEM 事件查询。
参数
参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 |
---|---|---|---|---|
事件类型 | CSV | 不适用 | 否 | 指定查询应提取的事件类型。 参数接受多个值,这些值以英文逗号分隔的字符串形式表示。 |
要提取的最低严重程度 | 整数 | 不适用 | 否 | 以数字形式指定要提取到 Google SecOps 的最低事件严重程度。 示例:5 或 7 |
事件类别 | CSV | 不适用 | 否 | 指定事件类别查询应提取的内容。 参数接受多个值,这些值以英文逗号分隔的字符串形式表示。 |
事件 ID | CSV | 不适用 | 否 | 指定可选的精确事件 ID,查询应提取这些 ID。 参数接受多个值,这些值以英文逗号分隔的字符串形式表示。 |
要返回的字段 | CSV | 不适用 | 否 | 指定要返回的字段。 如果未提供任何内容,则该操作会返回所有字段。 |
排序字段 | 字符串 | phRecvTime | 否 | 指定应使用的排序参数。 |
排序顺序 | DDL | 降序 可能的值:
|
否 | 指定排序顺序。 |
时间范围 | DDL | 过去 1 小时 可能的值:
|
否 | 指定结果的时间范围。 如果选择“自定义”,您还需要提供“开始时间”参数。 |
开始时间 | 字符串 | 不适用 | 否 | 指定结果的开始时间。 如果为“时间范围”参数选择“自定义”,则此参数是必需的。 格式:ISO 8601 示例:2021-04-23T12:38Z |
结束时间 | 字符串 | 不适用 | 否 | 指定结果的结束时间。 如果未提供任何内容,并且为“时间范围”参数选择了“自定义”,则此参数会使用当前时间。 格式:ISO 8601 |
要返回的结果数上限 | 整数 | 50 | 否 | 指定要返回的结果数。 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
is_success | True/False | is_success=False |
JSON 结果
[
{
"custId": "1",
"attributes": {
"eventType": "Unknown_EventType",
"eventSeverity": "3",
"eventAction": "0 (Permit)",
"phRecvTime": "Wed Dec 29 00:36:55 IST 2021",
"relayDevIpAddr": "172.30.20xxx",
"reptDevIpAddr": "172.30.20xxx",
"destIpAddr": "172.30.20xxx",
"destName": "HOST-172.30.20xxx",
"reptDevName": "centos-xxx",
"reptVendor": "Unknown",
"customer": "Super",
"reptModel": "Unknown",
"rawEventMsg": "<27>Dec 29 00:36:47 centos-xxx aella_flow[5074]: 1902195|aos_afix_json|ERR|Failed to send message: Couldn't connect to server/7",
"collectorId": "1",
"eventId": "4242813061460978xxx",
"phEventCategory": "0 (External)",
"count": "1",
"eventName": "Unknown event type",
"eventParsedOk": "0",
"parserName": "SyslogNGParser"
},
"dataStr": null,
"eventType": "Unknown_EventType",
"id": "4242813061460978xxx",
"index": "0",
"nid": "4242813061460978xxx",
"receiveTime": "2021-12-29T00:36:55+02:00"
}
]
实体扩充
不适用
数据分析
不适用
案例墙
结果类型 | 值/说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果找到至少一些数据 (is_success=true):“Successfully retrieved results for the constructed query "{query}" in FortiSIEM.”。 如果未找到任何结果 (is_success=false):“在 FortiSIEM 中,未找到与构建的查询‘{Query}’相符的结果。” 操作应失败并停止 playbook 执行: 如果报告了致命错误(例如凭据错误、无法连接到服务器、其他错误):“执行操作‘简单查询’时出错。原因:{0}''.format(error.Stacktrace) 如果“开始时间”参数为空,且“时间范围”参数设置为“自定义”(失败):“执行操作“""时出错。原因:当在“时间范围”参数中选择“自定义”时,应提供“开始时间”。 如果“开始时间”的值大于“结束时间”参数的值(失败):“执行操作时出错”。原因:“结束时间”应晚于“开始时间”。 |
常规 |
表 | 表名称:简单查询结果 表格列:响应中的所有列 |
常规 |
执行自定义查询
说明
在 FortiSIEM 中执行自定义查询。
参数
参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 |
---|---|---|---|---|
查询 | 字符串多行输入字段 | (属性 = 值或值)AND(属性值或值) | 是 | 指定用于检索活动相关信息的查询。 示例:(relayDevIpAddr = 172.30.202.1 OR 172.30.202.2) AND (reptDevName = HOST1) |
要返回的字段 | CSV | 否 | 指定要返回的字段。 如果未提供任何内容,则该操作会返回所有字段。 |
|
排序字段 | 字符串 | phRecvTime | 否 | 指定应使用的排序参数。 |
排序顺序 | DDL | 降序 可能的值:
|
否 | 指定排序顺序。 |
时间范围 | DDL | 过去 1 小时 可能的值:
|
否 | 指定结果的时间范围。 如果选择“自定义”,您还需要提供“开始时间”参数。 |
开始时间 | 字符串 | 不适用 | 否 | 指定结果的开始时间。 如果为“时间范围”参数选择“自定义”,则此参数是必需的。 格式:ISO 8601 示例:2021-04-23T12:38Z |
结束时间 | 字符串 | 不适用 | 否 | 指定结果的结束时间。 如果未提供任何内容,并且为“时间范围”参数选择了“自定义”,则此参数会使用当前时间。 |
要返回的结果数上限 | 整数 | 50 | 否 | 指定要返回的结果数。 |
运行于
此操作不会在实体上运行。
操作执行结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
is_success | True/False | is_success=False |
JSON 结果
[
{
"custId": "1",
"attributes": {
"eventType": "Unknown_EventType",
"eventSeverity": "3",
"eventAction": "0 (Permit)",
"phRecvTime": "Wed Dec 29 00:36:55 IST 2021",
"relayDevIpAddr": "172.30.20xxx",
"reptDevIpAddr": "172.30.20xxx",
"destIpAddr": "172.30.20xxx",
"destName": "HOST-172.30.20xxx",
"reptDevName": "centos-xxx",
"reptVendor": "Unknown",
"customer": "Super",
"reptModel": "Unknown",
"rawEventMsg": "<27>Dec 29 00:36:47 centos-xxx aella_flow[5074]: 1902195|aos_afix_json|ERR|Failed to send message: Couldn't connect to server/7",
"collectorId": "1",
"eventId": "4242813061460978xxx",
"phEventCategory": "0 (External)",
"count": "1",
"eventName": "Unknown event type",
"eventParsedOk": "0",
"parserName": "SyslogNGParser"
},
"dataStr": null,
"eventType": "Unknown_EventType",
"id": "4242813061460978xxx",
"index": "0",
"nid": "4242813061460978xxx",
"receiveTime": "2021-12-29T00:36:55+02:00"
}
]
实体扩充
不适用
数据分析
不适用
案例墙
结果类型 | 值/说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果找到至少一些数据(is_success=true):“Successfully retrieved results for the provided query "{query}" in FortiSIEM.” 如果未找到任何结果 (is_success=false):“在 FortiSIEM 中,未找到与所提供的查询‘{Query}’相符的结果。” 操作应失败并停止 playbook 执行: 如果报告了致命错误(例如凭据错误、无法连接到服务器、其他错误):“执行操作‘简单查询’时出错。原因:{0}''.format(error.Stacktrace) 如果“开始时间”参数为空,且“时间范围”参数设置为“自定义”(失败):“执行操作“""时出错。原因:当在“时间范围”参数中选择“自定义”时,应提供“开始时间”。 如果“开始时间”的值大于“结束时间”参数的值(失败):“执行操作时出错”。原因:“结束时间”应晚于“开始时间”。 |
常规 |
表 | 表格名称:自定义查询结果 表格列:响应中的所有列 |
常规 |
连接器
FortiSIEM Incidents 连接器
连接器说明
连接器可用于提取 FortiSIEM 突发事件。连接器许可名单可用于仅根据事件的“eventType”属性值注入特定类型的事件。连接器的 SourceGroupIdentifier 可用于根据突发事件 ID 对 Google SecOps 提醒进行分组。连接器需要 FortiSIEM 6.3 版或更高版本。
连接器参数
参数显示名称 | 类型 | 默认值 | 是否为必需属性 | 说明 |
---|---|---|---|---|
商品字段名称 | 字符串 | deviceProduct | 是 | 输入源字段名称,以便检索产品字段名称。 |
事件字段名称 | 字符串 | eventType | 是 | 输入源字段名称,以便检索事件字段名称。 |
环境字段名称 | 字符串 | 否 | 描述存储环境名称的字段的名称。 如果找不到环境字段,则环境为默认环境。 |
|
环境正则表达式模式 | 字符串 | .* | 否 | 要对“环境字段名称”字段中找到的值运行的正则表达式模式。 默认值为 .*,用于捕获所有内容并返回未更改的值。 用于允许用户通过正则表达式逻辑来操纵环境字段。 如果正则表达式模式为 null 或空,或者环境值为 null,则最终环境结果为默认环境。 |
脚本超时 | 整数 | 300 | 是 | 指定连接器运行的超时时间。 |
API 根 | 字符串 | https:/x.x.x.x:port | 是 | 指定目标 FortiSIEM 安装的 API 根。 |
用户名 | 字符串 | 不适用 | 是 | 指定要用于目标 FortiSIEM 安装的用户名。 |
密码 | 密码 | 不适用 | 是 | 指定要用于目标 FortiSIEM 安装的密码。 |
验证 SSL | 复选框 | 勾选 | 否 | 如果启用,Google SecOps 服务器会检查为 API 根目录配置的证书。 |
目标组织 | CSV | 不适用 | 否 | 指定连接器应从中提取突发事件的组织。 参数接受多个值,这些值以英文逗号分隔的字符串形式表示。 |
回溯的小时数上限 | 整数 | 24 | 是 | 指定要提取过去 X 小时内的突发事件的时间范围。 |
每个周期的突发事件数上限 | 整数 | 10 | 是 | 指定一次连接器运行期间应处理的事件数量。 |
每个突发事件的事件数上限 | 整数 | 100 | 是 | 指定连接器应针对事件跟踪的最大事件数。 达到限额后,系统不会再向 Google SecOps 添加新事件。 |
要提取的突发事件状态 | CSV | 0 | 否 | 指定要提取到 Google SecOps 的突发事件状态。 参数接受多个值,这些值以英文逗号分隔的字符串形式表示。 0 表示处于未结状态的突发事件。 |
要提取的最低严重程度 | 整数 | 不适用 | 否 | 以数字形式指定要提取到 Google SecOps 的最低突发事件严重程度,例如 5 或 7。 |
将白名单用作黑名单 | 复选框 | 尚未核查 | 是 | 如果启用,白名单将用作黑名单。 |
跟踪已注入的突发事件中添加的新事件 | 复选框 | 勾选 | 是 | 如果启用此选项,当新事件添加到已提取的 FortiSIEM 突发事件时,Google SecOps 中会创建包含这些新事件的其他新提醒。 |
跟踪新事件的阈值(小时) | 整数 | 24 | 是 | 如果选中“跟踪已提取的突发事件中添加的新事件”复选框,请指定连接器应跟踪已提取的突发事件中添加的新事件的最长小时数。 达到限额后,系统不会再向 Google SecOps 添加新事件。 |
代理服务器地址 | 字符串 | 不适用 | 否 | 指定要使用的代理服务器的地址。 |
代理用户名 | 字符串 | 不适用 | 否 | 指定用于进行身份验证的代理用户名。 |
代理密码 | 密码 | 不适用 | 否 | 指定用于进行身份验证的代理密码。 |
连接器规则
代理支持
连接器支持代理。
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。