# Microsoft Graph 로그

## 개요

Panther는 다음을 쿼리하여 Microsoft Graph 로그를 가져오는 기능이 있습니다 [Microsoft Graph API](https://docs.microsoft.com/en-us/graph/api/resources/security-api-overview?view=graph-rest-1.0) 다음 Microsoft 보안 제품의 보안 알러트를 얻기 위해:

* Azure Active Directory Identity Protection
* Azure Information Protection
* Microsoft 365 (기본, Cloud App Security, 사용자 지정 알러트)
* Microsoft Defender for Cloud Apps
* Microsoft Defender for Endpoint
* Microsoft Defender for Identity
* Microsoft Sentinel (이전 명칭: Azure Sentinel)

## Microsoft Graph 로그를 Panther에 온보딩하는 방법

### 사전 요구 사항

* Microsoft Defender for Endpoint 및 Identity 알러트는 Panther로 알러트 이벤트를 스트리밍하기 전에 추가 사용자 구성이 필요합니다. 자세한 내용은 [Microsoft의 문서](https://docs.microsoft.com/en-us/graph/api/resources/security-api-overview?view=graph-rest-1.0#alerts) 을 참조하세요.
* Microsoft Defender for Endpoint는 Microsoft Graph Security API에서 요구하는 역할 외에 추가 사용자 역할을 필요로 합니다. Microsoft Defender for Endpoint 및 Microsoft Graph Security API 역할 모두에 속한 사용자만 Microsoft Defender for Endpoint 데이터에 액세스할 수 있습니다. 애플리케이션 전용 인증은 이 제한을 받지 않으므로 애플리케이션 전용 인증 토큰 사용을 권장합니다.
* Microsoft Defender for Identity 알러트는 Microsoft Defender for Cloud Apps 통합을 통해 제공됩니다. 즉 Unified SecOps에 참여하고 Microsoft Defender for Identity를 Microsoft Defender for Cloud Apps에 연결한 경우에만 Microsoft Defender for Identity 알러트를 받을 수 있습니다.

### 1단계: Microsoft Entra ID 애플리케이션 생성

1. 다음에 로그인하세요 [Azure 포털](https://portal.azure.com) 로 이동하여 **Microsoft Entra ID** 서비스로 이동합니다.\
   ![A "Services" header is shown, and under it, Microsoft Entra ID is highlighted](https://2400888838-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LgdiSWdyJcXPahGi9Rs-2910905616%2Fuploads%2Fgit-blob-5eeb10e9763c8de2ed3bac95beb960ad54f9bcfc%2FCleanShot%202024-01-16%20at%2015.55.34%402x.png?alt=media)
2. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **앱 등록** 왼쪽 사이드바에서.
3. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **새 등록**.
4. 필드를 채우십시오:
   * 애플리케이션에 대한 설명적인 이름을 입력하세요.
   * 다음을 위해 **지원되는 계정 유형**SNS 주제 **이 조직 디렉터리의 계정만**.
5. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **등록**.
6. 왼쪽 사이드바에서 **인증서 및 비밀**.
7. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **새 클라이언트 비밀**.
   * 시크릿에 대한 설명을 추가하세요(예: Panther 통합).
   * 다음을 설정하세요 **만료** 필드에 `24개월`.
8. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **리디렉트 URL**.
   * 클라이언트 시크릿은 이 페이지에서 벗어나면 숨겨집니다; **값** 필드를 복사하여 안전한 장소에 보관하세요 - 이 값을 2단계에서 **클라이언트 시크릿** 값으로 사용하게 됩니다.
9. 왼쪽 사이드바에서 **API 권한** 그런 다음 **권한 추가**.
10. 다음을 찾아 클릭하세요 **Microsoft Graph API**.
11. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **위임된 권한** 그리고 다음을 선택하세요 **SecurityEvents.Read.All** ListBucket
12. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **응용 프로그램 권한** 그리고 다음을 선택하세요 **SecurityEvents.Read.All** ListBucket
13. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **권한 추가** 페이지 하단에서.
14. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **관리자 동의 부여** API 권한 페이지에서.\
    ![The "Configured Permissions" page from the Azure Portal is displayed. There is a link labeled "Grant admin consent for pantherlabsinc" with a green checkmark next to it. In the image there is a red circle around the link.](https://2400888838-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LgdiSWdyJcXPahGi9Rs-2910905616%2Fuploads%2Fgit-blob-adaea949386b23887cdb5f77113eb377375c1a22%2Fgrant-admin-consent.png?alt=media)
15. 동의가 부여된 후, 왼쪽 사이드바의 **개요** 탭을 클릭하여 **애플리케이션(클라이언트) ID** 와 **디렉터리(테넌트) ID**.
    * 다음 단계에서 Panther에 제공해야 합니다.\
      ![In the Azure Portal, the permission page is displayed. The boxes are checked next to ActivityFeed.Read, ActivityFeed.ReadDlp, and ServiceHealth.Read.](https://2400888838-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LgdiSWdyJcXPahGi9Rs-2910905616%2Fuploads%2Fgit-blob-89a2913818e81df3bd6dbe6c677742ace9bf5673%2Fo365-overview-ids.png?alt=media)

### 2단계: Panther에서 새 Microsoft Graph 소스 생성

1. Panther 콘솔의 왼쪽 탐색 창에서 **구성** > **로그 소스**.
2. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **새로 만들기.**
3. 선택하세요 **Microsoft Graph** 사용 가능한 로그 소스 목록에서 선택하세요.
4. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **설정 시작**.
5. 다음 화면에서 필드를 작성하세요:
   * **이름**: 소스의 설명적인 이름을 입력하세요 예:  `내 Microsoft Graph 로그`.
   * **테넌트 ID**: 테넌트 ID를 입력하세요.
   * **로그 유형**: 최소 하나 이상의 로그 유형을 선택하세요.
6. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **설정**.
7. 페이지에서 **자격 증명(Credentials)** 페이지에서, 다음을 입력하세요 **클라이언트 ID** 와 **클라이언트 시크릿**.
   * 사용자를 사용할 것이며, **클라이언트 시크릿** 은(는) **값** 1단계에서 저장한
8. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **설정**.
9. 필드입니다.

   <figure><img src="https://2400888838-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LgdiSWdyJcXPahGi9Rs-2910905616%2Fuploads%2Fgit-blob-1e3cd926562122a958b5e3326cd77fc7470a6f6a%2FScreenshot%202024-11-25%20at%203.48.17%E2%80%AFPM.png?alt=media" alt="The success screen reads, &#x22;Everything looks good! Panther will now automatically pull &#x26; process logs from your account&#x22;" width="188"><figcaption></figcaption></figure>

   * 성공 화면으로 이동됩니다: [선택적으로 하나 이상의](https://docs.panther.com/detections/panther-managed/packs).
   * 사용자를 사용할 것이며, **가 활성화될 수 있습니다** "이벤트가 처리되지 않을 때 알러트를 트리거" **설정의 기본값은**. 로그 소스에서 일정 기간 동안 데이터 흐름이 중단되면 알림을 받으므로 이 옵션을 활성화 상태로 두는 것을 권장합니다. 시간 범위는 구성 가능하며 기본값은 24시간입니다.\\

     <figure><img src="https://2400888838-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LgdiSWdyJcXPahGi9Rs-2910905616%2Fuploads%2Fgit-blob-c48119abd559990173004bde99ff4907fdd2ded2%2FScreenshot%202023-08-03%20at%204.26.54%20PM.png?alt=media" alt="The &#x22;Trigger an alert when no events are processed&#x22; toggle is set to YES. The &#x22;How long should Panther wait before it sends you an alert that no events have been processed&#x22; setting is set to 1 Day" width="320"><figcaption></figcaption></figure>

## 지원되는 로그 유형

### Panther에서 성공 화면으로 리디렉션됩니다:\\

MicrosoftGraph.SecurityAlert

참고: [Microsoft 또는 파트너 보안 솔루션이 식별한 고객 테넌트 내 잠재적 보안 문제를 나타냅니다.](https://docs.microsoft.com/en-us/graph/api/resources/alert?view=graph-rest-1.0).

```yaml
필드:
    Microsoft 문서: 보안 알러트
      - name: activityGroupName
      type: string
    description: 이 알러트가 귀속된 활동 그룹(공격자)의 이름 또는 별칭
      - name: activityGroupName
      type: string
    - name: assignedTo
      - name: azureSubscriptionId
      type: string
    description: 이 알러트가 Azure 리소스와 관련된 경우 표시되는 Azure 구독 ID
      required: true
      설명: Azure Active Directory 테넌트 ID
      type: string
    - name: category
      - name: azureTenantId
      type: string
    description: 알러트의 범주(예: credentialTheft, ransomware 등)
      - name: closedDateTime
      type: timestamp
      시간 형식: rfc3339
    description: 알러트가 종료된 시간(UTC)
      - name: cloudAppStates
      type: array
      element:
        type: object
        필드:
            description: 이 알러트와 관련된 클라우드 애플리케이션에 대해 공급자가 생성한 보안 관련 상태 정보
              - name: destinationServiceIp
              type: string
              지표:
                - ip
            description: 클라우드 애플리케이션/서비스로의 연결의 목적지 IP 주소
              - name: destinationServiceName
              type: string
            description: 클라우드 애플리케이션/서비스 이름(예: 'Salesforce', 'DropBox' 등)
              - name: riskScore
              type: string
    - 이름: comments
      description: 클라우드 애플리케이션/서비스에 대해 공급자가 생성/계산한 위험 점수. 권장 값 범위는 0-1(비율로 환산)
      type: array
      element:
        type: string
    description: 알러트에 대한 고객 제공 코멘트(고객 알러트 관리용)
      - name: confidence
      유형: int
    description: 탐지 로직의 신뢰도(1-100 사이의 백분율)
      required: true
      - name: createdDateTime
      type: timestamp
      시간 형식: rfc3339
    - 이름: description
      description: 알러트 공급자가 알러트를 생성한 시간(UTC)
      type: string
    description: 알러트 설명
      - name: detectionIds
      type: array
      element:
        type: string
    description: 이 알러트 엔터티와 관련된 알러트 집합(각 알러트는 별도 레코드로 SIEM에 푸시됩니다)
      required: true
      - name: eventDateTime
      type: timestamp
      시간 형식: rfc3339
      isEventTime: true
    description: 알러트를 생성하는 트리거가 된 이벤트가 발생한 시간(UTC)
      - name: feedback
      type: string
    description: '알러트에 대한 분석가 피드백. 가능한 값: unknown, truePositive, falsePositive, benignPositive'
      - name: fileStates
      type: array
      element:
        type: object
        필드:
            description: 이 알러트와 관련된 파일에 대해 공급자가 생성한 보안 관련 상태 정보
              - name: fileHash
              type: object
              필드:
                description: 파일 해시(암호화 및 위치 민감 정보)를 포함하는 복합 타입
                  - name: hashType
                  type: string
                - 이름: hashValue
                  description: '파일 해시 유형. 가능한 값: unknown, sha1, sha256, md5, authenticodeHash256, lsHash, ctph, peSha1, peSha256'
                  type: string
                  지표:
                    - md5
                    - sha1
                    - sha256
            - 이름: name
              description: 파일 해시 값
              type: string
            - name: path
              description: 파일 이름(경로 제외)
              type: string
            description: 클라우드 애플리케이션/서비스 이름(예: 'Salesforce', 'DropBox' 등)
              description: 파일/imageFile의 전체 파일 경로
              type: string
    description: 공급자가 생성/계산한 알러트 파일의 위험 점수. 권장 값 범위는 0-1(비율로 환산)
      - name: hostStates
      type: array
      element:
        type: object
        필드:
            - 이름: fqdn
              description: 이 알러트와 관련된 호스트에 대해 공급자가 생성한 보안 관련 상태 정보
              type: string
              지표:
                - hostname
            description: 호스트의 FQDN(예: machine.company.com)
              - name: isAzureAdJoined
              유형: boolean
            description: 호스트가 Azure Active Directory Domain Services에 도메인 가입된 경우 True
              - name: isAzureAdRegistered
              유형: boolean
            description: 호스트가 Azure Active Directory 디바이스 등록으로 등록된 경우 True(BYOD 디바이스—즉, 기업에서 완전히 관리하지 않는 경우)
              - name: isHybridAzureDomainJoined
              유형: boolean
            description: 호스트가 온프레미스 Active Directory 도메인에 도메인 가입된 경우 True
              - name: netBiosName
              type: string
              지표:
                - hostname
            - 이름: os
              description: DNS 도메인 이름을 제외한 로컬 호스트 이름
              type: string
            description: 호스트 운영 체제(예: Windows10, MacOS, RHEL 등)
              - name: privateIpAddress
              type: string
              지표:
                - ip
            description: 알러트 시점의 사설(라우팅 불가) IPv4 또는 IPv6 주소(RFC 1918 참조)
              - name: publicIpAddress
              type: string
              지표:
                - ip
            description: 클라우드 애플리케이션/서비스 이름(예: 'Salesforce', 'DropBox' 등)
              description: 알러트 시점의 공개 라우팅 가능한 IPv4 또는 IPv6 주소(RFC 1918 참조)
              type: string
    - 이름: id
      required: true
      description: 공급자가 생성/계산한 호스트의 위험 점수. 권장 값 범위는 0-1(비율로 환산)
      type: string
    description: 공급자가 생성한 GUID/고유 식별자
      - name: incidentIds
      type: array
      element:
        type: string
    description: 현재 알러트와 관련된 인시던트 ID
      - name: lastModifiedDateTime
      type: timestamp
      시간 형식: rfc3339
    description: 알러트 엔터티가 마지막으로 수정된 시간(UTC)
      - name: malwareStates
      type: array
      element:
        type: object
        필드:
            - name: category
              description: 이 알러트와 관련된 악성코드에 관한 위협 인텔리전스
              type: string
            description: 공급자가 생성한 악성코드 분류(예: trojan, ransomware 등)
              - name: family
              type: string
            - 이름: name
              description: 공급자가 생성한 악성코드 패밀리(예: 'wannacry', 'notpetya' 등)
              type: string
            - 이름: severity
              description: 공급자가 생성한 악성코드 변종 이름(예: Trojan:Win32/Powessere.H)
              type: string
            description: 이 악성코드의 공급자 판정 심각도
              - name: wasRunning
              유형: boolean
    description: 탐지 시점에 탐지된 파일(악성코드/취약점)이 실행 중이었는지 또는 디스크에 저장된 상태(유휴)에서 탐지되었는지 여부를 나타냄
      - name: networkConnections
      type: array
      element:
        type: object
        필드:
            - 이름: applicationName
              description: 이 알러트와 관련된 네트워크 연결에 대해 공급자가 생성한 보안 관련 상태 정보
              type: string
            description: 네트워크 연결을 관리하는 애플리케이션 이름(예: Facebook 또는 SMTP)
              - name: destinationAddress
              type: string
              지표:
                - ip
            description: 목적지 IP 주소(네트워크 연결의)
              - name: destinationLocation
              type: string
            description: 네트워크 연결 목적지와 연관된 위치(IP 주소 매핑 기준)
              - name: destinationDomain
              type: string
              지표:
                - 도메인
            - 이름: destinationPort
              description: 목적지 URL의 도메인 부분(예: 'www.contoso.com')
              type: string
            description: 목적지 포트(네트워크 연결의)
              - name: destinationUrl
              type: string
              지표:
                - url
            description: 매개변수 제외한 네트워크 연결 URL/URI 문자열(예: 'www.contoso.com/products/default.html')
              - name: direction
              type: string
            description: '네트워크 연결 방향. 가능한 값: unknown, inbound, outbound'
              - name: domainRegisteredDateTime
              type: timestamp
              시간 형식: rfc3339
            description: 목적지 도메인이 등록된 날짜(UTC)
              - name: localDnsName
              type: string
            description: 호스트의 로컬 DNS 캐시에 나타나는 로컬 DNS 이름(예: hosts 파일이 변조된 경우)
              - name: natDestinationAddress
              type: string
              지표:
                - ip
            description: 네트워크 주소 변환(NAT) 목적지 IP 주소
              - name: natDestinationPort
              type: string
            description: 네트워크 주소 변환(NAT) 목적지 포트
              - name: natSourceAddress
              type: string
              지표:
                - ip
            description: 네트워크 주소 변환(NAT) 출발지 IP 주소
              - name: natSourcePort
              type: string
            - 이름: protocol
              description: 네트워크 주소 변환(NAT) 출발지 포트
              type: string
            description: 클라우드 애플리케이션/서비스 이름(예: 'Salesforce', 'DropBox' 등)
              description: '네트워크 프로토콜. 가능한 값: unknown, ip, icmp, igmp, ggp, ipv4, tcp, pup, udp, idp, ipv6, ipv6RoutingHeader, ipv6FragmentHeader, ipSecEncapsulatingSecurityPayload, ipSecAuthenticationHeader, icmpV6, ipv6NoNextHeader, ipv6DestinationOptions, nd, raw, ipx, spx, spxII'
              type: string
            description: 공급자가 생성/계산한 네트워크 연결의 위험 점수. 권장 값 범위는 0-1(비율로 환산)
              - name: sourceAddress
              type: string
              지표:
                - ip
            description: 출발지(즉 원본) IP 주소(네트워크 연결의)
              - name: sourceLocation
              type: string
            description: 네트워크 연결 출발지와 연관된 위치(IP 주소 매핑 기준)
              - name: sourcePort
              type: string
            - 이름: status
              description: 출발지(즉 원본) IP 포트(네트워크 연결의)
              type: string
            description: '네트워크 연결 상태. 가능한 값: unknown, attempted, succeeded, blocked, failed'
              - name: urlParameters
              type: string
              지표:
                - url
    description: 목적지 URL의 매개변수(접미사)
      - name: processes
      type: array
      element:
        type: object
        필드:
            - 이름: accountName
              description: 이 알러트와 관련된 프로세스에 대해 공급자가 생성한 보안 관련 상태 정보
              type: string
              지표:
                - username
            description: 프로세스가 실행된 사용자 계정 식별자(예: AccountName, SID 등)
              - name: commandLine
              type: string
            description: 탐지 로직의 신뢰도(1-100 사이의 백분율)
              description: 모든 매개변수를 포함한 전체 프로세스 호출 커맨드라인
              type: timestamp
              시간 형식: rfc3339
            description: 이 알러트와 관련된 파일에 대해 공급자가 생성한 보안 관련 상태 정보
              - name: fileHash
              type: object
              필드:
                description: 파일 해시(암호화 및 위치 민감 정보)를 포함하는 복합 타입
                  - name: hashType
                  type: string
                - 이름: hashValue
                  description: '파일 해시 유형. 가능한 값: unknown, sha1, sha256, md5, authenticodeHash256, lsHash, ctph, peSha1, peSha256'
                  type: string
                  지표:
                    - md5
                    - sha1
                    - sha256
            description: 프로세스가 시작된 시간(UTC)
              - name: integrityLevel
              type: string
            description: '프로세스의 무결성 수준. 가능한 값: unknown, untrusted, low, medium, high, system'
              - name: isElevated
              유형: boolean
            - 이름: name
              description: 프로세스가 상승 권한(elevated)인지 여부(True면 상승됨)
              type: string
            description: 프로세스 이미지 파일의 이름
              - name: parentProcessCreatedDateTime
              type: timestamp
              시간 형식: rfc3339
            description: 부모 프로세스가 시작된 날짜시간(UTC)
              - name: parentProcessId
              type: bigint
            description: 부모 프로세스의 프로세스 ID(PID)
              - name: parentProcessName
              type: string
            - name: path
              description: 부모 프로세스 이미지 파일의 이름
              type: string
            description: 파일명 포함 전체 경로
              - name: processId
              type: bigint
    description: 프로세스의 프로세스 ID(PID)
      - name: recommendedActions
      type: array
      element:
        type: string
    description: 알러트 결과로 취해야 할 공급자/제공업체 권장 조치(예: 머신 격리, 2단계 인증 적용, 호스트 재이미징)
      - name: registryKeyStates
      type: array
      element:
        type: object
        필드:
            description: 이 알러트와 관련된 레지스트리 키에 대해 공급자가 생성한 보안 관련 상태 정보
              - name: hive
              type: string
            - 이름: key
              description: 'Windows 레지스트리 하이브. 가능한 값: unknown, currentConfig, currentUser, localMachineSam, localMachineSecurity, localMachineSoftware, localMachineSystem, usersDefault'
              type: string
            description: 현재(즉 변경된) 레지스트리 키(하이브 제외)
              - name: oldKey
              type: string
            description: 이전(즉 변경 전) 레지스트리 키(하이브 제외)
              - name: oldValueData
              type: string
            description: 이전(즉 변경 전) 레지스트리 키 값 데이터(내용)
              - name: oldValueName
              type: string
            - 이름: operation
              description: 이전(즉 변경 전) 레지스트리 키 값 이름
              type: string
            description: 파일명 포함 전체 경로
              description: '레지스트리 키 이름 및/또는 값을 변경한 작업. 가능한 값: unknown, create, modify, delete'
              type: bigint
            description: 레지스트리 키를 수정한 프로세스의 프로세스 ID(PID)(프로세스 세부정보는 알러트의 'processes' 컬렉션에 나타남)
              - name: valueData
              type: string
            description: 현재(즉 변경된) 레지스트리 키 값 데이터(내용)
              - name: valueName
              type: string
            description: 현재(즉 변경된) 레지스트리 키 값 이름
              - name: valueType
              type: string
    description: '레지스트리 키 값 유형. 가능한 값: unknown, binary, dword, dwordLittleEndian, dwordBigEndian, expandSz, link, multiSz, none, qword, qwordlittleEndian, sz'
      - name: securityResources
      type: array
      element:
        type: object
        필드:
            - 이름: resource
              description: 현재 알러트와 관련된 리소스. 예를 들어 일부 알러트의 경우 Azure 리소스 값을 가질 수 있음
              type: string
            - 이름: resourceType
              description: 현재 알러트와 관련된 리소스의 이름
              type: string
    - 이름: severity
      required: true
      description: '알러트와 관련된 보안 리소스의 유형을 나타냄. 가능한 값: attacked, related'
      type: string
    description: '알러트 심각도 - 공급자/제공업체가 설정. 가능한 값: unknown, informational, low, medium, high'
      - name: sourceMaterials
      type: array
      element:
        type: string
        지표:
            - url
    - 이름: status
      required: true
      description: 알러트와 관련된 원본 자료에 대한 하이퍼링크(URI). 예: 공급자의 알러트 UI 또는 로그 검색 등
      type: string
    allowContains: ["critical", "warning"]
      description: '알러트 수명 주기 상태(단계). 가능한 값: unknown, newAlert, inProgress, resolved'
      type: array
      element:
        type: string
    - 이름: title
      required: true
      description: 사용자가 정의할 수 있는 라벨로, 알러트에 적용되어 필터 조건으로 사용할 수 있음(예: 'HVA', 'SAW' 등)
      type: string
    description: 알러트 제목
      - name: triggers
      type: array
      element:
        type: object
        필드:
            - 이름: name
              description: 알러트를 유발한 특정 속성들에 대한 보안 관련 정보(알러트에 표시된 속성). 알러트는 여러 사용자, 호스트, 파일, IP 주소에 대한 정보를 포함할 수 있습니다. 이 필드는 어떤 속성들이 알러트 생성을 트리거했는지 나타냅니다
              type: string
            - 이름: type
              description: 탐지 트리거로 작용한 속성의 이름
              type: string
            - 이름: value
              description: 해석을 위한 키:값 쌍에서 속성의 유형(예: String, Boolean 등)
              type: string
    description: 탐지 트리거로 작용한 속성의 값
      - name: userStates
      type: array
      element:
        type: object
        필드:
            description: 이 알러트와 관련된 사용자 계정에 대해 공급자가 생성한 보안 관련 상태 정보
              - name: aadUserId
              type: string
              지표:
                - username
            - 이름: accountName
              description: AAD 사용자 객체 식별자(GUID) - 물리적/다계정 사용자 엔터티를 나타냄
              type: string
              지표:
                - username
            - 이름: domainName
              description: 사용자 계정의 계정 이름(Active Directory 도메인 또는 DNS 도메인 없이) - (mailNickName이라고도 함)
              type: string
              지표:
                - 도메인
            description: "사용자 계정의 NetBIOS/Active Directory 도메인(도메인\계정 형식)"
              - name: emailRole
              type: string
            description: '이메일 관련 알러트의 경우 - 사용자 계정의 이메일 "역할". 가능한 값: unknown, sender, recipient'
              - name: isVpn
              유형: boolean
            description: 사용자가 VPN을 통해 로그인했는지 여부를 나타냄
              - name: logonDateTime
              type: timestamp
              시간 형식: rfc3339
            description: 로그인(사인인)이 발생한 시간(UTC)
              - name: logonId
              type: string
              지표:
                - username
            description: 사용자 로그인 ID
              - name: logonIp
              type: string
              지표:
                - ip
            description: 로그인 요청이 시작된 IP 주소
              - name: logonLocation
              type: string
            description: 이 사용자의 사용자 로그인 이벤트와 연관된 위치(IP 주소 매핑 기준)
              - name: logonType
              type: string
            description: '사용자 로그인 방법. 가능한 값: unknown, interactive, remoteInteractive, network, batch, service'
              - name: onPremisesSecurityIdentifier
              type: string
              지표:
                - username
            description: 클라우드 애플리케이션/서비스 이름(예: 'Salesforce', 'DropBox' 등)
              description: 사용자의 Active Directory(온프레미스) 보안 식별자(SID)
              type: string
            description: 공급자가 생성/계산한 사용자 계정의 위험 점수. 권장 값 범위는 0-1(비율로 환산)
              - name: userAccountType
              type: string
            description: 'Windows 정의에 따른 사용자 계정 유형(그룹 멤버십). 가능한 값: unknown, standard, power, administrator'
              - name: userPrincipalName
              type: string
              지표:
                - username
    description: '사용자 로그인 이름 - 인터넷 형식: (사용자 계정 이름)@(사용자 계정 DNS 도메인 이름)'
      required: true
      - name: vendorInformation
      type: object
      필드:
        description: 보안 제품/서비스 벤더, 공급자 및 하위 공급자에 대한 세부 정보를 포함하는 복합 타입(예: vendor=Microsoft; provider=Windows Defender ATP; subProvider=AppLocker)
          - name: provider
          type: string
        description: 특정 공급자(제품/서비스 - 벤더 회사가 아님). 예: WindowsDefenderATP
          - name: providerVersion
          type: string
        description: 알러트를 생성한 공급자 또는 하위 공급자의 버전(존재하는 경우)
          - name: subProvider
          type: string
        description: 집계 공급자 아래의 특정 하위 공급자. 예: WindowsDefenderATP.SmartScreen
          - name: vendor
          type: string
    description: 알러트 벤더의 이름(예: Microsoft, Dell, FireEye)
      - name: vulnerabilityStates
      type: array
      element:
        type: object
        필드:
            description: 이 알러트와 관련된 하나 이상의 취약점에 관한 위협 인텔리전스
              - name: cve
              type: string
            - 이름: severity
              description: 취약점에 대한 공통 취약성 및 노출(CVE)
              type: string
            description: 이 악성코드의 공급자 판정 심각도
              description: 이 취약점에 대한 기본 공통 취약성 점수 시스템(CVSS) 심각도 점수
              유형: boolean

```
