适用于 macOS 的设备控制

适用于:

希望体验 Microsoft Defender for Endpoint? 注册免费试用版

要求

适用于 Mac 的设备控制具有以下先决条件:

  • Defender for Endpoint 或 Defender 商业版 许可证 (可以是试用版订阅)
  • 最低 OS 版本:macOS 11 或更高版本
  • 最低产品版本: 101.34.20

概述

macOS 上的 Defender for Endpoint 中的设备控制使你能够:

  • 审核、允许或阻止对可移动存储的读取、写入或执行访问权限;和
  • 管理 iOS 和可移植设备,以及 Apple APFS 加密设备和蓝牙媒体(含或不带排除项)。

准备终结点

示例 1:使用 schema.json 的 JAMF。

显示如何在Microsoft Defender for Endpoint数据丢失防护/功能中启用设备控制的屏幕截图。

示例 2: demo.mobileconfig

<key>dlp</key>
<dict> 
  <key>features</key>
  <array> 
    <dict> 
      <key>name</key>
      <string>DC_in_dlp</string>
      <key>state</key>
      <string>enabled</string>
    </dict>
  </array>
</dict>
  • 最低产品版本:101.91.92 或更高版本

  • 通过终端运行 mdatp version 以查看客户端计算机上的产品版本:

    屏幕截图显示了在终端中运行 mdatp 版本以查看客户端计算机上的产品版本时的结果。

了解策略

策略确定 macOS 的设备控制行为。 该策略通过Intune或 JAMF 面向计算机或用户的集合。

macOS 策略的设备控制包括设置、组和规则:

  • 通过名为“settings”的全局设置,可以定义全局环境。
  • 通过调用 groups 的组,可以创建媒体组。 例如,授权的 USB 组或加密的 USB 组。
  • 使用名为“rules”的访问策略规则可以创建策略来限制每个组。 例如,仅允许授权用户写入访问授权的 USB 组。

注意

建议使用 GitHub 上的示例来了解属性:mdatp-devicecontrol/Removable Storage 访问控制 Samples/macOS/policy 位于 main - microsoft/mdatp-devicecontrol (github.com)

还可以使用 main 上的 mdatp-devicecontrol/tree/main/python#readme 中的脚本 - microsoft/mdatp-devicecontrol (github.com) 将 Windows 设备控制策略转换为 macOS 设备控制策略或将 macOS 设备控制 V1 策略转换为此 V2 策略。

注意

客户在创建策略时应考虑的 macOS 设备控制 存在一些已知问题

最佳做法

适用于 macOS 的设备控制功能与适用于 Windows 的设备控制类似,但 macOS 和 Windows 提供不同的基础功能来管理设备,因此存在一些重要差异:

  • macOS 没有集中式设备管理器或设备视图。 向与设备交互的应用程序授予/拒绝访问权限。 这就是为什么在 macOS 上有一组更丰富的 访问类型的原因。 例如,策略 portableDevice 可以拒绝或允许 download_photos_from_device

  • 为了与 Windows 保持一致,有 generic_readgeneric_writegeneric_execute 访问类型。 如果将来添加了更具体的访问类型,则无需更改具有泛型访问类型的策略。 最佳做法是使用泛型访问类型,除非需要拒绝/允许更具体的作。

  • deny使用通用访问类型创建策略是尝试完全阻止该类型设备的所有作的最佳方法, (例如 Android 手机) ,但如果使用不受 macOS 设备控制支持的应用程序执行该作,则可能仍然存在差距。

设置

下面是在 macOS 的设备控制策略中创建组、规则和设置时可以使用的属性。

属性名称 说明 选项
特征 功能特定的配置 对于以下功能,可以设置为 disable false 或 true:
- removableMedia
- appleDevice
- portableDevice,包括相机或 PTP 媒体
- bluetoothDevice

默认值为 true,因此,如果不配置此值,即使为 removableMedia创建自定义策略,也不会应用此值,因为它默认处于禁用状态。
全球 设置默认强制 可以将 设置为defaultEnforcement
- allow (默认)
- deny
ux 可以在通知上设置超链接。 navigationTarget: string. 例如:"http://www.microsoft.com"

属性名称 说明 选项
$type 组的类型 “device”
id GUID 是一个唯一 ID,表示组,在策略中使用。 可以通过 new-Guid (Microsoft.PowerShell.Utility) - PowerShell 或 macOS 上的 uuidgen 命令生成 ID
name 组的友好名称。 string
query 此组下的媒体报道 有关详细信息,请参阅 查询 属性表。

查询

设备控制支持两种类型的查询:

查询类型 1 如下所示:

属性名称 说明 选项
$type 确定要对子句执行的逻辑作 all子句 下的任何属性都是 And 关系。 例如,如果管理员为每个连接的 USB 放置 vendorIdserialNumber,系统会检查 USB 是否同时满足这两个值。
:等效于 所有
任何:子句下的属性为 Or 关系。 例如,如果管理员为每个连接的 USB 放置 vendorIdserialNumber,则只要 USB 具有相同的 vendorIdserialNumber 值,系统就会执行强制作。
:等效于 任何
clauses 使用媒体设备属性设置组条件。 计算用于确定组成员身份的子句对象的数组。 请参阅 子句 部分。

查询类型 2 如下所示:

属性名称 说明 选项
$type 确定要对子查询执行的逻辑作 not:查询的逻辑求反
query 子查询 将被否定的查询。

子句属性

属性名称 说明 选项
$type 子句的类型 有关支持的子句,请参阅下表。
value $type要使用的特定值

支持的子句

子句$type 说明
primaryId 下列方法之一:
- apple_devices
- removable_media_devices
- portable_devices
- bluetooth_devices
vendorId 四位十六进制字符串 匹配设备的供应商 ID
productId 四位十六进制字符串 匹配设备的产品 ID
serialNumber string 与设备的序列号匹配。 如果设备没有序列号,则不匹配。
encryption apfs 匹配设备是否为 apfs 加密。
groupId UUID 字符串 如果设备是另一个组的成员,则匹配。 值表示要匹配的组的 UUID。
组必须在 子句之前在策略中定义。

访问策略规则

属性名称 说明 选项
id GUID 是唯一的 ID,表示规则,在策略中使用。 New-Guid (Microsoft.PowerShell.Utility) - PowerShell
uuidgen
name 字符串,策略的名称。 根据策略设置显示在 Toast 通知中。
includeGroups 应用策略的组。 如果指定了多个组,则策略将应用于所有这些组中的任何媒体。 如果未指定,则规则将应用于所有设备。 组内的 ID 值必须在此实例中使用。 如果 中有多个组, includeGroups则为 AND
"includeGroups": ["3f082cd3-f701-4c21-9a6a-ed115c28e217"]
excludeGroups 策略不适用于的组。 组内的 ID 值必须在此实例中使用。 如果 excludeGroups 中有多个组,则为 OR
entries 一个规则可以有多个条目;每个具有唯一 GUID 的条目都会告知设备控制一个限制。 若要获取详细信息,请参阅本文后面的条目属性表。

下表列出了可在条目中使用的属性:

属性名称 说明 选项
$type 包括:
- removableMedia
- appleDevice
- PortableDevice
- bluetoothDevice
- generic
执法 - $type:
- allow
- deny
- auditAllow
- auditDeny

选择“允许$type”时,选项值支持:
- disable_audit_allow
即使发生 “允许” 并且已配置 auditAllow 设置,系统也不会发送事件。

选择$type拒绝时,选项值支持:
disable_audit_deny
即使发生 “阻止 ”并且已配置 auditDeny 设置,系统也不会显示通知或发送事件。

选择“$type auditAllow”时,选项值支持:
send_event

选择$type auditDeny 时,选项值支持:
send_event
show_notification
access 为此规则指定一个或多个访问权限。 这些权限可能包括特定于设备的精细权限或更广泛的通用权限。 有关给定条目$type的有效访问类型的更多详细信息,请参阅下表。
id UUID

下表列出了可在条目中使用的属性:

强制执行

强制属性名称

属性名称 说明 选项
$type 强制的类型 有关支持的强制措施,请参阅下表
options $type要使用的特定值 条目的选项数组。 如果不需要选项,可以省略。

强制类型

属性名称 说明 选项
Enforcement $type options 值 [string] 说明
allow disable_audit_allow 即使发生 “允许” 并且已配置 auditAllow 设置,系统也不会发送事件。
deny disable_audit_deny 即使发生 “阻止 ”并且已配置 auditDeny 设置,系统也不会显示通知或发送事件。
auditAllow send_event 发送遥测数据
auditDeny - send_event
- show_notification
- 发送遥测数据
- 向用户显示块 UX

访问类型

条目$type “access”值 [string] 泛型访问 说明
appleDevice backup_device generic_read
appleDevice update_device generic_write
appleDevice download_photos_from_device generic_read 将照片从特定 iOS 设备下载到本地计算机
appleDevice download_files_from_device generic_read 将文件从特定 iOS 设备下载到本地计算机
appleDevice sync_content_to_device generic_write 将内容从本地计算机同步到特定 iOS 设备
portableDevice download_files_from_device generic_read
portableDevice send_files_to_device generic_write
portableDevice download_photos_from_device generic_read
portableDevice 调试 generic_execute ADB 工具控件
* removableMedia 阅读 generic_read
removableMedia 写入 generic_write
removableMedia 执行 generic_execute generic_read
bluetoothDevice download_files_from_device
bluetoothDevice send_files_to_device generic_write
通用 generic_read 等效于设置此表中表示的所有映射到 generic_read 的访问值。
通用 generic_write 等效于设置此表中表示的所有映射到generic_write的访问值。
通用 generic_execute 等效于设置此表中表示的所有映射到generic_execute的访问值。

最终用户体验

发生“拒绝”并在策略中启用通知后,最终用户将看到一个对话框:

显示指示 USB 设备受限的“设备控制”对话框的屏幕截图

状态

使用 mdatp health --details device_control 检查设备控制状态:

active                                      : ["v2"]
v1_configured                               : false
v1_enforcement_level                        : unavailable
v2_configured                               : true
v2_state                                    : "enabled"
v2_sensor_connection                        : "created_ok"
v2_full_disk_access                         : "approved"
  • active - 功能版本,应看到 [“v2”]。 (设备控制已启用,但未配置。)
    • [] - 此计算机上未配置设备控制。
    • [“v1”] - 你使用的是“设备控制”预览版。 使用本指南迁移到版本 2。 v1 被视为已过时,本文档未对此进行介绍。
    • [“v1”, “v2”] - 同时启用了 v1 和 v2。 从 v1 卸载。
  • v1_configured - 已应用 v1 配置
  • v1_enforcement_level - 启用 v1 时
  • v2_configured - 已应用 v2 配置
  • v2_state - v2 状态( enabled 如果完全正常工作)
  • v2_sensor_connection - 如果 created_ok为 ,则设备控制与系统扩展建立连接
  • v2_full_disk_access - 如果不是 approved,则设备控制无法阻止部分或所有作

Reporting

可以在高级搜寻和设备控制报表上看到策略事件。 有关详细信息,请参阅 使用设备控制保护组织的数据

应用场景

下面是一些常见方案,可帮助你熟悉Microsoft Defender for Endpoint和Microsoft Defender for Endpoint设备控制。

方案 1:拒绝任何可移动媒体,但允许特定的 USB

在此方案中,需要创建两个组:一个组用于任何可移动媒体,另一个组用于已批准的 USB 组。 还需要创建访问策略规则。

步骤 1:设置:启用设备控制并设置默认强制

"settings": { 

    "features": { 

        "removableMedia": { 

            "disable": false 

        } 

    }, 

    "global": { 

        "defaultEnforcement": "allow" 

    }, 

    "ux": { 

        "navigationTarget": "http://www.deskhelp.com" 

    } 

} 

步骤 2:组:创建任何可移动媒体组和已批准的 USB 组

  1. 创建一个组以涵盖任何可移动媒体设备。
  2. 为批准的 USB 创建组。
  3. 将这些组合并为一个 groups
"groups": [ 

        { 

            "type": "device", 

            "id": "3f082cd3-f701-4c21-9a6a-ed115c28e211", 

            "name": "All Removable Media Devices", 

            "query": { 

                "$type": "all", 

                "clauses": [ 

                    { 

                        "$type": "primaryId", 

                        "value": "removable_media_devices" 

                    } 

                ] 

            } 

        }, 

        { 

            "type": "device", 

            "id": "3f082cd3-f701-4c21-9a6a-ed115c28e212", 

            "name": "Kingston Devices", 

            "query": { 

                "$type": "all", 

                "clauses": [ 

                    { 

                        "$type": "vendorId", 

                        "value": "0951" 

                    } 

                ] 

            } 

        } 

    ] 

步骤 3:规则:为未实现的 USB 创建拒绝策略

创建访问策略规则并放入 :rules

"rules": [ 

    { 

        "id": "772cef80-229f-48b4-bd17-a69130092981", 

        "name": "Deny RWX to all Removable Media Devices except Kingston", 

        "includeGroups": [ 

            "3f082cd3-f701-4c21-9a6a-ed115c28e211" 

        ], 

        "excludeGroups": [ 

            "3f082cd3-f701-4c21-9a6a-ed115c28e212" 

        ], 

        "entries": [ 

            { 

                "$type": "removableMedia", 

                "id": "A7CEE2F8-CE34-4B34-9CFE-4133F0361035", 

                "enforcement": { 

                    "$type": "deny" 

                }, 

                "access": [ 

                    "read", 

                    "write", 

                    "execute" 

                ] 

            }, 

            { 

                "$type": "removableMedia", 

                "id": "18BA3DD5-4C9A-458B-A756-F1499FE94FB4", 

                "enforcement": { 

                    "$type": "auditDeny", 

                    "options": [ 

                        "send_event", 

                        "show_notification" 

                    ] 

                }, 

                "access": [ 

                    "read", 

                    "write", 

                    "execute" 

                ] 

            } 

        ] 

    } 

] 

在这种情况下,只有一个访问规则策略,但如果有多个访问规则策略,请确保将所有 添加到 rules

已知问题

警告

macOS 上的设备控制 限制仅使用 PTP 模式连接的 Android 设备。 设备控制不会限制其他模式,例如文件传输、USB 网络共享和 MIDI。

警告

macOS 上的设备控制不会阻止在 XCode 上开发的软件传输到外部设备。

另请参阅

提示

想要了解更多信息? Engage技术社区中的Microsoft安全社区:Microsoft Defender for Endpoint技术社区