提取 Microsoft Azure 活动日志

支持的语言:

本文档介绍了将 Microsoft Azure 活动日志 (AZURE_ACTIVITY) 注入到 Google Security Operations 中所需的步骤。

配置存储账号

完成以下步骤以配置存储账号:

  1. 在 Azure 控制台中,搜索存储账号
  2. 点击创建
  3. 选择账号所需的订阅、资源组、区域、性能(建议使用“标准”)和冗余(建议使用 GRS 或 LRS),输入新存储账号的名称。
  4. 点击审核 + 创建,查看账号概览,然后点击创建
  5. 存储账号概览页面上,从窗口左侧导航栏中选择访问密钥
  6. 点击显示密钥,然后记下存储账号的共享密钥。
  7. 从窗口的左侧导航栏中选择端点
  8. 记下 Blob 服务端点。(https://<storageaccountname>.blob.core.windows.net/)

配置 Azure 活动日志记录

完成以下步骤以配置 Azure 活动日志记录:

  1. 在 Azure 控制台中,搜索监控
  2. 点击页面左侧导航中的活动日志链接。
  3. 点击窗口顶部的导出活动日志
  4. 点击添加诊断设置
  5. 选择要导出到 Google SecOps 的所有类别。
  6. 目标位置详细信息下,选择归档到存储账号
  7. 选择您在上一步中创建的订阅和存储账号。
  8. 点击保存

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

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

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

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

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 在下一页上,点击配置单个 Feed
  4. 字段名称输入一个唯一的名称。
  5. 选择 Microsoft Azure Blob Storage 作为来源类型
  6. 选择 Microsoft Azure 活动作为日志类型
  7. 点击下一步
  8. 配置以下必需的输入参数:
    • Azure URI:输入您之前记录的 Blob 服务端点值,后缀为 insights-activity-logs(例如 https://acme-azure-chronicle.blob.core.windows.net/insights-activity-logs)
    • URI is a(URI 是一个):选择目录(包括子目录)
    • 源删除选项:指定是否在转移后删除文件和目录。
    • 共享密钥:输入您之前捕获的共享密钥值。
  9. 点击下一步,然后点击提交

设置来自内容中心的 Feed

为以下字段指定值:

  • Azure URI:输入您之前记录的 Blob 服务端点值,后缀为 insights-activity-logs(例如 https://acme-azure-chronicle.blob.core.windows.net/insights-activity-logs)
  • URI is a(URI 是一个):选择目录(包括子目录)
  • 源删除选项:指定是否在转移后删除文件和目录。
  • 共享密钥:输入您之前捕获的共享密钥值。

高级选项

  • Feed 名称:用于标识 Feed 的预填充值。
  • 来源类型:用于将日志收集到 Google SecOps 中的方法。
  • 资源命名空间:与 Feed 关联的命名空间。
  • 提取标签:应用于相应 Feed 中所有事件的标签。

字段映射参考

此解析器代码首先将大量字段初始化为空字符串,然后执行一系列字符串操作和 JSON 解析操作,以从 Azure 活动日志消息中提取相关信息。最后,它会将提取的数据映射到统一数据模型 (UDM) 字段,对事件类型进行分类,并添加严重程度、正文信息和网络数据等其他详细信息来丰富事件。

UDM 映射表

日志字段 UDM 映射 逻辑
类别 read_only_udm.security_result.category_details 直接从原始日志中的“category”字段映射。
callerIpAddress read_only_udm.principal.asset.ipread_only_udm.principal.ip 直接从原始日志中的“callerIpAddress”字段映射。
correlationId read_only_udm.security_result.detection_fields.correlationId 直接从原始日志中的“correlationId”字段映射。
data.callerIpAddress read_only_udm.principal.asset.ipread_only_udm.principal.ip 直接从原始日志中“data”对象内的“callerIpAddress”字段映射。
data.correlationId read_only_udm.security_result.detection_fields.correlationId 直接从原始日志中“data”对象内的“correlationId”字段映射。
data.DeploymentUnit read_only_udm.target.resource.name 直接从原始日志中“data”对象内的“DeploymentUnit”字段映射。
data.details read_only_udm.metadata.description 直接从原始日志中“data”对象内的“details”字段映射,仅当“details”字段不是“Unknown”时才进行映射。
data.entity read_only_udm.additional.fields.entity 直接从原始日志中“data”对象内的“entity”字段映射。
data.EventName read_only_udm.metadata.product_event_type 直接从原始日志中“data”对象内的“EventName”字段映射。
data.hierarchy read_only_udm.additional.fields.hierarchy 直接从原始日志中“data”对象的“hierarchy”字段映射。
data.identity.authorization.action read_only_udm.security_result.detection_fields.action 直接从原始日志中“身份”对象的“授权”对象的“操作”字段映射。
data.identity.authorization.evidence.principalId read_only_udm.principal.user.product_object_idread_only_udm.principal.resource.product_object_idread_only_udm.principal.group.product_object_id 直接从原始日志中“identity”对象的“authorization”对象的“evidence”对象内的“principalId”字段映射。它映射到的具体 UDM 字段取决于“principalType”字段的值。如果“principalType”为“User”或“ServicePrincipal”,则映射到 principal.user.product_object_id。如果“principalType”为“Group”,则映射到 principal.group.product_object_id。如果“principalType”为“ServicePrincipal”,则映射到 principal.resource.product_object_id
data.identity.authorization.evidence.principalType read_only_udm.principal.resource.resource_subtype 直接从原始日志中“identity”对象的“authorization”对象的“evidence”对象内的“principalType”字段映射。
data.identity.authorization.evidence.role read_only_udm.principal.user.role_name 直接从原始日志中“身份”对象的“授权”对象的“证据”对象的“角色”字段映射。
data.identity.authorization.evidence.roleAssignmentId read_only_udm.principal.resource.attribute.labels.roleAssignmentId 直接从原始日志中“身份”对象的“授权”对象的“证据”对象内的“roleAssignmentId”字段映射。
data.identity.authorization.evidence.roleAssignmentScope read_only_udm.principal.resource.attribute.labels.roleAssignmentScope 直接从原始日志中“身份”对象的“授权”对象的“证据”对象的“roleAssignmentScope”字段映射。
data.identity.authorization.evidence.roleDefinitionId read_only_udm.principal.resource.attribute.labels.roleDefinitionId 直接从原始日志中“身份”对象的“授权”对象的“证据”对象内的“roleDefinitionId”字段映射。
data.identity.authorization.scope read_only_udm.security_result.detection_fields.scope 直接从原始日志中“身份”对象的“授权”对象的“范围”字段映射。
data.identity.claims.aio read_only_udm.security_result.detection_fields.aio 直接从原始日志中“身份”对象的“声明”对象的“aio”字段映射。
data.identity.claims.appid read_only_udm.security_result.detection_fields.appid 直接从原始日志中“identity”对象的“claims”对象的“appid”字段映射。
data.identity.claims.appidacr read_only_udm.security_result.detection_fields.appidacr 直接从原始日志中“身份”对象的“声明”对象内的“appidacr”字段映射。
data.identity.claims.aud read_only_udm.security_result.detection_fields.aud 直接从原始日志中“identity”对象的“claims”对象的“aud”字段映射。
data.identity.claims.exp read_only_udm.security_result.detection_fields.exp 直接从原始日志中“身份”对象的“声明”对象的“exp”字段映射。
data.identity.claims.http://schemas.microsoft.com/identity/claims/identityprovider read_only_udm.security_result.detection_fields.identityprovider 直接从原始日志的“identity”对象的“claims”对象中的“http://schemas.microsoft.com/identity/claims/identityprovider”字段映射而来。
data.identity.claims.http://schemas.microsoft.com/identity/claims/objectidentifier read_only_udm.security_result.detection_fields.objectidentifier 直接从原始日志中“identity”对象的“claims”对象内的“http://schemas.microsoft.com/identity/claims/objectidentifier”字段映射而来。
data.identity.claims.http://schemas.microsoft.com/identity/claims/tenantid read_only_udm.security_result.detection_fields.tenantid 直接从原始日志的“identity”对象的“claims”对象中的“http://schemas.microsoft.com/identity/claims/tenantid”字段映射。
data.identity.claims.http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier read_only_udm.security_result.detection_fields.nameidentifier 直接从原始日志中“身份”对象的“声明”对象内的“http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier”字段映射而来。
data.identity.claims.iat read_only_udm.security_result.detection_fields.iat 直接从原始日志中“identity”对象的“claims”对象内的“iat”字段映射。
data.identity.claims.iss read_only_udm.security_result.detection_fields.iss 直接从原始日志中“identity”对象的“claims”对象内的“iss”字段映射。
data.identity.claims.nbf read_only_udm.security_result.detection_fields.nbf 直接从原始日志中“identity”对象的“claims”对象内的“nbf”字段映射。
data.identity.claims.rh read_only_udm.security_result.detection_fields.rh 直接从原始日志中“identity”对象的“claims”对象内的“rh”字段映射。
data.identity.claims.uti read_only_udm.security_result.detection_fields.uti 直接从原始日志中“identity”对象的“claims”对象的“uti”字段映射。
data.identity.claims.ver read_only_udm.security_result.detection_fields.ver 直接从原始日志中“identity”对象的“claims”对象内的“ver”字段映射。
data.identity.claims.xms_tcdt read_only_udm.security_result.detection_fields.xms_tcdt 直接从原始日志中“身份”对象的“声明”对象内的“xms_tcdt”字段映射。
data.identity.UserName read_only_udm.principal.user.user_display_name 直接从原始日志中“identity”对象内的“UserName”字段映射。
data.level read_only_udm.security_result.severityread_only_udm.security_result.severity_details 直接从原始日志中“data”对象内的“level”字段映射。“level”字段还用于确定 severity 字段的值。如果“level”为“Information”或“Informational”,则 severity 设置为“INFORMATIONAL”。如果“level”为“Warning”,则 severity 设置为“MEDIUM”。如果“level”为“Error”,则将 severity 设置为“ERROR”。如果“level”为“Critical”,则将 severity 设置为“CRITICAL”。
data.location read_only_udm.target.location.name 直接从原始日志中“数据”对象内的“位置”字段映射。
data.operationName read_only_udm.metadata.product_event_type 直接从原始日志中“data”对象内的“operationName”字段映射。
data.properties.EventChannel read_only_udm.additional.fields.properties EventChannel 直接从原始日志中“data”对象的“properties”对象内的“EventChannel”字段映射。
data.properties.EventSource read_only_udm.additional.fields.properties EventSource 直接从原始日志的“data”对象的“properties”对象中的“EventSource”字段映射。
data.properties.EventId read_only_udm.metadata.product_log_id 直接从原始日志中“data”对象的“properties”对象内的“EventId”字段映射。
data.properties.eventProperties.cause read_only_udm.security_result.detection_fields.cause 直接从原始日志的“data”对象的“properties”对象的“eventProperties”对象中的“cause”字段映射。
data.properties.eventProperties.clientIPAddress read_only_udm.principal.asset.ipread_only_udm.principal.ip 直接从原始日志的“data”对象的“properties”对象的“eventProperties”对象中的“clientIPAddress”字段映射。
data.properties.eventProperties.compromisedHost read_only_udm.principal.asset.hostnameread_only_udm.principal.hostname 直接从原始日志的“data”对象的“properties”对象的“eventProperties”对象中的“compromisedHost”字段映射。
data.properties.eventProperties.currentHealthStatus read_only_udm.security_result.detection_fields.currentHealthStatus 直接从原始日志中“data”对象的“properties”对象的“eventProperties”对象内的“currentHealthStatus”字段映射。
data.properties.eventProperties.previousHealthStatus read_only_udm.security_result.detection_fields.previousHealthStatus 直接从原始日志中“data”对象的“properties”对象的“eventProperties”对象内的“previousHealthStatus”字段映射。
data.properties.eventProperties.type read_only_udm.security_result.detection_fields.type 直接从原始日志的“data”对象的“properties”对象的“eventProperties”对象中的“type”字段映射。
data.properties.eventProperties.User read_only_udm.principal.user.userid 直接从原始日志中“data”对象的“properties”对象的“eventProperties”对象内的“User”字段映射。
data.properties.eventProperties.userName read_only_udm.principal.user.user_display_name 直接从原始日志的“data”对象的“properties”对象的“eventProperties”对象中的“userName”字段映射,并移除了“SECURE\”前缀。
data.properties.ipAddress read_only_udm.principal.asset.ipread_only_udm.principal.ip 直接从原始日志中“data”对象的“properties”对象内的“ipAddress”字段映射。
data.properties.legacyChannels read_only_udm.security_result.detection_fields.legacyChannels 直接从原始日志中“data”对象的“properties”对象内的“legacyChannels”字段映射。
data.properties.legacyEventDataId read_only_udm.security_result.detection_fields.legacyEventDataId 直接从原始日志中“data”对象的“properties”对象内的“legacyEventDataId”字段映射。
data.properties.legacyResourceId read_only_udm.security_result.detection_fields.legacyResourceId 直接从原始日志中“data”对象的“properties”对象内的“legacyResourceId”字段映射。
data.properties.legacyResourceGroup read_only_udm.security_result.detection_fields.legacyResourceGroup 直接从原始日志中“data”对象的“properties”对象内的“legacyResourceGroup”字段映射。
data.properties.legacyResourceProviderName read_only_udm.security_result.detection_fields.legacyResourceProviderName 直接从原始日志中“data”对象的“properties”对象内的“legacyResourceProviderName”字段映射。
data.properties.legacyResourceType read_only_udm.security_result.detection_fields.legacyResourceType 直接从原始日志中“data”对象的“properties”对象内的“legacyResourceType”字段映射。
data.properties.legacySubscriptionId read_only_udm.security_result.detection_fields.legacySubscriptionId 直接从原始日志中“data”对象的“properties”对象内的“legacySubscriptionId”字段映射。
data.properties.operationId read_only_udm.security_result.detection_fields.operationId 直接从原始日志中“data”对象的“properties”对象内的“operationId”字段映射。
data.properties.result read_only_udm.security_result.action_details 直接从原始日志中“data”对象的“properties”对象的“result”字段映射。
data.properties.statusCode read_only_udm.network.http.response_code 直接从原始日志中“data”对象的“properties”对象内的“statusCode”字段映射。
data.properties.suspiciousCommandLine read_only_udm.target.process.command_line 直接从原始日志中“data”对象的“properties”对象内的“suspiciousCommandLine”字段映射。
data.properties.suspiciousProcess read_only_udm.target.process.file.full_path 直接从原始日志中“data”对象的“properties”对象内的“suspiciousProcess”字段映射。
data.properties.suspiciousProcessId read_only_udm.target.process.pid 直接从原始日志中“data”对象的“properties”对象内的“suspiciousProcessId”字段映射。
data.properties.tlsVersion read_only_udm.network.tls.version 直接从原始日志中“data”对象的“properties”对象内的“tlsVersion”字段映射。
data.properties.userAgent read_only_udm.network.http.user_agentread_only_udm.network.http.parsed_user_agent 直接从原始日志中“data”对象的“properties”对象内的“userAgent”字段映射。
data.properties.userAgentHeader read_only_udm.network.http.user_agentread_only_udm.network.http.parsed_user_agent 直接从原始日志中“data”对象的“properties”对象内的“userAgentHeader”字段映射。
data.properties.userId read_only_udm.target.user.product_object_id 直接从原始日志中“data”对象的“properties”对象内的“userId”字段映射。
data.ReleaseVersion read_only_udm.metadata.product_version 直接从原始日志中“data”对象的“ReleaseVersion”字段映射。
data.resourceId read_only_udm.target.resource.name 直接从原始日志中“data”对象内的“resourceId”字段映射。
data.resourceType read_only_udm.additional.fields.resourceType 直接从原始日志中“data”对象内的“resourceType”字段映射。
data.resultDescription read_only_udm.metadata.description 直接从原始日志中“data”对象内的“resultDescription”字段映射。
data.resultSignature read_only_udm.additional.fields.resultSignature 直接从原始日志中“data”对象内的“resultSignature”字段映射。
data.resultType read_only_udm.security_result.action_detailsread_only_udm.additional.fields.resultType 直接从原始日志中“data”对象内的“resultType”字段映射。
data.RoleLocation read_only_udm.target.location.name 直接从原始日志中“data”对象内的“RoleLocation”字段映射。
data.time read_only_udm.metadata.event_timestamp 系统会解析原始日志中“data”对象内的“time”字段,以提取时间戳,然后将其映射到 event_timestamp
data.uri read_only_udm.network.http.referral_url 直接从原始日志中“data”对象内的“uri”字段映射。
read_only_udm.extensions.auth.mechanism INTERACTIVE 如果原始日志中“data”对象的“properties”对象内的“isInteractive”字段为“true”,则设置为“INTERACTIVE”。否则,该值会设置为“MECHANISM_OTHER”。
read_only_udm.extensions.auth.type MACHINE 如果原始日志中的“category”字段为“NonInteractiveUserSignInLogs”“ManagedIdentitySignInLogs”或“ServicePrincipalSignInLogs”,则设置为“MACHINE”。
read_only_udm.metadata.log_type AZURE_ACTIVITY 硬编码为“AZURE_ACTIVITY”。
read_only_udm.metadata.vendor_name Microsoft 硬编码为“Microsoft”。
read_only_udm.principal.platform WINDOWSMACLINUXANDROID 根据“properties.test.deviceDetail.operatingSystem”字段的值确定。如果包含“Win”,则将 platform 设置为“WINDOWS”。如果包含“Mac”,则将 platform 设置为“MAC”。如果包含“Lin”,则将 platform 设置为“LINUX”。如果包含“Android”,则将 platform 设置为“ANDROID”。
read_only_udm.principal.resource.type SERVICE_ACCOUNTUNSPECIFIED 根据“identity.authorization.evidence.principalType”字段的值确定。如果它是“ServicePrincipal”,则 type 会设置为“SERVICE_ACCOUNT”。否则,该值会设置为“UNSPECIFIED”。
read_only_udm.security_result.action ALLOWBLOCKUNKNOWN_ACTION 根据“resultType”“status_errorcode”和“statusText”字段的值确定。如果“resultType”是“Success”“success”“Succeeded”“Started”“Resolved”“Active”“Updated”“Start”“Accept”“Accepted”“0”之一,或者“status_errorcode”为 0,或者“statusText”为“Success”,则将 action 设置为“ALLOW”。如果“resultType”为“Failure”或“Failed”,或者“status_errorcode”不为空,或者“resultType”不为空,则将 action 设置为“BLOCK”。否则,该值会设置为“UNKNOWN_ACTION”。
read_only_udm.target.cloud.environment MICROSOFT_AZURE 硬编码为“MICROSOFT_AZURE”。