收集 Azure 应用服务日志

支持的语言:

本文档介绍了如何使用 Azure 存储账号将 Azure APP 服务日志导出到 Google Security Operations。解析器会将原始 JSON 格式的 Azure App Service 日志转换为结构化的统一数据模型 (UDM)。它从原始日志中提取相关字段,执行数据清理和归一化,并将提取的信息映射到相应的 UDM 字段,最终为每个日志条目输出符合 UDM 要求的 JSON 对象。

准备工作

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

  • Google SecOps 实例
  • 有效的 Azure 租户
  • 对 Azure 的特权访问权限

配置 Azure 存储账号

  1. 在 Azure 控制台中,搜索存储账号
  2. 点击 + 创建
  3. 为以下输入参数指定值:
    • 订阅:选择相应订阅。
    • 资源组:选择资源组。
    • 地区:选择相应区域。
    • 性能:选择性能(建议选择“标准”)。
    • 冗余:选择冗余(建议使用 GRS 或 LRS)。
    • 存储账号名称:输入新存储账号的名称。
  4. 点击 Review + create(检查 + 创建)。
  5. 查看账号概览,然后点击创建
  6. 存储账号概览页面上,选择安全性 + 网络中的访问密钥子菜单。
  7. 点击 key1key2 旁边的显示
  8. 点击复制到剪贴板以复制密钥。
  9. 将密钥保存在安全的位置,以供日后使用。
  10. 存储账号概览页面中,选择设置中的终结点子菜单。
  11. 点击复制到剪贴板,复制 Blob 服务端点网址;例如,https://<storageaccountname>.blob.core.windows.net
  12. 将端点网址保存在安全的位置,以供日后使用。

如何为 Azure AD 登录日志配置日志导出

  1. 使用您的特权账号登录 Azure 门户
  2. 前往应用服务,然后选择正在使用的所需应用服务。
  3. 依次选择监控 > App Service 日志
  4. 应用日志记录 (blob) 设为开启
  5. Web 服务日志记录下,选择存储
  6. 选择订阅存储账号
  7. 根据您的需求定义保留期限配额
  8. 详细错误消息设为开启状态。
  9. 失败请求跟踪设为开启
  10. 点击保存

设置 Feed

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

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

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

如需为相应产品系列中的不同日志类型配置多个 Feed,请参阅按产品配置 Feed

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

  1. 依次前往 SIEM 设置> Feed
  2. 点击添加新 Feed
  3. 在下一页上,点击配置单个 Feed
  4. Feed 名称字段中,输入 Feed 的名称,例如 Azure 应用服务日志
  5. 选择 Microsoft Azure Blob Storage 作为来源类型
  6. 选择 Azure 应用服务作为日志类型
  7. 点击下一步
  8. 为以下输入参数指定值:

    • Azure URI:Blob 端点网址。
      • ENDPOINT_URL/BLOB_NAME
        • 替换以下内容:
          • ENDPOINT_URL:Blob 端点网址 (https://<storageaccountname>.blob.core.windows.net)
          • BLOB_NAME:Blob 的名称(例如 <logname>-logs
    • URI is a:根据日志流配置选择 URI 类型(Single file [单个文件] | Directory [目录] | Directory which includes subdirectories [包含子目录的目录])。
    • 源删除选项:根据您的提取偏好设置选择删除选项。

    • 共享密钥:Azure Blob Storage 的访问密钥。

    • 资源命名空间资源命名空间

    • 注入标签:要应用于此 Feed 中事件的标签。

  9. 点击下一步

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

设置来自内容中心的 Feed

为以下字段指定值:

  • Azure URI:Blob 端点网址。
    • ENDPOINT_URL/BLOB_NAME
      • 替换以下内容:
        • ENDPOINT_URL:Blob 端点网址 (https://<storageaccountname>.blob.core.windows.net)
        • BLOB_NAME:Blob 的名称(例如 insights-logs-<logname>
  • URI is a:根据日志流配置选择 URI 类型(Single file [单个文件] | Directory [目录] | Directory which includes subdirectories [包含子目录的目录])。
  • 源删除选项:根据您的提取偏好设置选择删除选项。
  • 共享密钥:Azure Blob Storage 的访问密钥。

高级选项

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

UDM 映射表

日志字段 UDM 映射 逻辑
AppRoleInstance read_only_udm.principal.resource.product_object_id 直接映射
AppRoleName read_only_udm.principal.resource.name 直接映射
AppVersion read_only_udm.principal.resource.attribute.labels.value 直接映射
类别 read_only_udm.metadata.product_event_type 直接映射
CIp read_only_udm.target.asset.ip 直接映射
CIp read_only_udm.target.ip 直接映射
ClientCity read_only_udm.principal.location.city 直接映射
ClientCountryOrRegion read_only_udm.principal.location.country_or_region 直接映射
ClientIP read_only_udm.principal.asset.ip 直接映射
ClientIP read_only_udm.principal.ip 直接映射
ClientStateOrProvince read_only_udm.principal.location.state 直接映射
ClientType read_only_udm.additional.fields.value.string_value 直接映射
ComputerName read_only_udm.principal.asset.hostname 直接映射
ComputerName read_only_udm.principal.hostname 直接映射
Cookie read_only_udm.principal.resource.attribute.labels.value 直接映射
CsBytes read_only_udm.network.sent_bytes 已从 CsBytes 重命名
CsHost read_only_udm.additional.fields.value.string_value 直接映射
CsMethod read_only_udm.network.http.method 直接映射
CsUriQuery read_only_udm.principal.resource.attribute.labels.value 直接映射
CsUriStem read_only_udm.additional.fields.value.string_value 直接映射
CsUriStem read_only_udm.target.url 直接映射
CsUsername read_only_udm.principal.user.user_display_name 直接映射
EventIpAddress read_only_udm.principal.asset.ip 直接映射
EventIpAddress read_only_udm.principal.ip 直接映射
EventPrimaryStampName read_only_udm.additional.fields.value.string_value 直接映射
EventStampName read_only_udm.additional.fields.value.string_value 直接映射
EventStampType read_only_udm.additional.fields.value.string_value 直接映射
主机 read_only_udm.principal.asset.hostname 直接映射
主机 read_only_udm.principal.hostname 直接映射
IKey read_only_udm.target.resource.attribute.labels.value 直接映射
实例 read_only_udm.additional.fields.value.string_value 直接映射
名称 read_only_udm.additional.fields.value.string_value 直接映射
协议 read_only_udm.additional.fields.value.string_value 直接映射
协议 read_only_udm.network.application_protocol 如果协议为 HTTP/1.1,则映射到 HTTP
Referer read_only_udm.network.http.referral_url 直接映射
ResourceGUID read_only_udm.target.resource.product_object_id 已从 ResourceGUID 重命名
SDKVersion read_only_udm.additional.fields.value.string_value 直接映射
SDKVersion read_only_udm.principal.resource.attribute.labels.value 直接映射
SPort read_only_udm.principal.port 已从 SPort 重命名
ScBytes read_only_udm.network.received_bytes 已从 ScBytes 重命名
ScStatus read_only_udm.network.http.response_code 已从 ScStatus 重命名
TimeTaken read_only_udm.additional.fields.value.string_value 直接映射
类型 read_only_udm.additional.fields.value.string_value 直接映射
用户 read_only_udm.principal.user.userid 直接映射
UserAddress read_only_udm.principal.asset.ip 如果 UserAddress 是有效的 IP 地址,则从中提取
UserAddress read_only_udm.principal.ip 如果 UserAddress 是有效的 IP 地址,则从中提取
UserAgent read_only_udm.network.http.user_agent 直接映射
UserDisplayName read_only_udm.principal.user.user_display_name 直接映射
类别 read_only_udm.metadata.product_event_type 直接映射
level read_only_udm.security_result.severity 已大写并重命名(原名称为“level”)
位置 read_only_udm.principal.location.name 直接映射
operationName read_only_udm.additional.fields.value.string_value 直接映射
record.properties.Protocol read_only_udm.additional.fields.value.string_value 直接映射
record.properties.Result read_only_udm.security_result.summary 直接映射
record.time read_only_udm.metadata.event_timestamp 解析为 RFC 3339 时间戳
resourceId read_only_udm.target.resource.attribute.labels.value 直接映射
resourceId read_only_udm.target.resource.product_object_id 已从 resourceId 重命名
read_only_udm.metadata.event_type 根据主账号、目标和协议的存在情况确定。如果存在主账号、目标和 Protocol=HTTP,则设置为 NETWORK_HTTP。如果存在主账号和目标,则设置为 NETWORK_CONNECTION。如果仅存在正文,则设置为 STATUS_UPDATE。否则,请将其设置为 GENERIC_EVENT

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