macOS 用デバイス コントロール

適用対象:

Microsoft Defender ATP を試してみたいですか? 無料試用版にサインアップしてください。

要件

macOS 用デバイスコントロールには、次の前提条件があります。

  • Microsoft Defender for Endpointエンタイトルメント (試用可能)
  • OS の最小バージョン: macOS 11 以降
  • 最小製品バージョン: 101.34.20

概要

Microsoft Defender for Endpointデバイス制御機能を使用すると、次の操作を行うことができます。

  • リムーバブル ストレージへの読み取り、書き込み、または実行アクセスを監査、許可、または防止する。そして
  • 除外の有無にかかわらず、iOS とポータブル デバイス、および Apple APFS で暗号化されたデバイスと Bluetooth メディアを管理します。

エンドポイントを準備する

  • Microsoft Defender for Endpointエンタイトルメント (試用可能)

  • OS の最小バージョン: macOS 11 以降

  • 完全なディスク アクセスの展開: 他のMDE機能に対してこれをhttps://github.com/microsoft/mdatp-xplat/blob/master/macos/mobileconfig/profiles/fulldisk.mobileconfig既に作成してデプロイ済みである可能性があります。 新しいアプリケーションのフル ディスク アクセス許可を付与する必要があります。 com.microsoft.dlp.daemon

  • MDE基本設定でデバイス制御を有効にします。

    • データ損失防止 (DLP)/機能/

    • [ 機能名] に「DC_in_dlp」と入力します。

    • [ State]\(状態\) に「enabled」と入力します

例 1: schema.jsonを使用した JAMF。

Microsoft Defender for Endpointデータ損失防止/機能でデバイス制御を有効にする方法を示すスクリーンショット。

例 2: demo.mobileconfig

<key>dlp</key>
<dict> 
  <key>features</key>
  <array> 
	<dict> 
	  <key>name</key>
	  <string>DC_in_dlp</string>
	  <key>state</key>
	  <string>enabled</string>
	</dict>
  </array>
</dict>
  • 最小製品バージョン: 101.91.92 以上

  • ターミナルから mdatp バージョン を実行して、クライアント コンピューターの製品バージョンを確認します。

    ターミナルで mdatp バージョンを実行してクライアント コンピューター上の製品バージョンを確認した場合の結果を示すスクリーンショット。

ポリシーについて

ポリシーは、macOS のデバイス制御の動作を決定します。 このポリシーは、マシンまたはユーザーのコレクションにIntuneまたは JAMF を使用して対象とされます。

macOS のデバイス制御ポリシーには、設定、グループ、ルールが含まれます。

  • "settings" と呼ばれるグローバル設定を使用すると、グローバル環境を定義できます。
  • "グループ" と呼ばれるグループを使用すると、メディア グループを作成できます。 たとえば、承認された USB グループや暗号化された USB グループなどです。
  • "rules" と呼ばれるアクセス ポリシー ルールを使用すると、各グループを制限するポリシーを作成できます。 たとえば、アクセスが承認された USB グループを書き込むには、承認されたユーザーのみを許可します。

注:

GitHub の例を使用して、プロパティを理解することをお勧めします。mdatp-devicecontrol/Removable Storage Access Control Samples/macOS/policy (メイン - microsoft/mdatp-devicecontrol (github.com))。

また、メインの mdatp-devicecontrol/tree/メイン/python#readme のスクリプトを使用して、microsoft/mdatp-devicecontrol (github.com) を使用して、Windows デバイス制御ポリシーを macOS デバイス制御ポリシーに変換したり、macOS Device Control V1 ポリシーをこの V2 ポリシーに変換したりできます。

注:

macOS のデバイス制御に関する 既知の問題 があり、お客様がポリシーを作成するときに考慮する必要があります。

ベスト プラクティス

macOS のデバイス制御は、Windows 用デバイス コントロールと同様の機能を備えますが、macOS と Windows には、デバイスを管理するためのさまざまな基になる機能が用意されているため、いくつかの重要な違いがあります。

  • macOS には、デバイスの一元的なデバイス マネージャーやビューはありません。 デバイスと対話するアプリケーションへのアクセスが許可または拒否されます。 macOS では、アクセス の種類が豊富なセットがあるのはこのためです。 たとえば、 portableDevice macOS のデバイス コントロールでは、 を拒否または許可 download_photos_from_deviceできます。
  • Windows と一貫性を保つにはgeneric_readgeneric_write、 と generic_execute アクセスの種類があります。 ジェネリック アクセスの種類を持つポリシーは、将来追加の特定のアクセスの種類が追加された場合に変更する必要はありません。 より具体的な操作を拒否または許可する必要がある場合を除き、一般的なアクセスの種類を使用することをお勧めします。
  • 一般的な deny アクセスの種類を使用してポリシーを作成することが、その種類のデバイス (Android 電話など) のすべての操作を完全にブロックする最善の方法ですが、macOS デバイス制御でサポートされていないアプリケーションを使用して操作が実行される場合は、まだギャップが発生する可能性があります。

Settings

macOS のデバイス制御ポリシーでグループ、ルール、設定を作成するときに使用できるプロパティを次に示します。

プロパティ名 説明 オプション
機能 機能固有の構成 次の機能では、false または true に設定 disable できます。
- removableMedia
- appleDevice
- portableDevice、カメラまたは PTP メディアを含む
- bluetoothDevice

既定値は trueであるため、この値を構成しない場合は、既定で無効になっているため、 の removableMediaカスタム ポリシーを作成しても適用されません。
グローバル 既定の適用を設定する を に設定 defaultEnforcement できます。
- allow (既定値)
- deny
Ux 通知時にハイパーリンクを設定できます。 navigationTarget: string. 例: "http://www.microsoft.com"

グループ

プロパティ名 説明 オプション
$type グループの種類 "device"
id 一意の ID である GUID はグループを表し、ポリシーで使用されます。 MACOS の New-Guid (Microsoft.PowerShell.Utility) - PowerShell または uuidgen コマンドを使用して ID を生成できます
name グループのフレンドリ名。 string
query このグループのメディア カバレッジ 詳細については、以下の クエリ プロパティ テーブルを参照してください。

クエリ

Device Control では、次の 2 種類のクエリがサポートされています。

クエリの種類 1 は次のとおりです。

プロパティ名 説明 オプション
$type 句で実行する論理操作を特定する all: の下にあるすべての属性は And リレーションシップです。 たとえば、管理者が接続されている USB ごとに と serialNumberを設定vendorIdした場合、システムは USB が両方の値を満たしているかどうかを確認します。
: は、すべてと同等です
any:の下の属性は Or リレーションシップです。 たとえば、管理者が接続されている USB ごとに と を設定vendorIdした場合、USB に同じvendorId値またはserialNumber値がある限り、システムは適用を実行serialNumberします。
または: は
clauses メディア デバイス プロパティを使用して、グループの条件を設定します。 グループ メンバーシップを決定するために評価される句オブジェクトの配列。 以下の 「句」 セクションを参照してください。

クエリの種類 2 は次のとおりです。

プロパティ名 説明 オプション
$type サブクエリで実行する論理操作を特定する not: クエリの論理否定
query サブクエリ 否定されるクエリ。

句のプロパティ

プロパティ名 説明 オプション
$type 句の型 サポートされる句については、次の表を参照してください。
value 使用する特定の値を$typeする

サポートされる句

句$type 説明
primaryId 次のいずれか:
- apple_devices
- removable_media_devices
- portable_devices
- bluetooth_devices
vendorId 4 桁の 16 進文字列 デバイスのベンダー ID と一致します
productId 4 桁の 16 進文字列 デバイスの製品 ID と一致します
serialNumber string デバイスのシリアル番号と一致します。 デバイスにシリアル番号がない場合は一致しません。
encryption apfs デバイスが apfs で暗号化されている場合は一致します。
groupId UUID 文字列 デバイスが別のグループのメンバーである場合は一致します。 値は、一致するグループの UUID を表します。
グループは、句の前にポリシー内で定義する必要があります。

アクセス ポリシールール

プロパティ名 説明 オプション
id 一意の ID である GUID はルールを表し、ポリシーで使用されます。 New-Guid (Microsoft.PowerShell.Utility) - PowerShell
uuidgen
name ポリシーの名前である文字列。ポリシー設定に基づいてトーストに表示されます。
includeGroups ポリシーが適用されるグループ。 複数のグループが指定されている場合、ポリシーはそれらのすべてのグループ内の任意のメディアに適用されます。 指定しない場合、ルールはすべてのデバイスに適用されます。 このインスタンスでは、グループ内の id 値を使用する必要があります。 に複数の includeGroupsグループがある場合は 、AND になります。
"includeGroups": ["3f082cd3-f701-4c21-9a6a-ed115c28e217"]
excludeGroups ポリシーが適用されないグループ。 このインスタンスでは、グループ内の id 値を使用する必要があります。 excludeGroups に複数のグループがある場合は、 OR になります。
entries 1 つのルールに複数のエントリを含めることができます。一意の GUID を持つ各エントリは、Device Control に 1 つの制限を示します。 詳細については、この記事の後半の「エントリ プロパティ テーブル」を参照してください。

次の表に、エントリで使用できるプロパティの一覧を示します。

プロパティ名 説明 オプション
$type 含まれる内容:
- removableMedia
- appleDevice
- PortableDevice
- bluetoothDevice
- generic
施行 - $type:
- allow
- deny
- auditAllow
- auditDeny

$type許可が選択されている場合、オプション値は次をサポートします。
- disable_audit_allow
許可が発生し、auditAllow が構成されている場合でも、システムはイベントを送信しません。

$type拒否が選択されている場合、オプション値は次をサポートします。
disable_audit_deny
[ブロック] が発生し、auditDeny が構成されている場合でも、システムは通知や送信イベントを表示しません。

auditAllow $type選択されている場合、オプション値は次をサポートします。
send_event

auditDeny $type選択されている場合、オプション値は次をサポートします。
send_event
show_notification
access この規則に対して 1 つ以上のアクセス権を指定します。 これには、デバイス固有の詳細なアクセス許可、またはより広範な汎用アクセス許可が含まれる場合があります。 特定のエントリ $typeの有効なアクセスの種類の詳細については、次の表を参照してください。
id UUID

次の表に、エントリで使用できるプロパティの一覧を示します。

施行

強制プロパティ名

プロパティ名 説明 オプション
$type 適用の種類 サポートされている適用については、次の表を参照してください
options 使用する特定の値を$typeする エントリのオプションの配列。 オプションが必要でない場合は省略できます。

適用の種類

プロパティ名 説明 オプション
Enforcement $type options values [string] 説明
allow disable_audit_allow 許可が発生し、auditAllow が構成されている場合でも、システムはイベントを送信しません。
deny disable_audit_deny [ブロック] が発生し、auditDeny が構成されている場合でも、システムは通知や送信イベントを表示しません。
auditAllow send_event テレメトリの送信
auditDeny - send_event
- show_notification
- テレメトリを送信する
- ユーザーへのブロック UX の表示

アクセスの種類

エントリ $type 'access' 値 [string] 汎用アクセス 説明
appleDevice backup_device generic_read
appleDevice update_device generic_write
appleDevice download_photos_from_device generic_read 特定の iOS デバイスからローカル コンピューターに写真をダウンロードする
appleDevice download_files_from_device generic_read 特定の iOS デバイスからローカル コンピューターにファイルをダウンロードする
appleDevice sync_content_to_device generic_write ローカル コンピューターから特定の iOS デバイスにコンテンツを同期する
portableDevice download_files_from_device generic_read
portableDevice send_files_to_device generic_write
portableDevice download_photos_from_device generic_read
portableDevice デバッグ generic_execute ADB ツール コントロール
*removableMedia read generic_read
removableMedia write generic_write
removableMedia 実行 generic_execute generic_read
bluetoothDevice download_files_from_device
bluetoothDevice send_files_to_device generic_write
ジェネリック generic_read このテーブルで示されているすべてのアクセス値を、generic_readにマップする設定と同じです。
ジェネリック generic_write このテーブルで示されているすべてのアクセス値を、generic_writeにマップする設定と同じです。
ジェネリック generic_execute このテーブルで示されているすべてのアクセス値を、generic_executeにマップする設定と同じです。

エンドユーザーのエクスペリエンス

拒否が発生し、ポリシーで通知が有効になると、エンド ユーザーにダイアログが表示されます。

USB デバイスが制限されていることを示す [デバイス制御] ダイアログを示すスクリーンショット

状態

デバイス制御の状態を調べるには、 を使用 mdatp health --details device_control します。

active                                      : ["v2"]
v1_configured                               : false
v1_enforcement_level                        : unavailable
v2_configured                               : true
v2_state                                    : "enabled"
v2_sensor_connection                        : "created_ok"
v2_full_disk_access                         : "approved"
  • active - 機能バージョンでは、["v2"] が表示されます。 (デバイス制御は有効ですが、構成されていません)。
    • [] - このマシンでデバイス制御が構成されていません。
    • ["v1"] - デバイス コントロールのプレビュー バージョンを使用しています。 このガイドを使用してバージョン 2 に移行します。 v1 は廃止されたと見なされ、このドキュメントでは説明されていません。
    • ["v1","v2"] - v1 と v2 の両方が有効になっています。 v1 からオフボード。
  • v1_configured - v1 構成が適用される
  • v1_enforcement_level - v1 が有効になっている場合
  • v2_configured - v2 構成が適用される
  • v2_state - v2 状態 (完全に enabled 動作している場合)
  • v2_sensor_connection - の場合 created_ok、デバイスコントロールはシステム拡張機能への接続を確立しました
  • v2_full_disk_access - でない approved場合、デバイスコントロールは一部またはすべての操作を妨げるものではありません

Reporting

高度なハンティングとデバイス制御レポートでポリシー イベントを確認できます。 詳細については、「デバイス制御を使用してorganizationのデータを保護する」を参照してください。

シナリオ

Microsoft Defender for Endpointとデバイス制御のMicrosoft Defender for Endpointについて理解するのに役立つ一般的なシナリオをいくつか次に示します。

シナリオ 1: リムーバブル メディアを拒否するが、特定の USB を許可する

このシナリオでは、リムーバブル メディア用の 1 つのグループと承認済み USB グループ用の別のグループという 2 つのグループを作成する必要があります。 また、アクセス ポリシー規則を作成する必要もあります。

手順 1: 設定: デバイス制御を有効にし、既定の適用を設定する

"settings": { 

	"features": { 

		"removableMedia": { 

			"disable": false 

		} 

	}, 

	"global": { 

		"defaultEnforcement": "allow" 

	}, 

	"ux": { 

		"navigationTarget": "http://www.deskhelp.com" 

	} 

} 

手順 2: グループ: リムーバブル メディア グループと承認済み USB グループをCreateする

  1. リムーバブル メディア デバイスをカバーするグループをCreateします。
  2. 承認された USB のグループをCreateします。
  3. これらのグループを 1 つに groups結合します。
"groups": [ 

        { 

            "type": "device", 

            "id": "3f082cd3-f701-4c21-9a6a-ed115c28e211", 

            "name": "All Removable Media Devices", 

            "query": { 

                "$type": "all", 

                "clauses": [ 

                    { 

                        "$type": "primaryId", 

                        "value": "removable_media_devices" 

                    } 

                ] 

            } 

        }, 

        { 

            "type": "device", 

            "id": "3f082cd3-f701-4c21-9a6a-ed115c28e212", 

            "name": "Kingston Devices", 

            "query": { 

                "$type": "all", 

                "clauses": [ 

                    { 

                        "$type": "vendorId", 

                        "value": "0951" 

                    } 

                ] 

            } 

        } 

    ] 

手順 3: 規則: 未適用の USB の拒否ポリシーをCreateする

アクセス ポリシー ルールをCreateし、 にrules配置します。

"rules": [ 

	{ 

		"id": "772cef80-229f-48b4-bd17-a69130092981", 

		"name": "Deny RWX to all Removable Media Devices except Kingston", 

		"includeGroups": [ 

			"3f082cd3-f701-4c21-9a6a-ed115c28e211" 

		], 

		"excludeGroups": [ 

			"3f082cd3-f701-4c21-9a6a-ed115c28e212" 

		], 

		"entries": [ 

			{ 

				"$type": "removableMedia", 

				"id": "A7CEE2F8-CE34-4B34-9CFE-4133F0361035", 

				"enforcement": { 

					"$type": "deny" 

				}, 

				"access": [ 

					"read", 

					"write", 

					"execute" 

				] 

			}, 

			{ 

				"$type": "removableMedia", 

				"id": "18BA3DD5-4C9A-458B-A756-F1499FE94FB4", 

				"enforcement": { 

					"$type": "auditDeny", 

					"options": [ 

						"send_event", 

						"show_notification" 

					] 

				}, 

				"access": [ 

					"read", 

					"write", 

					"execute" 

				] 

			} 

		] 

	} 

] 

この場合、アクセス ルール ポリシーは 1 つだけですが、複数ある場合は、 にすべてを rules追加してください。

既知の問題

警告

macOS のデバイス 制御では、PTP モード のみを使用して接続されている Android デバイスが制限されます。 デバイスコントロールは、ファイル転送、USBテザリング、MIDIなどの他のモードを制限しません。

関連項目

ヒント

さらに多くの情報を得るには、 Tech Community 内の Microsoft Security コミュニティ (Microsoft Defender for Endpoint Tech Community) にご参加ください。