收集 Atlassian Bitbucket 日志

支持的语言:

概览

此解析器可从 Atlassian Bitbucket JSON 日志中提取字段,并将其映射到 UDM。它可处理各种日志格式,并根据 IP 地址、用户 ID 和资产信息等可用字段填充正文或目标实体。它还会根据网络和用户活动对事件进行分类,并使用安全发现结果(如果有)来丰富数据。在填充字段时,解析器会优先考虑 agentRealtimeInfo 而不是 agentDetectionInfo

准备工作

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

  • Google SecOps 实例。
  • 对代码库内的制品拥有特权访问权限。

设置 Feed

您可以通过两种不同的入口点在 Google SecOps 平台中设置 Feed:

  • SIEM 设置 > Feed
  • 内容中心 > 内容包

通过“SIEM 设置”>“Feed”设置 Feed

如需配置 Feed,请按以下步骤操作:

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 在下一页上,点击配置单个 Feed
  4. Feed 名称字段中,输入 Feed 的名称(例如 Atlassian Bitbucket 日志)。
  5. 选择 Webhook 作为来源类型
  6. 选择 Atlassian Bitbucket 作为日志类型
  7. 点击下一步
  8. 可选:为以下输入参数指定值:
    • 拆分分隔符:用于分隔日志行的分隔符,例如 \n
    • 资源命名空间资源命名空间
    • 注入标签:应用于此 Feed 中事件的标签。
  9. 点击下一步
  10. 最终确定界面中检查 Feed 配置,然后点击提交
  11. 点击生成密钥,生成用于对此 Feed 进行身份验证的密钥。
  12. 复制并存储密钥。您将无法再次查看此密钥。如有需要,您可以重新生成新的 Secret 密钥,但此操作会使之前的 Secret 密钥失效。
  13. 详情标签页中,从端点信息字段复制 Feed 端点网址。您需要在客户端应用中指定此端点网址。
  14. 点击完成

设置来自内容中心的 Feed

为以下字段指定值:

  • 拆分分隔符:用于分隔日志行的分隔符,例如 \n

高级选项

  • 资源命名空间资源命名空间
  • 注入标签:应用于此 Feed 中事件的标签。
  • Feed 名称:用于标识 Feed 的预填充值。
  • 来源类型:用于将日志收集到 Google SecOps 中的方法。

  • 点击生成密钥,生成用于对此 Feed 进行身份验证的密钥。

  • 复制并存储密钥。您将无法再次查看此密钥。如有需要,您可以重新生成新的 Secret 密钥,但此操作会使之前的 Secret 密钥失效。

  • 详情标签页中,从端点信息字段复制 Feed 端点网址。您需要在客户端应用中指定此端点网址。

为 Webhook Feed 创建 API 密钥

  1. 依次前往 Google Cloud 控制台 > 凭据

    转到“凭证”页面

  2. 点击创建凭据,然后选择 API 密钥

  3. 将 API 密钥访问权限限制为 Google Security Operations API

指定端点网址

  1. 在客户端应用中,指定 webhook Feed 中提供的 HTTPS 端点网址。
  2. 通过在自定义标头中指定 API 密钥和密钥来启用身份验证,格式如下:

    X-goog-api-key = API_KEY
    X-Webhook-Access-Key = SECRET
    

    建议:将 API 密钥指定为标头,而不是在网址中指定。如果您的 Webhook 客户端不支持自定义标头,您可以使用以下格式的查询参数指定 API 密钥和密钥:

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

替换以下内容:

  • ENDPOINT_URL:Feed 端点网址。
  • API_KEY:用于向 Google Security Operations 进行身份验证的 API 密钥。
  • SECRET:您生成的用于验证 Feed 的密钥。

在 Atlassian Bitbucket 中创建 Webhook

  1. 在 Bitbucket 中,前往代码库设置。
  2. 点击工作流下的 Webhook
  3. 点击 Add webhook
  4. 配置以下字段:
    • 标题:提供描述性名称(例如 Google SecOps)。
    • 网址:输入 Google SecOps API 端点网址。
    • 状态:设置为有效
    • 触发条件:选择相关事件。
  5. 点击保存

UDM 映射表

日志字段 UDM 映射 逻辑
agentComputerName principal.hostname agentRealtimeInfo.agentComputerName 填充。
agentDetectionInfo.accountId metadata.product_deployment_id 已转换为字符串。如果不存在 agentRealtimeInfo.accountId,则使用此元素。
agentDetectionInfo.accountName metadata.product_name 如果不存在 agentRealtimeInfo.accountName,则使用此元素。
agentDetectionInfo.agentDomain principal.administrative_domain 直接映射。
agentDetectionInfo.agentIpV4 target.ip 从 JSON 数组中提取并合并到 target.ip 字段中。
agentDetectionInfo.agentIpV6 principal.ip 从 JSON 数组中提取并合并到 principal.ip 字段中。
agentDetectionInfo.agentLastLoggedInUserName principal.user.userid 经过解析以提取用户 ID 和网域(如果有)。如果没有网域,则直接映射到 principal.user.userid
agentDetectionInfo.agentOsName principal.platform_versionprincipal.asset.platform_software.platform_version 如果不存在 agentRealtimeInfo.agentOsName,则使用此元素。
agentDetectionInfo.agentOsRevision principal.platform_patch_levelprincipal.asset.platform_software.platform_patch_level 如果不存在 agentRealtimeInfo.agentOsRevision,则使用此元素。
agentDetectionInfo.agentRegisteredAt principal.asset.first_discover_time 解析为 ISO8601 时间戳。
agentDetectionInfo.agentUuid principal.asset_idprincipal.asset.asset_id 如果不存在 agentRealtimeInfo.agentUuid,则使用此元素。以“agentUuid:”为前缀。
agentDetectionInfo.agentVersion metadata.product_version 如果不存在 agentRealtimeInfo.agentVersion,则使用此元素。
agentDetectionInfo.externalIp target.ip 直接映射。
agentDetectionInfo.groupId principal.user.group_identifiers 如果该字段不为空或不为“-”,则合并到该字段中。如果不存在 agentRealtimeInfo.groupId,则使用该字段。
agentDetectionInfo.groupName principal.group.group_display_name 如果不存在 agentRealtimeInfo.groupName,则使用此元素。
agentDetectionInfo.siteId additional.fields 以键值对的形式添加,键为“agentDetectionInfo.siteId”。如果不存在 agentRealtimeInfo.siteId,则使用此元素。
agentDetectionInfo.siteName additional.fields 以键值对的形式添加,键为“agentDetectionInfo.siteName”。如果不存在 agentRealtimeInfo.siteName,则使用此元素。
agentRealtimeInfo.accountId metadata.product_deployment_id 已转换为字符串。
agentRealtimeInfo.accountName metadata.product_name 直接映射。
agentRealtimeInfo.agentComputerName principal.hostnameprincipal.asset.hostname 直接映射。
agentRealtimeInfo.agentId principal.asset_idprincipal.asset.asset_id 以“agentId:”为前缀。
agentRealtimeInfo.agentMachineType principal.asset.category 直接映射。
agentRealtimeInfo.agentOsName principal.platform_versionprincipal.asset.platform_software.platform_version 直接映射。
agentRealtimeInfo.agentOsRevision principal.platform_patch_levelprincipal.asset.platform_software.platform_patch_level 直接映射。
agentRealtimeInfo.agentOsType principal.asset.platform_software.platformprincipal.platform 根据值映射到 WINDOWS、MAC 或 LINUX。
agentRealtimeInfo.agentUuid principal.asset_idprincipal.asset.asset_id 直接映射。以“agentUuid:”为前缀。
agentRealtimeInfo.agentVersion metadata.product_version 直接映射。
agentRealtimeInfo.groupId principal.user.group_identifiers 如果该字段不为空或不包含“-”,则合并到该字段中。
agentRealtimeInfo.groupName principal.group.group_display_name 直接映射。
agentRealtimeInfo.siteId additional.fields 以键值对的形式添加,键为“agentDetectionInfo.siteId”。
agentRealtimeInfo.siteName additional.fields 以键值对的形式添加,键为“agentDetectionInfo.siteName”。
associatedItems.0.id principal.resource.id 直接映射。
associatedItems.0.name principal.resource.name 直接映射。
associatedItems.0.typeName principal.resource.resource_subtype 直接映射。
authorAccountId principal.user.userid 直接映射。
category metadata.product_event_type 直接映射。如果不存在,且消息包含“威胁”,则设置为“威胁”。
id metadata.product_log_id 已转换为字符串。
indicators.0.description security_result.description 直接映射。
objectItem.id additional.fields 以键值对的形式添加,键为“objectItem.id”。
objectItem.name additional.fields 以键值对的形式添加,键为“objectItem.name”。
objectItem.typeName additional.fields 以键值对的形式添加,键为“objectItem.typeName”。
remoteAddress principal.ip 直接映射。
summary security_result.summary 直接映射。
threatInfo.classification security_result.category_details 直接映射。还用于确定 security_result.category
threatInfo.collectionId metadata.ingestion_labels 以键值对的形式添加,键为“alert_aggregation_value”。
threatInfo.confidenceLevel security_result.confidence_details 直接映射。还用于确定 security_result.confidence
threatInfo.createdAt metadata.collected_timestamp 解析为 ISO8601 时间戳。
threatInfo.detectionEngines metadata.ingestion_labels 每个元素的 keytitle 都会添加为键值对。
threatInfo.fileExtensionType target.process.file.mime_type 直接映射。
threatInfo.filePath target.file.full_path 直接映射。
threatInfo.fileSize target.file.size 转换为字符串,然后再转换为无符号整数。
threatInfo.identifiedAt event_timestamp 解析为 ISO8601 时间戳。
threatInfo.maliciousProcessArguments principal.process.command_line 直接映射。如果不存在 summary,则也会在 security_result.summary 字段中使用。
threatInfo.md5 target.file.md5 直接映射。
threatInfo.originatorProcess target.process.parent_process.file.full_path 直接映射。如果不存在 summary,则也会在 security_result.summary 字段中使用。
threatInfo.processUser target.user.userid 直接映射。
threatInfo.sha1 target.file.sha1 直接映射。
threatInfo.sha256 target.file.sha256 直接映射。
threatInfo.storyline principal.process.product_specific_process_id 以“ID:”为前缀。
threatInfo.threatId security_result.threat_id 直接映射。
threatInfo.threatName security_result.threat_nametarget.file.names 直接映射并合并到 target.file.names 中。如果不存在 summary,则还用于 security_result.summary 字段。最初设置为“GENERIC_EVENT”。根据正文和目标 IP/主机名/用户的存在情况,更改为“NETWORK_UNCATEGORIZED”“STATUS_UPDATE”或“USER_UNCATEGORIZED”。从 event.type 字段复制。设置为“Atlassian Bitbucket”。最初设置为“Atlassian Bitbucket”。可被 agentRealtimeInfo.accountNameagentDetectionInfo.accountName 替换。
timestamp metadata.event_timestamptimestamp 直接映射。

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