收集 Microsoft Graph 活动日志
支持的平台:
Google SecOps
SIEM
概览
此解析器会从 Microsoft Graph 活动日志中提取字段,并将其转换为统一数据模型 (UDM)。它会初始化 UDM 字段、解析载荷、提取时间戳、将各种属性映射到 UDM 字段、处理 IP 地址和端口,并根据是否存在正文和网络信息对事件类型进行分类。
准备工作
- 确保您拥有 Google SecOps 实例。
- 确保您拥有对 Microsoft Entra ID 和 Azure 存储空间账号的特权访问权限。
配置 Azure 存储账号
- 在 Azure 控制台中,搜索存储账号。
- 点击创建。
- 为以下输入参数指定值:
- 订阅:选择相应订阅。
- 资源组:选择资源组。
- 地区:选择区域。
- 性能:选择所需的性能级别(推荐使用“标准”级别)。
- 冗余:选择所需的冗余级别(建议使用 GRS 或 LRS)。
- 存储账号名称:为新存储账号输入名称。
- 点击 Review + create(检查 + 创建)。
- 查看账号概览,然后点击创建。
- 在存储账号概览页面上,选择安全 + 网络中的子菜单 Access keys(访问密钥)。
- 点击 key1 或 key2 旁边的显示
- 点击复制到剪贴板以复制密钥。
- 将密钥保存在安全的位置,以备日后参考。
- 在存储空间账号概览页面中,选择设置中的子菜单 Endpoints。
- 点击复制到剪贴板,复制 Blob 服务端点网址(例如 https://
.blob.core.windows.net )。 - 将端点网址保存在安全的位置,以备日后参考。
将 Microsoft Graph 活动日志导出到存储账号
- 在 Azure 控制台中,搜索 Entra ID。
- 依次选择 Monitoring(监控)> Diagnostic settings(诊断设置)。
- 点击 + 添加诊断设置。
- 为设置指定一个唯一名称(例如 ms-graph-activity)。
- 选择要导出到 Google SecOps 的 MicrosoftGraphActivityLog 类别。
- 在目标位置详细信息下,选择归档到存储账号。
- 选择您在上一步中创建的订阅和存储账号。
- 点击保存。
在 Google SecOps 中配置 Feed 以注入 Microsoft Graph 活动日志
- 依次前往 SIEM 设置 > Feed。
- 点击新增。
- 在Feed 名称字段中,输入 Feed 的名称(例如 Microsoft Graph 活动日志)。
- 选择 Microsoft Azure Blob Storage 作为来源类型。
- 选择 Microsoft Graph 活动日志作为日志类型。
- 点击下一步。
为以下输入参数指定值:
Azure URI:Blob 端点网址。
ENDPOINT_URL/BLOB_NAME
替换以下内容:
ENDPOINT_URL
:blob 端点网址 (https://<storageaccountname>.blob.core.windows.net
)BLOB_NAME
:blob 的名称(例如 insights-logs-)
URI 是:根据日志流配置选择 URI 类型(单个文件 | 目录 | 包含子目录的目录)。
来源删除选项:根据您的偏好选择删除选项。
- 共享密钥:Azure Blob Storage 的访问密钥。
- 资源命名空间:资源命名空间。
- 提取标签:要应用于此 Feed 中的事件的标签。
点击下一步。
在最终确定界面中查看新的 Feed 配置,然后点击提交。
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
callerIpAddress |
principal.asset.ip |
原始日志字段 callerIpAddress 会复制到 UDM 字段。 |
callerIpAddress |
principal.ip |
原始日志字段 callerIpAddress 会复制到 UDM 字段。 |
category |
security_result.category_details |
原始日志字段 category 会复制到 UDM 字段。 |
correlationId |
security_result.detection_fields.value |
将原始日志字段 correlationId 复制到 UDM 字段,其中键为 correlationId 。 |
Level |
security_result.detection_fields.value |
原始日志字段 Level 会转换为字符串,并复制到 UDM 字段(键为 Level )。 |
operationName |
metadata.product_event_type |
原始日志字段 operationName 会复制到 UDM 字段。 |
operationVersion |
additional.fields.value.string_value |
将原始日志字段 operationVersion 复制到 UDM 字段,其中键为 operationVersion 。 |
properties.apiVersion |
metadata.product_version |
原始日志字段 properties.apiVersion 会复制到 UDM 字段。 |
properties.appId |
target.resource.product_object_id |
原始日志字段 properties.appId 会复制到 UDM 字段。 |
properties.atContent |
additional.fields.value.string_value |
将原始日志字段 properties.atContent 复制到 UDM 字段,其中键为 atContent 。 |
properties.clientAuthMethod |
extensions.auth.auth_details |
根据 properties.clientAuthMethod 的值,UDM 字段会设为“公共客户端”(0)、“客户端 ID/客户端密钥”(1) 或“客户端证书”(2)。 |
properties.clientRequestId |
additional.fields.value.string_value |
将原始日志字段 properties.clientRequestId 复制到 UDM 字段,其中键为 clientRequestId 。 |
properties.durationMs |
network.session_duration.seconds |
系统会将原始日志字段 properties.durationMs 从毫秒转换为秒,并复制到 UDM 字段。 |
properties.identityProvider |
security_result.detection_fields.value |
将原始日志字段 properties.identityProvider 复制到 UDM 字段,其中键为 identityProvider 。 |
properties.ipAddress |
principal.asset.ip |
系统会提取原始日志字段 properties.ipAddress 中的 IP 地址,并将其复制到 UDM 字段。 |
properties.ipAddress |
principal.ip |
系统会提取原始日志字段 properties.ipAddress 中的 IP 地址,并将其复制到 UDM 字段。 |
properties.location |
principal.location.name |
原始日志字段 properties.location 会复制到 UDM 字段。 |
properties.operationId |
security_result.detection_fields.value |
将原始日志字段 properties.operationId 复制到 UDM 字段,其中键为 operationId 。 |
properties.requestMethod |
network.http.method |
原始日志字段 properties.requestMethod 会复制到 UDM 字段。 |
properties.requestId |
metadata.product_log_id |
原始日志字段 properties.requestId 会复制到 UDM 字段。 |
properties.responseSizeBytes |
network.received_bytes |
原始日志字段 properties.responseSizeBytes 会转换为无符号整数,并复制到 UDM 字段。 |
properties.responseStatusCode |
network.http.response_code |
原始日志字段 properties.responseStatusCode 会转换为整数并复制到 UDM 字段。 |
properties.roles |
additional.fields.value.string_value |
将原始日志字段 properties.roles 复制到 UDM 字段,其中键为 roles 。 |
properties.scopes |
additional.fields.value.string_value |
将原始日志字段 properties.scopes 复制到 UDM 字段,其中键为 Scopes 。 |
properties.servicePrincipalId |
principal.user.userid |
如果 properties.userId 为空,则原始日志字段 properties.servicePrincipalId 会复制到 UDM 字段。 |
properties.signInActivityId |
network.session_id |
原始日志字段 properties.signInActivityId 会复制到 UDM 字段。 |
properties.tenantId |
metadata.product_deployment_id |
原始日志字段 properties.tenantId 会复制到 UDM 字段。 |
properties.tokenIssuedAt |
additional.fields.value.string_value |
将原始日志字段 properties.tokenIssuedAt 复制到 UDM 字段,其中键为 tokenIssuedAt 。 |
properties.userAgent |
network.http.user_agent |
原始日志字段 properties.userAgent 会复制到 UDM 字段。 |
properties.userId |
principal.user.userid |
原始日志字段 properties.userId 会复制到 UDM 字段。 |
properties.wids |
security_result.detection_fields.value |
将原始日志字段 properties.wids 复制到 UDM 字段,其中键为 wids 。 |
resourceId |
target.resource.attribute.labels.value |
将原始日志字段 resourceId 复制到 UDM 字段,其中键为 Resource ID 。 |
resultSignature |
additional.fields.value.string_value |
将原始日志字段 resultSignature 复制到 UDM 字段,其中键为 resultSignature 。 |
time |
metadata.event_timestamp |
系统会解析原始日志字段 time ,将其转换为时间戳,然后复制到 UDM 字段。如果 has_principal 为 true 且 network.http 不为空,则 UDM 字段 event.idm.read_only_udm.metadata.event_type 设置为“NETWORK_HTTP”;如果 has_principal 为 true 且 network.http 为空,则设置为“STATUS_UPDATE”;否则,设置为“GENERIC_EVENT”。UDM 字段设置为“Microsoft Graph”。UDM 字段设置为“Microsoft”。 |
变化
2024-05-27
- 将“metadata.vendor_name”设置为“Microsoft”,将“metadata.product_name”设置为“Microsoft Graph”。
2024-03-01
- 新创建的解析器。