使用 API 批量关闭提醒

支持的平台:

本文档介绍了如何使用 Google Security Operations REST API 以编程方式关闭大量提醒。Google 建议在以下情况下使用此方法:在平台中关闭提醒过于耗时。

前提条件

在开始之前,请确保您已执行以下操作:

  • Python 环境:您需要安装 Python 才能运行示例脚本。
  • API 示例:访问 api-samples-python GitHub 代码库
  • 凭据:有效的凭据文件(例如 .chronicle_credentials.json)。
  • jq:用于解析 API 输出的命令行 JSON 处理器。

搜索检测项

首先,您必须确定要关闭的提醒(检测到的提醒)。您可以使用 list_detections.py 脚本查找与特定规则 ID 关联的检测结果。

  1. 找到您的规则 ID 和项目详情。
  2. 运行脚本,将检测结果输出到 JSON 文件。JSON 文件名可以是 detections.jsontemp.json

命令

python -m detect.v1alpha.list_detections \
  --project_id=$PROJECT_ID \
  --project_instance=$PROJECT_INSTANCE \
  --credentials_file=$CREDENTIALS_FILE \
  --rule_id=$RULE_ID \
  > ip_in_abuseipdb_out.json

提取检测 ID

批量更新脚本需要一个纯文本文件,其中每行包含一个检测 ID。上一步创建了一个 JSON 文件,您现在必须将其转换为文本文件。

  1. 使用 jq 从 JSON 数组中提取检测 ID(以 de_ 开头)。
  2. 将输出保存到文本文件。

命令

cat ip_in_abuseipdb_out.json | jq -r '.detections[].id' \
  > ip_in_abuseipdb_out.txt

这会创建一个列出 ID 的文件,例如 de_ad9d2771-a567...

配置反馈(“关闭”操作)

关闭提醒时,“反馈”状态会设置为 CLOSED

  • 默认行为bulk_update_alerts.py 脚本使用硬编码的默认反馈载荷:
    • 状态CLOSED
    • 原因:REASON_MAINTENANCE
    • 评论automated cleanup
  • 自定义:如果您需要更改判决结果(例如更改为 FALSE_POSITIVE)或注释,可以执行以下操作:
    • 直接在 Python 文件中修改 DEFAULT_FEEDBACK 字典。
    • 传递 CLI 参数(例如--verdict="FALSE_POSITIVE")来替换特定值。

执行批量关闭

使用您之前创建的文本文件运行批量更新脚本(请参阅提取检测 ID)。此脚本会针对列表中的每个 ID 调用 UpdateAlert 方法。

命令

python -m detect.v1alpha.bulk_update_alerts \
  --project_id=$PROJECT_ID \
  --project_instance=$PROJECT_INSTANCE \
  --credentials_file=$CREDENTIALS_FILE \
  --alert_ids_file="$(pwd)/ip_in_abuseipdb_out.txt"

验证关闭(可选)

如需验证提醒是否已成功关闭,您可以使用 get_alert.py 模块查看单个提醒的详细信息。

命令

python -m detect.v1alpha.get_alert \
  --project_id=$PROJECT_ID \
  --project_instance=$PROJECT_INSTANCE \
  --credentials_file=$CREDENTIALS_FILE \
  --alert_id=$ALERT_ID

预期结果:JSON 输出包含一个 feedbackSummary 对象,其中显示了 "status": "CLOSED" 和您指定的注释(例如“自动清理”)。

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