收集 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 相同的租户中创建存储账号
- 在订阅中注册资源提供方
- 管理访问密钥
- 存储账号的贡献者角色(流式传输 API 配置需要此角色)
- 对 Microsoft Defender 门户的访问权限,且至少拥有安全管理员角色
租户中部署了 Microsoft Defender for Office 365:Email* 和 UrlClickEvents 高级搜索表会填充来自 Defender for Office 365 的记录,如果没有部署,则会保持为空
配置 Azure 存储账号
注册 Microsoft.Insights 资源提供程序
Streaming 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 存储空间。
- 存储账号资源 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 专业人士的解答。