macOS용 디바이스 제어

적용 대상:

엔드포인트용 Microsoft Defender를 경험하고 싶으신가요? 무료 평가판을 신청하세요.

요구 사항

macOS용 디바이스 컨트롤에는 다음과 같은 필수 구성 요소가 있습니다.

  • 엔드포인트용 Microsoft Defender 권한(평가판일 수 있음)
  • 최소 OS 버전: macOS 11 이상
  • 최소 제품 버전: 101.34.20

개요

엔드포인트용 Microsoft Defender 디바이스 제어 기능을 사용하면 다음을 수행할 수 있습니다.

  • 이동식 스토리지에 대한 읽기, 쓰기 또는 실행 액세스를 감사, 허용 또는 차단합니다. 및
  • 제외 여부에 관계없이 iOS 및 휴대용 디바이스 및 Apple APFS 암호화 디바이스 및 Bluetooth 미디어를 관리합니다.

엔드포인트 준비하기

  • 엔드포인트용 Microsoft Defender 권한(평가판일 수 있음)

  • 최소 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"를 입력합니다.

    • 상태의 경우 "enabled"를 입력합니다.

예제 1: schema.json 사용하는 JAMF

엔드포인트용 Microsoft Defender 데이터 손실 방지/기능에서 디바이스 제어를 사용하도록 설정하는 방법을 보여 주는 스크린샷

예제 2: [demo.mobileconfig](https://github.com/microsoft/mdatp-devicecontrol/blob/main/Removable%20Storage%20Access%20Control%20Samples/macOS/mobileconfig/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용 디바이스 제어 정책에는 설정, 그룹 및 규칙이 포함됩니다.

  • '설정'이라는 전역 설정을 사용하면 전역 환경을 정의할 수 있습니다.
  • 'groups'라는 그룹을 사용하면 미디어 그룹을 만들 수 있습니다. 예를 들어 권한이 부여된 USB 그룹 또는 암호화된 USB 그룹입니다.
  • '규칙'이라는 액세스 정책 규칙을 사용하면 각 그룹을 제한하는 정책을 만들 수 있습니다. 예를 들어 권한 있는 사용자만 액세스 권한이 있는 USB 그룹을 작성하도록 허용합니다.

참고

gitHub의 예제를 사용하여 속성을 이해하는 것이 좋습니다. mdatp-devicecontrol/이동식 스토리지 Access Control 샘플/macOS/policy at 기본 - microsoft/mdatp-devicecontrol(github.com).

microsoft/mdatp-devicecontrol(github.com) 기본 mdatp-devicecontrol/tree/기본/python#readme의 스크립트를 사용하여 Windows 디바이스 제어 정책을 macOS 디바이스 제어 정책으로 변환하거나 macOS 디바이스 제어 V1 정책을 이 V2 정책으로 변환할 수도 있습니다.

참고

고객이 정책을 만들 때 고려해야 하는 macOS에 대한 디바이스 제어 와 관련된 알려진 문제가 있습니다.

모범 사례

macOS용 디바이스 컨트롤은 Windows용 디바이스 제어와 비슷한 기능을 가지고 있지만 macOS 및 Windows는 디바이스를 관리하는 다양한 기본 기능을 제공하므로 몇 가지 중요한 차이점이 있습니다.

  • macOS에는 중앙 집중식 장치 관리자 또는 디바이스 보기가 없습니다. 디바이스와 상호 작용하는 애플리케이션에 액세스 권한이 부여되거나 거부됩니다. 이 때문에 macOS에는 다양한 액세스 유형 집합이 있습니다. 예를 들어 macOS용 디바이스 컨트롤에서 을 portableDevice 거부하거나 허용할 download_photos_from_device수 있습니다.
  • Windows와 일관성을 유지하기 위해 ,generic_writegeneric_execute 액세스 유형이 있습니다generic_read. 나중에 추가 특정 액세스 유형이 추가될 경우 일반 액세스 유형이 있는 정책을 변경할 필요가 없습니다. 더 구체적인 작업을 거부/허용해야 하는 특정한 필요가 없는 한 제네릭 액세스 유형을 사용하는 것이 가장 좋습니다.
  • 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는 그룹을 나타내며 정책에 사용됩니다. New-Guid(Microsoft.PowerShell.Utility) - PowerShell 또는 macOS의 uuidgen 명령을 통해 ID를 생성할 수 있습니다.
name 그룹의 이름입니다. 문자열
query 이 그룹의 언론 보도 자세한 내용은 아래 쿼리 속성 표를 참조하세요.

쿼리

Device Control은 두 가지 종류의 쿼리를 지원합니다.

쿼리 유형 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 문자열 디바이스의 일련 번호와 일치합니다. 디바이스에 일련 번호가 없는 경우 일치하지 않습니다.
encryption apfs 디바이스가 apfs로 암호화된 경우 일치합니다.
groupId UUID 문자열 디바이스가 다른 그룹의 구성원인 경우 일치합니다. 값은 일치시킬 그룹의 UUID를 나타냅니다.
절 전에 정책 내에서 그룹을 정의해야 합니다.

액세스 정책 규칙

속성 이름 설명 옵션
id 고유 ID인 GUID는 규칙을 나타내며 정책에 사용됩니다. New-Guid(Microsoft.PowerShell.Utility) - PowerShell
uuidgen
name 문자열, 정책의 이름 및 는 정책 설정에 따라 알림에 표시됩니다.
includeGroups 정책이 적용될 그룹입니다. 여러 그룹을 지정하는 경우 정책은 모든 그룹의 모든 미디어에 적용됩니다. 지정하지 않으면 규칙이 모든 디바이스에 적용됩니다. 그룹 내의 ID 값은 이 instance 사용해야 합니다. 여러 그룹이 에 있는 includeGroups경우 AND입니다.
"includeGroups": ["3f082cd3-f701-4c21-9a6a-ed115c28e217"]
excludeGroups 정책이 적용되지 않는 그룹입니다. 그룹 내의 ID 값은 이 instance 사용해야 합니다. 여러 그룹이 excludeGroups에 있는 경우 OR입니다.
entries 하나의 규칙에는 여러 항목이 있을 수 있습니다. 고유한 GUID가 있는 각 항목은 디바이스 제어에 하나의 제한을 알려줍니다. 자세한 내용은 이 문서의 뒷부분에 있는 항목 속성 표를 참조하세요.

다음 표에서는 항목에 사용할 수 있는 속성을 나열합니다.

속성 이름 설명 옵션
$type 포함 항목:
- removableMedia
- appleDevice
- PortableDevice
- bluetoothDevice
- generic
집행 - $type:
- allow
- deny
- auditAllow
- auditDeny

$type 허용을 선택하면 옵션 값이 다음을 지원합니다.
- disable_audit_allow
허용이 발생하고 auditAllow가 구성된 경우에도 시스템은 이벤트를 보내지 않습니다.

$type 거부를 선택하면 옵션 값이 다음을 지원합니다.
disable_audit_deny
차단이 발생하고 auditDeny가 구성된 경우에도 시스템에서 알림을 표시하거나 이벤트를 보내지 않습니다.

$type auditAllow를 선택하면 옵션 값이 다음을 지원합니다.
send_event

$type auditDeny를 선택하면 옵션 값이 다음을 지원합니다.
send_event
show_notification
access 이 규칙에 대해 하나 이상의 액세스 권한을 지정합니다. 여기에는 디바이스별 세분화된 권한 또는 더 광범위한 일반 권한이 포함될 수 있습니다. 지정된 항목 $type 대한 유효한 액세스 유형에 대한 자세한 내용은 아래 표를 참조하세요.
id Uuid

다음 표에서는 항목에 사용할 수 있는 속성을 나열합니다.

집행

적용 속성 이름

속성 이름 설명 옵션
$type 적용 유형 지원되는 적용은 아래 표를 참조하세요.
options 사용할 특정 값 $type 항목에 대한 옵션 배열입니다. 옵션이 없으면 생략할 수 있습니다.

적용 유형

속성 이름 설명 옵션
Enforcement $type options 값 [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 읽기 generic_read
removableMedia 쓰기 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경우 디바이스 제어는 일부 또는 모든 작업을 방지할 수 없습니다.

보고

고급 헌팅 및 디바이스 제어 보고서에서 정책 이벤트를 볼 수 있습니다. 자세한 내용은 디바이스 제어를 사용하여 organization 데이터 보호를 참조하세요.

시나리오

다음은 엔드포인트용 Microsoft Defender 익숙해지고 디바이스 제어를 엔드포인트용 Microsoft Defender 데 도움이 되는 몇 가지 일반적인 시나리오입니다.

시나리오 1: 이동식 미디어를 거부하지만 특정 USB 허용

이 시나리오에서는 이동식 미디어에 대한 그룹 하나와 승인된 USB 그룹에 대한 다른 그룹이라는 두 개의 그룹을 만들어야 합니다. 또한 액세스 정책 규칙을 만들어야 합니다.

1단계: 설정: 디바이스 제어 사용 및 기본 적용 설정

"settings": { 

	"features": { 

		"removableMedia": { 

			"disable": false 

		} 

	}, 

	"global": { 

		"defaultEnforcement": "allow" 

	}, 

	"ux": { 

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

	} 

} 

2단계: 그룹: 이동식 미디어 그룹 및 승인된 USB 그룹 Create

  1. 이동식 미디어 디바이스를 포함하도록 그룹을 Create.
  2. 승인된 USB에 대한 그룹을 Create.
  3. 이러한 그룹을 하나의 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" 

				] 

			} 

		] 

	} 

] 

이 경우 하나의 액세스 규칙 정책만 있지만 여러 개의 액세스 규칙 정책이 있는 경우 모두 에 rules추가해야 합니다.

알려진 문제

경고

macOS Sonoma 14.3.1에서 Apple은 엔드포인트용 Defender 디바이스 컨트롤이 Bluetooth 디바이스 에 대한 액세스를 가로채고 차단하는 기능에 영향을 미치는 Bluetooth 디바이스의 처리를 변경했습니다. 현재 권장되는 완화 방법은 14.3.1 미만의 macOS 버전을 사용하는 것입니다.

경고

macOS의 디바이스 제어는 PTP 모드 사용하여 연결된 Android 디바이스를 제한합니다. 디바이스 컨트롤은 파일 전송, USB 테더링 및 MIDI와 같은 다른 모드를 제한하지 않습니다.

참고 항목

더 자세히 알아보고 싶으신가요? 기술 커뮤니티: 엔드포인트용 Microsoft Defender Tech Community의 Microsoft 보안 커뮤니티와 Engage.