适用于 macOS 的设备控制
适用于:
- Microsoft Defender for Endpoint 计划 1
- Microsoft Defender for Endpoint 计划 2
- Microsoft Defender XDR
- Microsoft Defender 商业版
希望体验 Microsoft Defender for Endpoint? 注册免费试用版。
要求
适用于 macOS 的设备控制具有以下先决条件:
- Microsoft Defender for Endpoint权利 (可以是试用)
- 最低 OS 版本:macOS 11 或更高版本
- 最低产品版本:101.34.20
概述
Microsoft Defender for Endpoint设备控制功能使你能够:
- 审核、允许或阻止对可移动存储的读取、写入或执行访问权限;和
- 管理 iOS 和可移植设备,以及 Apple APFS 加密设备和蓝牙媒体(含或不带排除项)。
准备终结点
Microsoft Defender for Endpoint权利 (可以是试用)
最低 OS 版本:macOS 11 或更高版本
部署完整磁盘访问:你可能之前已为其他MDE功能创建并部署了此https://github.com/microsoft/mdatp-xplat/blob/master/macos/mobileconfig/profiles/fulldisk.mobileconfig访问权限。 需要为新应用程序授予“完全磁盘访问权限”权限:
com.microsoft.dlp.daemon
。在“MDE首选项”设置上启用设备控制:
数据丢失防护 (DLP) /Features/
对于 “功能名称”,请输入“DC_in_dlp”
对于 “状态”,请输入“已启用”
示例 1:使用 schema.json 的 JAMF。
示例 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>
了解策略
策略确定 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
macOS 的设备控件可以拒绝或允许download_photos_from_device
。 - 为了与 Windows 保持一致,有
generic_read
、generic_write
和generic_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 放置 vendorId 和 serialNumber ,系统会检查 USB 是否同时满足这两个值。和:等效于 所有 任何:子句下的属性为 Or 关系。 例如,如果管理员为每个连接的 USB 放置 vendorId 和 serialNumber ,则只要 USB 具有相同的 vendorId 或 serialNumber 值,系统就会执行强制操作。 或:等效于 任何 |
clauses |
使用媒体设备属性设置组条件。 | 计算用于确定组成员身份的子句对象的数组。 请参阅下面的 子句 部分。 |
查询类型 2 如下所示:
属性名称 | 说明 | 选项 |
---|---|---|
$type |
确定要对子查询执行的逻辑操作 | not:查询的逻辑求反 |
query |
子查询 | 将被否定的查询。 |
第
子句属性
属性名称 | 说明 | 选项 |
---|---|---|
$type |
子句的类型 | 有关支持的子句,请参阅下表。 |
value |
$type要使用的特定值 |
支持的子句
子句$type | 值 | 说明 |
---|---|---|
primaryId |
下列方法之一: - apple_devices - removable_media_devices - portable_devices - bluetooth_devices |
|
vendorId |
4 位十六进制字符串 | 匹配设备的供应商 ID |
productId |
4 位十六进制字符串 | 匹配设备的产品 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的访问值。 |
最终用户体验
发生“拒绝”并在策略中启用通知后,最终用户将看到一个对话框:
状态
使用 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 组
- 创建一个组以涵盖任何可移动媒体设备。
- 为批准的 USB 创建组。
- 将这些组合并为一个
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技术社区。