다음을 통해 공유


ASIM(고급 보안 정보 모델) DNS 정규화 스키마 참조(공개 미리 보기)

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

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

Important

DNS 정규화 스키마는 현재 미리 보기로 제공됩니다. 이 기능은 서비스 수준 계약 없이 제공되며 프로덕션 워크로드에는 권장되지 않습니다.

Azure Preview 추가 약관에는 베타, 미리 보기 또는 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 추가 법률 용어가 포함되어 있습니다.

스키마 개요

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

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

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

  • DnsQuery: 쿼리가 실행된 도메인 이름을 보고합니다.

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

  • EventResultDetails: 요청이 성공했는지 여부와 성공하지 못한 이유를 보고합니다.

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

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

클라이언트 디바이스에서 수집된 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 날짜/시간 이 시간 또는 그 이후에 실행된 DNS 쿼리만 필터링합니다.
endtime 날짜/시간 이 시간 또는 그 이전에 실행이 완료된 DNS 쿼리만 필터링합니다.
srcipaddr string 이 원본 IP 주소의 DNS 쿼리만 필터링합니다.
domain_has_any 동적/문자열 domain(또는 query)에 이벤트 도메인의 일부를 포함하여 나열된 도메인 이름이 있는 DNS 쿼리만 필터링합니다. 목록의 길이는 10,000개 항목으로 제한됩니다.
responsecodename string 응답 코드 이름이 제공된 값과 일치하는 DNS 쿼리만 필터링합니다.
예: NXDOMAIN
response_has_ipv4 string 응답 필드에 제공된 IP 주소 또는 IP 주소 접두사가 포함된 DNS 쿼리만 필터링합니다. 단일 IP 주소 또는 접두사를 필터링하려는 경우 이 매개 변수를 사용합니다.

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

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

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

예를 들어 도메인 이름을 확인하지 못한 마지막 날의 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 엔터티 스키마에 맞춰 정렬됩니다.

자세한 내용은 ANA(Internet Assigned Numbers Authority) DNS 매개 변수 참조를 확인합니다.

일반적인 ASIM 필드

Important

모든 스키마에 공통적인 필드는 ASIM 공통 필드 문서에 자세히 설명되어 있습니다.

특정 지침이 있는 공통 필드

다음 목록에는 DNS 이벤트에 대한 특정 지침이 있는 필드가 나와 있습니다.

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

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

예: Query
EventSubType 선택 사항 Enumerated request 또는 response 중 하나입니다.

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

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

예: NXDOMAIN
EventSchemaVersion 필수 문자열 여기에 설명된 스키마 버전은 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

원본 시스템 필드

필드 클래스 Type 설명
Src Alias 문자열 원본 디바이스의 고유 식별자입니다.

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

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

예: 192.168.12.1
SrcPortNumber 선택 사항 정수 DNS 쿼리의 원본 포트입니다.

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

예: USA
SrcGeoRegion 선택 사항 지역 원본 IP 주소와 연결된 지역입니다.

예: Vermont
SrcGeoCity 선택 사항 City 원본 IP 주소와 연결된 도시입니다.

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

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

예: 73.211944
SrcRiskLevel 선택 사항 정수 원본과 관련된 위험 수준입니다. 값은 0 ~ 100 범위로 조정해야 하며, 0은 무해함이고 100은 고위험입니다.

예: 90
SrcOriginalRiskLevel 선택 사항 정수 보고 디바이스에서 보고한 원본과 연결된 위험 수준입니다.

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

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

예: Contoso
SrcDomainType 조건부 Enumerated 알려진 경우 SrcDomain의 형식입니다. 가능한 값에는 다음이 있습니다.
- Windows (예: contoso)
- FQDN (예: microsoft.com)

SrcDomain을 사용하는 경우 필수입니다.
SrcFQDN 선택 사항 문자열 사용 가능한 경우 도메인 정보를 포함하는 원본 디바이스 호스트 이름입니다.

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

예: Contoso\DESKTOP-1282V4D
SrcDvcId 선택 사항 문자열 레코드에 보고된 원본 디바이스의 ID입니다.

예: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3
SrcDvcScopeId 선택 사항 문자열 디바이스가 속한 클라우드 플랫폼 범위 ID입니다. SrcDvcScopeId 는 Azure의 구독 ID 및 AWS의 계정 ID에 매핑됩니다.
SrcDvcScope 선택 사항 문자열 디바이스가 속한 클라우드 플랫폼 범위입니다. SrcDvcScope는 Azure의 구독 ID 및 AWS의 계정 ID에 매핑됩니다.
SrcDvcIdType 조건부 Enumerated 알려진 경우 SrcDvcId의 형식입니다. 가능한 값에는 다음이 있습니다.
- AzureResourceId
- MDEid

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

참고: 이 필드는 SrcDvcId가 사용되는 경우 필수입니다.
SrcDeviceType 선택 사항 Enumerated 원본 디바이스의 형식입니다. 가능한 값에는 다음이 있습니다.
- Computer
- Mobile Device
- IOT Device
- Other
SrcDescription 선택 사항 문자열 디바이스와 관련된 설명 텍스트입니다. 예: Primary Domain Controller

원본 사용자 필드

필드 클래스 Type 설명
SrcUserId 선택 사항 문자열 원본 사용자에 대한 컴퓨터 판독 가능한 영숫자 고유 표현입니다. 자세한 내용 및 추가 ID에 대한 대체 필드는 사용자 항목을 참조하세요.

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

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

예: Windows
사용자 Alias SrcUsername에 대한 별칭
SrcUserType 선택 사항 UserType 원본 사용자의 형식입니다. 자세한 내용과 허용되는 값 목록은 스키마 개요 문서에서 UserType을 참조하세요.

예: Guest
SrcUserSessionId 선택 사항 문자열 행위자 로그인 세션의 고유 ID입니다.

예: 102pTUgC3p8RIqHvzxLCHnFlg
SrcOriginalUserType 선택 사항 문자열 원본에서 제공한 경우 원래 원본 사용자 유형입니다.

원본 프로세스 필드

필드 클래스 Type 설명
SrcProcessName 선택 사항 문자열 DNS 요청을 시작한 프로세스의 파일 이름입니다. 이 이름은 일반적으로 프로세스 이름으로 간주됩니다.

예: C:\Windows\explorer.exe
처리 Alias SrcProcessName에 대한 별칭

예: C:\Windows\System32\rundll32.exe
SrcProcessId 선택 사항 문자열 DNS 요청을 시작한 프로세스의 PID(프로세스 ID)입니다.

예: 48610176

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

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

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

대상 시스템 필드

필드 클래스 Type 설명
Dst Alias 문자열 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 선택 사항 City 대상 IP 주소와 연결된 도시입니다. 자세한 내용은 논리적 형식을 참조하세요.

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

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

예: 73.211944
DstRiskLevel 선택 사항 정수 대상과 관련된 위험 수준입니다. 값은 0 ~ 100 범위로 조정해야 하며, 0은 무해함이고 100은 높은 위험입니다.

예: 90
DstOriginalRiskLevel 선택 사항 정수 보고 디바이스에서 보고한 대상과 연결된 위험 수준입니다.

예: Malicious
DstPortNumber 선택 사항 정수 대상 포트 번호입니다.

예: 53
DstHostname 선택 사항 문자열 도메인 정보를 제외한 대상 디바이스 호스트 이름입니다. 사용 가능한 디바이스 이름이 없으면 이 필드에 관련 IP 주소를 저장합니다.

예: DESKTOP-1282V4D

참고: 이 값은 DstIpAddr이 지정된 경우 필수입니다.
DstDomain 선택 사항 문자열 대상 디바이스의 도메인입니다.

예: Contoso
DstDomainType 조건부 Enumerated 알려진 경우 DstDomain의 형식입니다. 가능한 값에는 다음이 있습니다.
- Windows (contoso\mypc)
- FQDN (learn.microsoft.com)

DstDomain이 사용되는 경우 필수입니다.
DstFQDN 선택 사항 문자열 사용 가능한 경우 도메인 정보를 포함한 대상 디바이스 호스트 이름입니다.

예: Contoso\DESKTOP-1282V4D

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

예: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3
DstDvcScopeId 선택 사항 문자열 디바이스가 속한 클라우드 플랫폼 범위 ID입니다. DstDvcScopeId 는 Azure의 구독 ID 및 AWS의 계정 ID에 매핑됩니다.
DstDvcScope 선택 사항 문자열 디바이스가 속한 클라우드 플랫폼 범위입니다. DstDvcScope는 Azure의 구독 ID 및 AWS의 계정 ID에 매핑됩니다.
DstDvcIdType 조건부 Enumerated 알려진 경우 DstDvcId의 형식입니다. 가능한 값에는 다음이 있습니다.
- AzureResourceId
- MDEidIf

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

DstDeviceId가 사용되는 경우 필수입니다.
DstDeviceType 선택 사항 Enumerated 대상 디바이스의 형식입니다. 가능한 값에는 다음이 있습니다.
- Computer
- Mobile Device
- IOT Device
- Other
DstDescription 선택 사항 문자열 디바이스와 관련된 설명 텍스트입니다. 예: Primary Domain Controller

DNS 특정 필드

필드 클래스 Type 설명
DnsQuery 필수 문자열 요청이 해결하려고 하는 도메인입니다.

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

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

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

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

예: AAAA
DnsResponseName 선택 사항 문자열 레코드에 포함된 응답의 내용입니다.

DNS 응답 데이터는 보고 디바이스 간에 일관되지 않고 구문 분석이 복잡하므로 원본 독립적 분석의 가치가 낮습니다. 따라서 정보 모델에는 구문 분석 및 정규화가 필요하지 않으며 Microsoft Sentinel은 보조 기능을 사용하여 응답 정보를 제공합니다. 자세한 내용은 DNS 응답 처리를 참조하세요.
DnsResponseCodeName Alias EventResultDetails에 대한 별칭
DnsResponseCode 선택 사항 정수 DNS 숫자 응답 코드입니다.

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

예: UDP
NetworkProtocolVersion 선택 사항 Enumerated NetworkProtocol의 버전입니다. 이를 사용하여 IP 버전을 구분할 때 IPv4IPv6 값을 사용합니다.
DnsQueryClass 선택 사항 정수 DNS 클래스 ID입니다.

실제로는 IN 클래스(ID 1)만 사용되므로 이 필드의 가치는 낮습니다.
DnsQueryClassName 선택 사항 문자열 DNS 클래스 이름입니다.

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

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

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

예: ["DR"]
DnsNetworkDuration 선택 사항 정수 DNS 요청을 완료하는 데 걸리는 시간(밀리초)입니다.

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

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

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

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

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

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

예: 73.211944

검사 필드

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

필드 클래스 Type 설명
UrlCategory 선택 사항 문자열 DNS 이벤트 원본은 요청된 도메인의 범주를 조회할 수도 있습니다. 이 필드는 Microsoft Sentinel 네트워크 스키마에 맞게 UrlCategory라고 합니다.

DomainCategory는 DNS에 맞는 별칭으로 추가됩니다.

예: Educational \\ Phishing
DomainCategory Alias UrlCategory에 대한 별칭입니다.
NetworkRuleName 선택 사항 문자열 위협을 식별한 규칙의 이름 또는 ID입니다.

예: AnyAnyDrop
NetworkRuleNumber 선택 사항 정수 위협을 식별한 규칙의 수입니다.

예: 23
규칙 Alias 문자열 NetworkRuleName 값 또는 NetworkRuleNumber 값입니다. NetworkRuleNumber 값을 사용하는 경우 형식을 문자열로 변환해야 합니다.
ThreatId 선택 사항 문자열 네트워크 세션에서 식별된 위협 또는 맬웨어의 ID입니다.

예: Tr.124
ThreatCategory 선택 사항 문자열 DNS 이벤트 원본도 DNS 보안을 제공하는 경우 DNS 이벤트를 평가할 수도 있습니다. 예를 들어 위협 인텔리전스 데이터베이스에서 IP 주소 또는 도메인을 검색하고 위협 범주와 함께 도메인 또는 IP 주소를 할당할 수 있습니다.
ThreatIpAddr 선택 사항 IP 주소 위협이 식별된 IP 주소입니다. ThreatField 필드에는 ThreatIpAddr에서 나타내는 필드의 이름이 포함됩니다. Domain 필드에서 위협이 식별되면 이 필드가 비어 있습니다.
ThreatField 조건부 Enumerated 위협이 식별된 필드입니다. 값은 SrcIpAddr, DstIpAddr, Domain 또는 DnsResponseName입니다.
ThreatName 선택 사항 문자열 보고 디바이스에서 보고하는 식별된 위협의 이름입니다.
ThreatConfidence 선택 사항 정수 식별된 위협의 신뢰 수준이며, 0~100의 값으로 정규화됩니다.
ThreatOriginalConfidence 선택 사항 문자열 보고 디바이스에서 보고하는 식별된 위협의 원래 신뢰 수준입니다.
ThreatRiskLevel 선택 사항 정수 식별된 위협과 관련된 위험 수준이며, 0~100의 값으로 정규화됩니다.
ThreatOriginalRiskLevel 선택 사항 문자열 보고 디바이스에서 보고하는 식별된 위협과 관련된 원래 위험 수준입니다.
ThreatIsActive 선택 사항 Boolean True이면 식별된 위협이 활성 위협으로 간주됩니다.
ThreatFirstReportedTime 선택 사항 날짜/시간 IP 주소 또는 도메인이 처음으로 위협으로 식별된 시간입니다.
ThreatLastReportedTime 선택 사항 날짜/시간 IP 주소 또는 도메인이 마지막으로 위협으로 식별된 시간입니다.

사용되지 않는 별칭 및 필드

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

  • Query(DnsQuery에 대한 별칭)
  • QueryType(DnsQueryType에 대한 별칭)
  • QueryTypeName(DnsQueryTypeName에 대한 별칭)
  • ResponseName(DnsReasponseName에 대한 별칭)
  • ResponseCodeName(DnsResponseCodeName에 대한 별칭)
  • ResponseCode(DnsResponseCode에 대한 별칭)
  • QueryClass(DnsQueryClass에 대한 별칭)
  • QueryClassName(DnsQueryClassName에 대한 별칭)
  • Flags(DnsFlags에 대한 별칭)
  • SrcUserDomain

스키마 업데이트

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

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

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

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

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

  • 선택적 필드ThreatIpAddr, ,ThreatField, ThreatNameThreatConfidence, ThreatOriginalConfidence, ThreatOriginalRiskLevelThreatIsActive, ThreatFirstReportedTimeThreatLastReportedTime.를 추가했습니다.

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

  • 필드SrcUserScope, ,SrcUserSessionId, SrcDvcScopeId, SrcDvcScopeDstDvcScopeId, DstDvcScopeDvcScopeIdDvcScope.를 추가했습니다.

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

  • DnsResponseIpCountry, DnsResponseIpRegion, DnsResponseIpCity, DnsResponseIpLatitudeDnsResponseIpLongitude 필드를 추가했습니다.

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

  • 필드SrcDescription, ,SrcOriginalRiskLevel, DstDescription, SrcUserScopeIdDstOriginalRiskLevel, NetworkProtocolVersion, RuleRuleName, RuleNumberThreatId.

원본 관련 불일치

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

다음 표에는 알려진 불일치가 나열되어 있습니다.

Source 불일치
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 사전이 속한 응답에 파트를 반영하거나 additional 포함해야 answerauthority합니다.

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

DNS 플래그 처리

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

구문 분석되지 않은 응답 또는 전용 플래그 필드를 입력으로 사용하고 다음 순서로 각 플래그를 나타내는 부울 값과 함께 동적 목록을 반환하는 _imDNS<vendor>Flags_이라는 추가 KQL 함수를 제공할 수도 있습니다.

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

다음 단계

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