デバイスコントロール機能を使用してリムーバブルメディアアクセス制御を構成する手順と確認ポイント

Published: feedback 共有

こんにちは Security & Compliance サポートチームです。

この記事では、Microsoft Defender for Endpoint(MDE) を使用する Windows マシンでデバイスコントロール機能を使用してリムーバブルメディアアクセスを制御する方法を紹介します。

なお、本記事の内容は、2024 年 1 月 24 日時点で最新の情報を元に作成いたしております。

また、本記事の手順はすべて Windows 11 23H2 にて動作確認を実施しております。

デバイスコントロール機能に関する最新情報については、Microsoft Learn をご参照ください。

本記事の内容

リムーバブルメディアアクセス制御の概要

リムーバブルメディアアクセス制御とは

MDE を利用する Windows マシンでデバイスコントロール機能を利用することで、リムーバブルメディアへのアクセス制御が可能です。

リムーバブルメディアへのアクセス制御を構成することで、USB フラッシュメモリや CD/DVD、WPAD 端末など、さまざまなリムーバブルメディアに対して読み取り、書き込みまたは実行アクセスの監査やブロックを行うことが可能です。

リムーバブルメディアアクセス制御の前提要件

下記公開情報に記載の通り、リムーバブルメディアアクセス制御は本記事執筆時点(2024 年 1 月) では、Windows 10 / 11 および macOS 11(Big Sur) 以降での利用をサポートしています。

参考情報:Microsoft Defender for Endpointのデバイス制御 | Microsoft Learn

リムーバブルメディアアクセス制御の設定方法

Windows マシンの場合、リムーバブルメディアアクセス制御機能はグループポリシーまたは Intune で構成することができます。

Intune を使用して管理する場合は、OMA-URI および XML ファイルを使用する方法と、Intune ユーザー インターフェイスを使用する方法のいずれか一方にて設定を行うことができます。

リムーバブルメディアアクセス制御の設定を複数のサービスで管理することは非推奨の構成にあたるため、設定を行う場合はいずれか 1 つの方法を選択してください。

参考情報:グループ ポリシーを使用してリムーバブルメディアアクセス制御を展開および管理する | Microsoft Learn

参考情報:Intune を使用してリムーバブルメディアアクセス制御を展開および管理する | Microsoft Learn

リムーバブルメディアアクセス制御の設定方法を選択する

Windows マシンのリムーバブルメディアアクセス制御は以下のいずれかの方法で構成できます。

  1. グループポリシー

  2. Intune(OMA-URI)

  3. Intune(ユーザインタフェース)

グループポリシーまたは Intune(OMA-URI) を使用する場合は、制御対象となるリムーバブルメディアなどを指定するデバイスコントロールグループを指定する XML ファイルと、デバイスコントロールグループに対するアクセス制御ポリシーを記述する XML ファイルをそれぞれ作成し、端末にポリシーとして配布する必要があります。

グループポリシーまたは Intune(OMA-URI) でリムーバブルメディアアクセス制御を行う際に作成する必要がある XML ファイルについては、リムーバブルメディアアクセス制御を XML ファイルで構成する の項の記載を参照してください。

一方で、Intune(ユーザインタフェース)を使用する場合は Intune ポータル上のポリシー構成画面から GUI にてリムーバブルメディアアクセス制御を構成できます。

そのため、Intune(ユーザインタフェース)を使用する場合は XML ファイルの作成は不要です。

※ リムーバブルメディアアクセス制御の設定を複数のサービスで管理することは非推奨の構成にあたるため、設定を行う場合はいずれか 1 つの方法を選択してください。

グループポリシーを使用してリムーバブルメディアアクセス制御を構成する

グループポリシーを使用するための事前準備

グループポリシーを使用してデバイスコントロール機能のリムーバブルメディアアクセス制御を実施する場合、現在ご利用中の管理用テンプレートにデバイスコントロール機能の設定項目が含まれているかどうか事前に確認する必要があります。

デバイスコントロール機能は、Windows 10 の既定の管理用テンプレートなどを利用する環境では、既定で設定を変更することができません。

そのため、Active Directory やローカルグループポリシーを使用してデバイスコントロール機能の設定を行う場合には、必ず事前に以下の 2 つの設定項目が存在していることを確認してください。

  • [Microsoft Defender ウイルス対策]>[機能]

  • [Microsoft Defender ウイルス対策]>[デバイス制御]

参考情報:Deploy and manage device control in Microsoft Defender for Endpoint with Group Policy | Microsoft Learn

以下は Administrative Templates (.admx) for Windows 11 2022 Update (22H2) - v3.0 として配布している管理用テンプレートを使用してセントラル ストアの admx および adml を更新済みの環境でグループポリシーエディタを起動した画面です。

このように [Microsoft Defender ウイルス対策] 内に [機能] と [デバイス制御] の設定項目がそれぞれ表示されている場合には、デバイスコントロール機能のリムーバブルメディアアクセス制御をグループポリシーで構成することが可能です。

Windows 11 2022 Update (22H2) - v3.0 の管理用テンプレート (.admx) を使用する場合

参考情報:セントラル ストアの作成と管理 - Windows Client | Microsoft Learn

参考情報:グループ ポリシーを使用してデプロイする | Microsoft Learn

グループポリシーでデバイスコントロール機能を有効化する

グループポリシーエディタ上でデバイスコントロール機能に対応する設定項目が存在することを確認したら、**[Microsoft Defender ウイルス対策]>[機能]>[デバイス制御]** の設定項目を有効化します。

グループポリシーでデバイスコントロール機能を有効化する

端末でデバイスコントロール機能が有効化されているかどうかを確認したい場合、PowerShell で Select-Object DeviceControlState を実行し、出力結果が Enabled となることを確認してください。

1
2
3
4
5
PS> Get-MpComputerStatus | Select-Object DeviceControlState

DeviceControlState
------------------
Enabled

グループポリシーで既定の処理を構成する

必要に応じて、**[Microsoft Defender ウイルス対策]>[デバイス制御]>[デバイスコントロールの既定の強制ポリシーの選択]** からデバイスコントロール機能の既定の処理を構成することが可能です。

既定の処理を [拒否] とした場合、ポリシーによって明示的に許可されていない操作がデバイスコントロール機能によってブロックされます。

デバイスコントロール機能の既定の処理

端末に適用されているデバイスコントロール機能の既定の処理は Get-MpComputerStatus | Select-Object DeviceControlDefaultEnforcement を PowerShell で実行することで確認できます。

本記事執筆時点で最新の WIndows 11 デバイスでは、上記の設定が未構成の場合にはデバイスコントロール機能の既定の処理は [許可(DefaultAllow)] が設定されています。

1
2
3
4
5
PS> Get-MpComputerStatus | Select-Object DeviceControlDefaultEnforcement

DeviceControlDefaultEnforcement
-------------------------------
DefaultAllow

なお、この設定はリムーバブルメディアアクセス制御を含むすべてのデバイスコントロール機能に対する設定であるため、既定の処理を [拒否] とした場合にはデバイスコントロール機能のプリンター保護機能の動作にも影響する点に注意が必要です。

そのため、リムーバブルメディアアクセスに対してのみ既定の処理を構成したい場合には、[デバイスコントロールの既定の強制ポリシーの選択] の設定は未構成のままとし、後述する シナリオ 1 - カスタムポリシーで既定のアクセス拒否ポリシーを構成する の手順でリムーバブルメディアアクセス制御ポリシーにて既定の動作を定義します。

organizationでプリンターがブロックされるのはなぜですか?

既定の適用設定は、すべてのデバイスコントロールコンポーネントに対するものです。

つまり、 Deny設定すると、すべてのプリンターもブロックされます。

プリンターを明示的に許可するカスタム ポリシーを作成するか、既定の適用ポリシーをカスタム ポリシーに置き換えることができます。

参考情報:organizationでプリンターがブロックされるのはなぜですか? | Microsoft Learn

グループポリシーでデバイスコントロールグループを構成する

グループポリシーでリムーバブルメディアアクセス制御を構成する際に必要なデバイスコントロールグループは、**[Microsoft Defender ウイルス対策]>[デバイス制御]>[デバイス制御ポリシーグループの定義]** から設定できます。

このポリシーでは、デバイスコントロールグループの設定を記述した XML ファイルが存在するネットワークファイル共有の UNC パス、またはローカルファイルのフルパスを指定します。

設定を適切に反映するためには、デバイスコントロール機能を利用する端末がネットワークファイル共有の UNC パス、またはローカルファイルのフルパスから XML ファイルをロードできる必要があります。

デバイスコントロールグループの設定

デバイスコントロールグループの設定を記述するための XML ファイルの作成方法については、後述する デバイスコントロールグループを XML ファイルで構成する および、グループポリシーまたは Intune の OMA-URI を使用してアクセス制御を構成するサンプルシナリオ の記載を参照してください。

グループポリシーでアクセス制御ポリシーを構成する

グループポリシーでリムーバブルメディアアクセス制御を構成する際に必要なアクセス制御ポリシーは、**[Microsoft Defender ウイルス対策]>[デバイス制御]>[デバイス制御ポリシールールの定義]** から設定できます。

こちらも同じく、アクセス制御ポリシーの設定を記述した XML ファイルが存在するネットワークファイル共有の UNC パス、またはローカルファイルのフルパスを指定します。

設定を適切に反映するためには、デバイスコントロール機能を利用する端末がネットワークファイル共有の UNC パス、またはローカルファイルのフルパスから XML ファイルをロードできる必要があります。

アクセス制御ポリシーの設定

アクセス制御ポリシーの設定を記述するための XML ファイルの作成方法については、後述する リムーバブルメディアアクセス制御を XML ファイルで構成する および、グループポリシーまたは Intune の OMA-URI を使用してアクセス制御を構成するサンプルシナリオ の記載を参照してください。

デバイスコントロールの設定状況とポリシーの更新有無を確認する

デバイスコントロール機能の設定内容が反映されているか否かの確認のためには、以下の PowerShell コマンドレットを使用できます。

1
2
3
4
5
PS> Get-MpComputerStatus | Select-Object DeviceControlState,DeviceControlDefaultEnforcement,DeviceControlPoliciesLastUpdated

DeviceControlState DeviceControlDefaultEnforcement DeviceControlPoliciesLastUpdated
------------------ ------------------------------- --------------------------------
Enabled DefaultAllow 2024/01/20 8:30:36

デバイスコントロール機能が正常に有効化されている場合には、DeviceControlState の値が Enabled になります。

また、デバイスコントロールグループおよびアクセス制御ポリシーの情報が反映された場合には、DeviceControlPoliciesLastUpdated に表示される時刻が更新されます。

Intune の OMA-URI を使用してリムーバブルメディアアクセス制御を構成する

Intune の OMA-URI でデバイスコントロール機能を有効化する

MDE にオンボード済みの Windows マシンを Intune に登録したら、[デバイス]>[構成プロファイル] から新規プロファイルを作成し、プラットフォームを [Windows 10 以降]、プロファイルの種類を [テンプレート] として、カスタム構成プロファイルを選択します。

Intune でカスタム構成プロファイルを作成する

作成する構成プロファイルに、Enable_DeviceControl などの任意の名前を設定した後、[構成設定] 画面で ./Vendor/MSFT/Defender/Configuration/DeviceControlEnabled という OMA-URI を追加し、データ型を [整数]、値を 1 とします。

この設定によって、マシンでデバイスコントロール機能を有効化できます。

DeviceControlEnabled でデバイスコントロール機能を有効化する

参考情報:Microsoft Intuneを使用してMicrosoft Defender for Endpointでデバイス制御をデプロイおよび管理する | Microsoft Learn

Intune の OMA-URI で既定の処理を構成する

同じ構成プロファイルで ./Vendor/MSFT/Defender/Configuration/DefaultEnforcement の OMA-URI を追加することで、デバイスコントロール機能の既定の処理を変更することができます。

データ型を [整数] とし、既定の処理を [許可] に設定する場合は 1 を、[拒否] に変更する場合は 2 を設定します。

DefaultEnforcement で既定の処理を設定する

なお、グループポリシーで設定する場合と同じく、既定の処理の設定はリムーバブルメディアアクセス制御を含むすべてのデバイスコントロール機能に対する設定であるため、既定の処理を [拒否] とした場合にはデバイスコントロール機能のプリンター保護機能の動作にも影響する点に注意が必要です。

Intune の OMA-URI でデバイスコントロールグループを構成する

Intune の OMA-URI を使用する場合も、グループポリシーで設定する場合と同じく XML ファイルでデバイスコントロールグループとアクセス制御ポリシーを設定します。

ただし、Intune の OMA-URI でデバイスコントロールグループを構成する場合、1 つのグループごとに 1 つの OMA-URI を割り当てる必要があります。

参考情報:OMA-URI を使用したグループの作成 | Microsoft Learn

この項では、シナリオ 4 - 特定のユーザに対してアクセスを許可する のサンプルポリシーを Intne の OMA-URI で設定する手順を紹介します。

このサンプルシナリオで使用する OMA-URI 用の XML ファイルは、以下の公開リポジトリからダウンロード可能です。

参考情報:Getting Started/Intune OMA-URI

デバイスコントロールグループの設定のため、以下の 3 つの XML ファイルを使用します。

  • all_removable_media_devices{d8819053-24f4-444a-a0fb-9ce5a9e97862}.xml
1
2
3
4
5
6
7
8
<Group Id="{d8819053-24f4-444a-a0fb-9ce5a9e97862}" Type="Device">
<!-- ./Vendor/MSFT/Defender/Configuration/DeviceControl/PolicyGroups/%7Bd8819053-24f4-444a-a0fb-9ce5a9e97862%7D/GroupData -->
<Name>All removable media devices</Name>
<MatchType>MatchAny</MatchType>
<DescriptorIdList>
<PrimaryId>RemovableMediaDevices</PrimaryId>
</DescriptorIdList>
</Group>
  • authorized_usbs{368a2c82-17be-4137-bffa-370bbdff9672}.xml
1
2
3
4
5
6
7
8
<Group Id="{368a2c82-17be-4137-bffa-370bbdff9672}" Type="Device">
<!-- ./Vendor/MSFT/Defender/Configuration/DeviceControl/PolicyGroups/%7B368a2c82-17be-4137-bffa-370bbdff9672%7D/GroupData -->
<Name>Authorized USBs</Name>
<MatchType>MatchAny</MatchType>
<DescriptorIdList>
<InstancePathId>USB\VID_154B&amp;PID_0028\6EA9150055800605</InstancePathId>
</DescriptorIdList>
</Group>
  • readonly_usbs{23c24566-98a5-4218-8802-59614513b97e}.xml
1
2
3
4
5
6
7
8
<Group Id="{23c24566-98a5-4218-8802-59614513b97e}" Type="Device">
<!-- ./Vendor/MSFT/Defender/Configuration/DeviceControl/PolicyGroups/%7B23c24566-98a5-4218-8802-59614513b97e%7D/GroupData -->
<Name>Readonly USBs</Name>
<MatchType>MatchAny</MatchType>
<DescriptorIdList>
<VID_PID>090C_1000</VID_PID>
</DescriptorIdList>
</Group>

Intune の OMA-URI でデバイスコントロールグループを定義する場合、1 つのグループごとに ./Vendor/MSFT/Defender/Configuration/DeviceControl/PolicyGroups/%7b[GroupId]%7d/GroupData のような OMA-URI を作成し、グループの定義を含む XML ファイルをアップロードします。

[GroupId] の箇所は構成するデバイスコントロールグループの GroupID に置き換えます。

例えば、上記のサンプルファイル all_removable_media_devices{d8819053-24f4-444a-a0fb-9ce5a9e97862}.xml を使用する場合は、以下の ./Vendor/MSFT/Defender/Configuration/DeviceControl/PolicyGroups/%7Bd8819053-24f4-444a-a0fb-9ce5a9e97862%7D/GroupData という OMA-URI を追加します。

この時、[データ型] は [文字列(XML ファイル)] を選択し、Group 要素を 1 つ含むファイルをアップロードします。

OMA-URI によるデバイスコントロールグループの設定

上記と同様の手順で Authorized USBsRead Only USBs のグループを定義する OMA-URI も追加します。

デバイスコントロールグループの OMA-URI を登録する

グループの XML を適用する前に、InstancePathIdVID_PID の指定する値をユーザが利用するメディアの情報に置き換えてください。

また、特にデバイスインスタンスパスを使用して明示的にデバイスを指定する場合には、XML ファイル内で & をエスケープ文字 &amp; に置き換える必要がある点に注意してください。

Intune の OMA-URI でアクセス制御ポリシーを構成する

デバイスコントロールグループの OMA-URI を追加したので、次はこれらのグループと対応するアクセス制御ポリシーを登録します。

アクセス制御ポリシーを登録する場合も、1 つの PolicyRule ごとに 1 つの OMA-URI を登録する必要があります。

グループポリシー用の XML ファイルとは異なり、PolicyRules 要素にて複数の PolicyRule をまとめて記述することができない点に注意が必要です。

このサンプルシナリオで使用する OMA-URI 用のポリシー XML ファイルは、以下の公開リポジトリからダウンロード可能です。(ファイル名が step_4 から始まるものを使用します。)

参考情報:Getting Started/Intune OMA-URI

アクセス制御ポリシーの設定のため、以下の XML ファイルを使用します。

  • step_4_-_deny_all_other_usbs{7beca8fe-313a-46f2-a090-399eb3d74318}.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<PolicyRule Id="{7beca8fe-313a-46f2-a090-399eb3d74318}" >
<!-- ./Vendor/MSFT/Defender/Configuration/DeviceControl/PolicyRules/%7B7beca8fe-313a-46f2-a090-399eb3d74318%7D/RuleData -->
<Name>Step 4 - Deny all other USBs</Name>
<IncludedIdList>
<GroupId>{d8819053-24f4-444a-a0fb-9ce5a9e97862}</GroupId>
</IncludedIdList>
<ExcludedIdList>
<GroupId>{368a2c82-17be-4137-bffa-370bbdff9672}</GroupId>
<GroupId>{23c24566-98a5-4218-8802-59614513b97e}</GroupId>
</ExcludedIdList>
<Entry Id="{c82cb32c-4c56-4c76-8897-b2cc99558299}">
<Type>Deny</Type>
<AccessMask>7</AccessMask>
<Options>0</Options>
</Entry>
<Entry Id="{70582e83-ea91-4b14-8f6c-f3921dab9d7a}">
<Type>AuditDenied</Type>
<AccessMask>7</AccessMask>
<Options>3</Options>
</Entry>
</PolicyRule>
  • step_4_-_allow_access_to_writeable_usbs_for_some_users{a054bbcf-3454-4b95-9058-f7ed00deeee9}.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<PolicyRule Id="{a054bbcf-3454-4b95-9058-f7ed00deeee9}" >
<!-- ./Vendor/MSFT/Defender/Configuration/DeviceControl/PolicyRules/%7Ba054bbcf-3454-4b95-9058-f7ed00deeee9%7D/RuleData -->
<Name>Step 4 - Allow Access to Writeable USBs for some users</Name>
<IncludedIdList>
<GroupId>{368a2c82-17be-4137-bffa-370bbdff9672}</GroupId>
</IncludedIdList>
<ExcludedIdList>
</ExcludedIdList>
<Entry Id="{e78857e3-9e36-473b-a07c-fe1a1f356ec9}">
<Type>Allow</Type>
<AccessMask>63</AccessMask>
<Options>0</Options>
<Sid>S-1-1-0</Sid>
</Entry>
</PolicyRule>
  • step_4_-_allow_read_only_access_to_read_only_usbs_for_some_users{b2b9cfc0-799d-457c-babc-da617d9a8b83}.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<PolicyRule Id="{b2b9cfc0-799d-457c-babc-da617d9a8b83}" >
<!-- ./Vendor/MSFT/Defender/Configuration/DeviceControl/PolicyRules/%7Bb2b9cfc0-799d-457c-babc-da617d9a8b83%7D/RuleData -->
<Name>Step 4 - Allow Read Only Access to Read Only USBs for some users</Name>
<IncludedIdList>
<GroupId>{23c24566-98a5-4218-8802-59614513b97e}</GroupId>
</IncludedIdList>
<ExcludedIdList>
</ExcludedIdList>
<Entry Id="{e78857e3-9e36-473b-a07c-fe1a1f356ec9}">
<Type>Allow</Type>
<AccessMask>9</AccessMask>
<Options>0</Options>
<Sid>S-1-1-0</Sid>
</Entry>
</PolicyRule>

アクセス制御ポリシーを登録する場合、./Vendor/MSFT/Defender/Configuration/DeviceControl/PolicyRules/%7b[PolicyRule Id]%7d/RuleData のような OMA-URI を作成し、1 つの PolicyRule を記述した XML ファイルをアップロードします。

OMA-URI の [PolicyRule Id] の箇所は、適用する PolicyRule の ID に置き換える必要があります。

例えば、サンプルポリシーの step_4_-_allow_access_to_writeable_usbs_for_some_users{a054bbcf-3454-4b95-9058-f7ed00deeee9}.xml を使用して OMA-URI を登録する場合には、./Vendor/MSFT/Defender/Configuration/DeviceControl/PolicyRules/%7Ba054bbcf-3454-4b95-9058-f7ed00deeee9%7D/RuleData というパスを指定します。

アクセス制御ポリシーの OMA-URI を登録

すべての設定が完了したら、カスタム構成プロファイルを保存し、任意のデバイスやユーザに割り当てます。

カスタム構成プロファイルの保存

割り当てされたポリシーが端末に配信されると、デバイスコントロール機能が有効化され、端末にアクセス制御ポリシーが適用されます。

ポリシーが反映されたことを確認したい場合は PowerShell で Get-MpComputerStatus | Select-Object DeviceControlState,DeviceControlDefaultEnforcement,DeviceControlPoliciesLastUpdated を実行し、DeviceControlPoliciesLastUpdated の時刻が更新されていることを確認します。

Intune のユーザインターフェースを使用してリムーバブルメディアアクセス制御を構成する

Intune を使用する場合、カスタム構成プロファイルではなく [エンドポイントセキュリティ]>[攻撃面の減少] からデバイスコントロールプロファイルを作成することでもリムーバブルメディアのアクセス制御ポリシーを構成できます。

参考情報:Intune でデバイス制御を構成および管理する | Microsoft Learn

例えば、以下の手順ですべてのリムーバブルメディアに対してアクセス拒否ポリシーを構成できます。

  1. まず、[エンドポイントセキュリティ]>[攻撃面の減少] の [再利用可能な設定] から [リムーバブル記憶域] のインスタンスを追加し、[PrimaryId] を [RemovableMediaDevices] に設定します。

再利用可能な設定

  1. 次に、[エンドポイントセキュリティ]>[攻撃面の減少] からデバイスコントロールプロファイルを作成し、[Device Control] のトグルを [構成されました] の状態に変更して [Included ID] に [再利用可能な設定] で作成したリムーバブルメディアグループを登録します。
  2. 続けて、以下の画面のように [+ Edit Entry] からリムーバブルメディア制御ポリシーを設定することで、デバイスに対するアクセス拒否を構成できます。

Intune のデバイスコントロールプロファイルを作成する

Intune のユーザインタフェースによるリムーバブルメディアアクセス制御ポリシーの設定項目については以下の公開情報の記載を参照してください。

参考情報:Device control policies in Microsoft Defender for Endpoint | Microsoft Learn

デバイスコントロールグループを XML ファイルで構成する

グループポリシーまたは Intune の OMA-URI を使用してリムーバブルメディアアクセス制御を構成する場合、まずは制御対象となるデバイスやリムーバブルメディアをデバイスコントロールグループとして定義する必要があります。

デバイスコントロールグループの定義に関する最新の情報は以下の公開情報を参照してください。

参考情報:Device control policies in Microsoft Defender for Endpoint | Microsoft Learn

グループポリシーを使用する場合、デバイスコントロールグループの XML ファイルは 、要素 Groups の中に 1 つ以上の Group を定義する構造となっています。つまり、1 つの XML ファイル内に複数の Group の定義を統合できます。

一方で、Intune の OMA-URI を使用する場合、要素 Groups は使用せず、1 つの Group ごとに 1 つの OMA-URI を使用します。

Group には Id 属性として GroupID を指定する必要があります。ここで使用可能な ID は、PowerShell で New-Guid コマンドレットを実行することでランダムに生成することが可能です。

参考情報:Microsoft Defender for Endpoint デバイス コントロールリムーバブル ストレージに関してよく寄せられる質問 | Microsoft Learn

PrimaryId によるデバイスの指定

Group 要素には、グループ名や GroupID を記述できます。GroupID は後述するアクセス制御ポリシーの対象を指定するために使用します。

Group 内では、MatchTypeDescriptorIdList によりグループの対象となるデバイスのプロパティを定義します。

例えば、MatchTypeMatchAny に設定されている場合は、DescriptorIdList 内の要素を OR リレーションシップで評価することを意味しています。

つまり、DescriptorIdList 要素内で定義されたいずれかの条件に合致するデバイスが存在する場合、対象のデバイスがそのグループの対象となることを意味します。

DescriptorIdList 要素内で利用できる設定値として PrimaryId があります。

PrimaryIdRemovableMediaDevices を指定する場合、すべての RemovableMediaDevices(USB フラッシュメモリや USB 接続の外付け SSD など) を対象とする グループを定義することがきできます。

InstancePathId と VID_PID によるデバイスの指定

グループの対象となるデバイスの条件を記述できる DescriptorIdList では、 PrimaryId 以外にも InstancePathIdVID_PID などを利用できます。

InstancePathId は、デバイスインスタンスパスを利用して対象のデバイスを明示的に指定します。(InstancePathId の指定にはワイルドカードを使用することもできます。)

これは、特に USB フラッシュメモリなどの DiskDrive を指定するシナリオで使用できます。

なお、InstancePathId を指定する場合には、もともとのデバイスインスタンスパスに含まれる & をエスケープ文字 &amp; に置き換えて XML に記述する必要があります。

VID_PID も同じく、特に USB フラッシュメモリなどの DiskDrive を指定するシナリオで使用できます。

VID_PID による指定は、 Vendor ID と Product ID のペアで記述されます。Product ID 部分についてはについてはワイルドカードもサポートしています。

参考情報:標準 USB 識別子 - Windows drivers | Microsoft Learn

その他のデバイスコントロールグループの指定方法

デバイスコントロールグループに含めるためのデバイスの指定は、上記のサンプル以外にも様々な条件で記述できます。

例えば、USB フラッシュメモリや USB 接続の外付け SSD などのリムーバブルメディアの場合、FriendlyNameId / PrimaryId / VID_PID / BusId / DeviceId / HardwareId / InstancePathId / SerialNumberId / PID / VID などの様々な値をデバイスの指定に使用できます。

特定のリムーバブルメディアの識別に使用できる値は、Windows デバイスマネージャや Microsoft Defender の Advanced Hunting クエリなどを使用して調査できます。

XML 内で使用するプロパティ デバイスマネージャー上のプロパティ サンプル KQL の実行結果
FriendlyNameId フレンドリ名 MediaName
InstancePathId デバイスインスタンスパス DeviceId
SerialNumberId デバイスインスタンスパス から確認可能 Serial Number
PID から確認可能 ProductId
VID から確認可能 VendorId

なお、Advanced Hunting で USB メディアの情報を調査するためには以下のような KQL クエリを使用できます。

1
2
DeviceEvents 
| where ActionType == "RemovableStoragePolicyTriggered"

より詳細な情報については以下の公開情報を参照してください。

参考情報:Device control policies in Microsoft Defender for Endpoint | Microsoft Learn

リムーバブルメディアアクセス制御を XML ファイルで構成する

制御対象となるデバイスやリムーバブルメディアをデバイスコントロールグループとして定義したら、各グループを対象とするアクセス制御ポリシーを作成します。

アクセス制御ポリシーの定義に関する最新の情報は以下の公開情報を参照してください。

参考情報:Device control policies in Microsoft Defender for Endpoint | Microsoft Learn

グループポリシーを使用する場合に使用するアクセス制御ポリシーの XML ファイルは、要素 PolicyRules の中に 1 つ以上の PolicyRule を定義する構造になっています。つまり、1 つの XML ファイル内に複数の PolicyRule の定義を統合できます。

一方で、Intune の OMA-URI を使用する場合、要素 PolicyRules は使用せず、1 つの PolicyRule ごとに 1 つの OMA-URI を使用します。

PolicyRule には Id 属性として PolicyRuleID を指定する必要があります。

※ ここで使用可能な ID は、デバイスコントロールグループと同じく PowerShell で New-Guid コマンドレットを実行することでランダムに生成することが可能です。

PolicyRule 要素の中には、IncludedIdListExcludedIdListEntry 要素などを記述します。

Entry 要素には、具体的なアクセス制御ポリシーの定義を記述します。

一方で、IncludedIdListExcludedIdList には、デバイスコントロールグループの XML で定義した Group 要素の GroupID を含めることができます。

これによって、各 PolicyRule 要素では、IncludedIdList で指定されたグループに対して Entry 要素で定義したアクセス制御ポリシーが適用されるようになります。( ExcludedIdList で指定された GroupID のオブジェクトはアクセス制御ポリシーの対象外になります。)

ディスクレベルで読み書き実行を拒否する

アクセス制御ポリシーでは、PolicyRule 要素の中に記述する Entry 要素にて詳細なアクセス許可や拒否を定義できます。

例えば、Entry 要素の TypeDenyAccessMask に 7 が指定されている場合、ポリシーの対象となるグループに含まれるすべてのリムーバブルメディアに対して、DiskLevel での読み取り、書き込み、実行アクセスを拒否します。

このように、Windows マシンのリムーバブルメディアアクセス制御を行う場合、制御ポリシーは TypeAccessMask の組み合わせで定義されます。(Options 要素の設定値の意味は Type 要素の値によって変わります。)

まず、Type には、Allow または Deny および AuditAllowed または AuditDenied の 4 つのいずれかを指定できます。

Allow が指定されている場合には、AccessMask 要素の指定に従ってメディアへのアクセスが「許可」されます。

一方で、Deny が指定されている場合には、AccessMask 要素の指定に従ってメディアへのアクセスが「拒否」されます。

AuditAllowed または AuditDenied については、それぞれ AllowDeny の動作に対応して通知やイベント送信を行うかどうかを指定できます。

AccessMask 要素では、ディスクレベルもしくはファイルシステムレベルでメディアに対する Read, Write, Execute の操作をそれぞれ指定できます。

例えば、AccessMask が 7 で TypeDenyの場合には、ディスクレベルでの Read, Write, Execute 操作をすべて拒否する設定が適用されます。

リムーバブルメディアアクセス制御ポリシーで使用できる AccessMask については以下の表を参照してください。

アクセス制御 AccessMask
DiskLevel の読み取りアクセス 1
DiskLevel の書き込みアクセス 2
DiskLevel の実行アクセス 4
FIleSystemLevel の読み取りアクセス 8
FIleSystemLevel の書き込みアクセス 16
FIleSystemLevel の実行アクセス 32

また、一般的に使用されるアクセス制御を構成するために使用する AccessMask については以下におまとめします。

アクセス制御 AccessMask
DiskLevel の読み、書き、実行アクセス 7 (1 + 2 + 4)
FileSystemLevel の読み、書き、実行アクセス 56 (8 + 16 + 32)
FileSystemLevel と DiskLevel の読み、書き、実行アクセス(フルアクセス) 63 (7 + 56)
DiskLevel + FileSystemLevel の読み取りアクセスのみ 9 (1 + 8)
DiskLevel + FileSystemLevel の読み取り、書き込みアクセスのみ 27 (9 + 18)

アクセス制御ポリシーに関するより詳細な情報については以下の公開情報を参照してください。

参考情報:Understand mask access (Windows) | Microsoft Learn

SID を指定して読み取りと書き込みアクセス許可を構成する

ルールの Entry には、SidComputerSid などの、より詳細な条件を定義可能な要素を含めることが可能です。

例えば、ルールの EntrySid 要素を追加し、特定のローカルユーザの SID を記述した場合には、その SID を持つユーザにのみリムーバブルメディアへのアクセスを許可を構成することが可能です。

例えば、以下のクエリを使用することで、 Microsoft Defender ポータルから Advanced Hunting にてログインユーザの SID を取得することができます。

1
2
3
4
DeviceLogonEvents
| where AccountSid != ""
| where not(AccountName startswith "umfd-") and not(AccountName startswith "dwm-")
| distinct AccountSid,AccountName,AccountDomain

また、AD ユーザや AD グループの SID については、ドメインコントローラにて Get-ADUserGet-ADGroup コマンドレットを利用する方法などで調査できます。

ローカルユーザやローカルグループについては、一例として以下のコマンドで確認できます。

1
2
3
4
5

PS> (New-Object System.Security.Principal.NTAccount('Administrator')).Translate([System.Security.Principal.SecurityIdentifier])

# ローカルグループ BUILTIN\Users の SID を参照できる
PS> (New-Object System.Security.Principal.NTAccount('BUILTIN\Users')).Translate([System.Security.Principal.SecurityIdentifier])

汎用的な SID については 既知の SID の情報を参照してください。

また、その他、 Entry 要素で構成可能な項目の詳細は以下の公開情報を参照してください。

参考情報:Device control policies in Microsoft Defender for Endpoint | Microsoft Learn

Advanced Hunging でリムーバブルメディアアクセス制御イベントを確認する

実際にこのポリシーを適用し、許可していないリムーバブルメディアデバイスへのアクセスがブロックされることを確認します。

既定の構成では、このポリシーによってリムーバブルメディアへのアクセスがブロックされた場合、Windows セキュリティアプリからポップアップ通知が行われます。

Windows セキュリティアプリのポップアップ通知

また、Microsoft Device ポータルの [高度な追及] から、以下の Advanced Hunging クエリを発行することで、アクセス制御ポリシーによってブロックされた端末やリムーバブルメディアの詳細情報などを確認することができます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
DeviceEvents
| where ActionType == "RemovableStoragePolicyTriggered"
| extend parsed=parse_json(AdditionalFields)
| extend RemovableStorageAccess = tostring(parsed.RemovableStorageAccess)
| extend RemovableStoragePolicyVerdict = tostring(parsed.RemovableStoragePolicyVerdict)
| extend MediaBusType = tostring(parsed.BusType)
| extend MediaClassGuid = tostring(parsed.ClassGuid)
| extend MediaClassName = tostring(parsed.ClassName)
| extend MediaDeviceId = tostring(parsed.DeviceId)
| extend MediaInstanceId = tostring(parsed.DeviceInstanceId)
| extend MediaName = tostring(parsed.MediaName)
| extend RemovableStoragePolicy = tostring(parsed.RemovableStoragePolicy)
| extend MediaProductId = tostring(parsed.ProductId)
| extend MediaVendorId = tostring(parsed.VendorId)
| extend MediaSerialNumber = tostring(parsed.SerialNumber)
|project Timestamp, DeviceId, DeviceName, InitiatingProcessAccountName, ActionType, RemovableStorageAccess, RemovableStoragePolicyVerdict, MediaBusType, MediaClassGuid, MediaClassName, MediaDeviceId, MediaInstanceId, MediaName, RemovableStoragePolicy, MediaProductId, MediaVendorId, MediaSerialNumber, FolderPath, FileSize
| order by Timestamp desc

Advanced Hunting クエリ画面

参考情報:Device control walkthroughs | Microsoft Learn

グループポリシーまたは Intune の OMA-URI を使用してアクセス制御を構成するサンプルシナリオ

この項では、公開されているサンプルポリシーを使用してリムーバブルメディアアクセス制御を構成する方法を紹介します。

なお、以下で引用するサンプル XML ファイルは、グループポリシー用のサンプルファイルである点に留意してください。

デバイスコントロールグループやアクセス制御ポリシーの記述方法はグループポリシーと Intune の OMA-URI を利用する場合で共通ですが、Intune の OMA-URI を使用する場合には、1 つのデバイスコントロールグループやアクセス制御ポリシーごとに 1 つの OMA-URI を作成する必要がある点に注意してください。

シナリオ 1 - カスタムポリシーで既定のアクセス拒否ポリシーを構成する

このサンプルポリシーのファイルは、以下の Github リポジトリからダウンロード可能です。

参考情報:Device control policy sample: Step 1 - Deny all access

ここで紹介するサンプル XML にてデバイスコントロールグループとアクセス制御ポリシーを記述することで、すべての RemovableMediaDevices に対してシステムレベルのアクセス拒否を構成することが可能です。

以下の XML では、すべてのリムーバブルメディアデバイスを対象とするデバイスコントロールグループを定義しています。

プロパティ名 MatchTypeMatchAny が指定されている場合、続く DescriptorIdList プロパティ内で定義された属性は OR で比較されます。

つまり、端末に接続したデバイスが DescriptorIdList プロパティ内で定義したいずれかの条件に合致した場合に、その端末は GroupID {d8819053-24f4-444a-a0fb-9ce5a9e97862} を持つこのグループに含まれると判定されます。

1
2
3
4
5
6
7
8
9
10
<Groups>
<Group Id="{d8819053-24f4-444a-a0fb-9ce5a9e97862}" Type="Device">
<!-- ./Vendor/MSFT/Defender/Configuration/DeviceControl/PolicyGroups/%7Bd8819053-24f4-444a-a0fb-9ce5a9e97862%7D/GroupData -->
<Name>All removable media devices</Name>
<MatchType>MatchAny</MatchType>
<DescriptorIdList>
<PrimaryId>RemovableMediaDevices</PrimaryId>
</DescriptorIdList>
</Group>
</Groups>

上記のデバイスコントロールグループでは、PrimaryIdRemovableMediaDevices であるデバイスすべてを対象としています。

このようなデバイスには、USB フラッシュメモリや USB 接続の外付け SSD などが含まれます。

参考情報:グループの設定 | Microsoft Learn

次に、以下のアクセス制御ポリシーを作成します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<PolicyRules>
<PolicyRule Id="{d8e6f56c-f4c1-4875-ac45-51ad75d4580e}" >
<!-- ./Vendor/MSFT/Defender/Configuration/DeviceControl/PolicyRules/%7Bd8e6f56c-f4c1-4875-ac45-51ad75d4580e%7D/RuleData -->
<Name>Audit Deny</Name>
<IncludedIdList>
<GroupId>{d8819053-24f4-444a-a0fb-9ce5a9e97862}</GroupId>
</IncludedIdList>
<ExcludedIdList>
</ExcludedIdList>
<Entry Id="{ad059b6f-bc9d-44e4-8ab9-907d7d00fc97}">
<Type>Deny</Type>
<AccessMask>7</AccessMask>
<Options>0</Options>
</Entry>
<Entry Id="{4cf50b77-0152-4999-8d82-6f6afdf27b0b}">
<Type>AuditDenied</Type>
<AccessMask>7</AccessMask>
<Options>3</Options>
</Entry>
</PolicyRule>
</PolicyRules>

アクセス制御ポリシーではまず、ポリシーを適用する対象のデバイスをグループ単位で指定する必要があります。

そのため、IncludedIdList には上記のデバイスコントロールグループの GroupID を指定しています。

今回は除外対象のグループは指定しないので ExcludedIdList は空のままとしています。

ポリシーを適用する対象のデバイスをグループにて指定したら、Entry にてアクセス制御を構成します。

サンプルポリシーではリムーバブルメディアに対してすべてのアクセスを拒否するために、TypeDeny であり、AccessMask が 7 の Entry を定義しています。

また、Options を 3 に設定した AuditDeniedEntry を同時に定義することで、通知の表示とイベントの送信を行うようにポリシーを定義しています。

このサンプルポリシーを使用すると、すべてのリムーバブルメディアへのアクセスがブロックされます。

参考情報:手順 1: リムーバブル メディアをすべて拒否する | Microsoft Learn

シナリオ 2 - 特定の USB メモリに対してのみアクセスを許可する

このサンプルポリシーのファイルは、以下の Github リポジトリからダウンロード可能です。

参考情報:Step 2 - Allow authorized USBs full access

このシナリオでは、シナリオ 1 で作成した RemovableMediaDevices へのアクセス拒否ポリシーに加えて、特定の USB デバイスを使用する場合にのみアクセスを許可するポリシーを追加します。

まず、デバイスコントロールグループを定義する XML は以下の通りです。

All removable media devices グループはシナリオ 1 で作成したものと同一ですが、新たに Authorized USBs というグループが追加されています。(Intune の OMA-URI を使用する場合は、グループの定義ごとに OMA-URI を追加します)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<Groups>
<Group Id="{d8819053-24f4-444a-a0fb-9ce5a9e97862}">
<Name>All removable media devices</Name>
<MatchType>MatchAny</MatchType>
<DescriptorIdList>
<PrimaryId>RemovableMediaDevices</PrimaryId>
</DescriptorIdList>
</Group><Group Id="{368a2c82-17be-4137-bffa-370bbdff9672}">
<Name>Authorized USBs</Name>
<MatchType>MatchAny</MatchType>
<DescriptorIdList>
<!-- This is an example. Replace this with the instance path id of your device -->
<InstancePathId>USB\VID_154B&amp;PID_0028\6EA9150055800605</InstancePathId>
</DescriptorIdList>
</Group>
</Groups>

この XML では、InstancePathId を使用して、特定のデバイスインスタンスパスを持つ リムーバブルメディアのみを Authorized USBs グループの対象として指定しています。 (XML の仕様上、インスタンスパス内の &&amp; にエスケープしています)

次に、以下のアクセス制御ポリシーの XML をチェックします。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<PolicyRules>
<PolicyRule Id="{7beca8fe-313a-46f2-a090-399eb3d74318}">
<Name>Step 2 - Deny all but authorized USBs</Name>
<IncludedIdList>
<GroupId>{d8819053-24f4-444a-a0fb-9ce5a9e97862}</GroupId>
</IncludedIdList>
<ExcludedIdList>
<GroupId>{368a2c82-17be-4137-bffa-370bbdff9672}</GroupId>
</ExcludedIdList>
<Entry Id="{c82cb32c-4c56-4c76-8897-b2cc99558299}">
<Type>Deny</Type>
<Options>0</Options>
<AccessMask>7</AccessMask>
</Entry>
<Entry Id="{70582e83-ea91-4b14-8f6c-f3921dab9d7a}">
<Type>AuditDenied</Type>
<Options>3</Options>
<AccessMask>7</AccessMask>
</Entry>
</PolicyRule><PolicyRule Id="{a054bbcf-3454-4b95-9058-f7ed00deeee9}">
<IncludedIdList>
<GroupId>{368a2c82-17be-4137-bffa-370bbdff9672}</GroupId>
</IncludedIdList>
<Entry Id="{e78857e3-9e36-473b-a07c-fe1a1f356ec9}">
<Type>Allow</Type>
<Options>0</Options>
<AccessMask>63</AccessMask>
</Entry>
<Name>Step 2 - Allow Full Access to Authorized USBs</Name>
</PolicyRule></PolicyRules>

Step 2 - Deny all but authorized USBs というポリシーの IncludedIdList には、シナリオ 1 と同じく All removable media devices の GroupID を指定していますが、同時に ExcludedIdList に新に追加した Authorized USBs グループの GroupID を指定しています。

さらに、2 つ目のポリシーである Step 2 - Allow Full Access to Authorized USBs では、IncludedIdListAuthorized USBs グループの GroupID を指定し、AccessMask が 63 の許可ルールを構成し、すべてのアクセスを明示的に許可する設定を定義しています。(Intune の OMA-URI を使用する場合は、ルールの定義ごとに OMA-URI を追加します)

このサンプルポリシーを使用すると、Authorized USBs グループで指定した InstancePathId を持つリムーバブルメディアにのみアクセスが許可され、その他すべてのリムーバブルメディアへのアクセスがブロックされます。

参考情報:手順 2: 承認された USB デバイスへのアクセスを許可する | Microsoft Learn

シナリオ 3 - デバイスごとに異なるアクセス許可を構成する

このサンプルポリシーのファイルは、以下の Github リポジトリからダウンロード可能です。

参考情報:Step 3 - Allow different access to different devices

このシナリオでは、シナリオ 2 で作成したポリシーを同様の手順で、複数のリムーバブルメディアに対してそれぞれ異なるアクセスを許可する設定を行います。

まずはデバイスコントロールグループを定義するために、グループポリシー用の XML ファイルである allow_different_access_to_different_groups.xml を確認します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<Groups>
<Group Id="{d8819053-24f4-444a-a0fb-9ce5a9e97862}">
<Name>All removable media devices</Name>
<MatchType>MatchAny</MatchType>
<DescriptorIdList>
<PrimaryId>RemovableMediaDevices</PrimaryId>
</DescriptorIdList>
</Group><Group Id="{368a2c82-17be-4137-bffa-370bbdff9672}">
<Name>Writeable USBs</Name>
<MatchType>MatchAny</MatchType>
<DescriptorIdList>
<!-- This is an example. Replace this with the instance path id of your device -->
<InstancePathId>USB\VID_154B&amp;PID_0028\6EA9150055800605</InstancePathId>
</DescriptorIdList>
</Group>
<Group Id="{23c24566-98a5-4218-8802-59614513b97e}">
<Name>Readonly USBs</Name>
<MatchType>MatchAny</MatchType>
<DescriptorIdList>
<!-- This is an example. Replace this with the VID PID of another device -->
<VID_PID>090C_1000</VID_PID>
</DescriptorIdList>
</Group>
</Groups>

All removable media devices グループはこれまでのシナリオで作成したものと同じで、すべてのリムーバブルメディアを対象とするグループです。これは、カスタムポリシーによる既定のアクセス拒否を構成するために使用します。

上記のサンプル XML ファイルでは、Writeable USBsReadonly USBs という 2 つのグループが追加で定義されます。(Intune の OMA-URI を使用する場合は、グループの定義ごとに OMA-URI を追加します)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<Group Id="{368a2c82-17be-4137-bffa-370bbdff9672}">
<Name>Writeable USBs</Name>
<MatchType>MatchAny</MatchType>
<DescriptorIdList>
<!-- This is an example. Replace this with the instance path id of your device -->
<InstancePathId>USB\VID_154B&amp;PID_0028\6EA9150055800605</InstancePathId>
</DescriptorIdList>
</Group>

<Group Id="{23c24566-98a5-4218-8802-59614513b97e}">
<Name>Readonly USBs</Name>
<MatchType>MatchAny</MatchType>
<DescriptorIdList>
<!-- This is an example. Replace this with the VID PID of another device -->
<VID_PID>090C_1000</VID_PID>
</DescriptorIdList>
</Group>

それぞれのグループは InstancePathIdVID_PID によって特定のリムーバブルメディアを指定しています。

続いて、アクセスポリシーを制御するための allow_different_access_to_different_rules.xml を確認します。

Step 3 - Deny all other USBs ルールはシナリオ 1、2 と同じく、All removable media devices グループに対してアクセス拒否を構成しています。

ただし、ExcludedIdList にて Writeable USBsReadonly USBs の 2 つのグループを適用対象外としています。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<PolicyRules>
<PolicyRule Id="{7beca8fe-313a-46f2-a090-399eb3d74318}">
<Name>Step 3 - Deny all other USBs</Name>
<IncludedIdList>
<GroupId>{d8819053-24f4-444a-a0fb-9ce5a9e97862}</GroupId>
</IncludedIdList>
<ExcludedIdList>
<GroupId>{368a2c82-17be-4137-bffa-370bbdff9672}</GroupId>
<GroupId>{23c24566-98a5-4218-8802-59614513b97e}</GroupId>
</ExcludedIdList>
<Entry Id="{c82cb32c-4c56-4c76-8897-b2cc99558299}">
<Type>Deny</Type>
<Options>0</Options>
<AccessMask>7</AccessMask>
</Entry>
<Entry Id="{70582e83-ea91-4b14-8f6c-f3921dab9d7a}">
<Type>AuditDenied</Type>
<Options>3</Options>
<AccessMask>7</AccessMask>
</Entry>
</PolicyRule><PolicyRule Id="{a054bbcf-3454-4b95-9058-f7ed00deeee9}">
<IncludedIdList>
<GroupId>{368a2c82-17be-4137-bffa-370bbdff9672}</GroupId>
</IncludedIdList>
<Entry Id="{e78857e3-9e36-473b-a07c-fe1a1f356ec9}">
<Type>Allow</Type>
<Options>0</Options>
<AccessMask>63</AccessMask>
</Entry>
<Name>Step 3 - Allow Full Access to Writeable USBs</Name>
</PolicyRule>
<PolicyRule Id="{b2b9cfc0-799d-457c-babc-da617d9a8b83}">
<IncludedIdList>
<GroupId>{23c24566-98a5-4218-8802-59614513b97e}</GroupId>
</IncludedIdList>
<Entry Id="{e78857e3-9e36-473b-a07c-fe1a1f356ec9}">
<Type>Allow</Type>
<Options>0</Options>
<AccessMask>9</AccessMask>
</Entry>
<Name>Step 3 - Allow Read Only Access to Read Only USBs</Name>
</PolicyRule>
</PolicyRules>

allow_different_access_to_different_rules.xml の中には、Step 3 - Deny all other USBs ルールの他に以下の 2 つのルールが記述されています。(Intune の OMA-URI を使用する場合は、ルールの定義ごとに OMA-URI を追加します)

まず、Step 3 - Allow Full Access to Writeable USBs ルールはシナリオ 2 と同じく AccessMask が 63 の Allow ルールによって Writeable USBs に完全なアクセス許可を構成しています。

一方で、Step 3 - Allow Read Only Access to Read Only USBs では、 Readonly USBs の GroupID に対して AccessMask が 9 の Allow ルールを構成しています。

AccessMask が 9(1 + 8) の場合、DiskLevel と FileSystemLevel の読み取りアクセスを同時に指定していることを意味します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<PolicyRule Id="{a054bbcf-3454-4b95-9058-f7ed00deeee9}">
<IncludedIdList>
<GroupId>{368a2c82-17be-4137-bffa-370bbdff9672}</GroupId>
</IncludedIdList>
<Entry Id="{e78857e3-9e36-473b-a07c-fe1a1f356ec9}">
<Type>Allow</Type>
<Options>0</Options>
<AccessMask>63</AccessMask>
</Entry>
<Name>Step 3 - Allow Full Access to Writeable USBs</Name>
</PolicyRule>

<PolicyRule Id="{b2b9cfc0-799d-457c-babc-da617d9a8b83}">
<IncludedIdList>
<GroupId>{23c24566-98a5-4218-8802-59614513b97e}</GroupId>
</IncludedIdList>
<Entry Id="{e78857e3-9e36-473b-a07c-fe1a1f356ec9}">
<Type>Allow</Type>
<Options>0</Options>
<AccessMask>9</AccessMask>
</Entry>
<Name>Step 3 - Allow Read Only Access to Read Only USBs</Name>
</PolicyRule>

このポリシーを適用すると、 Writeable USBs グループにて指定したリムーバブルメディアにのみ完全なアクセス許可が構成されます。

また、Readonly USBs グループで指定したリムーバブルメディアには読み取りアクセスのみが許可され、それ以外のすべてのリムーバブルメディアはアクセスが拒否されます。

参考情報:手順 3: さまざまな種類のデバイスに対してさまざまなレベルのアクセスを許可する | Microsoft Learn

シナリオ 4 - 特定のユーザに対してアクセスを許可する

このサンプルポリシーのファイルは、以下の Github リポジトリからダウンロード可能です。

参考情報:Step 4 - Allow different access to different devices for different users

デバイスコントロールグループを定義するグループポリシー用の XML ファイル allow_different_access_to_different_user_groups.xml は、シナリオ 3 で使用したものと同一です。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<Groups>
<Group Id="{d8819053-24f4-444a-a0fb-9ce5a9e97862}">
<Name>All removable media devices</Name>
<MatchType>MatchAny</MatchType>
<DescriptorIdList>
<PrimaryId>RemovableMediaDevices</PrimaryId>
</DescriptorIdList>
</Group><Group Id="{368a2c82-17be-4137-bffa-370bbdff9672}">
<Name>Writeable USBs</Name>
<MatchType>MatchAny</MatchType>
<DescriptorIdList>
<!-- This is an example. Replace this with the instance path id of your device -->
<InstancePathId>USB\VID_154B&amp;PID_0028\6EA9150055800605</InstancePathId>
</DescriptorIdList>
</Group>
<Group Id="{23c24566-98a5-4218-8802-59614513b97e}">
<Name>Readonly USBs</Name>
<MatchType>MatchAny</MatchType>
<DescriptorIdList>
<!-- This is an example. Replace this with the VID PID of another device -->
<VID_PID>090C_1000</VID_PID>
</DescriptorIdList>
</Group>
</Groups>

アクセス制御ポリシーを記述している allow_different_access_to_different_users_rules.xml もシナリオ 3 のものとほぼ同一ですが、書き込みや読み取りアクセスを許可するルールの Entry<Sid>S-1-1-0</Sid> という項目が追加で記述されています。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<PolicyRules>
<PolicyRule Id="{7beca8fe-313a-46f2-a090-399eb3d74318}">
<Name>Step 4 - Deny all other USBs</Name>
<IncludedIdList>
<GroupId>{d8819053-24f4-444a-a0fb-9ce5a9e97862}</GroupId>
</IncludedIdList>
<ExcludedIdList>
<GroupId>{368a2c82-17be-4137-bffa-370bbdff9672}</GroupId>
<GroupId>{23c24566-98a5-4218-8802-59614513b97e}</GroupId>
</ExcludedIdList>
<Entry Id="{c82cb32c-4c56-4c76-8897-b2cc99558299}">
<Type>Deny</Type>
<Options>0</Options>
<AccessMask>7</AccessMask>
</Entry>
<Entry Id="{70582e83-ea91-4b14-8f6c-f3921dab9d7a}">
<Type>AuditDenied</Type>
<Options>3</Options>
<AccessMask>7</AccessMask>
</Entry>
</PolicyRule><PolicyRule Id="{a054bbcf-3454-4b95-9058-f7ed00deeee9}">
<IncludedIdList>
<GroupId>{368a2c82-17be-4137-bffa-370bbdff9672}</GroupId>
</IncludedIdList>
<Entry Id="{e78857e3-9e36-473b-a07c-fe1a1f356ec9}">
<Type>Allow</Type>
<Options>0</Options>
<AccessMask>63</AccessMask>
<Sid>S-1-1-0</Sid>
</Entry>
<Name>Step 4 - Allow Access to Writeable USBs for some users</Name>
</PolicyRule>
<PolicyRule Id="{b2b9cfc0-799d-457c-babc-da617d9a8b83}">
<IncludedIdList>
<GroupId>{23c24566-98a5-4218-8802-59614513b97e}</GroupId>
</IncludedIdList>
<Entry Id="{e78857e3-9e36-473b-a07c-fe1a1f356ec9}">
<Type>Allow</Type>
<Options>0</Options>
<AccessMask>9</AccessMask>
<Sid>S-1-1-0</Sid>
</Entry>
<Name>Step 4 - Allow Read Only Access to Read Only USBs for some users</Name>
</PolicyRule>
</PolicyRules>

ルールの EntrySid という項目が追加で記述されている場合、その Entry には追加の条件が定義されます。

Sid 要素にはローカルユーザやコンピュータ、または Microsoft Entra オブジェクトの SID などを含めることができます。

この設定によって、Entry 要素で記述されたルールを特定のユーザやユーザグループに適用するかどうかを指定できます。

参考情報:Device control policies in Microsoft Defender for Endpoint | Microsoft Learn

上記のサンプルでは S-1-1-0 というすべてのユーザを表すグループの SID を指定していますが、特定のローカルユーザの SID に置き換えることで、その SID を持つユーザにのみリムーバブルメディアへのアクセスを許可を構成することが可能です。

参考情報:手順 4: 特定のユーザーまたはグループのデバイスへのさまざまなレベルのアクセスを許可する | Microsoft Learn

リムーバブルメディアアクセス制御に関するよくある質問

デバイスコントロール機能やリムーバブルメディアアクセス制御に関するよくある質問の多くは、以下の公開情報におまとめしております。

参考情報:Microsoft Defender for Endpoint Device Control frequently asked questions | Microsoft Learn

特定のメディアを指定するために使用するデバイスインスタンスパスなどの確認方法がわかりません

特定のメディアを明示的に指定するために使用するデバイスインスタンスパスなどの情報の多くは、Windows のデバイスマネージャーから対象デバイスのプロパティを確認することで特定できます。

参考情報:How do I find the media property in the Device Manager? |Microsoft Learn

例えば、USB フラッシュメモリのデバイスインスタンスパスは、デバイスマネージャーの以下のプロパティから参照できます。

デバイスマネージャーでデバイスインスタンスパスを参照する

また、Microsoft Defender ポータルの Advanced Hunging で以下のようなクエリを発行することも有効です。

1
2
3
4
5
6
7
8
9
DeviceEvents
| where ActionType == "PnpDeviceConnected"
| extend parsed=parse_json(AdditionalFields)
| extend MediaClass = tostring(parsed.ClassName)
| extend MediaDeviceId = tostring(parsed.DeviceId)
| extend MediaDescription = tostring(parsed.DeviceDescription)
| extend MediaSerialNumber = tostring(parsed.SerialNumber)
| project Timestamp, DeviceId, DeviceName, AccountName, AccountDomain, MediaClass, MediaDeviceId, MediaDescription, MediaSerialNumber, parsed
| order by Timestamp desc

参考情報:デバイス コントロールのチュートリアル | Microsoft Learn

上記のサンプルクエリを実行すると、デバイスに接続されたリムーバブルメディアのクラス名や DeviceId などの情報を取得できるため、アクセス制御ポリシーの設定に役立てることができます。

他にも、シナリオ 1 - カスタムポリシーで既定のアクセス拒否ポリシーを構成する を参考に、PrimaryIdRemovableMediaDevicesWpdDevices、または CdRomDevices などを設定した広範なアクセス拒否ポリシーを一度端末に適用して制御したいメディアへのアクセスをブロックし、そのイベントを確認する方法も有効です。

参考情報:サポート対象のデバイス | Microsoft Learn

このクエリを使用してアクセス拒否ポリシーによりメディアへのアクセスがブロックされた際の RemovableStoragePolicyTriggered イベントを参照すると、デバイスインスタンスパスや Vendor/Product ID など、アクセス制御ポリシーで明示的にデバイスを指定する際に使用できる様々な情報を参照できます。

参考情報:手順 1: リムーバブル メディアをすべて拒否する | Microsoft Learn

既定の処理を拒否に設定すると読み取り許可のアクセス制御ポリシーが動作しなくなるのはなぜですか?

デバイスコントロール機能が有効な環境で既定の処理が [拒否] に設定されている場合、明示的にポリシーで許可されていない限り、すべてのリムーバブルメディアやプリンターへのアクセスは拒否されます。

参考情報:Device control policies in Microsoft Defender for Endpoint | Microsoft Learn

この時、ディスクレベルまたはファイルシステムレベルのみを指定してアクセス許可ポリシーを作成する場合、対象メディアへの読み取り、書き込み、または実行が拒否される問題が発生する場合があります。

そのため、既定の処理を [拒否] にしている環境で明示的にリムーバブルメディアへのアクセス許可を構成する場合には、ディスクレベルとファイルシステムレベルの両方のアクセス許可を明示的に指定する必要がある点に注意してください。

例えば、読み取りアクセスのみを許可したい場合は、1+8 で 9 を AccessMask として指定します。

また、すべてのアクセスを許可したい場合には、63 を AccessMask として設定します。

参考情報:Understand mask access (Windows) | Microsoft Learn

まとめ

この記事では、Windows マシンでデバイスコントロール機能のアクセス制御ポリシーを構成する方法についておまとめいたしました。

デバイスコントロール機能に関する最新の情報については公開情報を参照してください。

参考情報:Microsoft Defender for Endpointのデバイス制御 | Microsoft Learn