Microsoft Intune 로그 수집
이 문서에서는 Microsoft Azure Blob Storage V2를 사용하여 Google Security Operations 피드를 설정하여 Microsoft Intune 로그를 수집하는 방법을 설명합니다.
Microsoft Intune은 조직 리소스에 대한 사용자 액세스를 관리하고 휴대기기, 데스크톱 컴퓨터, 가상 엔드포인트를 비롯한 여러 기기에서 앱 및 기기 관리를 간소화하는 클라우드 기반 엔드포인트 관리 솔루션입니다.
시작하기 전에
다음 기본 요건이 충족되었는지 확인합니다.
- Google SecOps 인스턴스
- 다음 권한이 있는 Microsoft Azure 포털에 대한 권한 액세스
- 스토리지 계정 만들기
- Microsoft Intune의 진단 설정 구성
- 액세스 키 관리
- Intune 테넌트의 Intune 관리자 또는 전역 관리자 Microsoft Entra 역할이 있는 사용자
- 스토리지 계정을 설정할 Azure 구독
Azure 스토리지 계정 구성
스토리지 계정 만들기
- Azure 포털에서 스토리지 계정을 검색합니다.
- + 만들기를 클릭합니다.
다음 구성 세부정보를 제공합니다.
설정 값 구독 Azure 구독 선택 리소스 그룹 기존 항목 선택 또는 새로 만들기 스토리지 계정 이름 고유한 이름 (예: intunelogsstorage)을 입력합니다.리전 리전을 선택합니다 (예: East US).성능 일반(권장) 중복성 GRS (지리적 중복 스토리지) 또는 LRS (로컬 중복 스토리지) 검토 + 만들기를 클릭합니다.
계정 개요를 검토하고 만들기를 클릭합니다.
배포가 완료될 때까지 기다립니다.
스토리지 계정 사용자 인증 정보 가져오기
- 방금 만든 스토리지 계정으로 이동합니다.
- 왼쪽 탐색 메뉴의 보안 및 네트워킹에서 액세스 키를 선택합니다.
- 키 표시를 클릭합니다.
- 나중에 사용할 수 있도록 다음을 복사하여 저장합니다.
- 스토리지 계정 이름: 생성 중에 제공한 이름
- 키 1 또는 키 2: 공유 액세스 키 (base-64 인코딩의 512비트 임의 문자열)
Blob 서비스 엔드포인트 가져오기
- 동일한 스토리지 계정의 왼쪽 탐색에서 엔드포인트를 선택합니다.
- Blob 서비스 엔드포인트 URL을 복사하여 저장합니다.
- 예:
https://intunelogsstorage.blob.core.windows.net/
- 예:
Microsoft Intune 진단 설정 구성
Microsoft Intune 관리 센터에 로그인합니다. 보고서 > 진단 설정을 선택합니다. 처음 열 때 사용 설정합니다. 그렇지 않으면 설정을 추가합니다.
- 진단 설정 추가를 클릭합니다.
- 다음 구성 세부정보를 제공합니다.
- 진단 설정 이름: 설명이 포함된 이름 (예:
export-to-secops)을 입력합니다. - 로그 섹션에서 다음 카테고리를 선택합니다.
- ☑ AuditLogs
- ☑ OperationalLogs
- ☑ DeviceComplianceOrg
- ☑ 기기
- 대상 세부정보 섹션에서 스토리지 계정에 아카이브 체크박스를 선택합니다.
- 구독: 스토리지 계정이 포함된 구독을 선택합니다.
- 스토리지 계정: 이전에 만든 스토리지 계정을 선택합니다.
- 진단 설정 이름: 설명이 포함된 이름 (예:
- 저장을 클릭합니다.
구성 후 로그가 스토리지 계정으로 자동 내보내기됩니다.
- 감사 로그는 Intune의 변경사항을 생성하는 활동의 기록을 보여줍니다.
- 운영 로그에는 등록에 성공한 (또는 실패한) 사용자 및 기기에 관한 세부정보와 규정을 준수하지 않는 기기에 관한 세부정보가 표시됩니다.
- 기기 규정 준수 조직 로그에는 Intune의 기기 규정 준수에 관한 조직 보고서와 규정 미준수 기기에 관한 세부정보가 표시됩니다.
- IntuneDevices는 Intune에 등록되고 관리되는 기기의 기기 인벤토리 및 상태 정보를 표시합니다.
Intune 감사 로그 및 운영 로그는 Intune에서 Azure Monitor 서비스로 즉시 전송됩니다. Intune 기기 규정 준수 조직 로그 및 IntuneDevices 보고서 데이터는 24시간마다 한 번 Intune에서 Azure Monitor 서비스로 전송됩니다. 따라서 Azure Monitor 서비스에서 로그를 가져오는 데 최대 24시간이 걸릴 수 있습니다. 데이터가 Intune에서 전송되면 일반적으로 30분 이내에 Azure Monitor 서비스에 표시됩니다.
Microsoft Intune 로그를 수집하도록 Google SecOps에서 피드 구성
- SIEM 설정> 피드로 이동합니다.
- 새 피드 추가를 클릭합니다.
- 다음 페이지에서 단일 피드 구성을 클릭합니다.
- 피드 이름 필드에 피드 이름을 입력합니다(예:
Microsoft Intune Logs). - 소스 유형으로 Microsoft Azure Blob Storage V2를 선택합니다.
- 로그 유형으로 Microsoft Intune을 선택합니다.
- 다음을 클릭합니다.
다음 입력 매개변수의 값을 지정합니다.
Azure URI: 컨테이너 경로와 함께 Blob 서비스 엔드포인트 URL을 입력합니다. Intune은 다양한 로그 카테고리에 대해 여러 컨테이너를 만들기 때문에 컨테이너별로 별도의 피드를 만들어야 합니다.
다음 형식을 사용하고
intunelogsstorage을 Azure 스토리지 계정 이름으로 바꿉니다.- 감사 로그의 경우:
https://intunelogsstorage.blob.core.windows.net/insights-logs-auditlogs/- 운영 로그의 경우:
https://intunelogsstorage.blob.core.windows.net/insights-logs-operationallogs/- 기기 규정 준수 조직 로그의 경우:
https://intunelogsstorage.blob.core.windows.net/insights-logs-devicecomplianceorg/- 기기:
https://intunelogsstorage.blob.core.windows.net/insights-logs-devices/소스 삭제 옵션: 환경설정에 따라 삭제 옵션을 선택합니다.
- 삭제 안함: 전송 후 파일을 삭제하지 않습니다.
- 전송된 파일 삭제: 전송이 완료되면 파일을 삭제합니다.
- 전송된 파일 및 빈 디렉터리 삭제: 전송이 완료되면 파일과 빈 디렉터리를 삭제합니다.
최대 파일 기간: 지난 일수 동안 수정된 파일을 포함합니다. 기본값은 180일입니다.
공유 키: 스토리지 계정에서 캡처한 공유 키 값 (액세스 키)을 입력합니다.
애셋 네임스페이스: 애셋 네임스페이스입니다.
수집 라벨: 이 피드의 이벤트에 적용할 라벨입니다.
다음을 클릭합니다.
확정 화면에서 새 피드 구성을 검토한 다음 제출을 클릭합니다.
1~10단계를 반복하여 각 Intune 로그 카테고리 컨테이너에 대한 피드를 추가로 만듭니다.
Azure Storage 방화벽 구성 (사용 설정된 경우)
Azure 스토리지 계정에서 방화벽을 사용하는 경우 Google SecOps IP 범위를 추가해야 합니다.
- Azure 포털에서 스토리지 계정으로 이동합니다.
- 보안 + 네트워킹에서 네트워킹을 선택합니다.
- 방화벽 및 가상 네트워크에서 선택한 가상 네트워크 및 IP 주소에서 사용 설정됨을 선택합니다.
- 방화벽 섹션의 주소 범위에서 + IP 범위 추가를 클릭합니다.
각 Google SecOps IP 범위를 CIDR 표기법으로 추가합니다.
현재 IP 범위를 가져오려면 다음 옵션 중 하나를 선택하세요.
- IP 허용 목록 문서를 참고하세요.
- 피드 관리 API를 사용하여 현재 IP 범위를 프로그래매틱 방식으로 가져옵니다.
저장을 클릭합니다.
UDM 매핑 테이블
| 로그 필드 | UDM 매핑 | 로직 |
|---|---|---|
| @output | 이벤트 | @output으로 병합됨 |
| properties.Actor.UserPermissions | event.idm.read_only_udm.additional.fields | 루프를 통해 각 권한이 문자열로 변환되고, 키가 'UserPermissions'인 목록에 string_value로 추가되고, 병합됨 |
| properties.TargetDisplayNames | event.idm.read_only_udm.additional.fields | null이 아닌 경우 각 TargetDisplayNames가 'TargetDisplayNames' 키가 있는 목록에 string_value로 추가되고 병합됩니다. |
| properties.TargetObjectIds | event.idm.read_only_udm.additional.fields | 루프를 실행하고 각 TargetObjectIds를 문자열로 변환하여 키가 'TargetObjectIds'인 목록에 string_value로 추가하고 병합했습니다. |
| 메타데이터 | event.idm.read_only_udm.metadata | 메타데이터에서 이름이 변경됨 |
| 시간 | event.idm.read_only_udm.metadata.event_timestamp | 시간에서 ISO8601로 변환됨 |
| has_user | event.idm.read_only_udm.metadata.event_type | 파생: has_user == 'true'이면 'USER_UNCATEGORIZED', 그렇지 않으면 'GENERIC_EVENT' |
| operationName | event.idm.read_only_udm.metadata.product_event_type | operationName에서 가져온 값 |
| properties.AuditEventId | event.idm.read_only_udm.metadata.product_log_id | properties.AuditEventId에서 가져온 값 |
| correlationId | event.idm.read_only_udm.network.session_id | correlationId에서 가져온 값 |
| principal | event.idm.read_only_udm.principal | 주 구성원에서 이름이 변경됨 |
| properties.Actor.Application | event.idm.read_only_udm.principal.application | properties.Actor.Application에서 가져온 값 |
| properties.Actor.ApplicationName | event.idm.read_only_udm.principal.resource.name | properties.Actor.ApplicationName에서 가져온 값 |
| properties.Actor.isDelegatedAdmin | event.idm.read_only_udm.principal.user.attribute.labels | 문자열로 변환하고, 키 'isDelegatedAdmin'과 값으로 라벨을 만들어 병합합니다. |
| properties.Actor.PartnerTenantId | event.idm.read_only_udm.principal.user.attribute.labels | 'PartnerTenantId' 키와 병합된 값을 사용하여 라벨을 만듭니다. |
| security_result | event.idm.read_only_udm.security_result | security_result에서 병합됨 |
| 카테고리 | event.idm.read_only_udm.security_result.category_details | 카테고리에서 가져온 값 |
| resultDescription | event.idm.read_only_udm.security_result.description | resultDescription에서 가져온 값 |
| ID | event.idm.read_only_udm.security_result.detection_fields | 'identity' 키와 ID의 값을 병합하여 라벨을 만듭니다. |
| properties.ActivityDate | event.idm.read_only_udm.security_result.detection_fields | 'ActivityDate' 키와 properties.ActivityDate에서 가져온 값으로 라벨을 만듭니다(병합됨). |
| properties.ActivityResultStatus | event.idm.read_only_udm.security_result.detection_fields | 문자열로 변환하고, 키가 'ActivityResultStatus'이고 값이 병합된 라벨을 만듭니다. |
| properties.ActivityType | event.idm.read_only_udm.security_result.detection_fields | 문자열로 변환하고, 키가 'ActivityType'이고 값이 병합된 라벨을 만듭니다. |
| properties.Actor.ActorType | event.idm.read_only_udm.security_result.detection_fields | 문자열로 변환하고, 키가 'ActorType'이고 값이 병합된 라벨을 만듭니다. |
| properties.Category | event.idm.read_only_udm.security_result.detection_fields | 문자열로 변환하고, 키가 'Category'이고 값이 병합된 라벨을 만듭니다. |
| properties.Targets.ModifiedProperties.Name | event.idm.read_only_udm.security_result.detection_fields | 'Name' 키와 mproper.Name의 값으로 라벨을 만듭니다. |
| properties.Targets.ModifiedProperties.New | event.idm.read_only_udm.security_result.detection_fields | 'New' 키와 mproper.New의 값을 병합하여 라벨을 만듭니다. |
| properties.Targets.ModifiedProperties.Old | event.idm.read_only_udm.security_result.detection_fields | 'Old' 키와 mproper.Old의 값을 병합하여 라벨을 만듭니다. |
| resultType | event.idm.read_only_udm.security_result.summary | resultType에서 가져온 값 |
| target | event.idm.read_only_udm.target | 타겟에서 이름이 변경됨 |
| tenantId | event.idm.read_only_udm.target.user.userid | tenantId에서 가져온 값 |
| event.idm.read_only_udm.metadata.product_name | 'Microsoft Intune 컨텍스트'로 설정 | |
| event.idm.read_only_udm.metadata.vendor_name | 'Microsoft'로 설정 |
도움이 더 필요한가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.