Microsoft Defender for Endpoint中的设备控制策略
适用于:
本文介绍设备控制策略、规则、条目、组和高级条件。 实质上,设备控制策略定义一组设备的访问权限。 范围内的设备由包含的设备组列表和排除的设备组列表确定。 如果设备位于所有包含的设备组中,并且没有排除的设备组,则应用策略。 如果未应用任何策略,则应用默认强制实施。
默认情况下,设备控制处于禁用状态,因此允许访问所有类型的设备。 若要了解有关设备控制的详细信息,请参阅 Microsoft Defender for Endpoint 中的设备控制。
控制默认行为
启用设备控制后,默认情况下会为所有设备类型启用设备控制。 默认强制措施也可以从 “允许” 更改为 “拒绝”。 安全团队还可以配置设备控制保护的设备类型。 下表说明了各种设置组合如何更改访问控制决策。
是否启用了设备控制? | 默认行为 | 设备类型 |
---|---|---|
否 | 允许访问 | - CD/DVD 驱动器 -打印机 - 可移动媒体设备 - Windows 便携式设备 |
是 | (未指定) 允许访问 |
- CD/DVD 驱动器 -打印机 - 可移动媒体设备 - Windows 便携式设备 |
是 | 拒绝 | - CD/DVD 驱动器 -打印机 - 可移动媒体设备 - Windows 便携式设备 |
是 | 拒绝可移动媒体设备和打印机 | - 打印机和可移动媒体设备 (阻止) - cd/DVD 驱动器和 Windows 便携式设备 (允许) |
配置设备类型后,Defender for Endpoint 中的设备控制将忽略对其他设备系列的请求。
有关详细信息,请参阅以下文章:
策略
为了进一步优化对设备的访问,设备控制使用策略。 策略是一组规则和组。 规则和组的定义方式因管理体验和操作系统而异,如下表所述。
管理工具 | 操作系统 | 如何管理规则和组 |
---|---|---|
Intune - 设备控制策略 | Windows | 设备和打印机组可以作为可重用设置进行管理,并包含在规则中。 并非所有功能都可用于设备控制策略 (请参阅使用Microsoft Intune) |
Intune – 自定义 | Windows | 每个组/规则都存储为自定义配置策略中的 XML 字符串。 OMA-URI 包含组/规则的 GUID。 必须生成 GUID。 |
组策略 | Windows | 组和规则在 组策略 对象中的单独 XML 设置中定义 (请参阅使用组策略) 部署和管理设备控制。 |
Intune | Mac | 规则和策略合并到单个 JSON 中mobileconfig ,并包含在使用 Intune 部署的文件中 |
JAMF | Mac | 规则和策略合并为单个 JSON,并使用 JAMF 作为设备控制策略进行配置 (请参阅 macOS 设备控制) |
规则和组由全局唯一 ID (GUID) 标识。 如果使用Intune以外的管理工具部署设备控制策略,则必须生成 GUID。 可以使用 PowerShell 生成 GUID。
有关架构详细信息,请参阅 Mac 的 JSON 架构。
用户
设备控制策略可以应用于用户和/或用户组。
注意
在与设备控制相关的文章中,用户组称为 用户组。 术语 “组” 是指在设备控制策略中定义的 组 。
使用 Intune,在 Mac 和 Windows 上,设备控制策略可以面向 Entra Id 中定义的用户组。
在 Windows 上,用户或用户组可以是策略中 条目 的条件。
具有用户或用户组的条目可以引用 Entra Id 或本地 Active Directory 中的对象。
将设备控制与用户和用户组配合使用的最佳做法
若要在 Windows 上为单个用户创建规则,请在规则中创建具有
Sid
条件的条目,若要在 Windows 和 Intune 上为用户组创建规则,请为 [rule] 中的每个用户组创建一个
Sid
具有条件的条目,并将策略定向到 Intune 中的计算机组,或者创建一个无条件的规则,并将策略Intune到用户组。在 Mac 上,使用 Intune并将策略定向到 Entra Id 中的用户组。
警告
请勿在规则中使用用户/用户组条件,也不要在 Intune 中使用用户组目标。
注意
如果网络连接存在问题,请使用Intune用户组目标或本地 Active Directory 组。 引用 Entra Id 的用户/用户组条件 应仅在 与 Entra Id 建立可靠连接的环境中使用。
Rules
规则定义包含的组的列表和排除的组的列表。 若要应用规则,设备必须位于所有包含的组中,并且不包含任何已排除的组。 如果设备与规则匹配,则会评估该规则的条目。 如果请求与条件匹配,则条目定义应用的操作和通知选项。 如果没有应用规则或条目与请求匹配,则应用默认强制实施。
例如,若要允许某些 USB 设备的写入访问,以及所有其他 USB 设备的读取访问权限,请使用以下策略、组和条目,并将默认强制设置为“拒绝”。
组 | 说明 |
---|---|
所有可移动存储设备 | 可移动存储设备 |
可写 USB | 允许写入访问的 USB 列表 |
Rule | 包含的设备组 | 排除的设备组 | 条目 |
---|---|---|---|
USB 的只读访问权限 | 所有可移动存储设备 | 可写 USB | 只读访问 |
USB 的写入访问权限 | 可写 USB | 写入访问权限 |
规则的名称显示在门户上用于报告和向用户的 Toast 通知中,因此请务必为规则提供描述性名称。
可以通过在 Intune 中编辑策略、在 Windows 中使用 XML 文件或在 Mac 上使用 JSON 文件来配置规则。 有关更多详细信息,请选择每个选项卡。
下图描述了Intune中的设备控制策略的配置设置:
在屏幕截图中,“包含 ID”和“排除的 ID”是对包含和排除的可重用设置组的引用。 一个策略可以有多个规则。
Intune不遵循规则的排序。 可以按任意顺序评估规则,因此请确保显式排除不在规则范围内的设备组。
Entries
设备控制策略定义一组设备的访问 (称为条目) 。 条目定义与条目中定义的策略和条件匹配的设备的操作和通知选项。
条目设置 | 选项 |
---|---|
AccessMask | 仅当访问操作与访问掩码匹配时应用操作 - 访问掩码是访问值的按位 OR: 1 - 设备读取 2 - 设备写入 4 - 设备执行 8 - 文件读取 16 - 文件写入 32 - 文件执行 64 - 打印 例如: 设备读取、写入和执行 = 7 (1+2+4) 设备读取、磁盘读取 = 9 (1+8) |
操作 | 允许 拒绝 AuditAllow AuditDeny |
通知 | 无 (默认) 生成事件 用户接收通知 |
条目评估
有两种类型的条目:强制条目 (允许/拒绝) 和审核条目 (AuditAllow/AuditDeny) 。
在匹配所有请求的权限之前,将按顺序评估规则的强制条目。 如果没有条目与规则匹配,则计算下一个规则。 如果没有匹配的规则,则应用默认值。
审核条目
当设备控制强制实施规则 (允许/拒绝) 时,审核事件控制行为。 设备控件可以向最终用户显示通知。 用户会收到一条通知,其中包含设备控制策略的名称和设备名称。 初始访问被拒绝后,每隔一小时显示一次通知。
设备控制还可以创建在高级搜寻中可用的事件。
重要
每个设备每天有 300 个事件的限制。 在做出强制决定后,将处理审核条目。 将评估所有相应的审核条目。
条件
条目支持以下可选条件:
- 用户/用户组条件:仅对 SID 标识的用户/用户组应用操作
注意
对于存储在 Microsoft Entra ID 中的用户组和用户,请在 条件中使用对象 ID。 对于本地存储的用户组和用户,请使用安全标识符 (SID)
注意
在 Windows 上,可以通过运行 PowerShell 命令 whoami /user
来检索已登录用户的 SID。
- 计算机条件:仅将操作应用于由 SID 标识的设备/组
- 参数条件:仅当参数匹配时应用操作 (请参阅高级条件)
条目的范围可以进一步限定为特定的用户和设备。 例如,仅允许此用户在此设备上读取这些 USB。
Policy | 包含的设备组 | 排除的设备组 | 参赛 () |
---|---|---|---|
USB 的只读访问权限 | 所有可移动存储设备 | 可写 USB | 只读访问 |
USB 的写入访问权限 | 可写 USB | 用户 1 的写入访问权限 设备组 A 上用户 2 的写入访问权限 |
条目中的所有条件都必须为 true,才能应用操作。
可以使用 Intune、Windows 中的 XML 文件或 Mac 上的 JSON 文件来配置条目。 有关更多详细信息,请选择每个选项卡。
在 Intune 中,“访问掩码”字段具有选项,例如:
- 读取 (磁盘级别读取 = 1)
- 写入 (磁盘级别写入 = 2)
- 执行 (磁盘级别执行 = 4)
- 打印 (打印 = 64) 。
并非所有功能都显示在Intune用户界面中。 有关详细信息,请参阅使用Intune部署和管理设备控制。
组
组定义按对象属性筛选对象的条件。 如果对象属性与为组定义的属性匹配,则对象将分配给组。
注意
本节中的组不引用用户组。
例如:
- 允许的 USB 是与这些制造商中的任何一个匹配的所有设备
- 丢失的 USB 是与这些序列号中的任何一个匹配的所有设备
- 允许的打印机是匹配其中任何 VID/PID 的所有设备
可以通过四种方式匹配属性: MatchAll
、 MatchAny
、 MatchExcludeAll
和 MatchExcludeAny
-
MatchAll
:属性是“And”关系;例如,如果管理员为每个连接的 USB 放置DeviceID
和InstancePathID
,系统会检查 USB 是否同时满足这两个值。 -
MatchAny
:属性是“Or”关系;例如,如果管理员为每个连接的 USB 放置 DeviceID 和InstancePathID
,则只要 USB 具有相同的DeviceID
或InstanceID
值,系统就会强制实施。 -
MatchExcludeAll
:属性是“And”关系,涵盖不满足的任何项。 例如,如果管理员放置DeviceID
和InstancePathID
并使用MatchExcludeAll
,对于每个连接的 USB,只要 USB 不具有相同DeviceID
的 和InstanceID
值,系统就会强制实施。 -
MatchExcludeAny
:属性是“或”关系,涵盖不满足的任何项。 例如,如果管理员放置DeviceID
和InstancePathID
并使用MatchExcludeAny
,对于每个连接的 USB,只要 USB 没有相同的DeviceID
值或InstanceID
值,系统就会强制实施。
组有两种方式使用:选择要包含在规则中的设备,以及筛选高级条件的访问权限。 下表汇总了组类型及其使用方式。
类型 | 说明 | O/S | 包含/排除规则 | 高级条件 |
---|---|---|---|---|
设备 (默认) | 筛选设备和打印机 | Windows/Mac | X | |
网络 | 筛选网络条件 | Windows | X | |
VPN 连接 | 筛选 VPN 条件 | Windows | X | |
文件 | 筛选器文件属性 | Windows | X | |
打印作业 | 正在打印的文件的筛选器属性 | Windows | X |
由包含的组列表和排除的组列表确定的策略范围内的设备。 如果设备位于所有包含的组中,但没有排除的组,则应用规则。 组可以由设备的属性组成。 可以使用以下属性:
属性 | 说明 | Windows 设备 | Mac 设备 | 打印机 |
---|---|---|---|---|
FriendlyNameId |
Windows 设备管理器中的友好名称 | Y | N | Y |
PrimaryId |
设备的类型 | Y | Y | Y |
VID_PID |
供应商 ID 是 USB 委员会分配给供应商的四位数供应商代码。 产品 ID 是供应商分配给设备的四位数产品代码。 支持通配符。 例如,0751_55E0 |
Y | N | Y |
PrinterConnectionId |
打印机连接类型: - USB :通过计算机的 USB 端口连接的打印机。 - Network :网络打印机是可通过网络连接访问的打印机,使其可供连接到网络的其他计算机使用。- Corporate :公司打印机是通过本地 Windows 打印服务器共享的打印队列。- Universal :通用打印是一种新式打印解决方案,组织可以使用它通过云服务从Microsoft管理其打印基础结构。 什么是通用打印? - 通用打印 |Microsoft Docs - File :“Microsoft打印到 PDF”和“Microsoft XPS 文档编写器”或其他使用 FILE: 或 PORTPROMPT: 端口的打印机- Custom :未通过Microsoft打印端口连接的打印机- Local :打印机不是上述任何类型,例如通过 RDP 打印或重定向打印机 |
N | N | Y |
BusId |
有关设备 (的信息,有关详细信息,请参阅此表后面的部分) | Y | N | N |
DeviceId |
有关设备 (的信息,有关详细信息,请参阅此表后面的部分) | Y | N | N |
HardwareId |
有关设备 (的信息,有关详细信息,请参阅此表后面的部分) | Y | N | N |
InstancePathId |
有关设备 (的信息,有关详细信息,请参阅此表后面的部分) | Y | N | N |
SerialNumberId |
有关设备 (的信息,有关详细信息,请参阅此表后面的部分) | Y | Y | N |
PID |
产品 ID 是供应商分配给设备的四位数产品代码 | Y | Y | N |
VID |
供应商 ID 是 USB 委员会分配给供应商的四位数供应商代码。 | Y | Y | N |
DeviceEncryptionStateId |
(预览) 设备的 BitLocker 加密状态。 有效值为 BitlockerEncrypted 或 Plain |
Y | N | N |
APFS Encrypted |
如果设备是 APFS 加密的 | N | Y | N |
使用 Windows 设备管理器 确定设备属性
对于 Windows 设备,可以使用设备管理器来了解设备的属性。
打开设备管理器,找到设备,右键单击“属性”,然后选择“详细信息”选项卡。
在“属性”列表中,选择“ 设备实例路径”。
设备实例路径显示的值是
InstancePathId
,但它也包含其他属性:USB\VID_090C&PID_1000\FBH1111183300721
{BusId}\{DeviceId}\{SerialNumberId}
设备管理器中的属性映射到设备控件,如下表所示:
设备管理器 设备控制 硬件 ID HardwareId
友好名称 FriendlyNameId
Parent VID_PID
DeviceInstancePath InstancePathId
使用报表和高级搜寻来确定设备的属性
在高级搜寻中,设备属性的标签略有不同。 下表将门户中的标签映射到 propertyId
设备控制策略中的 。
Microsoft Defender门户属性 | 设备控件属性 ID |
---|---|
媒体名称 | FriendlyNameId |
供应商 ID | HardwareId |
DeviceId | InstancePathId |
序列号 | SerialNumberId |
注意
确保所选对象具有策略的正确媒体类。 通常,对于可移动存储,请使用 Class Name == USB
。
在 Intune、Windows 中的 XML 或 Mac 上的 JSON 中配置组
可以在 Intune、Windows 中使用 XML 文件或在 Mac 上使用 JSON 文件来配置组。 有关更多详细信息,请选择每个选项卡。
注意
Group Id
XML 和 id
JSON 中的 用于标识设备控制中的组。 它不是对 Entra Id 中的任何其他(例如 用户组 )的引用。
Intune中的可重用设置映射到设备组。 可以在 Intune 中配置可重用设置。
有两种类型的组:打印机设备和可移动存储。 下表列出了这些组的属性。
组类型 | 属性 |
---|---|
打印机设备 | - FriendlyNameId - PrimaryId - PrinterConnectionId - VID_PID |
可移动存储 | - BusId - DeviceId - FriendlyNameId - HardwareId - InstancePathId - PID - PrimaryId - SerialNumberId - VID - VID_PID |
高级条件
可以根据参数进一步限制条目。 参数应用超出设备的高级条件。 高级条件允许基于正在评估的网络、VPN 连接、文件或打印作业进行精细控制。
注意
仅支持 XML 格式的高级条件。
网络条件
下表描述了网络组属性:
属性 | 说明 |
---|---|
NameId |
网络的名称。 支持通配符。 |
NetworkCategoryId |
有效选项为 Public 、 Private 或 DomainAuthenticated 。 |
NetworkDomainId |
有效选项为 NonDomain 、 Domain 、 DomainAuthenticated 。 |
这些属性将添加到 Network 类型的组的 DescriptorIdList 中。 下面是一个示例代码片段:
<Group Id="{e5f619a7-5c58-4927-90cd-75da2348a30a}" Type="Network" MatchType="MatchAll">
<DescriptorIdList>
<NetworkCategoryId>Public</PathId>
<NetworkDomainId>NonDomain</PathId>
</DescriptorIdList>
</Group>
然后,该组在条目中作为参数引用,如以下代码片段所示:
<Entry Id="{1ecfdafb-9b7f-4b66-b3c5-f1d872b0961d}">
<Type>Deny</Type>
<Options>0</Options>
<AccessMask>40</AccessMask>
<Parameters MatchType="MatchAll">
<Network MatchType="MatchAny">
<GroupId>{ e5f619a7-5c58-4927-90cd-75da2348a30a }</GroupId>
</Network>
</Parameters>
</Entry>
VPN 连接条件
下表描述了 VPN 连接条件:
名称 | 说明 |
---|---|
NameId |
VPN 连接的名称。 支持通配符。 |
VPNConnectionStatusId |
有效值为 Connected 或 Disconnected 。 |
VPNServerAddressId |
的 VPNServerAddress 字符串值。 支持通配符。 |
VPNDnsSuffixId |
的 VPNDnsSuffix 字符串值。 支持通配符。 |
这些属性将添加到 VPNConnection 类型的组的 DescriptorIdList,如以下代码片段所示:
<Group Id="{d633d17d-d1d1-4c73-aa27-c545c343b6d7}" Type="VPNConnection">
<Name>Corporate VPN</Name>
<MatchType>MatchAll</MatchType>
<DescriptorIdList>
<NameId>ContosoVPN</NameId>
<VPNServerAddressId>contosovpn.*.contoso.com</VPNServerAddressId>
<VPNDnsSuffixId>corp.contoso.com</VPNDnsSuffixId>
<VPNConnectionStatusId>Connected</VPNConnectionStatusId>
</DescriptorIdList>
</Group>
然后,在条目中将组作为参数引用,如以下代码片段所示:
<Entry Id="{27c79875-25d2-4765-aec2-cb2d1000613f}">
<Type>Allow</Type>
<Options>0</Options>
<AccessMask>64</AccessMask>
<Parameters MatchType="MatchAny">
<VPNConnection>
<GroupId>{d633d17d-d1d1-4c73-aa27-c545c343b6d7}</GroupId>
</VPNConnection>
</Parameters>
</Entry>
然后,该组在条目中作为参数引用,如以下代码片段所示:
<Entry Id="{1ecfdafb-9b7f-4b66-b3c5-f1d872b0961d}">
<Type>Deny</Type>
<Options>0</Options>
<AccessMask>40</AccessMask>
<Parameters MatchType="MatchAll">
<File MatchType="MatchAny">
<GroupId>{ e5f619a7-5c58-4927-90cd-75da2348a30f }</GroupId>
</File>
</Parameters>
</Entry>
打印作业条件
下表描述了 PrintJob
组属性:
名称 | 说明 |
---|---|
PrintOutputFileNameId |
打印到文件的输出目标文件路径。 支持通配符。 例如,C:\*\Test.pdf |
PrintDocumentNameId |
源文件路径。 支持通配符。 此路径可能不存在。 例如,在记事本中向新文件添加文本,然后打印而不保存该文件。 |
这些属性将添加到 DescriptorIdList
一组类型的 PrintJob
中,如以下代码片段所示:
<Group Id="{e5f619a7-5c58-4927-90cd-75da2348a30b}" Type="PrintJob" MatchType="MatchAny">
<DescriptorIdList>
<PrintOutputFileNameId>C:\Documents\*.pdf</PrintOutputFileNameId >
<PrintDocumentNameId>*.xlsx</PrintDocumentNameId>
<PrintDocumentNameId>*.docx</PrintDocumentNameId>
</DescriptorIdList>
</Group>
然后,该组在条目中作为参数引用,如以下代码片段所示:
<Entry Id="{1ecfdafb-9b7f-4b66-b3c5-f1d872b0961d}">
<Type>Deny</Type>
<Options>0</Options>
<AccessMask>40</AccessMask>
<Parameters MatchType="MatchAll">
<PrintJob MatchType="MatchAny">
<GroupId>{e5f619a7-5c58-4927-90cd-75da2348a30b}</GroupId>
</PrintJob>
</Parameters>
</Entry>