ASIM(고급 보안 정보 모델) DNS 정규화 스키마 참조

DNS 정보 모델은 DNS 서버 또는 DNS 보안 시스템에서 보고하는 이벤트를 설명하는 데 사용되며 Microsoft Sentinel 소스 독립적 분석을 사용하도록 설정하는 데 사용됩니다.

자세한 내용은 정규화 및 ASIM(고급 보안 정보 모델)을 참조하세요.

스키마 개요

ASIM DNS 스키마는 DNS 프로토콜 작업을 나타냅니다. DNS 서버와 DNS 서버 로그 DNS 활동에 DNS 요청을 보내는 디바이스 둘 다. DNS 프로토콜 활동에는 DNS 쿼리, DNS 서버 업데이트 및 DNS 대량 데이터 전송이 포함됩니다. 스키마는 프로토콜 활동을 나타내므로 RFC 및 공식적으로 할당된 매개 변수 목록이 제어되며, 적절한 경우 이 문서에서 참조됩니다. DNS 스키마는 DNS 서버 감사 이벤트를 나타내지 않습니다.

DNS 서버에서 보고하는 가장 중요한 활동은 필드가 로 설정된 QueryDNS 쿼리 EventType 입니다.

DNS 이벤트에서 가장 중요한 필드는 다음과 같습니다.

  • 쿼리가 실행된 도메인 이름을 보고하는 DnsQuery입니다.

  • 요청이 생성된 IP 주소를 나타내는 SrcIpAddr ( IpAddr에 별칭 지정)입니다. DNS 서버는 일반적으로 SrcIpAddr 필드를 제공하지만 DNS 클라이언트는 이 필드를 제공하지 않고 SrcHostname 필드만 제공하는 경우가 있습니다.

  • EventResultDetails는 요청이 성공했는지 여부와 그렇지 않은 경우 그 이유를 보고합니다.

  • 사용 가능한 경우 서버에서 쿼리에 제공한 답변을 보유하는 DnsResponseName입니다. ASIM은 응답을 구문 분석할 필요가 없으며 해당 형식은 원본마다 다릅니다.

    원본에 구애받지 않은 콘텐츠에서 이 필드를 사용하려면 또는 contains 연산자를 사용하여 콘텐츠를 has 검색합니다.

클라이언트 디바이스에서 수집된 DNS 이벤트에는 사용자프로세스 정보도 포함될 수 있습니다.

DNS 이벤트 수집에 대한 지침

DNS는 많은 수의 컴퓨터를 교차할 수 있다는 고유한 프로토콜입니다. 또한 DNS는 UDP를 사용하므로 요청 및 응답은 결합 해제되며 서로 직접 관련이 없습니다.

다음 이미지는 4개의 세그먼트를 포함하여 간소화된 DNS 요청 흐름을 보여 줍니다. 실제 요청은 더 많은 세그먼트가 관련되어 있는 더 복잡할 수 있습니다.

간소화된 DNS 요청 흐름.

요청 및 응답 세그먼트는 DNS 요청 흐름에서 서로 직접 연결되지 않으므로 전체 로깅으로 인해 상당한 중복이 발생할 수 있습니다.

기록할 가장 중요한 세그먼트는 클라이언트에 대한 응답입니다. 응답은 도메인 이름 쿼리, 조회 결과 및 클라이언트의 IP 주소를 제공합니다. 많은 DNS 시스템에서 이 세그먼트만 기록하지만 다른 부분을 로깅하는 데는 값이 있습니다. 예를 들어 DNS 캐시 중독 공격은 종종 업스트림 서버의 가짜 응답을 활용합니다.

데이터 원본이 전체 DNS 로깅을 지원하고 여러 세그먼트를 기록하도록 선택한 경우 쿼리를 조정하여 Microsoft Sentinel 데이터 중복을 방지합니다.

예를 들어 다음 정규화를 사용하여 쿼리를 수정할 수 있습니다.

_Im_Dns | where SrcIpAddr != "127.0.0.1" and EventSubType == "response"

파서

ASIM 파서에 대한 자세한 내용은 ASIM 파서 개요를 참조하세요.

기본 제공 파서

모든 ASIM 기본 파서를 통합하는 파서를 사용하고 구성된 모든 원본에서 분석이 실행되도록 하려면 통합 파서를 _Im_Dns 쿼리의 테이블 이름으로 사용합니다.

기본 제공 Microsoft Sentinel DNS 파서 목록은 ASIM 파서 목록을 참조하세요.

정규화된 자체 파서 추가

Dns 정보 모델에 대한 사용자 지정 파서를 구현할 때 형식 vimDns<vendor><Product>을 사용하여 KQL 함수의 이름을 지정합니다. DNS 통합 파서에 사용자 지정 파서를 추가하는 방법을 알아보려면 ASIM 파서 관리 문서를 참조하세요.

파서 매개 변수 필터링

DNS 파서는 필터링 매개 변수를 지원합니다. 이러한 매개 변수는 선택 사항이지만 쿼리 성능을 향상시킬 수 있습니다.

다음 필터링 매개 변수를 사용할 수 있습니다.

이름 유형 설명
Starttime datetime 이 시간 이후에 실행된 DNS 쿼리만 필터링합니다. 이 매개 변수는 TimeGenerated EventStartTime 및 EventEndTime 필드의 파서별 매핑에 관계없이 이벤트 시간의 표준 지정자인 필드를 필터링합니다.
Endtime datetime 이 시간 또는 그 이전에 실행이 완료된 DNS 쿼리만 필터링합니다. 이 매개 변수는 TimeGenerated EventStartTime 및 EventEndTime 필드의 파서별 매핑에 관계없이 이벤트 시간의 표준 지정자인 필드를 필터링합니다.
srcipaddr 문자열 이 원본 IP 주소에서 DNS 쿼리만 필터링합니다.
domain_has_any 동적/문자열 (또는 query)에 domain 이벤트 도메인의 일부를 포함하여 나열된 도메인 이름이 있는 DNS 쿼리만 필터링합니다. 목록의 길이는 10,000개 항목으로 제한됩니다.
responsecodename 문자열 응답 코드 이름이 제공된 값과 일치하는 DNS 쿼리만 필터링합니다.
예: NXDOMAIN
response_has_ipv4 문자열 응답 필드에 제공된 IP 주소 또는 IP 주소 접두사를 포함하는 DNS 쿼리만 필터링합니다. 단일 IP 주소 또는 접두사를 필터링하려는 경우 이 매개 변수를 사용합니다.

응답을 제공하지 않는 원본에 대한 결과는 반환되지 않습니다.
response_has_any_prefix 동적 응답 필드에 나열된 IP 주소 또는 IP 주소 접두사를 포함하는 DNS 쿼리만 필터링합니다. 접두사는 로 .끝나야 합니다(예: 10.0.).

IP 주소 또는 접두사 목록을 필터링하려는 경우 이 매개 변수를 사용합니다.

응답을 제공하지 않는 원본에 대한 결과는 반환되지 않습니다. 목록의 길이는 10,000개 항목으로 제한됩니다.
eventtype 문자열 지정된 형식의 DNS 쿼리만 필터링합니다. 값을 지정하지 않으면 조회 쿼리만 반환됩니다.

예를 들어 도메인 이름을 resolve 못한 마지막 날의 DNS 쿼리만 필터링하려면 다음을 사용합니다.

_Im_Dns (responsecodename = 'NXDOMAIN', starttime = ago(1d), endtime=now())

지정된 도메인 이름 목록에 대한 DNS 쿼리만 필터링하려면 다음을 사용합니다.

let torProxies=dynamic(["tor2web.org", "tor2web.com", "torlink.co"]);
_Im_Dns (domain_has_any = torProxies)

일부 매개 변수는 형식 dynamic 의 값 목록 또는 단일 문자열 값을 모두 허용할 수 있습니다. 동적 값이 필요한 매개 변수에 리터럴 목록을 전달하려면 동적 리터럴을 명시적으로 사용합니다. 예: dynamic(['192.168.','10.'])

정규화된 콘텐츠

정규화된 DNS 이벤트를 사용하는 분석 규칙의 전체 목록은 DNS 쿼리 보안 콘텐츠를 참조하세요.

스키마 세부 정보

DNS 정보 모델은 OSSEM DNS 엔터티 스키마와 정렬됩니다.

자세한 내용은 IANA(인터넷 할당 번호 기관) DNS 매개 변수 참조를 참조하세요.

일반 ASIM 필드

중요

모든 스키마에 공통된 필드는 ASIM 공통 필드 문서에서 자세히 설명합니다.

특정 지침이 있는 공통 필드

다음 목록에서는 DNS 이벤트에 대한 특정 지침이 있는 필드를 설명합니다.

필드 클래스 유형 설명
EventType 필수 열거 레코드에서 보고한 작업을 나타냅니다.

DNS 레코드의 경우 이 값은 DNS 작업 코드입니다.

예: Query
EventSubType 옵션 열거 또는 request 입니다 response.

대부분의 원본에서는 응답만 기록되므로 값이 응답인 경우가 많습니다.
EventResultDetails 필수 열거 DNS 이벤트의 경우 이 필드는 DNS 응답 코드를 제공합니다.

참고:
- IANA는 값의 대/소문자를 정의하지 않으므로 분석에서 사례를 정규화해야 합니다.
- 소스가 응답 코드 이름이 아닌 숫자 응답 코드만 제공하는 경우 파서는 이 값으로 보강할 조회 테이블을 포함해야 합니다.
- 이 레코드가 응답이 아닌 요청을 나타내는 경우 NA로 설정합니다.

예: NXDOMAIN
EventSchemaVersion 필수 SchemaVersion(문자열) 여기에 설명된 스키마 버전은 0.1.7입니다.
EventSchema 필수 열거 여기에 설명된 스키마의 이름은 Dns입니다.
Dvc 필드 - - DNS 이벤트의 경우 디바이스 필드는 DNS 이벤트를 보고하는 시스템을 참조합니다.

모든 공통 필드

아래 표에 표시되는 필드는 모든 ASIM 스키마에 공통적으로 적용됩니다. 위에 지정된 모든 지침은 필드에 대한 일반 지침을 재정의합니다. 예를 들어 필드는 일반적으로 선택 사항이지만 특정 스키마에는 필수일 수 있습니다. 각 필드에 대한 자세한 내용은 ASIM 공통 필드 문서를 참조하세요.

클래스 필드
필수 - EventCount
- EventStartTime
- EventEndTime
- EventType
- EventResult
- EventProduct
- EventVendor
- EventSchema
- EventSchemaVersion
- Dvc
권장 - EventResultDetails
- EventSeverity
- EventUid
- DvcIpAddr
- DvcHostname
- DvcDomain
- DvcDomainType
- DvcFQDN
- DvcId
- DvcIdType
- DvcAction
옵션 - EventMessage
- EventSubType
- EventOriginalUid
- EventOriginalType
- EventOriginalSubType
- EventOriginalResultDetails
- EventOriginalSeverity
- EventProductVersion
- EventReportUrl
- EventOwner
- DvcZone
- DvcMacAddr
- DvcOs
- DvcOsVersion
- DvcOriginalAction
- DvcInterface
- AdditionalFields
- DvcDescription
- DvcScopeId
- DvcScope

원본 시스템 필드

필드 클래스 유형 설명
Src 별칭 String 원본 디바이스의 고유 식별자입니다.

이 필드는 SrcDvcId, SrcHostname 또는 SrcIpAddr 필드의 별칭을 지정할 수 있습니다.

예: 192.168.12.1
SrcIpAddr 권장 IP 주소 DNS 요청을 보낸 클라이언트의 IP 주소입니다. 재귀 DNS 요청의 경우 이 값은 일반적으로 보고 디바이스이며 대부분의 경우 로 127.0.0.1설정됩니다.

예: 192.168.12.1
SrcPortNumber 옵션 정수 DNS 쿼리의 원본 포트입니다.

예: 54312
IpAddr 별칭 SrcIpAddr에 대한 별칭
SrcGeoCountry 옵션 국가 원본 IP 주소와 연결된 국가/지역입니다.

예: USA
SrcGeoRegion 옵션 지역 원본 IP 주소와 연결된 지역입니다.

예: Vermont
SrcGeoCity 선택 구/군/시 원본 IP 주소와 연결된 도시입니다.

예: Burlington
SrcGeoLatitude 옵션 위도 원본 IP 주소와 연결된 지리적 좌표의 위도입니다.

예: 44.475833
SrcGeoLongitude 옵션 경도 원본 IP 주소와 연결된 지리적 좌표의 경도입니다.

예: 73.211944
SrcRiskLevel 옵션 정수 원본과 연결된 위험 수준입니다. 값은 의 범위 0100로 조정되어야 하며 0 , 무해하고 100 위험이 높은 경우 로 조정해야 합니다.

예: 90
SrcOriginalRiskLevel 옵션 String 보고 디바이스에서 보고한 원본과 관련된 위험 수준입니다.

예: Suspicious
SrcHostname 권장 호스트 이름(문자열) 도메인 정보를 제외한 원본 디바이스 호스트 이름입니다.

예: DESKTOP-1282V4D
호스트 이름 별칭 SrcHostname에 대한 별칭
SrcDomain 권장 도메인(문자열) 원본 디바이스의 도메인입니다.

예: Contoso
SrcDomainType 조건부 열거 알려진 경우 SrcDomain의 형식입니다. 가능한 값은 다음과 같습니다.
- Windows (예: contoso)
- FQDN (예: microsoft.com)

SrcDomain을 사용하는 경우 필요합니다.
SrcFQDN 옵션 FQDN(문자열) 사용 가능한 경우 도메인 정보를 포함하는 원본 디바이스 호스트 이름입니다.

참고: 이 필드는 기존 FQDN 형식과 Windows 도메인\호스트 이름 형식을 모두 지원합니다. SrcDomainType 필드는 사용된 형식을 반영합니다.

예: Contoso\DESKTOP-1282V4D
SrcDvcId 옵션 String 레코드에 보고된 원본 디바이스의 ID입니다.

예: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3
SrcDvcScopeId 옵션 String 디바이스가 속한 클라우드 플랫폼 scope ID입니다. SrcDvcScopeId는 Azure 구독 ID 및 AWS의 계정 ID에 매핑됩니다.
SrcDvcScope 옵션 String 디바이스가 속한 클라우드 플랫폼 scope. SrcDvcScope는 Azure 구독 ID 및 AWS의 계정 ID에 매핑됩니다.
SrcDvcIdType 조건부 열거 알려진 경우 SrcDvcId의 형식입니다. 가능한 값은 다음과 같습니다.
- AzureResourceId
- MDEid

여러 ID를 사용할 수 있는 경우 목록의 첫 번째 ID를 사용하고 다른 ID를 각각 SrcDvcAzureResourceIdSrcDvcMDEid에 저장합니다.

참고: SrcDvcId 를 사용하는 경우 이 필드가 필요합니다.
SrcDeviceType 옵션 열거 원본 디바이스의 형식입니다. 가능한 값은 다음과 같습니다.
- Computer
- Mobile Device
- IOT Device
- Other
SrcDescription 옵션 String 디바이스와 연결된 설명 텍스트입니다. 예: Primary Domain Controller

원본 사용자 필드

필드 클래스 유형 설명
SrcUserId 옵션 String 컴퓨터에서 읽을 수 있는 영숫자이며 원본 사용자의 고유한 표현입니다. 자세한 내용 및 추가 ID에 대한 대체 필드에 대한 자세한 내용은 사용자 엔터티를 참조하세요.

예: S-1-12-1-4141952679-1282074057-627758481-2916039507
SrcUserScope 옵션 String SrcUserIdSrcUsername이 정의된 Microsoft Entra 테넌트와 같은 scope. 또는 허용되는 값의 자세한 내용과 목록은 스키마 개요 문서의UserScope를 참조하세요.
SrcUserScopeId 옵션 String SrcUserIdSrcUsername이 정의된 Microsoft Entra 디렉터리 ID와 같은 scope ID입니다. 자세한 내용 및 허용되는 값 목록은 스키마 개요 문서의UserScopeId를 참조하세요.
SrcUserIdType 조건부 UserIdType SrcUserId 필드에 저장된 ID의 형식입니다. 허용되는 값에 대한 자세한 내용과 목록은 스키마 개요 문서의UserIdType을 참조하세요.
SrcUsername 옵션 사용자 이름(문자열) 사용 가능한 경우 도메인 정보를 포함하는 원본 사용자 이름입니다. 자세한 내용은 사용자 엔터티를 참조하세요.

예: AlbertE
SrcUsernameType 조건부 UsernameType SrcUsername 필드에 저장된 사용자 이름의 형식을 지정합니다. 자세한 내용과 허용되는 값 목록은 스키마 개요 문서의UsernameType을 참조하세요.

예: Windows
사용자 별칭 별칭에서 SrcUsername으로
SrcUserType 옵션 UserType 원본 사용자의 형식입니다. 자세한 내용 및 허용되는 값 목록은 스키마 개요 문서의UserType을 참조하세요.

예: Guest
SrcUserSessionId 옵션 String 행위자의 로그인 세션의 고유 ID입니다.

예: 102pTUgC3p8RIqHvzxLCHnFlg
SrcOriginalUserType 옵션 String 원본에서 제공하는 경우 원래 원본 사용자 유형입니다.

원본 프로세스 필드

필드 클래스 유형 설명
SrcProcessName 옵션 String DNS 요청을 시작한 프로세스의 파일 이름입니다. 이 이름은 일반적으로 프로세스 이름으로 간주됩니다.

예: C:\Windows\explorer.exe
프로세스 별칭 SrcProcessName에 대한 별칭

예: C:\Windows\System32\rundll32.exe
SrcProcessId 옵션 String DNS 요청을 시작한 프로세스의 PID(프로세스 ID)입니다.

예: 48610176

참고: 형식은 다양한 시스템을 지원하기 위해 문자열로 정의되지만 Windows 및 Linux 이 값은 숫자여야 합니다.

Windows 또는 Linux 컴퓨터를 사용하고 다른 형식을 사용하는 경우 값을 변환해야 합니다. 예를 들어 16진수 값을 사용한 경우 10진수 값으로 변환합니다.
SrcProcessGuid 옵션 GUID(문자열) DNS 요청을 시작한 프로세스의 생성된 GUID(고유 식별자)입니다.

예: EF3BD0BD-2B74-60C5-AF5C-010000001E00

대상 시스템 필드

필드 클래스 유형 설명
Dst 별칭 String DNS 요청을 받은 서버의 고유 식별자입니다.

이 필드는 DstDvcId, DstHostname 또는 DstIpAddr 필드의 별칭을 지정할 수 있습니다.

예: 192.168.12.1
DstIpAddr 옵션 IP 주소 DNS 요청을 받은 서버의 IP 주소입니다. 일반 DNS 요청의 경우 이 값은 일반적으로 보고 디바이스이며 대부분의 경우 로 설정 127.0.0.1됩니다.

예: 127.0.0.1
DstGeoCountry 옵션 국가 대상 IP 주소와 연결된 국가/지역입니다. 자세한 내용은 논리 형식을 참조하세요.

예: USA
DstGeoRegion 옵션 지역 대상 IP 주소와 연결된 지역 또는 상태입니다. 자세한 내용은 논리 형식을 참조하세요.

예: Vermont
DstGeoCity 선택 구/군/시 대상 IP 주소와 연결된 도시입니다. 자세한 내용은 논리 형식을 참조하세요.

예: Burlington
DstGeoLatitude 옵션 위도 대상 IP 주소와 연결된 지리적 좌표의 위도입니다. 자세한 내용은 논리 형식을 참조하세요.

예: 44.475833
DstGeoLongitude 옵션 경도 대상 IP 주소와 연결된 지리적 좌표의 경도입니다. 자세한 내용은 논리 형식을 참조하세요.

예: 73.211944
DstRiskLevel 옵션 정수 대상과 연결된 위험 수준입니다. 값은 0에서 100까지의 범위로 조정되어야 하며, 0은 양성이고 100은 고위험입니다.

예: 90
DstOriginalRiskLevel 옵션 String 보고 디바이스에서 보고한 대상과 관련된 위험 수준입니다.

예: Malicious
DstPortNumber 옵션 정수 대상 포트 번호입니다.

예: 53
DstHostname 옵션 호스트 이름(문자열) 도메인 정보를 제외한 대상 디바이스 호스트 이름입니다. 사용할 수 있는 디바이스 이름이 없는 경우 이 필드에 관련 IP 주소를 저장합니다.

예: DESKTOP-1282V4D

참고: DstIpAddr 가 지정된 경우 이 값은 필수입니다.
DstDomain 옵션 도메인(문자열) 대상 디바이스의 도메인입니다.

예: Contoso
DstDomainType 조건부 열거 알려진 경우 DstDomain의 형식입니다. 가능한 값은 다음과 같습니다.
- Windows (contoso\mypc)
- FQDN (learn.microsoft.com)

DstDomain을 사용하는 경우 필요합니다.
DstFQDN 옵션 FQDN(문자열) 사용 가능한 경우 도메인 정보를 포함하는 대상 디바이스 호스트 이름입니다.

예: Contoso\DESKTOP-1282V4D

참고: 이 필드는 기존 FQDN 형식과 Windows 도메인\호스트 이름 형식을 모두 지원합니다. DstDomainType은 사용된 형식을 반영합니다.
DstDvcId 옵션 String 레코드에 보고된 대상 디바이스의 ID입니다.

예: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3
DstDvcScopeId 옵션 String 디바이스가 속한 클라우드 플랫폼 scope ID입니다. DstDvcScopeId는 Azure 구독 ID 및 AWS의 계정 ID에 매핑됩니다.
DstDvcScope 옵션 String 디바이스가 속한 클라우드 플랫폼 scope. DstDvcScope는 Azure 구독 ID 및 AWS의 계정 ID에 매핑됩니다.
DstDvcIdType 조건부 열거 알려진 경우 DstDvcId의 형식입니다. 가능한 값은 다음과 같습니다.
- AzureResourceId
- MDEidIf

여러 ID를 사용할 수 있는 경우 위의 목록에서 첫 번째 ID를 사용하고 다른 ID를 각각 DstDvcAzureResourceId 또는 DstDvcMDEid 필드에 저장합니다.

DstDeviceId를 사용하는 경우 필요합니다.
DstDeviceType 옵션 열거 대상 디바이스의 유형입니다. 가능한 값은 다음과 같습니다.
- Computer
- Mobile Device
- IOT Device
- Other
DstDescription 옵션 String 디바이스와 연결된 설명 텍스트입니다. 예: Primary Domain Controller

DNS 특정 필드

필드 클래스 유형 설명
DnsQuery 필수 String 요청이 resolve 도메인입니다.

참고:
- 일부 원본은 다른 형식으로 유효한 FQDN 쿼리를 보냅니다. 예를 들어 DNS 프로토콜 자체에서 쿼리는 끝에 점(.)을 포함하며 이를 제거해야 합니다.
- DNS 프로토콜은 이 필드의 값 형식을 FQDN으로 제한하지만 대부분의 DNS 서버는 모든 값을 허용하므로 이 필드는 FQDN 값으로만 제한되지 않습니다. 특히 DNS 터널링 공격은 쿼리 필드에서 잘못된 FQDN 값을 사용할 수 있습니다.
- DNS 프로토콜은 단일 요청에서 여러 쿼리를 허용하지만 이 시나리오가 전혀 없는 경우는 드뭅니다. 요청에 여러 쿼리가 있는 경우 이 필드에 첫 번째 쿼리를 저장한 다음 필요에 따라 AdditionalFields 필드에 나머지를 유지합니다.

예: www.malicious.com
도메인 별칭 DnsQuery에 대한 별칭입니다.
DnsQueryType 옵션 정수 DNS 리소스 레코드 형식 코드입니다.

예: 28
DnsQueryTypeName 권장 열거 DNS 리소스 레코드 형식 이름입니다.

참고:
- IANA는 값의 대/소문자를 정의하지 않으므로 분석에서 필요에 따라 사례를 정규화해야 합니다.
- 응답 코드 255에 대해 값 ANY 이 지원됩니다.
- 값 TYPExxxx 은 매핑되지 않은 응답 코드에 대해 지원됩니다. 여기서 xxxx 는 BIND DNS 서버에서 보고한 응답 코드의 숫자 값입니다.
-원본이 쿼리 형식 이름이 아닌 숫자 쿼리 형식 코드만 제공하는 경우 파서에 이 값으로 보강할 조회 테이블이 포함되어야 합니다.

예: AAAA
DnsResponseName 옵션 String 레코드에 포함된 응답의 내용입니다.

DNS 응답 데이터는 보고 디바이스 간에 일관되지 않으며 구문 분석이 복잡하며 원본에 구애받지 않는 분석에 대한 값이 적습니다. 따라서 정보 모델에는 구문 분석 및 정규화가 필요하지 않으며 Microsoft Sentinel 보조 함수를 사용하여 응답 정보를 제공합니다. 자세한 내용은 DNS 응답 처리를 참조하세요.
DnsResponseCodeName 별칭 EventResultDetails에 대한 별칭
DnsResponseCode 옵션 정수 DNS 숫자 응답 코드입니다.

예: 3
TransactionIdHex 권장 16진수(문자열) DNS 클라이언트에서 할당한 DNS 쿼리 고유 ID(16진수 형식)입니다. 이 값은 DNS 프로토콜의 일부이며 일반적으로 보고 디바이스에서 할당하는 네트워크 계층 세션 ID인 DnsSessionId와 다릅니다.
NetworkProtocol 옵션 열거 네트워크 확인 이벤트에서 사용하는 전송 프로토콜입니다. 값은 UDP 또는 TCP일 수 있으며 가장 일반적으로 DNS용 UDP 로 설정됩니다.

예: UDP
NetworkProtocolVersion 옵션 열거 NetworkProtocol의 버전입니다. IP 버전을 구분하는 데 사용하는 경우 및 값을 IPv4IPv6사용합니다.
DnsQueryClass 옵션 정수 DNS 클래스 ID입니다.

실제로 는 IN 클래스(ID 1)만 사용되므로 이 필드는 가치가 떨어집니다.
DnsQueryClassName 권장 DnsQueryClassName(문자열) DNS 클래스 이름입니다.

실제로 는 IN 클래스(ID 1)만 사용되므로 이 필드는 가치가 떨어집니다.

예: IN
DnsFlags 옵션 String 보고 디바이스에서 제공하는 플래그 필드입니다. 플래그 정보가 여러 필드에 제공된 경우 구분 기호로 쉼표와 연결합니다.

DNS 플래그는 구문 분석이 복잡하며 분석에서 덜 자주 사용되므로 구문 분석 및 정규화가 필요하지 않습니다. Microsoft Sentinel 보조 함수를 사용하여 플래그 정보를 제공할 수 있습니다. 자세한 내용은 DNS 응답 처리를 참조하세요.

예: ["DR"]
DnsNetworkDuration 옵션 정수 DNS 요청이 완료되는 데 걸리는 시간(밀리초)입니다.

예: 1500
기간 별칭 DnsNetworkDuration에 대한 별칭
DnsFlagsAuthenticated 옵션 부울 DNSSEC와 관련된 DNS AD 플래그는 응답에서 응답의 응답 및 기관 섹션에 포함된 모든 데이터가 해당 서버의 정책에 따라 서버에서 확인되었음을 나타냅니다. 자세한 내용은 RFC 3655 섹션 6.1 을 참조하세요.
DnsFlagsAuthoritative 옵션 부울 DNS AA 플래그는 서버의 응답이 신뢰할 수 있는지 여부를 나타냅니다.
DnsFlagsCheckingDisabled 옵션 부울 DNSSEC와 관련된 DNS CD 플래그는 쿼리에서 확인되지 않은 데이터가 쿼리를 보내는 시스템에서 허용됨을 나타냅니다. 자세한 내용은 RFC 3655 섹션 6.1 을 참조하세요.
DnsFlagsRecursionAvailable 옵션 부울 DNS RA 플래그는 응답에서 서버가 재귀 쿼리를 지원한다는 것을 나타냅니다.
DnsFlagsRecursionDesired 옵션 부울 DNS RD 플래그는 요청에서 클라이언트가 서버에서 재귀 쿼리를 사용하려고 했음을 나타냅니다.
DnsFlagsTruncated 옵션 부울 DNS TC 플래그는 응답이 최대 응답 크기를 초과할 때 잘렸했음을 나타냅니다.
DnsFlagsZ 옵션 부울 DNS Z 플래그는 이전 DNS 시스템에서 보고할 수 있는 사용되지 않는 DNS 플래그입니다.
DnsSessionId 옵션 문자열 보고 디바이스에서 보고한 DNS 세션 식별자입니다. 이 값은 DNS 클라이언트에서 할당한 DNS 쿼리 고유 ID인 TransactionIdHex와 다릅니다.

예: EB4BFA28-2EAD-4EF7-BC8A-51DF4FDF5B55
SessionId 별칭 DnsSessionId에 대한 별칭
DnsResponseIpCountry 옵션 국가 DNS 응답의 IP 주소 중 하나와 연결된 국가/지역입니다. 자세한 내용은 논리 형식을 참조하세요.

예: USA
DnsResponseIpRegion 옵션 지역 DNS 응답의 IP 주소 중 하나와 연결된 지역 또는 상태입니다. 자세한 내용은 논리 형식을 참조하세요.

예: Vermont
DnsResponseIpCity 선택 구/군/시 DNS 응답의 IP 주소 중 하나와 연결된 도시입니다. 자세한 내용은 논리 형식을 참조하세요.

예: Burlington
DnsResponseIpLatitude 옵션 위도 DNS 응답의 IP 주소 중 하나와 연결된 지리적 좌표의 위도입니다. 자세한 내용은 논리 형식을 참조하세요.

예: 44.475833
DnsResponseIpLongitude 옵션 경도 DNS 응답의 IP 주소 중 하나와 연결된 지리적 좌표의 경도입니다. 자세한 내용은 논리 형식을 참조하세요.

예: 73.211944

검사 필드

다음 필드는 DNS 보안 디바이스가 수행한 검사를 나타내는 데 사용됩니다. 위협 관련 필드는 원본 주소, 대상 주소, 응답의 IP 주소 중 하나 또는 DNS 쿼리 도메인과 연결된 단일 위협을 나타냅니다. 둘 이상의 위협이 위협으로 식별된 경우 다른 IP 주소에 대한 정보를 필드에 AdditionalFields저장할 수 있습니다.

필드 클래스 유형 설명
UrlCategory 옵션 String DNS 이벤트 원본은 요청된 도메인의 범주를 조회할 수도 있습니다. 필드는 Microsoft Sentinel 네트워크 스키마에 맞게 UrlCategory라고 합니다.

DomainCategory 는 DNS에 적합한 별칭으로 추가됩니다.

예: Educational \\ Phishing
DomainCategory 별칭 UrlCategory에 대한 별칭입니다.
RuleName 옵션 String 위협을 식별한 규칙의 이름 또는 ID입니다.

예: AnyAnyDrop
RuleNumber 옵션 정수 위협을 식별한 규칙의 수입니다.

예: 23
규칙 별칭 String RuleName 값 또는 RuleNumber 값입니다. RuleNumber 값을 사용하는 경우 형식을 문자열로 변환해야 합니다.
RuleNumber 옵션 int 경고와 연결된 규칙의 수입니다.

예. 123456
RuleName 옵션 문자열 경고와 연결된 규칙의 이름 또는 ID입니다.

예. Server PSEXEC Execution via Remote Access
ThreatId 옵션 String 네트워크 세션에서 식별된 위협 또는 맬웨어의 ID입니다.

예: Tr.124
ThreatCategory 옵션 String DNS 이벤트 원본도 DNS 보안을 제공하는 경우 DNS 이벤트를 평가할 수도 있습니다. 예를 들어 위협 인텔리전스 데이터베이스에서 IP 주소 또는 도메인을 검색하고 위협 범주를 사용하여 도메인 또는 IP 주소를 할당할 수 있습니다.
ThreatIpAddr 옵션 IP 주소 위협이 식별된 IP 주소입니다. ThreatField 필드에는 ThreatIpAddr가 나타내는 필드의 이름이 포함됩니다. 도메인 필드에서 위협이 식별되면 이 필드는 비어 있어야 합니다.
ThreatField 조건부 열거 위협이 식별된 필드입니다. 값은 , , DstIpAddrDomain또는 DnsResponseName입니다SrcIpAddr.
ThreatName 옵션 String 보고 디바이스에서 보고한 대로 식별된 위협의 이름입니다.
ThreatConfidence 옵션 ConfidenceLevel(정수) 식별된 위협의 신뢰 수준이며 0에서 100 사이의 값으로 정규화됩니다.
ThreatOriginalConfidence 옵션 String 보고 디바이스에서 보고한 대로 식별된 위협의 원래 신뢰 수준입니다.
ThreatRiskLevel 옵션 RiskLevel(정수) 식별된 위협과 관련된 위험 수준이며 0에서 100 사이의 값으로 정규화됩니다.
ThreatOriginalRiskLevel 옵션 String 보고 디바이스에서 보고한 대로 식별된 위협과 관련된 원래 위험 수준입니다.
ThreatIsActive 옵션 부울 True이면 식별된 위협이 활성 위협으로 간주됩니다.
ThreatFirstReportedTime 옵션 datetime IP 주소 또는 도메인이 처음으로 위협으로 식별된 경우
ThreatLastReportedTime 옵션 datetime IP 주소 또는 도메인이 마지막으로 위협으로 식별된 시간입니다.

사용되지 않는 별칭 및 필드

다음 필드는 이전 버전과의 호환성을 위해 유지 관리되는 별칭입니다. 2021년 12월 31일에 스키마에서 제거되었습니다.

  • Query (별칭: DnsQuery)
  • QueryType (별칭: DnsQueryType)
  • QueryTypeName (별칭: DnsQueryTypeName)
  • ResponseName (별칭: DnsResponseName)
  • ResponseCodeName (별칭: DnsResponseCodeName)
  • ResponseCode (별칭: DnsResponseCode)
  • QueryClass (별칭: DnsQueryClass)
  • QueryClassName (별칭: DnsQueryClassName)
  • Flags (별칭: DnsFlags)
  • SrcUserDomain

스키마 업데이트

스키마 버전 0.1.2의 변경 내용은 다음과 같습니다.

  • 필드를 EventSchema추가했습니다.
  • 결합된 Flags 필드를 보강하는 전용 플래그 필드DnsFlagsAuthoritative( , , DnsFlagsRecursionAvailableDnsFlagsCheckingDisabled, DnsFlagsRecursionDesired, DnsFlagsTruncatedDnsFlagsZ)가 추가되었습니다.

스키마 버전 0.1.3의 변경 내용은 다음과 같습니다.

  • 이제 스키마는 , Dst*Process*User* 필드를 명시적으로 문서화Src*합니다.
  • 최신 공통 필드 정의와 일치하도록 더 많은 Dvc* 필드가 추가되었습니다.
  • 및 를 원본 및 Dst 대상 시스템의 선행 식별자에 별칭으로 추가 Src 했습니다.
  • 선택적 DnsNetworkDurationDuration가 추가되었습니다. 별칭이 추가되었습니다.
  • 선택적 지리적 위치 및 위험 수준 필드가 추가되었습니다.

스키마 버전 0.1.4의 변경 내용은 다음과 같습니다.

  • 선택적 필드 ThreatIpAddr, , ThreatField, ThreatName, ThreatConfidence, ThreatOriginalConfidence, ThreatOriginalRiskLevel, ThreatIsActive, ThreatFirstReportedTimeThreatLastReportedTime를 추가했습니다.

스키마 버전 0.1.5의 변경 내용은 다음과 같습니다.

  • , , SrcUserSessionId, SrcDvcScopeId, SrcDvcScope, DstDvcScopeId, DstDvcScopeDvcScope필드SrcUserScopeDvcScopeId추가되었습니다.

스키마 버전 0.1.6의 변경 내용은 다음과 같습니다.

  • , , DnsResponseIpRegion, DnsResponseIpLatitudeDnsResponseIpCityDnsResponseIpLongitude필드DnsResponseIpCountry가 추가되었습니다.

스키마 버전 0.1.7의 변경 내용은 다음과 같습니다.

  • , , SrcOriginalRiskLevel, DstDescription, DstOriginalRiskLevel, SrcUserScopeId, NetworkProtocolVersion, Rule, RuleNameThreatId필드SrcDescriptionRuleNumber추가되었습니다.

원본별 불일치

정규화의 목표는 모든 원본이 일관된 원격 분석을 제공하도록 하는 것입니다. 필수 스키마 필드와 같은 필수 원격 분석을 제공하지 않는 원본은 정규화할 수 없습니다. 그러나 일부 불일치가 있더라도 일반적으로 필요한 모든 원격 분석을 제공하는 원본을 정규화할 수 있습니다. 불일치는 쿼리 결과의 완전성에 영향을 줄 수 있습니다.

다음 표에서는 알려진 불일치를 나열합니다.

원본 불일치
DNS 커넥터 및 Log Analytics 에이전트를 사용하여 수집된 Microsoft DNS 서버 커넥터는 원래 이벤트 ID 264에 대한 필수 DnsQuery 필드를 제공하지 않습니다(동적 업데이트에 대한 응답). 데이터는 원본에서 사용할 수 있지만 커넥터에서 전달하지는 않습니다.
Corelight Zeek Corelight Zeek은 필수 DnsQuery 필드를 제공하지 않을 수 있습니다. DNS 응답 코드 이름이 NXDOMAIN인 특정 경우 이러한 동작을 관찰했습니다.

DNS 응답 처리

대부분의 경우 기록된 DNS 이벤트에는 크고 상세할 수 있는 응답 정보가 포함되지 않습니다. 레코드에 더 많은 응답 정보가 포함된 경우 레코드에 표시되는 대로 ResponseName 필드에 저장합니다.

또한 라는 추가 KQL 함수를 제공할 수도 있습니다. 이 함수 _imDNS<vendor>Response_는 분석되지 않은 응답을 입력으로 사용하고 다음 구조로 동적 값을 반환합니다.

[
    {
        "part": "answer"
        "query": "yahoo.com."
        "TTL": 1782
        "Class": "IN"
        "Type": "A"
        "Response": "74.6.231.21"
    }
    {
        "part": "authority"
        "query": "yahoo.com."
        "TTL": 113066
        "Class": "IN"
        "Type": "NS"
        "Response": "ns5.yahoo.com"
    }
    ...
]

동적 값의 각 사전에 있는 필드는 각 DNS 응답의 필드에 해당합니다. 항목에는 part , authority또는 additional 가 포함되어answer야 하며, 사전이 속한 응답에 파트를 반영해야 합니다.

최적의 성능을 보장하려면 필요한 경우에만 함수를 imDNS<vendor>Response 호출하고 초기 필터링 후에만 호출하여 성능을 향상합니다.

DNS 플래그 처리

플래그 데이터에는 구문 분석 및 정규화가 필요하지 않습니다. 대신 보고 디바이스에서 제공하는 플래그 데이터를 Flags 필드에 저장합니다. 개별 플래그의 값을 결정하는 것이 직선인 경우 전용 플래그 필드를 사용할 수도 있습니다.

매개 변수가 없는 응답 또는 전용 플래그 필드를 입력으로 사용하고 다음 순서로 각 플래그를 나타내는 부울 값을 사용하여 동적 목록을 반환하는 라는 _imDNS<vendor>Flags_추가 KQL 함수를 제공할 수도 있습니다.

  • 인증됨(AD)
  • 신뢰할 수 있는(AA)
  • 사용 안 함 확인(CD)
  • RA(재귀 사용 가능)
  • RECURSION Desired(RD)
  • 잘림(TC)
  • Z

다음 단계

자세한 내용은 다음을 참조하세요.