收集 Microsoft Defender for Office 365 日志
本文档介绍了如何使用 Microsoft Azure Blob Storage V2 设置 Google Security Operations Feed,以收集 Microsoft Defender for Office 365 日志。
Microsoft Defender for Office 365 是一种电子邮件安全解决方案,可保护组织免受钓鱼式攻击、企业电子邮件泄密和恶意软件攻击等高级威胁。来自 Defender for Office 365 的电子邮件事件数据可通过 Microsoft Defender XDR Streaming API 获取,该 API 会将高级搜索事件流式传输到 Azure 存储账号。Google SecOps 直接从存储账号读取流式传输的事件,因此无需中间收集器。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- 对 Microsoft Azure 门户的特权访问权限,包括:
- 在与 Microsoft Defender XDR 相同的租户中创建存储账号
- 在订阅中注册资源提供方
- 管理访问密钥
- 存储账号的 Contributor 角色(流式传输 API 配置需要此角色)
- 拥有至少安全管理员角色的 Microsoft Defender 门户访问权限
租户中部署了 Microsoft Defender for Office 365:Email* 和 UrlClickEvents 高级搜索表会填充来自 Defender for Office 365 的记录,如果没有部署,则会保持为空
配置 Azure 存储账号
注册 Microsoft.Insights 资源提供程序
流式传输 API 需要订阅中持有存储账号的 Microsoft.Insights 资源提供程序:
- 登录 Azure 门户。
- 依次前往订阅 > 您的订阅 > 资源提供方。
- 搜索 Microsoft.Insights。
- 点击注册。
创建存储账号
- 在 Azure 门户中,搜索存储账号。
- 点击 + 创建。
提供以下配置详细信息:
设置 值 订阅 选择您的 Azure 订阅(与 Microsoft Defender XDR 位于同一租户中) 资源组 选择现有组或创建新组 存储账号名称 输入唯一名称(例如 defenderemaillogs)区域 选择区域(例如 East US)性能 标准(推荐) 冗余 GRS(地理位置冗余存储)或 LRS(本地冗余存储) 点击检查 + 创建。
查看账号概览,然后点击创建。
等待部署完成。
允许可信的 Microsoft 服务
- 前往您刚刚创建的存储账号。
- 在安全性 + 网络下,选择网络。
- 在防火墙和虚拟网络标签页的例外情况下,确保已选择允许受信任的服务列表中的 Azure 服务访问此存储账号。
- 点击保存。
获取存储账号凭据
- 在同一存储账号中,选择安全性 + 网络下的访问密钥。
- 点击显示密钥。
- 复制并保存以下内容以供日后使用:
- 存储账号名称:创建时输入的名称(例如
defenderemaillogs) - 密钥 1 或密钥 2:共享访问密钥
- 存储账号名称:创建时输入的名称(例如
获取存储账号资源 ID
- 在同一存储账号的概览页面上,点击 JSON 视图。
复制并保存资源 ID。其格式如下:
/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
配置 Microsoft Defender XDR Streaming API
- 使用至少具有安全管理员权限的账号登录 Microsoft Defender 门户。
- 依次前往设置> Microsoft Defender XDR > 流式传输 API。
- 点击 Add(添加)。
- 在添加新的 Streaming API 设置弹出式菜单中,提供以下配置详细信息:
- 名称:输入设置的名称(例如
secops-email-events)。 - 选择将事件转发到 Azure Storage。
- 存储账号资源 ID:粘贴之前保存的资源 ID。
- 名称:输入设置的名称(例如
- 选择以下活动类型:
- EmailEvents
- EmailAttachmentInfo
- EmailUrlInfo
- EmailPostDeliveryEvents
- UrlClickEvents
- 点击提交。
开始流式传输后,系统会在存储账号中为每个所选事件类型(由 Microsoft 记录)创建一个 Blob 容器。容器名称遵循 insights-logs-advancedhunting-<event type> 模式(例如 insights-logs-advancedhunting-emailevents)。Microsoft 的文档显示了其他表的模式,因此请务必从您的存储空间账号中获取确切的名称。每个 blob 行都以 JSON 格式携带事件,其中包含 time、tenantId、category(带有 AdvancedHunting- 前缀的表名称)以及 properties 对象内的事件字段。
在 Google SecOps 中配置 Feed 以注入 Microsoft Defender for Office 365 日志
为每个事件类型容器创建一个 Feed:
- 依次前往 SIEM 设置 > Feed。
- 点击添加新 Feed。
- 在下一页上,点击配置单个 Feed。
- 在 Feed 名称字段中,输入 Feed 的名称(例如
Defender for Office 365 - EmailEvents)。 - 选择 Microsoft Azure Blob Storage V2 作为来源类型。
- 选择 Microsoft Defender for Office 365 作为日志类型。
- 点击下一步。
为以下输入参数指定值:
- Azure URI:输入包含容器路径的 Blob 服务端点网址:
https://<STORAGE_ACCOUNT_NAME>.blob.core.windows.net/insights-logs-advancedhunting-emailevents/替换以下内容:
<STORAGE_ACCOUNT_NAME>:您的 Azure 存储账号名称。容器段:从存储账号复制的准确容器名称。
来源删除选项:根据您的偏好选择删除选项:
- 永不删除文件:永不从源中删除文件。
- 删除已转移的文件和空目录:在成功提取完成后,从来源中删除文件和空目录。
文件存在时间上限:包含在过去指定天数内修改过的文件(默认值为 180 天)
从身份验证下拉菜单(默认设置为访问/共享密钥)中,选择要使用的方法并提供相应的凭据:
- 访问密钥/共享密钥:在密钥字段中,粘贴之前捕获的存储账号访问密钥(密钥 1 或密钥 2)。
- SAS 令牌:在令牌字段中,粘贴为容器签发的共享访问签名 (SAS) 令牌。
- Azure V2 工作负载身份联合:输入 Microsoft Entra 应用的客户端 ID 和租户 ID。复制 Feed 显示的只读主题 ID,并在 Azure 端向匹配的身份授予对存储账号的访问权限。
资产命名空间:资产命名空间
注入标签:要应用于此 Feed 中事件的标签
点击下一步。
在最终确定界面中查看新的 Feed 配置,然后点击提交。
针对每个剩余的容器(
insights-logs-advancedhunting-emailattachmentinfo、insights-logs-advancedhunting-emailurlinfo、insights-logs-advancedhunting-emailpostdeliveryevents、insights-logs-advancedhunting-urlclickevents)重复上述步骤,使用相同的日志类型和不同的 Feed 名称。
配置 Azure 存储防火墙(如果已启用)
如果您的 Azure 存储账号使用防火墙,则必须添加 Google SecOps IP 范围。
- 在 Azure 门户中,前往您的存储账号。
- 在安全性 + 网络下,选择网络。
- 在防火墙和虚拟网络下,选择从所选虚拟网络和 IP 地址启用。
- 在防火墙部分的地址范围下,点击 + 添加 IP 范围。
- 以 CIDR 表示法添加每个 Google SecOps IP 范围。
如需获取当前的 IP 范围,请执行以下操作:
- 请参阅 IP 许可名单文档
- 或者使用 Feed Management API 以编程方式检索这些信息
点击保存。
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
CompAuth_label |
additional.fields |
已合并 |
DKIM_label |
additional.fields |
已合并 |
DMARC_label |
additional.fields |
已合并 |
SPF_label |
additional.fields |
已合并 |
additional_email_cluster_id |
additional.fields |
已合并 |
additional_fields_label |
additional.fields |
已合并 |
additional_replyto |
additional.fields |
已合并 |
attachment_cnt_label |
additional.fields |
已合并 |
attachment_count_label |
additional.fields |
已合并 |
bulk_complaint_level_label |
additional.fields |
已合并 |
clicked_label |
additional.fields |
已合并 |
confidence_level_label |
additional.fields |
已合并 |
connectors_label |
additional.fields |
已合并 |
delivery_action_label |
additional.fields |
已合并 |
delivery_location_label |
additional.fields |
已合并 |
detection_methods_label |
additional.fields |
已合并 |
email_action_label |
additional.fields |
已合并 |
email_action_policy_guid_label |
additional.fields |
已合并 |
email_action_policy_label |
additional.fields |
已合并 |
email_cluster_id_label |
additional.fields |
已合并 |
email_direction_label |
additional.fields |
已合并 |
email_language_label |
additional.fields |
已合并 |
exchange_transport_rule_label |
additional.fields |
已合并 |
is_first_contact_label |
additional.fields |
已合并 |
org_level_action_label |
additional.fields |
已合并 |
org_level_policy_label |
additional.fields |
已合并 |
phishData_label |
additional.fields |
已合并 |
sender_from_address_label |
additional.fields |
已合并 |
sender_mail_label |
additional.fields |
已合并 |
spamData_label |
additional.fields |
已合并 |
threat_names_label |
additional.fields |
已合并 |
threat_types_label |
additional.fields |
已合并 |
url_chain_list |
additional.fields |
已合并 |
url_count_label |
additional.fields |
已合并 |
url_loc_label |
additional.fields |
已合并 |
url_location_label |
additional.fields |
已合并 |
urlcount_label |
additional.fields |
已合并 |
user_level_action_label |
additional.fields |
已合并 |
user_level_policy_label |
additional.fields |
已合并 |
workload_label |
additional.fields |
已合并 |
_time |
metadata.event_timestamp |
解析为 RFC3339 |
time |
metadata.event_timestamp |
解析为 yyyy-MM-ddTHH:mm:ss.SSSSSSSZ |
event_type |
metadata.event_type |
直接映射 |
_raw.category |
metadata.product_event_type |
直接映射 |
operationName |
metadata.product_event_type |
直接映射 |
_raw.properties.ReportId |
metadata.product_log_id |
直接映射 |
_raw.properties.SenderFromAddress |
network.email.from |
直接映射 |
_raw.properties.InternetMessageId |
network.email.mail_id |
直接映射 |
_raw.properties.Subject |
network.email.subject |
已合并 |
properties.Subject |
network.email.subject |
已合并 |
_raw.properties.RecipientEmailAddress |
network.email.to |
已合并 |
email |
network.email.to |
已映射:^.+@.+$ → email |
properties.EmailSize |
network.received_bytes |
已重命名/已映射 |
_raw.properties.NetworkMessageId |
network.session_id |
直接映射 |
_raw.properties.SenderFromDomain |
principal.administrative_domain |
直接映射 |
_raw.properties.SenderMailFromDomain |
principal.administrative_domain |
直接映射 |
properties.SenderMailFromDomain |
principal.administrative_domain |
直接映射 |
_raw.properties.UrlDomain |
principal.asset.hostname |
直接映射 |
properties.SenderFromDomain |
principal.asset.hostname |
直接映射 |
properties.UrlDomain |
principal.asset.hostname |
直接映射 |
_raw.properties.SenderIPv4 |
principal.asset.ip |
已合并 |
_raw.properties.SenderIPv6 |
principal.asset.ip |
已合并 |
sender_ip |
principal.asset.ip |
已合并 |
_raw.properties.SenderMailFromAddress |
principal.email |
直接映射 |
target.SHA256 |
principal.file.sha256 |
直接映射 |
_raw.properties.UrlDomain |
principal.hostname |
直接映射 |
properties.SenderFromDomain |
principal.hostname |
直接映射 |
properties.UrlDomain |
principal.hostname |
直接映射 |
_raw.properties.SenderIPv4 |
principal.ip |
已合并 |
_raw.properties.SenderIPv6 |
principal.ip |
已合并 |
sender_ip |
principal.ip |
已合并 |
_raw.properties.Url |
principal.url |
直接映射 |
properties.Url |
principal.url |
直接映射 |
_raw.properties.SenderObjectId |
principal.user.product_object_id |
直接映射 |
tenantId |
principal.user.product_object_id |
直接映射 |
_raw.properties.SenderDisplayName |
principal.user.user_display_name |
直接映射 |
properties.SenderDisplayName |
principal.user.user_display_name |
直接映射 |
action |
security_result.action |
已合并 |
properties.Action |
security_result.action_details |
直接映射 |
security_result_category |
security_result.category |
已合并 |
category |
security_result.category_details |
已合并 |
Phish_level |
security_result.confidence |
映射:high → HIGH_CONFIDENCE、medium → MEDIUM_CONFIDENCE、low → LOW_CONFIDENCE |
properties.ActionResult |
security_result.description |
直接映射 |
action_type_label |
security_result.detection_fields |
已合并 |
cribl_pipe_label |
security_result.detection_fields |
已合并 |
email_action_label |
security_result.detection_fields |
已合并 |
email_action_policy_label |
security_result.detection_fields |
已合并 |
email_language_label |
security_result.detection_fields |
已合并 |
emailactpol_guid_label |
security_result.detection_fields |
已合并 |
internet_message_id_label |
security_result.detection_fields |
已合并 |
network_message_id_label |
security_result.detection_fields |
已合并 |
operation_name_label |
security_result.detection_fields |
已合并 |
phish_level_label |
security_result.detection_fields |
已合并 |
recipient_id_label |
security_result.detection_fields |
已合并 |
report_id_label |
security_result.detection_fields |
已合并 |
sender_id_label |
security_result.detection_fields |
已合并 |
tenant_label |
security_result.detection_fields |
已合并 |
transport_rule_guid_label |
security_result.detection_fields |
已合并 |
trigger_label |
security_result.detection_fields |
已合并 |
properties.DeliveryLocation |
security_result.summary |
直接映射 |
properties.ThreatNames |
security_result.threat_name |
直接映射 |
properties.AccountUpn |
target.email |
直接映射 |
_raw.properties.FileName |
target.file.full_path |
直接映射 |
_raw.properties.FileType |
target.file.mime_type |
直接映射 |
properties.FileType |
target.file.mime_type |
直接映射 |
properties.FileName |
target.file.names |
已合并 |
_raw.properties.FileSize |
target.file.size |
已重命名/已映射 |
properties.FileSize |
target.file.size |
已重命名/已映射 |
properties.RecipientDomain |
target.hostname |
直接映射 |
_raw.tenantId |
target.resource.id |
直接映射 |
_raw.properties.RecipientObjectId |
target.user.product_object_id |
直接映射 |
| 不适用 | metadata.event_type |
常量:GENERIC_EVENT |
| 不适用 | metadata.product_name |
常量:MICROSOFT_DEFENDER_MAIL |
| 不适用 | metadata.vendor_name |
常量:MICROSOFT_DEFENDER_MAIL |
| 不适用 | network.direction |
常量:INBOUND |
| 不适用 | security_result.confidence |
常量:HIGH_CONFIDENCE |
更新日志
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。