收集 iOS 设备上的 Microsoft Defender for Endpoint 日志

支持的平台:

本文档介绍了如何通过使用 Microsoft Azure Blob Storage V2 设置 Google SecOps Feed 来收集 Microsoft Defender for Endpoint on iOS 日志。

iOS 版 Microsoft Defender for Endpoint 是一款移动威胁防御解决方案,可保护 iOS 设备免遭钓鱼式攻击、不安全的网络连接和恶意应用的侵害。它使用本地 VPN 提供网络保护,并与 Microsoft Intune 集成以进行设备管理。来自 iOS 设备的事件会捕获到与 Defender for Endpoint 其他平台相同的“高级搜寻”表中,包括 DeviceEvents、DeviceInfo、DeviceLogonEvents 和 DeviceNetworkEvents。

准备工作

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

  • Google SecOps 实例
  • Microsoft Azure 门户的特权访问权限,包括:
    • 创建存储账号
    • 配置诊断设置(针对 Azure 服务)
    • 管理访问密钥
  • Microsoft Defender 门户的访问权限,包括:
    • 配置数据导出设置
    • 管理 Microsoft Defender XDR 设置
  • 搭载 iOS 16.0 或更高版本的 iOS 设备
  • 通过 Intune 公司门户注册或通过 Microsoft Authenticator 注册的设备

配置 Azure 存储账号

创建存储账号

  1. Azure 门户中,搜索存储账号
  2. 点击 + 创建
  3. 提供以下配置详细信息:

    设置
    订阅 选择您的 Azure 订阅
    资源组 选择现有组或创建新组
    存储账号名称 输入唯一名称(例如 defenderioslogssa
    区域 选择区域(例如 East US
    性能 标准(推荐)
    冗余 GRS(地理位置冗余存储)或 LRS(本地冗余存储)
  4. 点击检查 + 创建

  5. 查看账号概览,然后点击创建

  6. 等待部署完成。

获取存储账号凭据

  1. 前往您刚刚创建的存储账号
  2. 在左侧导航栏中,选择安全性 + 网络下的访问密钥
  3. 点击显示密钥
  4. 复制并保存以下内容以供日后使用:
    • 存储账号名称:您创建的名称(例如 defenderioslogssa
    • 密钥 1密钥 2:共享访问密钥(采用 base-64 编码的 512 位随机字符串)

获取 Blob 服务端点

  1. 在同一存储账号中,从左侧导航栏中选择端点
  2. 复制并保存 Blob 服务端点网址。
    • 示例:https://defenderioslogssa.blob.core.windows.net/

获取存储账号资源 ID

  1. 在同一存储账号中,从左侧导航栏中选择属性
  2. 向下滚动,找到存储账号资源 ID
  3. 点击资源 ID 旁边的复制图标,并保存以备后用。
    • 示例:/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/defenderioslogssa

配置 Microsoft Defender for Endpoint 数据导出

  1. 登录 Microsoft Defender 门户 (https://security.microsoft.com)。
  2. 依次前往设置 > Microsoft Defender XDR > 数据导出设置
  3. 点击 + 添加数据导出设置
  4. 名称字段中,输入一个描述性名称(例如 Export to Chronicle)。
  5. 将事件转发到部分中,选择 Azure Storage
  6. 存储账号资源 ID 字段中,粘贴您之前复制的存储账号资源 ID。
  7. 选择事件部分中,选择要导出的事件类型。如需全面监控 iOS 设备,请选择以下选项:

    • DeviceEvents:一般设备事件,包括应用启动和系统事件
    • DeviceInfo:设备清点信息,包括操作系统版本和设备属性
    • DeviceLogonEvents:登录和身份验证事件
    • DeviceNetworkEvents:网络连接和网络保护事件
    • DeviceProcessEvents:处理进程创建和终止事件
    • DeviceFileEvents:文件创建、修改和删除事件
    • AlertInfo:来自 Defender for Endpoint 的提醒元数据
    • AlertEvidence:与提醒关联的证据
  8. 点击保存

    配置完成后,Microsoft Defender for Endpoint 会开始将事件导出到您的 Azure 存储账号。事件按以下命名模式整理到 Blob 容器中:

    • deviceevents
    • deviceinfo
    • devicelogonevents
    • devicenetworkevents
    • deviceprocessevents
    • devicefileevents
    • alertinfo
    • alertevidence
  • 每个容器都会以按日期和时间整理的分层文件夹结构来存储事件:

    container-name/
      └── year=YYYY/month=MM/day=DD/hour=HH/
          └── [event-files].json
    

在 Google SecOps 中配置 Feed 以注入 Microsoft Defender for Endpoint on iOS 日志

您需要为每个活动类型容器单独创建一个 Feed。针对要注入的每个容器重复以下步骤。

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

    • Azure URI:输入包含容器路径的 Blob 服务端点网址:
    https://defenderioslogssa.blob.core.windows.net/deviceevents/
    

    替换以下内容:

    • defenderioslogssa:您的 Azure 存储账号名称。
    • deviceevents:相应事件类型的 blob 容器名称。
    • 来源删除选项:根据您的偏好选择删除选项:
    • 永不:转移后永不删除任何文件。
    • 删除已转移的文件:在成功转移后删除文件。
    • 删除已转移的文件和空目录:成功转移后删除文件和空目录。
    • 文件存在时间上限:包含在过去指定天数内修改的文件(默认值为 180 天)
    • 共享密钥:输入您从存储账号中捕获的共享密钥值(访问密钥)
    • 资产命名空间资产命名空间
    • 注入标签:要应用于相应 Feed 中事件的标签(例如 defender_ios
  9. 点击下一步

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

针对要注入的每个事件类型容器(例如 deviceinfodevicelogoneventsdevicenetworkevents 等)重复执行上述步骤。使用描述性 Feed 名称来区分事件类型。

配置 Azure 存储防火墙(如果已启用)

如果您的 Azure 存储账号使用防火墙,则必须添加 Google SecOps IP 范围。

  1. Azure 门户中,前往您的存储账号
  2. 安全性 + 网络下,选择网络
  3. 防火墙和虚拟网络下,选择从所选虚拟网络和 IP 地址启用
  4. 防火墙部分的地址范围下,点击 + 添加 IP 范围
  5. 以 CIDR 表示法添加每个 Google SecOps IP 范围。

    如需获取当前的 IP 范围,请执行以下操作:

  6. 点击保存

UDM 映射表

日志字段 UDM 映射 逻辑
_TimeReceivedBySvc additional.fields 与根据每个来源字段创建的标签合并
properties.InitiatingProcessUniqueId additional.fields
properties.MachineGroup additional.fields
properties.IsProcessRemoteSession additional.fields
properties.IsInitiatingProcessRemoteSession additional.fields
properties.InitiatingProcessSessionId additional.fields
properties.InitiatingProcessParentCreationTime additional.fields
properties.InitiatingProcessVersionInfoOriginalFileName additional.fields
properties.InitiatingProcessVersionInfoFileDescription additional.fields
properties.InitiatingProcessVersionInfoInternalFileName additional.fields
properties.InitiatingProcessVersionInfoProductName additional.fields
properties.AdditionalFields additional.fields
properties.DeliveryAction additional.fields
properties.DeliveryLocation additional.fields
properties.EmailAction additional.fields
properties.EmailActionPolicy additional.fields
properties.EmailActionPolicyGuid additional.fields
properties.AttachmentCount additional.fields
properties.UrlCount additional.fields
properties.EmailLanguage additional.fields
properties.EmailClusterId additional.fields
properties.Connectors additional.fields
properties.OrgLevelAction additional.fields
properties.OrgLevelPolicy additional.fields
properties.UserLevelAction additional.fields
properties.UserLevelPolicy additional.fields
properties.ConfidenceLevel additional.fields
SPF additional.fields
DKIM additional.fields
DMARC additional.fields
CompAuth additional.fields
properties.BulkComplaintLevel additional.fields
has_email metadata.event_type 如果 has_email 为 true,则设置为“EMAIL_TRANSACTION”;否则,如果 has_principal 和 has_target 为 true,则设置为“NETWORK_CONNECTION”;否则,如果 has_principal 为 true 且 has_target 为 false,则设置为“STATUS_UPDATE”;否则,设置为“GENERIC_EVENT”
has_principal metadata.event_type
has_target metadata.event_type
tenantId metadata.product_deployment_id 直接复制值
operationName metadata.product_event_type 直接复制值
properties.InitiatingProcessVersionInfoProductVersion metadata.product_version 直接复制值
properties.EmailDirection network.direction 如果等于“Inbound”,则设置为“INBOUND”
properties.SenderFromAddress network.email.from 直接复制值
properties.InternetMessageId network.email.mail_id 直接复制值
properties.Subject network.email.subject 从 properties.Subject 合并
properties.RecipientEmailAddress network.email.to 从 properties.RecipientEmailAddress 合并
properties.SenderFromDomain principal.administrative_domain 如果 properties.SenderFromDomain 不为空,则返回该值;否则返回 properties.InitiatingProcessAccountDomain
properties.InitiatingProcessAccountDomain principal.administrative_domain
properties.DeviceId principal.asset.asset_id 串联为“DeviceId:%{properties.DeviceId}”
properties.DeviceName principal.asset.hostname 直接复制值
properties.SenderIPv4 principal.asset.ip 从 properties.SenderIPv4 和 properties.SenderIPv6 合并
properties.SenderIPv6 principal.asset.ip
properties.DeviceName principal.hostname 直接复制值
properties.SenderIPv4 principal.ip 从 properties.SenderIPv4 和 properties.SenderIPv6 合并
properties.SenderIPv6 principal.ip
properties.InitiatingProcessCommandLine principal.process.command_line 直接复制值
properties.InitiatingProcessFolderPath principal.process.file.full_path 直接复制值
properties.InitiatingProcessMD5 principal.process.file.md5 直接复制值
properties.InitiatingProcessFileName principal.process.file.names 从属性合并。InitiatingProcessFileName
properties.InitiatingProcessSHA1 principal.process.file.sha1 直接复制值
properties.InitiatingProcessSHA256 principal.process.file.sha256 如果与十六进制正则表达式匹配,则直接复制值
properties.InitiatingProcessParentFileName principal.process.parent_process.file.full_path 直接复制值
properties.InitiatingProcessParentId principal.process.parent_process.pid 已转换为字符串
properties.InitiatingProcessId principal.process.pid 已转换为字符串
properties.InitiatingProcessCreationTime principal.resource.attribute.labels 与根据每个来源字段创建的标签合并
properties.InitiatingProcessParentCreationTime principal.resource.attribute.labels
properties.InitiatingProcessVersionInfoOriginalFileName principal.resource.attribute.labels
properties.InitiatingProcessVersionInfoFileDescription principal.resource.attribute.labels
properties.InitiatingProcessVersionInfoInternalFileName principal.resource.attribute.labels
properties.InitiatingProcessVersionInfoProductName principal.resource.attribute.labels
properties.InitiatingProcessLogonId principal.resource.attribute.labels
properties.SenderMailFromDomain principal.user.attribute.labels 已与根据属性创建的标签合并。SenderMailFromDomain
properties.InitiatingProcessVersionInfoCompanyName principal.user.company_name 直接复制值
properties.InitiatingProcessAccountUpn principal.user.email_addresses 如果与电子邮件正则表达式匹配,则从 properties.InitiatingProcessAccountUpn、properties.SenderMailFromAddress、properties.SenderFromAddress 合并
properties.SenderMailFromAddress principal.user.email_addresses
properties.SenderFromAddress principal.user.email_addresses
properties.SenderObjectId principal.user.product_object_id 直接复制值
properties.SenderDisplayName principal.user.user_display_name 直接复制值
properties.InitiatingProcessAccountName principal.user.userid 直接复制值
properties.InitiatingProcessAccountSid principal.user.windows_sid 使用 grok 模式提取
类别 security_result.category_details 直接复制值
properties.ReportId security_result.detection_fields 与根据每个来源字段创建的标签合并
properties.NetworkMessageId security_result.detection_fields
properties.AppGuardContainerId security_result.detection_fields
租户 security_result.detection_fields
properties.ActionType security_result.summary 直接复制值
properties.ThreatTypes security_result.threat_name 如果 properties.ThreatTypes 不为空/null,则返回该值;否则,返回 properties.ThreatNames
properties.ThreatNames security_result.threat_name
properties.InitiatingProcessFileSize target.process.file.size 转换为字符串,然后再转换为无符号整数
properties.ProcessTokenElevation target.resource.attribute.labels 已与根据属性创建的标签合并。ProcessTokenElevation
properties.RemoteUrl target.url 直接复制值
properties.RecipientEmailAddress target.user.email_addresses 从 properties.RecipientEmailAddress 合并
properties.RecipientObjectId target.user.product_object_id 直接复制值
metadata.product_name metadata.product_name 设置为“Microsoft Defender Endpoint”
metadata.vendor_name metadata.vendor_name 设置为“MICROSOFT_DEFENDER_ENDPOINT_IOS”
properties.DeviceName principal.hostname and principal.asset.hostname 从变更日志映射
properties.Timestamp metadata.event_timestamp 从变更日志映射

更新日志

查看相应解析器的更改日志

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