收集 Atlassian Bitbucket 日志

支持的平台:

概览

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

准备工作

  • 确保您拥有 Google SecOps 实例。
  • 确保您对其中的代码库拥有特权访问权限。

在 Google SecOps 中配置 Feed 以注入 Atlassian Bitbucket 日志

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

为该网站钩子 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 地址和目标 IP 地址/主机名/用户的存在情况,更改为“NETWORK_UNCATEGORIZED”“STATUS_UPDATE”或“USER_UNCATEGORIZED”。从 event.type 字段复制。设置为“Atlassian Bitbucket”。初始设置为“Atlassian Bitbucket”。可被 agentRealtimeInfo.accountNameagentDetectionInfo.accountName 替换。
timestamp metadata.event_timestamptimestamp 直接映射。

变化

2023-06-12

  • 新创建的解析器。