将 CSV 与 Google SecOps 集成

本文档介绍了如何将 CSV 与 Google Security Operations 集成。

本文档介绍了如何将 CSV 与 Google Security Operations 集成。

使用场景

在 Google SecOps 中,CSV 集成支持以下用例:

  • 基于文件的威胁搜寻:快速搜索本地或远程 CSV 日志文件,查找特定字符串或恶意实体,以识别历史记录的威胁。

  • 自动生成提醒:自动从以 CSV 格式输出数据的旧版系统注入记录,并将其转换为具有自定义严重级别映射的可操作提醒。

  • 数据可移植性和报告:以编程方式将其他 playbook 操作的 JSON 结果转换为 CSV 格式,以便简化导出到外部报告工具或本地存储的过程。

  • 自动实体丰富:在 playbook 执行期间,使用 CSV 文件作为本地威胁情报来源,自动丰富实体并将其标记为可疑。

  • 跨系统数据同步:高效处理具有各种字符编码(例如旧版 Excel 格式)的文件,以确保不同安全工具之间的数据一致性。

准备工作

在 Google SecOps 中配置集成之前,请验证您是否具备以下条件:

  • 内部平台功能:此集成提供内置文件处理功能,不需要外部第三方 API 密钥或凭据进行身份验证。

  • 文件系统权限:如果使用远程代理,集成需要特定权限才能访问和管理主机系统上的文件。在代理机器上运行以下命令,为目标目录授予必要的权限: chown scripting:scripting "directory_path"

集成参数

CSV 集成需要以下参数:

参数显示名称 类型 默认值 为必填项 说明
实例名称 字符串 不适用 否 您要为其配置集成的实例的名称。
说明 字符串 不适用 否 实例的说明。
远程运行 复选框 尚未核查 否 勾选此字段,以便远程运行配置的集成。选中后,系统会显示选择远程用户(代理)的选项。

如需了解如何在 Google SecOps 中配置集成,请参阅配置集成。

如有需要,您可以在后续阶段进行更改。配置集成实例后,您可以在 playbook 中使用该实例。如需详细了解如何配置和支持多个实例,请参阅支持多个实例。

操作

如需详细了解操作,请参阅 在工作桌上响应待处理的操作和在案例中运行手动操作。

将 JSON 保存为 CSV

将 JSON 对象保存为 CSV。

参数

参数名称 类型 默认值 必填 说明
JSON 对象 JSON 不适用 是 指定要保存为 CSV 的 JSON 对象。
覆盖 布尔值 False 否 如果启用,该操作会覆盖现有文件。
文件路径 字符串 不适用 是 指定新创建的 CSV 文件的绝对文件路径。如果仅提供文件名,该操作会将文件存储在 /tmp/ 文件夹中。

运行时间

不适用

操作执行结果

脚本结果
脚本结果名称 值
is_success True/False
JSON 结果
{"filepath": "{file name}"}
案例墙

该操作会提供以下输出消息:

输出消息 消息说明
已成功转换 JSON 对象并将其保存到提供的文件路径。 操作成功。
在提供的路径中找不到文件。 文件不存在。
在 Google Cloud Policy Intelligence 中未找到所提供服务账号的任何活动 该操作无法找到任何所列服务账号的数据。
执行“将 JSON 保存为 CSV”操作时出错。

操作返回了错误。

请检查与服务器的连接、输入参数或凭证。

按字符串搜索

在 CSV 文件中搜索字符串。

参数

参数名称 类型 默认值 为必填项 说明
CSV 路径 字符串 不适用 是 指定 CSV 文件的文件路径或包含所有 CSV 文件的文件夹路径。如果提供了文件夹,操作将遍历该文件夹中的所有 CSV 文件。
CSV 列 字符串 不适用 否 指定可能包含实体信息的列的逗号分隔列表。如果未提供任何内容,操作将在所有列中搜索。
回溯天数 字符串 10 否 指定要处理多少天前的 CSV 文件。
搜索值 字符串 不适用 否 指定需要搜索的字符串。如果启用了“搜索多个字符串”,此参数会被视为待搜索的逗号分隔列表。
仅返回第一行。 复选框 尚未核查 否 如果启用,操作将仅在与实体匹配的第一个文件中返回 1 行。
文件编码类型 字符串 utf-8、latin-1、iso-8859-1 是 用于解码 CSV 文件的 CSV 编码类型(以英文逗号分隔),例如 utf-8、latin-1、iso-8859-1、utf-16…编码类型的指定顺序决定了它们用于解码文件的顺序,例如(如上例所示),utf-8 具有最高优先级,将主要用于解码所有文件,如果某个 CSV 文件使用其他编码,则将使用顺序中的下一个编码:latin-1 编码,依此类推,直到使用最后一个编码。
搜索多个字符串 复选框 尚未核查 否 如果启用,则“搜索值”将作为逗号分隔列表(而非单个字符串)运行。
要返回的字段 CSV 不适用 否 指定需要返回的值的逗号分隔列表。

使用场景

在 CSV 文件中搜索字符串。

运行时间

此操作会在所有实体上运行。

操作执行结果

脚本结果
脚本结果名称 “值”选项 示例
count_rows_csv 任意行数 count_rows += 1
JSON 结果
[
    {
        "EntityResult": {
            "Field2": "Value2",
            "Field3": "Value3",
            "Field1": "Value1",
            "Field4": "Value4",
            "Field5": "Value5"
        },
        "Entity": "host"
    }, {
        "EntityResult": {
            "Field2": "Value2",
            "Field3": "Value3",
            "Field1": "Value1",
            "Field4": "Value4",
            "Field5": "Value5"
        }, "Entity": "1.1.1.1"
    }
]
案例墙
结果类型 值/说明 类型
输出消息*

对于找到的记录: "Successfully found information about the following strings: \n (search_string)"

如果未找到某些字符串的记录:“Action 无法找到以下字符串的相关信息:”

如果所有记录均未成功:“未找到所提供商品的信息。”

如果所有编码均无效: “执行操作‘CSV Search by String’时出错。提供的编码无效。请检查拼写。”

常规

按实体搜索

在 CSV 文件中搜索实体并丰富其内容。

参数

参数名称 类型 默认值 为必填项 说明
CSV 路径 字符串 不适用 是 指定 CSV 文件的文件路径或包含所有 CSV 文件的文件夹路径。如果提供了文件夹,操作将遍历该文件夹中的所有 CSV 文件。
CSV 列 字符串 不适用 是 指定可能包含实体信息的列的逗号分隔列表。如果未提供任何内容,操作将在所有列中搜索。
回溯天数 字符串 10 是 指定要处理多少天前的 CSV 文件。
标记为可疑 复选框 尚未核查 否 如果启用,当在文件中发现实体时,操作会将其标记为可疑。
仅返回第一行。 复选框 尚未核查 否 如果启用,操作将仅在与实体匹配的第一个文件中返回 1 行。
文件编码类型 字符串 utf-8、latin-1、iso-8859-1 是 用于解码 CSV 文件的 CSV 编码类型(以英文逗号分隔),例如 utf-8、latin-1、iso-8859-1、utf-16…编码类型的指定顺序决定了它们用于解码文件的顺序,例如(如上例所示),utf-8 具有最高优先级,将主要用于解码所有文件,如果某个 CSV 文件使用其他编码,则将使用顺序中的下一个编码:latin-1 编码,依此类推,直到使用最后一个编码。
丰富实体 复选框 勾选 否 如果启用,操作将从 CSV 文件中添加信息,并将其添加到实体的丰富表中。
创建分析洞见 复选框 勾选 否 如果启用,当在文件中找到实体时,操作将创建数据分析。
要返回的字段 CSV 不适用 否 指定需要返回的值的逗号分隔列表。

运行时间

此操作会在所有实体上运行。

操作执行结果

脚本结果
脚本结果名称 “值”选项 示例
count_rows_csv 任意行数 count_rows += 1
JSON 结果
[
    {
        "EntityResult": [{
            "domain": "example.dom",
            "fileHash": "cbbc5aea3d4c7ec193aa2ff3b52df36ebb12338b18c9bb53fc4896115efaf78d",
            "reporter": "Symantec Antivirus",
            "app": "Arcsight",
            "id": "1011",
            "eventTime": "9/4/2017 10:00",
            "antivirusAction": "blocked",
            "virusName": "ECAT",
            "rule": "malicious",
            "eventName": "Virus detected",
            "User": "Ziv",
            "eventHostName": "WS-ZivDevComp",
            "File Source Path": "C:\\\\Users\\\\Default\\\\Desktop\\\\stringTimeRaw.csv",
            "machineAddress": "192.168.11.11"
        }, {
            "domain": "SmartCompany.dom",
            "fileHash": "cbbc5aea3d4c7ec193aa2ff3b52df36ebb12338b18c9bb53fc4896115efaf78d",
            "reporter": "Symantec Antivirus",
            "app": "ESM",
            "id": "1012",
            "eventTime": "9/4/2017 10:00",
            "antivirusAction": "allowed",
            "virusName": "ECAT",
            "rule": "malicious",
            "eventName": "Virus detected",
            "User": "GG",
            "eventHostName": "WS-GGDevComp",
            "File Source Path": "C:\\\\Users\\\\Default\\\\Desktop\\\\stringTimeRaw.csv",
            "machineAddress": "192.168.11.11"
        }],
        "Entity": "192.168.11.11"
    }
]
案例墙
结果类型 值/说明 类型
输出消息*

对于找到的实体: "Successfully found information about the following entities: \n (entity.identifier)"

对于未找到的实体:“未找到有关以下实体的信息:\n (entity.identifier)”

如果所有实体均未成功:“未找到所提供实体的任何信息。”

如果所有编码都无效: “执行操作‘按字符串进行 CSV 搜索’时出错。提供的编码无效。请检查拼写。”

常规

Ping

测试连接。

参数

不适用

运行时间

此操作会在所有实体上运行。

操作执行结果

脚本结果

不适用

JSON 结果
N/A

连接器

CSV 连接器

从特定文件夹中的 CSV 文件提取数据,并将这些数据转换为 Google SecOps 系统中的提醒。

本主题介绍了 Google SecOps 生成 CSV 文件的机制和配置,以及支持的工作流程和在平台中执行的操作。

使用场景

某客户有一个系统会生成 CSV 文件,这些文件可能采用不同的编码。

*   Add support for comma-separated encodings in the Encoding field in the
    connector.
    *   The connector should try the different encodings by their order in
        the field (first encoding - highest priority, last - lowest
        priority) with try/except. If no matching encoding was found -
        consider the file as an error and notify.
    *   Put a default value for the fields - a list of most common CSV
        encodings by priority (utf8, latin1, and iso...)

访问 CSV 文件

Google SecOps 对 CSV 文件的访问权限:为 CSV 文件设置一个文件夹。

CSV 记录转发到 Google SecOps

使用 CSV 文件记录

将 Google SecOps 配置为使用 CSV 文件作为提醒来源时,系统会要求您提供一个特定文件夹,以便从中提取 CSV 文件。Google SecOps 将检索 CSV 文件中的任何记录,并将其转发以进行转换,并将其作为案例提醒进行情境化。

如何在连接器中映射严重级别

为了映射严重程度,您需要在“严重程度字段名称”参数中指定应使用哪个字段来获取严重程度的值。在响应中,您可以获得 3 种类型的值:整数、浮点数和字符串。对于整数和浮点数,您无需进行任何额外配置。连接器将读取这些值,并根据 Google SecOps 标准对其进行映射。下面简要回顾一下整数值的映射方式:

  • 100 - 严重
  • 100 > x >= 80(高)
  • 80 > x >=60 中
  • 60 > x >=40 低
  • 40 > x 信息

如果响应中包含字符串,则需要进行额外配置。在连接器脚本所在的文件夹中,您会有一个名为 severity_map_config.json 的配置文件。此文件定义了严重级别的映射规则。

最初,该文件将如下所示:1 2 3 { "Default": 50 }

假设所需的值位于 event.severity 中。event.severity 可以包含以下值:“Malicious”“Benign”“Unknown”。

首先,我们必须在“严重级别字段名称”参数中指定我们将使用 event.severity。其次,我们必须更新配置文件。更改后,severity_map_config.json 文件应如下所示:1 2 3 4 5 6 7 8 { "event.severity": { "Malicious": 100, "Unknown": 60, "Benign": -1 }, "Default": 50 }

现在,当连接器收到 event.severity =“Malicious”的事件时,会将其严重级别设为“严重”。

在 Google SecOps 中配置 CSV 连接器

如需详细了解如何在 Google SecOps 中配置连接器,请参阅配置连接器。

连接器参数

使用以下参数配置连接器:

参数名称 类型 默认值 为必填项 说明
产品字段名称 字符串 device_product 是 用于确定设备产品的字段名称。
事件字段名称 字符串 name 否 用于确定事件名称(子类型)的字段名称。
脚本超时(秒) 字符串 60 是 运行当前脚本的 Python 进程的超时限制(以秒为单位)。
CSV 文件夹路径 字符串 不适用 是 包含所有需要提取的 CSV 文件的文件夹路径。
CSV 限制 字符串 不适用 否 每次迭代要处理的 CSV 文件数量。
规则生成器字段名称 字符串 不适用 否 包含规则生成器相关信息的字段的名称。
时间字段名称 字符串 不适用 否 包含事件时间信息的字段的名称。
CSV 包含标题 复选框 勾选 是 指示 CSV 文件是否包含标题。
文件编码类型 字符串 utf-8 是 设置 CSV 编码类型,例如 iso-8859-1、latin1、utf-8、utf-16。
提醒字段名称 字符串 不适用 否 包含提醒名称相关信息的字段的名称。
严重级别字段名称 字符串 不适用 否

包含严重程度相关信息的字段的名称。
注意:您可以根据响应中的值映射严重级别。为此,您需要前往连接器执行文件夹并修改 severity_mapping_config.json。请查看文档以供参考。

连接器规则

代理支持

此连接器不支持代理。

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。