😊

【Intune】MDEで特定のUSBメモリだけを許可してみた【Win/macOS】

2023/01/18に公開約8,600字

概要

Microsoft Defender for Endpoint(以下MDE)で特定のUSBメモリだけを制御する場合にIntuneでどんな手順で設定するのか調べたので備忘録として残しておきます。あくまで自分用のメモということでかなり説明は省略していますので以下のサイトをしっかり読んだほうがいいです。
なお、後述するXMLのUUID, GUIDはサンプルのものそのまま持ってきたので差し替えて使ってもらった方がいいです。(多分問題ないけど)

以下参考にしました

https://learn.microsoft.com/ja-jp/microsoft-365/security/defender-endpoint/mac-device-control-overview?view=o365-worldwide#allow-or-block-removable-devices
https://blog.cloudnative.co.jp/8621/#co-index-5
https://learn.microsoft.com/ja-jp/microsoft-365/security/defender-endpoint/deploy-manage-removable-storage-intune?view=o365-worldwide
https://thewindowsupdate.com/2021/12/16/block-usb-in-microsoft-defender-for-endpoint-and-intune/

実現したいこと

  1. 普段は外部記録媒体の利用は一切禁止(Read/Write/Executeいずれも不可)
  2. 必要に応じて上記の禁止設定を解除する
    • 解除した場合でも利用できるのは特定の外部記録媒体のみ[1]

この 2. のときのポリシーを設定していこうと思います。

前提条件

  • 対象OS
    • Windows 10 Pro 22H2
    • macOS Ventura 13.1
  • MDM
    • Intune
  • MDEオンボーディング済み

設定手順(macOS)

1. USBメモリの固体情報を確認する

Venturaから探しにくくなったのですが、システム設定一般情報システムレポートを開き、接続しているUSBメモリの情報を確認します。必要なのは以下の3つです。

  • 製品ID : 6387 (先頭の0xは無視)
  • 製造元ID : 058f (先頭の0xは無視)
  • シリアル番号 : 00000000CY02

2. XMLの作成

こちらのサンプルをベースにしました。
macOSでのUUIDの生成はuuidgenコマンドを使いましょう。
https://learn.microsoft.com/ja-jp/microsoft-365/security/defender-endpoint/mac-device-control-intune?view=o365-worldwide

先ほど調べたUSBメモリの固体情報を追記して、不要な情報を削除したものがこちらになります。
製品ID → products
製造元ID → vendors
シリアル番号 → serialNumbers

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"[]>
<plist version="1">
  <dict>
    <key>PayloadUUID</key>
    <string>C4E6A782-0C8D-44AB-A025-EB893987A295</string>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadOrganization</key>
    <string>Microsoft</string>
    <key>PayloadIdentifier</key>
    <string>com.microsoft.wdav</string>
    <key>PayloadDisplayName</key>
    <string>Microsoft Defender settings</string>
    <key>PayloadDescription</key>
    <string>Microsoft Defender configuration settings</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
    <key>PayloadEnabled</key>
    <true />
    <key>PayloadRemovalDisallowed</key>
    <true />
    <key>PayloadScope</key>
    <string>System</string>
    <key>PayloadContent</key>
    <array>
      <dict>
        <key>PayloadUUID</key>
        <string>99DBC2BC-3B3A-46A2-A413-C8F9BB9A7295</string>
        <key>PayloadType</key>
        <string>com.microsoft.wdav</string>
        <key>PayloadOrganization</key>
        <string>Microsoft</string>
        <key>PayloadIdentifier</key>
        <string>com.microsoft.wdav</string>
        <key>PayloadDisplayName</key>
        <string>Microsoft Defender configuration settings</string>
        <key>PayloadDescription</key>
        <string/>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>PayloadEnabled</key>
        <true/>
        <key>deviceControl</key>
        <dict>
          <key>removableMediaPolicy</key>
          <dict>
            <key>enforcementLevel</key>
            <string>block</string>
            <!-- Default to block all devices -->
            <key>permission</key>
            <array>
              <string>none</string>
            </array>
            <key>vendors</key>
            <dict>
              <key>058f</key>
              <dict>
                <key>permission</key>
                <array>
                  <string>none</string>
                </array>
                <key>products</key>
                <dict>
                  <key>6387</key>
                  <dict>
                    <key>permission</key>
                    <array>
                      <string>none</string>
                    </array>
                    <key>serialNumbers</key>
                    <dict>
                      <key>00000000CY02</key>
                      <array>
                        <string>read</string>
                        <string>write</string>
                        <string>execute</string>
                      </array>
                    </dict>
                  </dict>
                </dict>
              </dict>
            </dict>
          </dict>
        </dict>
      </dict>
    </array>
  </dict>
</plist>

3. Intuneからポリシーを適用する

  • Microsoft Endpoint Manager admin centerを開きます
  • デバイスmacOS構成プロファイルプロファイルの作成 を選びプロファイル作成画面を開きます
  • テンプレートカスタム を選択し作成を押します
  • 任意の名前を設定し次へ
  • 上記で作成したXMLをファイルとして保存しアップロードし、適用したい対象に割り当ててください

4. 動作確認

設定されていないUSBメモリ(USB1)はブロックされていて、許可したUSBメモリ(USB2)はマウントできています。

設定手順(Windows)

1. USBメモリの固体情報を確認する

デバイスマネージャーからUSBデバイスのプロパティを開き、詳細デバイス インスタンス パス を選択して表示された値をコピーします。

コピーした値の&&amp;に置換します。
USBSTOR\DISK&VEN_IOS_DEVI&PROD_FLASH_DRIVE&REV_2.10\00000000CY02&0

USBSTOR\DISK&amp;VEN_IOS_DEVI&amp;PROD_FLASH_DRIVE&amp;REV_2.10\00000000CY02&amp;0

2. XMLの作成

3つのXMLファイルを作成します。
WindowsでのGUIDの生成はPowerShellの[guid]::NewGuid()コマンドを使ってください。

BlockUSBGroup.xml (全てのUSBメモリを指定)

<Group Id="{9b28fae8-72f7-4267-a1a5-685f747a7146}">
<!-- ./Vendor/MSFT/Defender/Configuration/DeviceControl/PolicyGroups/%7b9b28fae8-72f7-4267-a1a5-685f747a7146%7d/GroupData -->
    <MatchType>MatchAny</MatchType>
    <DescriptorIdList>
        <PrimaryId>RemovableMediaDevices</PrimaryId>
    </DescriptorIdList>
</Group>

AllowUSBGroup.xml (特定のUSBメモリを指定)
こちらに先ほどのUSBSTOR\DISK&amp;VEN_IOS_DEVI&amp;PROD_FLASH_DRIVE&amp;REV_2.10\00000000CY02&amp;0を挿入します。

<Group Id="{65fa649a-a111-4912-9294-fb6337a25038}">
<!-- ./Vendor/MSFT/Defender/Configuration/DeviceControl/PolicyGroups/%7b65fa649a-a111-4912-9294-fb6337a25038%7d/GroupData -->
    <MatchType>MatchAny</MatchType>
        <DescriptorIdList>
	    <InstancePathId>USBSTOR\DISK&amp;VEN_IOS_DEVI&amp;PROD_FLASH_DRIVE&amp;REV_2.10\00000000CY02&amp;0</InstancePathId>
        </DescriptorIdList>
</Group>

BlockPolicy.xml
BlockUSBGroup.xmlで定義したデバイスは全てブロックするが、AllowUSBGroup.xmlで定義したデバイスは許可する。というポリシーを定義します。
今回はRead/Write/Execute全てのアクセスをブロックするのでAccessMaskを7としています。[2]

<PolicyRule Id="{c544a991-5786-4402-949e-a032cb790d0e}">
<!-- ./Vendor/MSFT/Defender/Configuration/DeviceControl/PolicyRules/%7bc544a991-5786-4402-949e-a032cb790d0e%7d/RuleData -->
    <Name>Block all Access but allow approved USBs</Name>
    <IncludedIdList>
        <GroupId>{9b28fae8-72f7-4267-a1a5-685f747a7146}</GroupId>
    </IncludedIdList>
    <ExcludedIdList>
        <GroupId>{65fa649a-a111-4912-9294-fb6337a25038}</GroupId>
    </ExcludedIdList>
    <Entry Id="{f8ddbbc5-8855-4776-a9f4-ee58c3a21414}">
        <Type>Deny</Type>
        <Options>0</Options>
        <AccessMask>7</AccessMask>
    </Entry>
</PolicyRule>

3. Intuneからポリシーを適用する

(macOSと違って結構面倒です)

  • Microsoft Endpoint Manager admin centerを開きます
  • デバイスWindows構成プロファイルプロファイルの作成 を選びプロファイル作成画面を開きます
  • Windows 10 以降テンプレートカスタム を選択し作成を押します
  • 任意の名前を設定し次へ
  • 構成設定画面で以下の設定を追加していきます[3]
    • 名前:BlockUSBGroup
      • OMA-URL:./Vendor/MSFT/Defender/Configuration/DeviceControl/PolicyGroups/%7b9b28fae8-72f7-4267-a1a5-685f747a7146%7d/GroupData
      • データ型:文字列(XMLファイル)
      • カスタムXML:BlockUSBGroup.xmlをアップロード
    • 名前:AllowUSBGroup
      • OMA-URL:./Vendor/MSFT/Defender/Configuration/DeviceControl/PolicyGroups/%7b65fa649a-a111-4912-9294-fb6337a25038%7d/GroupData
      • データ型:文字列(XMLファイル)
      • カスタムXML:AllowUSBGroup.xmlをアップロード
    • 名前:BlockPolicy
      • OMA-URL:./Vendor/MSFT/Defender/Configuration/DeviceControl/PolicyRules/%7bc544a991-5786-4402-949e-a032cb790d0e%7d/RuleData
      • データ型:文字列(XMLファイル)
      • カスタムXML:BlockPolicy.xmlをアップロード
  • 設定後はこんな感じになります
  • その後は適用したい対象に割り当てて完了です

4. 動作確認

USB2だけアクセスできています。

ちなみに

どうやらGUIから設定できるということで、本当はこちらを設定したかったんですが、Previewということもあり不具合があり設定ができなかったので断念しました。
https://learn.microsoft.com/ja-jp/mem/intune/protect/reusable-settings-groups

脚注
  1. 単純に制御を解除すると全ての記録媒体が接続できてしまいますし、特定のUSBメモリだったらいつでも使えるというのもリスクがあるのでこのような運用にしています。まぁ、Intuneによる設定の反映に時間がかかるのが難点ですが。。 ↩︎

  2. AccessMaskについてはこちらを参照のこと https://learn.microsoft.com/en-us/microsoft-365/security/defender-endpoint/device-control-removable-storage-access-control?view=o365-worldwide#access-control-policy ↩︎

  3. XMLの中のGUIDを自分で生成した場合はOMA-URLにもそのGUIDを埋め込む必要がありますので注意 ↩︎

Discussion

ログインするとコメントできます