收集 Halcyon 反勒索软件日志

支持的平台:

本文档介绍了如何使用 Google Cloud Storage V2 将 Halcyon Anti-Ransomware 日志注入到 Google Security Operations 中。

Halcyon 是一个反勒索软件平台,可利用 AI 检测、防范勒索软件攻击并从中恢复。它会针对勒索软件检测事件、加密尝试和恢复操作生成提醒。解析器会将 JSON 格式的日志字段映射到统一数据模型 (UDM),从而处理文件操作、用户活动和安全结果等事件类型。

准备工作

请确保满足以下前提条件:

  • Google SecOps 实例
  • 已启用 Cloud Storage API 的 GCP 项目
  • 创建和管理 GCS 存储分区及 IAM 政策的权限
  • 对 Halcyon 控制台的特权访问权限,具有日志导出功能

创建 Google Cloud Storage 存储桶

  1. 前往 Google Cloud 控制台
  2. 选择您的项目或创建新项目。
  3. 在导航菜单中,依次前往 Cloud Storage > 存储分区
  4. 点击创建存储分区
  5. 提供以下配置详细信息:

    设置
    为存储桶命名 输入一个全局唯一的名称(例如 halcyon-logs
    位置类型 根据您的需求进行选择(区域级、双区域、多区域)
    位置 选择营业地点(例如 us-central1
    存储类别 标准(建议用于经常访问的日志)
    访问权限控制 均匀(推荐)
    保护工具 可选:启用对象版本控制或保留政策
  6. 点击创建

将 Halcyon 日志导出到 Google Cloud Storage

Halcyon 支持以 JSON 格式导出日志数据。您可以使用以下任一方法将日志传送到 GCS。

选项 A:使用 Halcyon API 导出日志并上传到 GCS

  1. 登录 Halcyon 管理控制台。
  2. 前往设置 > API 访问权限,然后生成具有读取权限的 API 密钥。
  3. 复制并保存 API 密钥
  4. 使用预定脚本或 Cloud Run 函数调用 Halcyon REST API,提取事件日志,并以 JSON 格式将其写入 GCS。

方法 B:配置 SIEM 集成并转发到 GCS

  1. 登录 Halcyon 管理控制台。
  2. 依次前往设置 > 集成 > SIEM
  3. 配置日志导出目的地,以将 JSON 格式的事件写入本地目录或中间存储空间。
  4. 使用 Cloud Run 函数定期将日志上传到您的 GCS 存储桶。

    • 确保导出的文件采用 JSON 格式。
    • 每个文件应包含一条或多条事件记录。

检索 Google SecOps 服务账号

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > Feed
  3. 点击添加新 Feed
  4. 点击配置单个 Feed
  5. 选择 Google Cloud Storage V2 作为来源类型
  6. 选择 Halcyon Anti Ransomware 作为日志类型
  7. 点击获取服务账号。系统会显示一个唯一的服务账号电子邮件地址,例如:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. 复制此电子邮件地址。您将在下一步骤中用到它。

向 Google SecOps 服务账号授予 IAM 权限

  1. 前往 Cloud Storage > 存储分区
  2. 点击您的存储桶名称。
  3. 前往权限标签页。
  4. 点击授予访问权限
  5. 提供以下配置详细信息:
    • 添加主账号:粘贴 Google SecOps 服务账号电子邮件地址。
    • 分配角色:选择 Storage Object Viewer
  6. 点击保存

    • 如果您计划使用删除选项(删除转移的文件),请授予 Storage Object Admin 角色,而不是 Storage Object Viewer 角色。

在 Google SecOps 中配置 Feed 以注入 Halcyon Anti-Ransomware 日志

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 点击配置单个 Feed
  4. Feed 名称字段中,输入 Feed 的名称(例如 Halcyon Anti-Ransomware logs)。
  5. 选择 Google Cloud Storage V2 作为来源类型
  6. 选择 Halcyon Anti Ransomware 作为日志类型
  7. 点击下一步
  8. 为以下输入参数指定值:

    字段
    存储桶 URI gs://halcyon-logs/halcyon/events/
    来源删除选项 根据您的偏好选择删除选项
    文件最长保留天数 默认值为 180 天
    资产命名空间 资源命名空间
    注入标签 要应用于相应 Feed 中事件的标签
    • halcyon-logs 替换为您的实际 GCS 存储桶名称。
    • 请务必在 URI 末尾添加尾随斜杠 (/)。
  9. 点击下一步

  10. 最终确定界面中查看新的 Feed 配置,然后点击提交

UDM 映射表

日志字段 UDM 映射 逻辑
sshd、tty、euid、dataType、filterName、totalOccurrences、occurredAt、count、occurrences.IncorrectPasswords、occurrences.FailedPassword、occurrences.AuthFailure、policyMode、action additional.fields 如果存在,则与根据每个字段创建的标签合并;totalOccurrences、count、occurrences 字段转换为字符串
dnsArtifact.uri network.dns.questions 与包含名称的问题数组合并
asset.id principal.asset.asset_id 串联为“ASSET:” + asset.id
asset.kind principal.asset.attribute.labels 已与根据 asset.kind 创建的 asset_kind_label 合并
asset.name principal.asset.hostname 直接复制值
ipArtifact.ipAddress principal.asset.ip 直接复制值
summary.applicationName principal.application 直接复制值
phost, asset.name principal.hostname 如果存在,则使用 phost 中的值;如果存在,则使用 asset.name 覆盖该值
ipArtifact.ipAddress principal.ip 直接复制值
process.commandLine principal.process.command_line 直接复制值
modifiedFilePath、artifact.filePath、process.artifact.filePath、processes.artifact.filePath principal.process.file.full_path 如果存在,则设置为 modifiedFilePath;如果存在,则被 artifact.filePath 覆盖;如果存在,则被 process.artifact.filePath 覆盖;如果存在,则被 processes.artifact.filePath 覆盖(移除了 processes.artifact.filePath 的引号)
lastOccurredAt principal.process.file.last_seen_time 使用 ISO8601 格式的日期过滤器进行转换
process.artifact.kind、artifact.kind、primaryProcess.artifact.kind principal.process.file.mime_type 如果存在,则为 process.artifact.kind 中的值;如果存在,则被 artifact.kind 覆盖;如果存在,则被 primaryProcess.artifact.kind 覆盖
artifact.sha256、process.artifact.sha256、processes.artifact.sha256 principal.process.file.sha256 如果存在,则为 artifact.sha256 中的值;如果存在,则会被 process.artifact.sha256 覆盖;如果存在,则会被 processes.artifact.sha256 覆盖
process.parentPid principal.process.parent_pid 直接复制值
process.pid principal.process.pid 直接复制值
user_displayname principal.user.user_display_name 直接复制值
用户 principal.user.userid 直接复制值
summary.artifact.filePath target.file.full_path 直接复制值
summary.artifact.sha256 target.file.sha256 直接复制值
primaryProcess.commandLine target.process.command_line 直接复制的值(移除引号后)
primaryProcess.kind target.process.file.mime_type 直接复制值
primaryProcess.parentPid target.process.parent_process.pid 直接复制值
primaryProcess.pid target.process.pid 直接复制值
uid target.user.userid 直接复制值
id target.asset_id 串联为“ASSET:” + id
操作 security_result.action 如果操作是“屏蔽”或“允许”,则采用大写形式
reason.exitCode security_result.action_details 直接复制值
dxpRule、monitoringReason、tenantId security_result.detection_fields 如果存在,则与根据每个字段创建的标签合并;移除了 dxpRule 的反斜杠
dxpRuleType security_result.rule_type 直接复制值
ipArtifact.version security_result.rule_version 直接复制值
msg, reason.cause security_result.summary 如果存在,则使用 msg 中的值;如果存在 reason.cause,则使用 reason.cause 覆盖该值
时间戳 metadata.event_timestamp 使用日期过滤器转换,格式为 MMM dd HH:mm:ss 或 MMM d HH:mm:ss
phost, ipArtifact.ipAddress, asset.name, user, uid, summary.artifact.sha256, summary.artifact.filePath metadata.event_type 如果具有委托人和目标文件,则设置为 FILE_UNCATEGORIZED;如果具有委托人和目标,则设置为 USER_UNCATEGORIZED;如果具有委托人,则设置为 STATUS_UPDATE;否则设置为 GENERIC_EVENT(标志源自来源)
kind metadata.product_event_type 直接复制值
gupid、guid metadata.product_log_id 如果存在,则使用 gupid 中的值;如果存在,则使用 guid 覆盖该值
metadata.product_name 设置为“Halcyon Anti Ransomware”
metadata.vendor_name 设置为“Halcyon”
primaryProcess.kind event.idm.read_only_udm.target.process.file.mime_type 从变更日志映射
primaryProcess.artifact.kind event.idm.read_only_udm.principal.process.file.mime_type 从变更日志映射
processes.artifact.filePath event.idm.read_only_udm.principal.process.file.full_path 从变更日志映射
processes.artifact.sha256 event.idm.read_only_udm.principal.process.file.sha256 从变更日志映射
action event.idm.read_only_udm.additional.fields 从变更日志映射
filterName event.idm.read_only_udm.additional.fields 从变更日志映射
policyMode event.idm.read_only_udm.additional.fields 从变更日志映射
euid event.idm.read_only_udm.additional.fields 从变更日志映射
occurrences.AuthFailure event.idm.read_only_udm.additional.fields 从变更日志映射
occurrences.FailedPassword event.idm.read_only_udm.additional.fields 从变更日志映射
occurredAt event.idm.read_only_udm.additional.fields 从变更日志映射
occurrences.IncorrectPasswords event.idm.read_only_udm.additional.fields 从变更日志映射
guid event.idm.read_only_udm.metadata.product_log_id 从变更日志映射
gupid event.idm.read_only_udm.metadata.product_log_id 从变更日志映射
count event.idm.read_only_udm.additional.fields 从变更日志映射
artifact.filePath event.idm.read_only_udm.principal.process.file.full_path 从变更日志映射
artifact.sha256 event.idm.read_only_udm.principal.process.file.sha256 从变更日志映射
artifact.kind event.idm.read_only_udm.principal.process.file.mime_type 从变更日志映射
monitoringReason event.idm.read_only_udm.security_result.detection_fields 从变更日志映射
dxpRule event.idm.read_only_udm.security_result.detection_fields 从变更日志映射
modifiedFilePath event.idm.read_only_udm.principal.process.file.full_path 从变更日志映射
ipArtifact.version event.idm.read_only_udm.security_result.rule_version 从变更日志映射
ipArtifact.ipAddress event.idm.read_only_udm.principal.ip 从变更日志映射
ipArtifact.ipAddress event.idm.read_only_udm.principal.asset.ip 从变更日志映射
process.parentPid event.idm.read_only_udm.principal.process.parent_pid 从变更日志映射
dxpRuleType event.idm.read_only_udm.security_result.rule_type 从变更日志映射
summary.applicationName event.idm.read_only_udm.principal.application 从变更日志映射
process.pid event.idm.read_only_udm.principal.process.pid 从变更日志映射
reason.exitCode event.idm.read_only_udm.security_result.action_details 从变更日志映射
reason.cause event.idm.read_only_udm.security_result.summary 从变更日志映射
dnsArtifact_uri event.idm.read_only_udm.network.dns.questions 从变更日志映射
uid event.idm.read_only_udm.target.user.userid 从变更日志映射
tty event.idm.read_only_udm.additional.fields 从变更日志映射
sshd event.idm.read_only_udm.additional.fields 从变更日志映射
phost event.idm.read_only_udm.principal.hostname 从变更日志映射
user_displayname event.idm.read_only_udm.principal.user.user_display_name 从变更日志映射
msg event.idm.read_only_udm.security_result.summary 从变更日志映射
timestamp event.idm.read_only_udm.metadata.event_timestamp 从变更日志映射
user event.idm.read_only_udm.principal.user.userid 从变更日志映射

更新日志

查看相应解析器的更改日志

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