デバイス コントロールのチュートリアル

適用対象:

この記事では、デバイス制御のしくみを確認するさまざまな方法について説明します。 既定の設定以降、各セクションでは、特定の目的を達成するようにデバイス制御を構成する方法について説明します。

デバイス コントロールの既定の状態を調べる

既定では、 デバイス制御 は無効になっており、デバイスを追加できる制限はありません。 Defender for Endpoint にオンボードされているデバイスでは、基本的なデバイス制御イベントの監査が有効になります。 このアクティビティは、 デバイス制御レポートで確認できます。 組み込みの PnP 監査ポリシー でフィルター処理すると、環境内のエンドポイントに接続されているデバイスが表示されます。

Defender for Endpoint のデバイス コントロールは、そのプロパティに基づいてデバイスを識別します。 レポート内のエントリを選択すると、デバイスのプロパティが表示されます。

デバイス IDベンダー ID (VID)、シリアル番号バスの種類はすべて、デバイスを識別するために使用できます (次のクエリ例に示すように、() を検索Plug and Play Device Connected actionPnPDeviceConnectedすることで、device-control-policies.mddata も高度なハンティングで使用できます(「Microsoft Defender for Endpointのデバイス制御ポリシー」を参照してください)。


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

次のスニペットに示すように、デバイス制御の状態 (有効/無効、既定の適用、および最後のポリシー更新) は、 Get-MpComputerStatus 経由でデバイスで使用できます。


DeviceControlDefaultEnforcement   : 
DeviceControlPoliciesLastUpdated  : 1/3/2024 12:51:56 PM
DeviceControlState                : Disabled

テスト デバイスでデバイス制御の状態を有効にするように* 変更します。 次のスニペットに示すように 、Get-MpComputerStatus をオンにしてポリシーが適用されていることを確認します。


DeviceControlDefaultEnforcement   : DefaultAllow
DeviceControlPoliciesLastUpdated  : 1/4/2024 10:27:06 AM
DeviceControlState                : Enabled

テスト デバイスに USB ドライブを挿入します。 制限はありません。すべての種類のアクセス (読み取り、書き込み、実行、および印刷) が許可されます。 USB デバイスが接続されたことを示すレコードが作成されます。 次の高度なハンティング クエリの例を使用して、それを確認できます。


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)
| where MediaClass == "USB"
| project Timestamp, DeviceId, DeviceName, AccountName, AccountDomain, MediaClass, MediaDeviceId, MediaDescription, MediaSerialNumber, parsed
| order by Timestamp desc

次のクエリ例では、 でイベントをフィルター処理します MediaClass。 既定の動作を変更して、すべてのデバイスを拒否したり、デバイスのファミリをデバイス制御から除外したりできます。 既定の動作を deny に変更し、リムーバブル 記憶域にのみ適用するようにデバイス制御を設定します。

Intuneの場合は、カスタム プロファイルを使用して、次のようにデバイス コントロールの設定を設定します。

  • に設定 ./Vendor/MSFT/Defender/Configuration/DeviceControlEnabled する 1
  • に設定 ./Vendor/MSFT/Defender/Configuration/DefaultEnforcement する 2
  • に設定 ./Vendor/MSFT/Defender/Configuration/SecuredDevicesConfiguration する RemovableMediaDevices

テスト デバイスにポリシーをデプロイします。 Get-MpComputerStatus を使用して、次のスニペットに示すように、既定の適用が Deny に設定されていることを確認します。


DeviceControlDefaultEnforcement  : DefaultDeny
DeviceControlPoliciesLastUpdated : 1/4/2024 10:27:06 AM
DeviceControlState               : Enabled

USB デバイスを取り外し、テスト マシンに再挿入します。 ドライブを開いてみます。 ドライブにアクセスできません。アクセスが拒否されたことを示すメッセージが表示されます。

注:

サンプルと手順と例については、 こちらを参照してください

手順 1: リムーバブル メディアをすべて拒否する

動作をカスタマイズするために、デバイス制御では、グループとルールの組み合わせであるポリシーが使用されます。 まず、すべてのリムーバブル ストレージ デバイスへのアクセスを拒否し、ポータルとユーザーに通知を送信してイベントを監査するポリシーを展開します。 次の図は、これらの設定をまとめたものです。

すべてのリムーバブル メディアを拒否するデバイス コントロールの設定を示す画像。

アクセスを制御するために、デバイスはグループに編成されます。 このポリシーでは、 という名前 All removable media devicesのグループを使用します。 このポリシーがテスト デバイスに展開されたら、USB を再挿入します。 デバイスのアクセスが制限されていることを示す通知が表示されます。

イベントは高度な狩猟で15分以内に表示されます。 次のクエリ例を使用して、結果を表示できます。


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

注:

高度なハンティングを使用して、デバイスごとに 1 日あたり最大 300 のイベントを表示できます。

イベントを選択して、ポリシーとデバイスに関する情報を表示します。

手順 2: 承認された USB デバイスへのアクセスを許可する

承認された USB デバイスのセットへのアクセスを許可するには、それらのデバイスを識別するグループを設定します。 グループ Authorized USBsを 呼び出し、次の図に示す設定を使用しました。

承認されたデバイスのグループの設定を示すスクリーンショット。

この例では、承認された USB グループには、 によって InstancePathId識別される 1 つのデバイスが含まれています。 サンプルをデプロイする前に、テスト デバイスの 値を に InstancePathId 変更できます。 正しい値を見つける方法の詳細については、「Windows デバイス マネージャーを使用してデバイスのプロパティを特定する」および「レポートと高度なハンティングを使用してデバイスのプロパティを決定する」を参照してください。

承認された USB グループが deny-all ポリシーから除外されていることに注意してください。 これにより、これらのデバイスが他のポリシーに対して評価されます。 ポリシーは順番に評価されないため、個別に評価する場合は各ポリシーが正しい必要があります。 ポリシーが展開されたら、承認済みの USB デバイスを再挿入します。 デバイスへのフル アクセスが存在することがわかります。 別の USB を挿入し、そのデバイスのアクセスがブロックされていることを確認します。

デバイス制御には、プロパティに基づいてデバイスをグループ化するための多くの方法があります。 詳細については、「Microsoft Defender for Endpointのデバイス制御ポリシー」を参照してください。

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

デバイスごとに異なる動作を作成するには、それらを個別のグループに配置します。 この例では、 という名前 Read Only USBsのグループを使用します。 次の図は、使用した設定を示しています。

さまざまなデバイスへのアクセスレベルの設定を示すスクリーンショット。

この例では、読み取り専用 USB グループには、 によって VID_PID識別される 1 つのデバイスが含まれています。 サンプルをデプロイする前に、 の VID_PID 値を 2 番目のテスト デバイスの値に変更できます。

ポリシーが展開されたら、承認された USB を挿入します。 フル アクセスが許可されていることがわかります。 次に、2 つ目のテスト デバイス (読み取り専用 USB) を挿入します。 読み取り専用のアクセス許可を持つデバイスにアクセスできます。 新しいファイルを作成するか、ファイルに変更を加えようとすると、デバイスコントロールによってブロックされていることがわかります。

他の USB デバイスを挿入する場合は、"他のすべての USB を拒否する" ポリシーが原因でブロックする必要があります。

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

デバイス制御を使用すると、条件を使用してアクセスをさらに制限できます。 最も簡単な条件はユーザー条件です。 デバイス制御では、ユーザーとグループはセキュリティ識別 (SID) によって識別されます。

次のスクリーンショットは、この例で使用した設定を示しています。

特定のユーザーにさまざまなレベルのアクセスを許可するデバイス制御の設定を示すスクリーンショット。

既定では、サンプルでは のグローバル SID が S-1-1-0使用されます。 ポリシーを展開する前に、承認された USB (書き込み可能な USB) に関連付けられている SID を に User1 変更し、読み取り専用 USB に関連付けられている SID を に User2変更できます。

ポリシーをデプロイすると、承認された USB への書き込みアクセス権を持つのはユーザー 1 のみで、ReadOnly USB への読み取りアクセス権を持つのはユーザー 2 のみです。

デバイス制御では、グループ SID もサポートされます。 読み取り専用ポリシーの SID を を含むグループに変更します User2。 ポリシーが再デプロイされると、ユーザー 2 またはそのグループ内の他のユーザーのルールは同じです。

注:

Microsoft Entraに格納されているグループの場合は、SID の代わりに オブジェクト ID を使用してユーザーのグループを識別します。

次の手順