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 |
通知 | 无 (默认) 生成事件 用户接收通知 捕获文件证据 |
如果配置了设备控制,并且用户尝试使用不允许的设备,则用户会收到包含设备控制策略名称和设备名称的通知。 初始访问被拒绝后,每隔一小时显示一次通知。
条目支持以下可选条件:
- 用户/用户组条件:仅对 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 -企业 -网络 -普遍 -文件 -自 定义 -当地 |
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
可以使用适用于 Windows 的 XML 文件或在 Mac 上使用 JSON 文件在 Intune 中配置组。 有关更多详细信息,请选择每个选项卡。
注意
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>
文件条件
下表描述了文件组属性:
名称 | 说明 |
---|---|
PathId |
字符串,文件路径或名称的值。 支持通配符。 仅适用于文件类型组。 |
下表说明了如何将属性添加到文件组的 :DescriptorIdList
<Group Id="{e5f619a7-5c58-4927-90cd-75da2348a30f}" Type="File" MatchType="MatchAny">
<DescriptorIdList>
<PathId>*.exe</PathId>
<PathId>*.dll</PathId>
</DescriptorIdList>
</Group>
然后,该组在条目中作为参数引用,如以下代码片段所示:
<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>
文件证据
借助设备控制,可以存储已复制到可移动设备或已打印的文件的证据。 启用文件证据后, RemovableStorageFileEvent
将创建 。 文件证据的行为由 Allow 操作上的选项控制,如下表所述:
选项 | 说明 |
---|---|
8 |
使用 RemovableStorageFileEvent 创建事件 FileEvidenceLocation |
16 |
创建一个 RemovableStorageFileEvent 不带 FileEvidenceLocation |
如果创建了证据文件,则 FileEvidenceLocation
字段具有证据文件的位置。 证据文件的名称以 .dup
结尾,其位置由 DataDuplicationFolder
设置控制。
在 Azure Blob 存储中存储文件证据
创建 Azure Blob 存储帐户和容器。
创建用于访问容器的名为
Device Control Evidence Data Provider
的自定义角色。 该角色应具有以下权限:"permissions": [ { "actions": [ "Microsoft.Storage/storageAccounts/blobServices/containers/read", "Microsoft.Storage/storageAccounts/blobServices/containers/write", "Microsoft.Storage/storageAccounts/blobServices/read" ], "notActions": [], "dataActions": [ "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action", "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write" ], "notDataActions": [] } ]
可以通过 CLI 或 PowerShell 创建自定义角色
提示
内置角色 存储 Blob 数据参与者 具有容器的删除权限,存储设备控制功能证据不需要该权限。 内置角色 存储 Blob 数据读取者 缺少所需的写入权限。 这就是建议使用自定义角色的原因。
重要
若要确保文件证据的完整性,请使用 Azure 不可变存储
将设备控制的用户分配到角色
Device Control Evidence Data Provider
。RemoteStorageFileEvent
将 设置为 Azure Blob 存储容器的 URL。