使用部署为 Cloud Run functions 的提取脚本
Google Security Operations 提供了一组用 Python 编写的提取脚本,这些脚本旨在部署为 Cloud Run functions 函数。借助这些脚本,您可以从以下日志源(按名称和日志类型列出)中注入数据。
- Armis Google SecOps Integration
- Aruba Central (
ARUBA_CENTRAL) - Azure Event Hub (configurable log type)
- Box (
BOX) - Citrix Cloud audit logs (
CITRIX_MONITOR) - Citrix session metadata (
CITRIX_SESSION_METADATA) - Cloud Storage (configurable log type)
- Duo Activity (
DUO_ACTIVITY) - Duo Admin (
DUO_ADMIN) - MISP (
MISP_IOC) - OneLogin (
ONELOGIN_SSO) - OneLogin user context (
ONELOGIN_USER_CONTEXT) - Proofpoint (configurable log type)
- Pub/Sub (configurable log type)
- Slack audit logs (
SLACK_AUDIT) - STIX/TAXII threat intelligence (
STIX) - Tenable.io (
TENABLE_IO) - Trend Micro Cloud App Security (configurable log type)
- Trend Micro Vision One audit logs (
TREND_MICRO_VISION_AUDIT)
这些脚本位于 Google SecOps GitHub 代码库中。
已知限制:当这些脚本在 无状态环境(例如 Cloud Run functions 函数)中使用时,由于缺少检查点功能,它们可能无法将所有日志发送到 Google SecOps。 Google SecOps 已使用 Python 3.9 运行时对脚本进行了测试。
准备工作
请阅读以下资源,了解相关背景信息,以便您有效地使用 Google SecOps 注入脚本。
- 如需了解如何从本地机器部署 Cloud Run functions 函数,请参阅部署 Cloud Run functions 函数。
- 创建和访问密文介绍了如何使用 Secret Manager。您需要此角色来存储和访问 Google SecOps 服务账号 JSON 文件。
- 安装 Google Cloud CLI。您将使用此文件部署 Cloud Run 函数。
- 如果您计划从 Pub/Sub 中注入数据,请参阅 Google Cloud Pub/Sub 文档。
为单个日志类型组装文件
Google SecOps GitHub 中的每个子目录都包含用于注入单个 Google SecOps 日志类型的数据的文件。该脚本会连接到单个源设备,然后使用提取 API 将原始日志发送到 Google SecOps。建议您将每种日志类型部署为单独的 Cloud Run 函数。访问 Google SecOps GitHub 代码库中的脚本。GitHub 中的每个子目录都包含以下特定于其接收的日志类型的文件。
main.py是特定于日志类型的提取脚本。它会连接到源设备,并将数据提取到 Google SecOps。.env.yml存储 Python 脚本所需的配置,并且特定于部署。您可以修改此文件,以设置提取脚本所需的配置参数。README.md提供有关配置参数的信息。Requirements.txt定义了提取脚本所需的依赖项。此外,common文件夹包含所有提取脚本都依赖的实用函数。
请执行以下步骤来组装用于注入单一日志类型数据的文件:
- 创建一个部署目录来存储 Cloud Run 函数的文件。 此文件夹将包含部署所需的所有文件。
- 将所选日志类型(例如 OneLogin 用户上下文)的 GitHub 子目录中的所有文件复制到此部署目录。
- 将
common文件夹及其所有内容复制到部署目录。 相应目录的内容将如下所示:
one_login_user ├─common │ ├─__init__.py │ ├─auth.py │ ├─env_constants.py │ ├─ingest.py │ ├─status.py │ └─utils.py ├─env.yml ├─main.py └─requirements.txt
配置脚本
- 启动 Cloud Shell 会话。
- 使用 SSH 连接到 Google Cloud Linux 虚拟机。请参阅使用 Google 工具连接到 Linux 虚拟机。
点击 更多 > 上传或下载,将提取脚本上传到 Cloud Shell 或从 Cloud Shell 下载提取脚本。
文件和文件夹只能上传到主目录或从中下载。 如需了解在 Cloud Shell 和本地工作站之间传输文件的更多方法,请参阅 [从 Cloud Shell 上传和下载文件及文件夹](/shell/docs/uploading-and-downloading-files#upload_and_download_files_and_folders)。
修改函数的
.env.yml文件,并填充所需的环境变量。下表列出了所有提取脚本通用的运行时环境变量。变量名称 说明 必需 默认 Secret CHRONICLE_CUSTOMER_IDChronicle (Google SecOps) 客户 ID。 是 无 否 CHRONICLE_REGIONChronicle(Google SecOps)区域。 是 us
其他有效值:asia-northeast1、asia-south1、asia-southeast1、australia-southeast1、europe、europe-west2、europe-west3、europe-west6、europe-west9、europe-west12、me-central1、me-central2、me-west1、northamerica-northeast2和southamerica-east1。否 CHRONICLE_SERVICE_ACCOUNTChronicle (Google SecOps) 服务账号 JSON 文件的内容。 是 无 是 CHRONICLE_NAMESPACEChronicle (Google SecOps) 日志所标记的命名空间。如需了解 Google SecOps 命名空间,请参阅使用资产命名空间。 否 无 否 每个脚本都需要特定于该脚本的环境变量。如需详细了解每种日志类型所需的环境变量,请参阅按日志类型列出的配置参数。
标记为 Secret = Yes 的环境变量必须在 Secret Manager 中配置为 Secret。如需了解使用 Secret Manager 的费用,请参阅 Secret Manager 价格。
如需了解详细说明,请参阅创建和访问 Secret。
在 Secret Manager 中创建 Secret 后,请使用 Secret 资源名称作为环境变量的值。例如:projects/{project_id}/secrets/{secret_id}/versions/{version_id},其中 {project_id}、{secret_id} 和 {version_id} 是特定于您的环境的。
设置调度器或触发器
除 Pub/Sub 之外的所有脚本均实现为以周期性间隔从源设备收集数据。您必须使用 Cloud Scheduler 设置触发器,以便随时间推移提取数据。Pub/Sub 的提取脚本会持续监控 Pub/Sub 订阅。如需了解详情,请参阅按计划运行服务和使用 Pub/Sub 触发 Cloud Run 函数。
部署 Cloud Run 函数
- 启动 Cloud Shell 会话。
- 通过 SSH 连接到 Google Cloud Linux 虚拟机。请参阅使用 Google 工具连接到 Linux 虚拟机。
- 切换到您复制提取脚本的目录。
执行以下命令以部署 Cloud Run 函数。
gcloud functions deploy <FUNCTION NAME> --service-account <SERVICE_ACCOUNT_EMAIL> --entry-point main --trigger-http --runtime python39 --env-vars-file .env.yml将
<FUNCTION_NAME>替换为您为 Cloud Run 函数定义的名称。将
<SERVICE_ACCOUNT_EMAIL>替换为您希望 Cloud Run 函数使用的服务账号的电子邮件地址。如果您不将目录更改为文件所在的位置,请务必使用
--source选项指定部署脚本的位置。运行 Cloud Run 函数的服务账号必须具有 Cloud Functions Invoker (
roles/cloudfunctions.invoker) 和 Secret Manager Secret Accessor (roles/secretmanager.secretAccessor) 角色。
查看运行时日志
提取脚本会将运行时消息输出到 stdout。Cloud Run functions 提供了一种查看日志消息的机制。
按日志类型列出的配置参数
Armis Google SecOps 集成
此脚本使用来自 Armis 平台的 API 调用来收集不同类型事件的数据,例如提醒、活动、设备和漏洞。收集的数据会注入到 Google SecOps 中,并由相应的解析器进行解析。
脚本流程
以下是脚本的流程:
验证环境变量。
将脚本部署到 Cloud Run functions。
使用提取脚本收集数据。
将收集的数据注入到 Google SecOps 中。
通过 Google SecOps 中的相应解析器解析收集的数据。
使用脚本收集数据并将其注入到 Google SecOps 中
验证环境变量。
变量 说明 必需 默认 Secret CHRONICLE_CUSTOMER_IDChronicle (Google SecOps) 客户 ID。 是 - 否 CHRONICLE_REGIONChronicle(Google SecOps)区域。 是 美国 是 CHRONICLE_SERVICE_ACCOUNTChronicle (Google SecOps) 服务账号 JSON 文件的内容。 是 - 是 CHRONICLE_NAMESPACEChronicle (Google SecOps) 日志所标记的命名空间。 否 - 否 POLL_INTERVAL函数执行以获取额外数据的频率间隔 函数执行以获取额外日志数据的频率间隔(以分钟为单位)。此时长必须与 Cloud Scheduler 作业间隔相同。 是 10 否 ARMIS_SERVER_URLArmis 平台的服务器网址。 是 - 否 ARMIS_API_SECRET_KEY进行身份验证所需的密钥。 是 - 是 HTTPS_PROXY代理服务器网址。 否 - 否 CHRONICLE_DATA_TYPEChronicle (Google SecOps) 数据类型,用于将数据推送到 Google SecOps。 是 - 否 设置目录。
为 Cloud Run functions 部署创建一个新目录,并向其中添加
common目录和提取脚本 (armis) 的内容。设置所需的运行时环境变量。
在
.env.yml文件中定义所需的环境变量。使用 Secret。
标记为 Secret 的环境变量必须在 Secret Manager 中配置为 Secret。 如需详细了解如何创建 Secret,请参阅创建 Secret。
在 Secret Manager 中创建 Secret 后,请使用 Secret 的资源名称作为环境变量的值。例如:
CHRONICLE_SERVICE_ACCOUNT: projects/{project_id}/secrets/{secret_id}/versions/{version_id}配置命名空间。
设置
CHRONICLE_NAMESPACE环境变量以配置命名空间。Chronicle (Google SecOps) 日志会提取到命名空间中。部署 Cloud Run 函数。
从之前创建的目录内运行以下命令,以部署 Cloud Functions 函数。
gcloud functions deploy <FUNCTION NAME> --gen2 --entry-point main --trigger-http --runtime python39 --env-vars-file .env.ymlCloud Run functions 默认规范。
变量 默认 说明 内存 256 MB 无 无 Timedout 60 秒 无 无 区域 us-central1 无 无 实例数下限 0 无 无 实例数上限 100 无 无 如需详细了解如何配置这些变量,请参阅配置 Cloud Run functions。
提取历史数据。
如需提取历史数据并继续收集实时数据,请执行以下操作:
- 以分钟为单位配置
POLL_INTERVAL环境变量,以指定需要提取的历史数据时长。 - 配置 Cloud Run functions 函数后,使用调度程序触发函数,或通过在 Google Cloud CLI 中运行命令手动触发函数。
- 以分钟为单位配置
Aruba Central
此脚本从 Aruba Central 平台提取审核日志,并以 ARUBA_CENTRAL 日志类型将其注入到 Google SecOps 中。如需了解如何使用该库,请参阅 pycentral Python SDK。
在 .env.yml 文件中定义以下环境变量。
| 变量 | 说明 | 默认 | Secret |
|---|---|---|---|
CHRONICLE_CUSTOMER_ID |
Chronicle (Google SecOps) 实例客户 ID。 | 无 | 否 |
CHRONICLE_REGION |
Chronicle (Google SecOps) 实例区域。 | us其他有效值: asia-northeast1、asia-south1、asia-southeast1、australia-southeast1、europe、europe-west2、europe-west3、europe-west6、europe-west9、europe-west12、me-central1、me-central2、me-west1、northamerica-northeast2 和 southamerica-east1。 |
否 |
CHRONICLE_SERVICE_ACCOUNT |
Secret Manager 中存储 Chronicle (Google SecOps) 服务账号 JSON 文件的 Secret 的路径。 | 无 | 是 |
CHRONICLE_NAMESPACE |
Chronicle (Google SecOps) 日志所标记的命名空间。如需了解 Chronicle (Google SecOps) 命名空间,请参阅使用资产命名空间。 | 无 | 否 |
POLL_INTERVAL |
函数执行以获取更多日志数据的频率间隔(以分钟为单位)。此时长必须与 Cloud Scheduler 作业间隔相同。 | 10 | 否 |
ARUBA_CLIENT_ID |
Aruba Central API 网关客户端 ID。 | 无 | 否 |
ARUBA_CLIENT_SECRET_SECRET_PATH |
Aruba Central API 网关客户端密钥。 | 无 | 是 |
ARUBA_USERNAME |
Aruba Central 平台的用户名。 | 无 | 否 |
ARUBA_PASSWORD_SECRET_PATH |
Aruba Central 平台的密码。 | 无 | 是 |
ARUBA_BASE_URL |
Aruba Central API 网关的基本网址。 | 无 | 否 |
ARUBA_CUSTOMER_ID |
Aruba Central 平台的客户 ID。 | 无 | 否 |
Azure 事件中心
与其他提取脚本不同,此脚本使用 Azure 函数从 Azure 事件中心提取事件。每当向存储桶中添加新事件时,Azure 函数都会自行触发,并且每个事件都会逐渐被提取到 Google SecOps 中。
部署 Azure 函数的步骤:
- 从代码库下载名为
Azure_eventhub_API_function_app.json的数据连接器文件。 - 登录 Microsoft Azure 门户。
- 前往 Microsoft Sentinel > 从列表中选择您的工作区 > 在配置部分中选择“数据连接器”,然后执行以下操作:
- 在网址中将以下标志设置为 true:
feature.BringYourOwnConnector=true。例如: https://portal.azure.com/?feature.BringYourOwnConnector=true&... 1. 找到页面上的导入按钮,然后导入在第 1 步中下载的数据连接器文件。
- 在网址中将以下标志设置为 true:
- 点击部署到 Azure 按钮以部署函数,然后按照同一页面上所述的步骤操作。
- 选择首选的订阅、资源组和位置,并提供所需的值。
- 点击检查 + 创建。
- 点击创建以进行部署。
Box
此脚本可获取 Box 中发生的事件的详细信息,并使用 BOX 日志类型将这些信息注入到 Google SecOps 中。这些数据可帮助您深入了解 Box 环境中对象的 CRUD 操作。如需了解 Box 事件,请参阅 Box Events API。
在 .env.yml 文件中定义以下环境变量。如需详细了解 Box 客户端 ID、客户端密钥和主题 ID,请参阅客户端凭据授权。
| 变量名称 | 说明 | 默认值 | Secret |
|---|---|---|---|
CHRONICLE_CUSTOMER_ID |
Chronicle (Google SecOps) 实例客户 ID。 | 无 | 否 |
POLL_INTERVAL |
函数执行以获取更多日志数据的频率间隔(以分钟为单位)。此时长必须与 Cloud Scheduler 作业间隔相同。 | 5 | 否 |
CHRONICLE_REGION |
Chronicle (Google SecOps) 实例区域。 | us其他有效值: asia-northeast1、asia-south1、asia-southeast1、australia-southeast1、europe、europe-west2、europe-west3、europe-west6、europe-west9、europe-west12、me-central1、me-central2、me-west1、northamerica-northeast2 和 southamerica-east1。 |
否 |
CHRONICLE_SERVICE_ACCOUNT |
Secret Manager 中存储 Chronicle (Google SecOps) 服务账号 JSON 文件的 Secret 的路径。 | 无 | 是 |
BOX_CLIENT_ID |
Box 平台的客户端 ID,可在 Box 开发者控制台中找到。 | 无 | 否 |
BOX_CLIENT_SECRET |
Secret Manager 中存储用于身份验证的 Box 平台客户端密钥的密文的路径。 | 无 | 是 |
BOX_SUBJECT_ID |
Box 用户 ID 或企业 ID。 | 无 | 否 |
CHRONICLE_NAMESPACE |
Chronicle (Google SecOps) 日志所标记的命名空间。如需详细了解 Google SecOps 命名空间,请参阅使用资产命名空间。 | 无 | 否 |
Citrix Cloud 审核日志
此脚本会收集 Citrix Cloud 审核日志,并使用 CITRIX_MONITOR 日志类型将其提取到 Google SecOps 中。这些日志可提供有关更改内容、更改者、更改时间等信息,帮助您识别在 Citrix Cloud 环境中执行的活动。如需了解详情,请参阅 Citrix Cloud SystemLog API。
在 .env.yml 文件中定义以下环境变量。如需了解 Citrix 客户端 ID 和客户端密钥,请参阅 Citrix API 使用入门。
| 变量名称 | 说明 | 默认值 | Secret |
|---|---|---|---|
CHRONICLE_CUSTOMER_ID |
Chronicle (Google SecOps) 实例客户 ID。 | 无 | 否 |
CHRONICLE_REGION |
Chronicle (Google SecOps) 实例区域。 | us其他有效值: asia-northeast1、asia-south1、asia-southeast1、australia-southeast1、europe、europe-west2、europe-west3、europe-west6、europe-west9、europe-west12、me-central1、me-central2、me-west1、northamerica-northeast2 和 southamerica-east1。 |
否 |
CHRONICLE_SERVICE_ACCOUNT |
Secret Manager 中存储 Chronicle(Google SecOps)服务账号 JSON 文件的 Secret 的路径。 | 无 | 是 |
CITRIX_CLIENT_ID |
Citrix API 客户端 ID。 | 无 | 否 |
CITRIX_CLIENT_SECRET |
Secret Manager 中存储用于身份验证的 Citrix API 客户端 Secret 的路径。 | 无 | 是 |
CITRIX_CUSTOMER_ID |
Citrix CustomerID。 | 无 | 否 |
POLL_INTERVAL |
收集额外日志数据的频率间隔(以分钟为单位)。此时长必须与 Cloud Scheduler 作业间隔相同。 | 30 | 否 |
URL_DOMAIN |
Citrix Cloud Endpoint。 | 无 | 否 |
CHRONICLE_NAMESPACE |
Chronicle (Google SecOps) 日志所标记的命名空间。如需了解 Chronicle (Google SecOps) 命名空间,请参阅使用资产命名空间。 | 无 | 否 |
Citrix 会话元数据
此脚本从 Citrix 环境收集 Citrix 会话元数据,并使用 CITRIX_MONITOR 日志类型将其注入到 Google SecOps 中。这些数据包括用户登录详细信息、会话时长、会话创建时间、会话结束时间以及与会话相关的其他元数据。如需了解详情,请参阅 Citrix Monitor Service API。
在 .env.yml 文件中定义以下环境变量。如需了解 Citrix 客户端 ID 和客户端密钥,请参阅 Citrix API 使用入门。
| 变量名称 | 说明 | 默认值 | Secret |
|---|---|---|---|
CHRONICLE_CUSTOMER_ID |
Chronicle (Google SecOps) 实例客户 ID。 | 无 | 否 |
CHRONICLE_REGION |
Chronicle (Google SecOps) 实例区域。 | us其他有效值: asia-northeast1、asia-south1、asia-southeast1、australia-southeast1、europe、europe-west2、europe-west3、europe-west6、europe-west9、europe-west12、me-central1、me-central2、me-west1、northamerica-northeast2 和 southamerica-east1。 |
否 |
CHRONICLE_SERVICE_ACCOUNT |
Secret Manager 中存储 Chronicle (Google SecOps) 服务账号 JSON 文件的 Secret 的路径。 | 无 | 是 |
URL_DOMAIN |
Citrix 网址网域。 | 无 | 否 |
CITRIX_CLIENT_ID |
Citrix 客户端 ID。 | 无 | 否 |
CITRIX_CLIENT_SECRET |
Secret Manager 中存储用于身份验证的 Citrix 客户端 Secret 的 Secret 的路径。 | 无 | 是 |
CITRIX_CUSTOMER_ID |
Citrix 客户 ID。 | 无 | 否 |
POLL_INTERVAL |
函数执行以获取更多日志数据的频率间隔(以分钟为单位)。此时长必须与 Cloud Scheduler 作业间隔相同。 | 30 | 否 |
CHRONICLE_NAMESPACE |
Chronicle (Google SecOps) 日志所标记的命名空间。如需了解 Google SecOps 命名空间,请参阅使用资产命名空间。 | 无 | 否 |
Cloud Storage
此脚本从 Cloud Storage 中提取系统日志,并使用可配置的日志类型值将其提取到 Google SecOps 中。如需了解详情,请参阅 Google Cloud Python 客户端库。
在 .env.yml 文件中定义以下环境变量。 Google Cloud包含与安全相关的重要日志,但其中一些日志类型无法直接导出到 Google SecOps。如需了解详情,请参阅安全日志分析。
| 变量 | 说明 | 默认 | Secret |
|---|---|---|---|
CHRONICLE_CUSTOMER_ID |
Chronicle (Google SecOps) 实例客户 ID。 | 无 | 否 |
CHRONICLE_REGION |
Chronicle (Google SecOps) 实例区域。 | us其他有效值: asia-northeast1、asia-south1、asia-southeast1、australia-southeast1、europe、europe-west2、europe-west3、europe-west6、europe-west9、europe-west12、me-central1、me-central2、me-west1、northamerica-northeast2 和 southamerica-east1。 |
否 |
CHRONICLE_SERVICE_ACCOUNT |
Secret Manager 中存储 Chronicle (Google SecOps) 服务账号 JSON 文件的 Secret 的路径。 | 无 | 是 |
CHRONICLE_NAMESPACE |
Chronicle (Google SecOps) 日志所标记的命名空间。如需了解 Google SecOps 命名空间,请参阅使用资产命名空间。 | 无 | 否 |
POLL_INTERVAL |
函数执行以获取其他日志数据的频率间隔(以分钟为单位)。此时长必须与 Cloud Scheduler 作业间隔相同。 | 60 | 否 |
GCS_BUCKET_NAME |
要从中提取数据的 Cloud Storage 存储桶的名称。 | 无 | 否 |
GCP_SERVICE_ACCOUNT_SECRET_PATH |
Secret Manager 中存储 Google Cloud 服务账号 JSON 文件的 Secret 的路径。 | 无 | 是 |
CHRONICLE_DATA_TYPE |
用于将数据推送到 Chronicle (Google SecOps) 实例的日志类型。 | 无 | 否 |
Duo 活动
此脚本从 Duo 管理员处提取 Duo 活动日志,并使用 DUO_ACTIVITY 日志类型将其提取到 Google SecOps 中。如需了解详情,请参阅 Duo Admin API。
在 .env.yml 文件中定义以下环境变量。
| 变量名称 | 说明 | 默认值 | Secret |
|---|---|---|---|
CHRONICLE_CUSTOMER_ID |
Chronicle (Google SecOps) 实例客户 ID。 | 无 | 否 |
CHRONICLE_REGION |
Chronicle (Google SecOps) 实例区域。 | us其他有效值: asia-northeast1、asia-south1、asia-southeast1、australia-southeast1、europe、europe-west2、europe-west3、europe-west6、europe-west12、me-central1、me-central2、me-west1 和 northamerica-northeast2。 |
否 |
CHRONICLE_SERVICE_ACCOUNT |
Secret Manager 中存储 Chronicle (Google SecOps) 服务账号 JSON 文件的 Secret 的路径。 | 无 | 是 |
BACKSTORY_API_V1_URL |
Duo Security API 的网址路径。如需详细了解如何下载包含 DUO 管理员 API 集成密钥的 JSON 文件,请参阅 Duo 管理员文档。 | 无 | 是 |
DUO_SECRET_KEY |
从 DUO API 获取日志所需的 DUO 密钥。如需了解如何下载包含 Duo Admin API 集成密钥、Duo Admin API 密钥和 Duo Admin API 主机名的 JSON 文件,请参阅 Duo 管理员文档。 |
无 | 是 |
DUO_INTEGRATION_KEY |
从 DUO API 获取日志所需的 DUO 集成密钥。如需了解如何下载包含 Duo Admin API 集成密钥、Duo Admin API 密钥和 Duo Admin API 主机名的 JSON 文件,请参阅 Duo Admin 文档。 |
无 | 是 |
LOG_FETCH_DURATION |
提取日志的时长。 | 1 | 否 |
CHECKPOINT_FILE_PATH |
存储上次提取的日志的检查点时间戳的文件路径。 | checkpoint.json |
否 |
CHRONICLE_NAMESPACE |
Chronicle (Google SecOps) 日志所标记的命名空间。如需了解 Google SecOps 命名空间,请参阅使用资产命名空间。 | 无 | 否 |
Duo 管理员
该脚本从 Duo 管理员处获取与对各种对象(例如用户账号和安全性)执行的 CRUD 操作相关的事件。这些事件会以 DUO_ADMIN 日志类型提取到 Google SecOps 中。如需了解详情,请参阅 Duo Admin API。
在 .env.yml 文件中定义以下环境变量。
| 变量名称 | 说明 | 默认值 | Secret |
|---|---|---|---|
CHRONICLE_CUSTOMER_ID |
Chronicle (Google SecOps) 实例客户 ID。 | 无 | 否 |
CHRONICLE_REGION |
Chronicle (Google SecOps) 实例区域。 | us其他有效值: asia-northeast1、asia-south1、asia-southeast1、australia-southeast1、europe、europe-west2、europe-west3、europe-west6、europe-west9、europe-west12、me-central1、me-central2、me-west1、northamerica-northeast2 和 southamerica-east1。 |
否 |
CHRONICLE_SERVICE_ACCOUNT |
Secret Manager 中存储 Chronicle (Google SecOps) 服务账号 JSON 文件的 Secret 的路径。 | 无 | 是 |
POLL_INTERVAL |
函数执行以获取更多日志数据的频率间隔(以分钟为单位)。此时长必须与 Cloud Scheduler 作业间隔相同。 | 无 | 否 |
DUO_API_DETAILS |
Secret Manager 中存储 Duo 账号 JSON 文件的 Secret 的路径。此文件包含 Duo 管理员 API 集成密钥、Duo 管理员 API 密钥和 Duo 管理员 API 主机名。例如:
{
"ikey": "abcd123",
"skey": "def345",
"api_host": "abc-123"
}
如需有关下载 JSON 文件的说明,请参阅 Duo 管理员文档。 |
无 | 是 |
CHRONICLE_NAMESPACE |
Chronicle (Google SecOps) 日志所标记的命名空间。如需了解 Google SecOps 命名空间,请参阅使用资产命名空间。 | 无 | 否 |
MISP
此脚本从开源威胁情报和共享平台 MISP 中提取威胁关系信息,并使用 MISP_IOC 日志类型将其注入到 Google SecOps 中。如需了解详情,请参阅 MISP Events API。
在 .env.yml 文件中定义以下环境变量。
| 变量 | 说明 | 默认值 | Secret |
|---|---|---|---|
CHRONICLE_CUSTOMER_ID |
Chronicle (Google SecOps) 实例客户 ID。 | 无 | 否 |
POLL_INTERVAL |
函数执行以获取更多日志数据的频率间隔(以分钟为单位)。此时长必须与 Cloud Scheduler 作业间隔相同。 | 5 | 否 |
CHRONICLE_REGION |
Chronicle (Google SecOps) 实例区域。 | us其他有效值: asia-northeast1、asia-south1、asia-southeast1、australia-southeast1、europe、europe-west2、europe-west3、europe-west6、europe-west9、europe-west12、me-central1、me-central2、me-west1、northamerica-northeast2 和 southamerica-east1。 |
否 |
CHRONICLE_SERVICE_ACCOUNT |
Secret Manager 中存储 Chronicle (Google SecOps) 服务账号 JSON 文件的 Secret 的路径。 | 无 | 是 |
ORG_NAME |
用于过滤活动的组织名称。 | 无 | 否 |
API_KEY |
Secret Manager 中存储用于身份验证的 API 密钥的 Secret 的路径。 | 无 | 是 |
TARGET_SERVER |
您创建的 MISP 实例的 IP 地址。 | 无 | 否 |
CHRONICLE_NAMESPACE |
Chronicle (Google SecOps) 日志所标记的命名空间。如需详细了解 Google SecOps 命名空间,请参阅使用资产命名空间。 | 无 | 否 |
OneLogin 事件
此脚本从 OneLogin 环境获取事件,并使用 ONELOGIN_SSO 日志类型将其提取到 Google SecOps 中。这些事件可提供有关用户账号操作的信息。如需了解详情,请参阅 OneLogin Events API。
在 .env.yml 文件中定义以下环境变量。如需了解 OneLogin 客户端 ID 和客户端 Secret,请参阅使用 API 凭据。
| 变量名称 | 说明 | 默认值 | Secret |
|---|---|---|---|
CHRONICLE_CUSTOMER_ID |
Chronicle (Google SecOps) 实例客户 ID。 | 无 | 否 |
POLL_INTERVAL |
函数执行以获取更多日志数据的频率间隔(以分钟为单位)。此时长必须与 Cloud Scheduler 作业间隔相同。 | 5 | 否 |
CHRONICLE_REGION |
Chronicle (Google SecOps) 实例区域。 | us其他有效值: asia-northeast1、asia-south1、asia-southeast1、australia-southeast1、europe、europe-west2、europe-west3、europe-west6、europe-west9、europe-west12、me-central1、me-central2、me-west1、northamerica-northeast2 和 southamerica-east1。 |
否 |
CHRONICLE_SERVICE_ACCOUNT |
Secret Manager 中存储 Chronicle (Google SecOps) 服务账号 JSON 文件的 Secret 的路径。 | 无 | 是 |
CLIENT_ID |
OneLogin 平台的客户端 ID。 | 无 | 否 |
CLIENT_SECRET |
Secret Manager 中用于存储 OneLogin 平台客户端密钥(用于身份验证)的 Secret 的路径。 | 无 | 是 |
TOKEN_ENDPOINT |
用于请求访问令牌的网址。 | https://api.us.onelogin.com/auth/oauth2/v2/token |
否 |
CHRONICLE_NAMESPACE |
Chronicle (Google SecOps) 日志所标记的命名空间。如需了解 Google SecOps 命名空间,请参阅使用资产命名空间。 | 无 | 否 |
OneLogin 用户上下文
此脚本从 OneLogin 环境获取与用户账号相关的数据,并使用 ONELOGIN_USER_CONTEXT 日志类型将其注入到 Google SecOps 中。如需了解详情,请参阅 OneLogin User API。
在 .env.yml 文件中定义以下环境变量。如需了解 OneLogin 客户端 ID 和客户端 Secret,请参阅使用 API 凭据。
| 变量名称 | 说明 | 默认值 | Secret |
|---|---|---|---|
CHRONICLE_CUSTOMER_ID |
Chronicle (Google SecOps) 实例客户 ID。 | 无 | 否 |
POLL_INTERVAL |
函数执行以获取更多日志数据的频率间隔(以分钟为单位)。此时长必须与 Cloud Scheduler 作业间隔相同。 | 30 | 否 |
CHRONICLE_REGION |
Chronicle (Google SecOps) 实例区域。 | us其他有效值: asia-northeast1、asia-south1、asia-southeast1、australia-southeast1、europe、europe-west2、europe-west3、europe-west6、europe-west9、europe-west12、me-central1、me-central2、me-west1、northamerica-northeast2 和 southamerica-east1。 |
否 |
CHRONICLE_SERVICE_ACCOUNT |
Secret Manager 中存储 Chronicle (Google SecOps) 服务账号 JSON 文件的 Secret 的路径。 | 无 | 是 |
CLIENT_ID |
OneLogin 平台的客户端 ID。 | 无 | 否 |
CLIENT_SECRET |
Secret Manager 中用于存储 OneLogin 平台客户端密钥(用于身份验证)的 Secret 的路径。 | 无 | 是 |
TOKEN_ENDPOINT |
用于请求访问令牌的网址。 | https://api.us.onelogin.com/auth/oauth2/v2/token |
否 |
CHRONICLE_NAMESPACE |
Chronicle (Google SecOps) 日志所标记的命名空间。如需了解 Google SecOps 命名空间,请参阅使用资产命名空间。 | 无 | 否 |
Proofpoint
此脚本会提取特定组织在给定时间段内遭受攻击的目标用户的数据,并将这些数据提取到 Google SecOps 中。如需了解所使用的 API,请参阅 People API。
在 .env.yml 文件中定义以下环境变量。如需详细了解如何获取 Proofpoint 服务正文和 Proofpoint 密钥,请参阅向 Arctic Wolf 提供 Proofpoint TAP 凭据配置指南。
| 变量 | 说明 | 默认 | Secret |
|---|---|---|---|
CHRONICLE_CUSTOMER_ID |
Chronicle (Google SecOps) 实例客户 ID。 | 无 | 否 |
CHRONICLE_REGION |
Chronicle (Google SecOps) 实例区域。 | us其他有效值: asia-northeast1、asia-south1、asia-southeast1、australia-southeast1、europe、europe-west2、europe-west3、europe-west6、europe-west9、europe-west12、me-central1、me-central2、me-west1、northamerica-northeast2 和 southamerica-east1。 |
否 |
CHRONICLE_SERVICE_ACCOUNT |
Secret Manager 中存储 Chronicle (Google SecOps) 服务账号 JSON 文件的 Secret 的路径。 | 无 | 是 |
CHRONICLE_NAMESPACE |
Chronicle (Google SecOps) 日志所标记的命名空间。如需了解 Google SecOps 命名空间,请参阅使用资产命名空间。 | 无 | 否 |
POLL_INTERVAL |
函数执行以获取其他日志数据的频率间隔(以分钟为单位)。此时长必须与 Cloud Scheduler 作业间隔相同。 | 360 | 否 |
CHRONICLE_DATA_TYPE |
用于将数据推送到 Chronicle (Google SecOps) 实例的日志类型。 | 无 | 否 |
PROOFPOINT_SERVER_URL |
Proofpoint Server API 网关的基础网址。 | 无 | 否 |
PROOFPOINT_SERVICE_PRINCIPLE |
Proofpoint 平台的用户名。这通常是服务正文。 | 无 | 否 |
PROOFPOINT_SECRET |
存储 Proofpoint 平台密码的 Secret Manager 的路径(包含版本)。 | 无 | 是 |
PROOFPOINT_RETRIEVAL_RANGE |
一个数字,用于指示应从多少天前开始检索数据。可接受的值为 14、30 和 90。 | 无 | 否 |
Pub/Sub
此脚本从 Pub/Sub 订阅中收集消息,并将数据提取到 Google SecOps。它会持续监控订阅网关,并在出现新消息时提取这些消息。如需了解详情,请参阅以下文档:
此提取脚本要求您在 .env.yml 文件和 Cloud Scheduler 作业中设置变量。
在
.env.yml文件中定义以下环境变量。变量名称 说明 默认值 Secret CHRONICLE_CUSTOMER_IDChronicle (Google SecOps) 实例客户 ID。 无 否 CHRONICLE_REGIONChronicle (Google SecOps) 实例区域。 us
其他有效值:asia-northeast1、asia-south1、asia-southeast1、australia-southeast1、europe、europe-west2、europe-west3、europe-west6、europe-west9、europe-west12、me-central1、me-central2、me-west1、northamerica-northeast2和southamerica-east1。否 CHRONICLE_SERVICE_ACCOUNTSecret Manager 中存储 Chronicle (Google SecOps) 服务账号 JSON 文件的 Secret 的路径。 无 是 CHRONICLE_NAMESPACEChronicle (Google SecOps) 日志所标记的命名空间。如需了解 Google SecOps 命名空间,请参阅使用资产命名空间。 无 否 在 Cloud Scheduler 的消息正文字段中,将以下变量设置为 JSON 格式的字符串。如需详细了解消息正文字段,请参阅创建 Cloud Scheduler。
变量名称 说明 默认值 Secret PROJECT_IDPub/Sub 项目 ID。如需了解项目 ID,请参阅创建和管理项目。 无 否 SUBSCRIPTION_IDPub/Sub 订阅 ID。 无 否 CHRONICLE_DATA_TYPE将数据推送到 Chronicle (Google SecOps) 时提供的日志类型的注入标签。如需查看支持的日志类型列表,请参阅 支持的默认解析器。 无 否 以下是 Message body 字段的 JSON 格式字符串示例。
{ "PROJECT_ID":"projectid-0000","SUBSCRIPTION_ID":"subscription-id","CHRONICLE_DATA_TYPE":"SQUID_PROXY"}
Slack 审核日志
此脚本从 Slack 企业网格组织获取审核日志,并使用 SLACK_AUDIT 日志类型将其提取到 Google SecOps 中。如需了解详情,请参阅 Slack 审核日志 API。
在 .env.yml 文件中定义以下环境变量。
| 变量名称 | 说明 | 默认值 | Secret |
|---|---|---|---|
CHRONICLE_CUSTOMER_ID |
Chronicle (Google SecOps) 实例客户 ID。 | 无 | 否 |
CHRONICLE_REGION |
Chronicle (Google SecOps) 实例区域。 | us其他有效值: asia-northeast1、asia-south1、asia-southeast1、australia-southeast1、europe、europe-west2、europe-west3、europe-west6、europe-west9、europe-west12、me-central1、me-central2、me-west1、northamerica-northeast2 和 southamerica-east1。 |
否 |
CHRONICLE_SERVICE_ACCOUNT |
Secret Manager 中存储 Chronicle (Google SecOps) 服务账号 JSON 文件的 Secret 的路径。 | 无 | 是 |
POLL_INTERVAL |
函数执行以获取更多日志数据的频率间隔(以分钟为单位)。此时长必须与 Cloud Scheduler 作业间隔相同。 | 5 | 否 |
SLACK_ADMIN_TOKEN |
Secret Manager 中存储 Slack 身份验证令牌的 Secret 的路径。 |
无 |
是 |
CHRONICLE_NAMESPACE |
Chronicle (Google SecOps) 日志所标记的命名空间。如需了解 Google SecOps 命名空间,请参阅使用资产命名空间。 | 无 | 否 |
STIX/TAXII
此脚本从 STIX/TAXII 服务器拉取指示器,并将其提取到 Google SecOps 中。如需了解详情,请参阅 STIX/TAXII API 文档。
在 .env.yml 文件中定义以下环境变量。
| 变量名称 | 说明 | 默认 | Secret |
|---|---|---|---|
CHRONICLE_CUSTOMER_ID |
Chronicle (Google SecOps) 实例客户 ID。 | 无 | 否 |
CHRONICLE_REGION |
Chronicle (Google SecOps) 实例区域。 | us其他有效值: asia-northeast1、asia-south1、asia-southeast1、australia-southeast1、europe、europe-west2、europe-west3、europe-west6、europe-west9、europe-west12、me-central1、me-central2、me-west1、northamerica-northeast2 和 southamerica-east1。 |
否 |
CHRONICLE_SERVICE_ACCOUNT |
Secret Manager 中存储 Chronicle (Google SecOps) 服务账号 JSON 文件的 Secret 的路径。 | 无 | 是 |
POLL_INTERVAL |
函数执行的频率间隔(以分钟为单位)。此时长必须与 Cloud Scheduler 作业的时长相同。 | 60 | 否 |
TAXII_VERSION |
要使用的 STIX/TAXII 版本。可用的选项包括 1.1、2.0、2.1 | 无 | 否 |
TAXII_DISCOVERY_URL |
TAXII 服务器的发现网址。 | 无 | 否 |
TAXII_COLLECTION_NAMES |
要从中提取数据的集合 (CSV)。留空可从所有集合中提取数据。 | 无 | 否 |
TAXII_USERNAME |
身份验证所需的用户名(如有)。 | 无 | 否 |
TAXII_PASSWORD_SECRET_PATH |
身份验证所需的密码(如有)。 | 无 | 是 |
Tenable.io
此脚本从 Tenable.io 平台提取资产和漏洞数据,并使用 TENABLE_IO 日志类型将其提取到 Google SecOps 中。如需了解所使用的库,请参阅 pyTenable Python SDK。
在 .env.yml 文件中定义以下环境变量。如需详细了解资产和漏洞数据,请参阅 Tenable.io API:导出资产和导出漏洞。
| 变量 | 说明 | 默认 | Secret |
|---|---|---|---|
CHRONICLE_CUSTOMER_ID |
Chronicle (Google SecOps) 实例客户 ID。 | 无 | 否 |
CHRONICLE_REGION |
Chronicle (Google SecOps) 实例区域。 | us其他有效值: asia-northeast1、asia-south1、asia-southeast1、australia-southeast1、europe、europe-west2、europe-west3、europe-west6、europe-west9、europe-west12、me-central1、me-central2、me-west1、northamerica-northeast2 和 southamerica-east1。 |
否 |
CHRONICLE_SERVICE_ACCOUNT |
Secret Manager 中存储 Chronicle (Google SecOps) 服务账号 JSON 文件的 Secret 的路径。 | 无 | 是 |
CHRONICLE_NAMESPACE |
Chronicle (Google SecOps) 日志所标记的命名空间。如需了解 Google SecOps 命名空间,请参阅使用资产命名空间。 | 无 | 否 |
POLL_INTERVAL |
函数执行以获取其他日志数据的频率间隔(以分钟为单位)。此时长必须与 Cloud Scheduler 作业间隔相同。 | 360 | 否 |
TENABLE_ACCESS_KEY |
用于身份验证的访问密钥。 | 无 | 否 |
TENABLE_SECRET_KEY_PATH |
包含 Tenable Server 密码的 Google Secret Manager 的路径(包括版本)。 | 无 | 是 |
TENABLE_DATA_TYPE |
要在 Google SecOps 中注入的数据类型。可能的值:ASSETS、VULNERABILITIES。 | 资产、漏洞 | 否 |
TENABLE_VULNERABILITY |
您希望导出中包含的漏洞的状态。可能的值:`OPEN`、`REOPENED` 和 `FIXED`。 | 未解决、已重新打开 | 否 |
Trend Micro Cloud App Security
此脚本从 Trend Micro 平台提取安全日志,并将其提取到 Google SecOps 中。如需了解所用 API 的相关信息,请参阅安全日志 API。
在 .env.yml 文件中定义以下环境变量。
| 变量 | 说明 | 默认 | Secret |
|---|---|---|---|
CHRONICLE_CUSTOMER_ID |
Chronicle (Google SecOps) 实例客户 ID。 | 无 | 否 |
CHRONICLE_REGION |
Chronicle (Google SecOps) 实例区域。 | us其他有效值: asia-northeast1、asia-south1、asia-southeast1、australia-southeast1、europe、europe-west2、europe-west3、europe-west6、europe-west9、europe-west12、me-central1、me-central2、me-west1、northamerica-northeast2 和 southamerica-east1。 |
否 |
CHRONICLE_SERVICE_ACCOUNT |
Secret Manager 中存储 Chronicle (Google SecOps) 服务账号 JSON 文件的 Secret 的路径。 | 无 | 是 |
CHRONICLE_NAMESPACE |
Chronicle (Google SecOps) 日志所标记的命名空间。如需了解 Google SecOps 命名空间,请参阅使用资产命名空间。 | 无 | 否 |
POLL_INTERVAL |
函数执行以获取其他日志数据的频率间隔(以分钟为单位)。此时长必须与 Cloud Scheduler 作业间隔相同。 | 10 | 否 |
CHRONICLE_DATA_TYPE |
用于将数据推送到 Chronicle (Google SecOps) 实例的日志类型。 | 无 | 否 |
TREND_MICRO_AUTHENTICATION_TOKEN |
存储 Trend Micro 服务器身份验证令牌的 Google Secret Manager 的路径(包含版本)。 | 无 | 是 |
TREND_MICRO_SERVICE_URL |
Cloud App Security 服务的服务网址。 | 无 | 否 |
TREND_MICRO_SERVICE |
要检索其日志的受保护服务的名称。支持以英文逗号分隔的值。可能的值:exchange、sharepoint、onedrive、dropbox、box、googledrive、gmail、teams、exchangeserver、salesforce_sandbox、salesforce_production、teams_chat。 | exchange, sharepoint, onedrive, dropbox, box, googledrive, gmail, teams, exchangeserver, salesforce_sandbox, salesforce_production, teams_chat | 否 |
TREND_MICRO_EVENT |
要检索其日志的安全事件的类型。支持以英文逗号分隔的值。可能的值:securityrisk、virtualanalyzer、ransomware、dlp。 | securityrisk, virtualanalyzer, ransomware, dlp | 否 |
Trend Micro Vision One
此脚本会检索 Trend Micro Vision One 的审核日志,并以日志类型 TREND_MICRO_VISION_AUDIT 将其提取到 Google SecOps 中。如需了解所用 API 的相关信息,请参阅审核日志 API。
在 .env.yml 文件中定义以下环境变量。
| 变量 | 说明 | 默认 | Secret |
|---|---|---|---|
TREND_MICRO_VISION_AUDIT |
Google SecOps 实例客户 ID。 | 无 | 否 |
CHRONICLE_REGION |
Chronicle (Google SecOps) 实例区域。 | us其他有效值: asia-northeast1、asia-south1、asia-southeast1、australia-southeast1、europe、europe-west2、europe-west3、europe-west6、europe-west9、europe-west12、me-central1、me-central2、me-west1、northamerica-northeast2 和 southamerica-east1。 |
否 |
CHRONICLE_SERVICE_ACCOUNT |
Secret Manager 中存储 Chronicle (Google SecOps) 服务账号 JSON 文件的 Secret 的路径。 | 无 | 是 |
CHRONICLE_NAMESPACE |
Chronicle (Google SecOps) 日志所标记的命名空间。如需了解 Google SecOps 命名空间,请参阅使用资产命名空间。 | 无 | 否 |
POLL_INTERVAL |
函数执行以获取其他日志数据的频率间隔(以分钟为单位)。此时长必须与 Cloud Scheduler 作业间隔相同。 | 10 | 否 |
TREND_MICRO_AUTHENTICATION_TOKEN |
存储 Trend Micro 服务器身份验证令牌的 Google Secret Manager 的路径(包含版本)。 | 无 | 是 |
TREND_MICRO_DOMAIN |
服务端点所在的 Trend Micro Vision One 区域。 | 无 | 否 |
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。