AMA 커넥터를 사용하여 Windows DNS 서버에서 데이터 스트리밍 및 필터링
이 문서에서는 AMA(Azure Monitor 에이전트) 커넥터를 사용하여 Windows DNS(Domain Name System) 서버 로그에서 이벤트를 스트리밍하고 필터링하는 방법을 설명합니다. 그런 다음 데이터를 심층 분석하여 위협과 공격으로부터 DNS 서버를 보호할 수 있습니다.
AMA 및 해당 DNS 확장은 DNS 분석 로그에서 Microsoft Sentinel 작업 영역으로 데이터를 업로드하기 위해 Windows Server에 설치됩니다. 커넥터에 대해 알아보기.
개요
DNS 작업을 모니터링하는 것이 중요한 이유
DNS는 호스트 이름과 컴퓨터가 읽을 수 있는 IP 주소를 매핑하는 널리 사용되는 프로토콜입니다. DNS는 보안을 염두에 두고 설계되지 않았기 때문에 서비스는 악의적인 작업의 대상이 되므로 로깅은 보안 모니터링의 필수 부분입니다.
DNS 서버를 대상으로 하는 잘 알려진 위협은 다음과 같습니다.
- DNS 서버를 겨냥한 DDoS 공격
- DNS DDoS 증폭
- DNS 하이재킹
- DNS 터널링
- DNS 중독
- DNS 스푸핑
- NXDOMAIN 공격
- 가상 도메인 공격
AMA를 통한 Windows DNS 이벤트 커넥터
이 프로토콜의 전체 보안을 개선시키기 위해 몇 가지 메커니즘이 도입되었지만 DNS 서버는 여전히 고도로 대상화된 서비스입니다. 조직은 DNS 로그를 모니터링하여 네트워크 활동을 더 잘 이해하고 네트워크 내의 리소스를 대상으로 하는 의심스러운 동작이나 공격을 식별할 수 있습니다. AMA를 통한 Windows DNS 이벤트 커넥터는 이러한 형식의 표시 유형을 제공합니다.
이 커넥터를 사용하여 다음을 수행할 수 있습니다.
- 악의적인 도메인 이름을 확인하려는 클라이언트 식별
- DNS 서버의 요청 로드를 보고 모니터링합니다.
- 동적 DNS 등록 오류 보기
- 자주 쿼리하는 도메인 이름 및 talkative 클라이언트를 식별합니다.
- 부실 리소스 레코드 식별
- 한 곳에서 모든 DNS 관련 로그를 봅니다.
AMA를 통한 Windows DNS 이벤트 커넥터 컬렉션 작동 방식
AMA 커넥터는 설치된 DNS 확장을 사용하여 로그를 수집하고 구문 분석합니다.
참고 항목
AMA를 통한 Windows DNS 이벤트 커넥터는 현재 분석 이벤트 작업만 지원합니다.
이 커넥터는 추가 분석을 위해 이벤트를 Microsoft Sentinel 작업 영역으로 스트리밍합니다.
이제 고급 필터를 사용하여 특정 이벤트나 정보를 필터링할 수 있습니다. 고급 필터를 사용하면 모니터링하려는 중요한 데이터만 업로드하여 비용과 대역폭 사용량을 줄일 수 있습니다.
ASIM을 사용한 정규화
이 커넥터는 ASIM(고급 보안 정보 모델) 파서를 사용하여 완전히 정규화되었습니다. 이 커넥터는 분석 로그에서 시작된 이벤트를 ASimDnsActivityLogs
라는 정규화된 테이블로 스트리밍합니다. 이 테이블은 하나의 통합 언어를 사용하여 앞으로 나올 모든 DNS 커넥터에서 공유되는 변환기 역할을 합니다.
모든 DNS 데이터를 통합하고 구성된 모든 원본에서 분석이 실행되도록 원본에 중립적인 파서의 경우 ASIM DNS 통합 파서 _Im_Dns
를 사용합니다.
ASIM 통합 파서는 네이티브 ASimDnsActivityLogs
테이블을 보완합니다. 네이티브 테이블은 ASIM과 호환되지만, 쿼리 시에만 사용할 수 있는 기능(예: 별칭)을 추가하고 ASimDnsActivityLogs
를 다른 DNS 데이터 원본과 결합하려면 파서가 필요합니다.
ASIM DNS 스키마는 분석 로그의 Windows DNS 서버에 로그된 DNS 프로토콜 작업을 나타냅니다. 스키마는 필드와 값을 정의하는 공식 매개 변수 목록과 RFC에 의해 관리됩니다.
정규화된 필드 이름으로 번역된 Windows DNS 서버 필드 목록을 참조하세요.
AMA를 통한 Windows DNS 커넥터 설정
다음 두 가지 방법으로 커넥터를 설정할 수 있습니다.
- Microsoft Sentinel 포털. 이 설정을 사용하면 작업 영역당 단일 DCR(데이터 수집 규칙)을 만들고, 관리하고, 삭제할 수 있습니다. API를 통해 여러 DCR을 정의하더라도 포털에는 단일 DCR만 표시됩니다.
- API. 이 설정을 사용하면 여러 DCR을 만들고, 관리하고, 삭제할 수 있습니다.
필수 조건
시작하기 전에 다음 사항이 있는지 확인합니다.
- Microsoft Sentinel 솔루션이 사용하도록 설정되었습니다.
- 정의된 Microsoft Sentinel 작업 영역.
- 감사 핫픽스가 포함된 Windows Server 2012 R2 이상.
- Windows DNS 서버입니다.
- Azure Virtual Machines가 아닌 컴퓨터에서 이벤트를 수집하려면 Azure Arc가 설치되어 있는지 확인합니다. Azure Monitor 에이전트 기반 커넥터를 사용하도록 설정하기 전에 Azure Arc를 설치하고 사용하도록 설정합니다. 이 요구 사항에는 다음이 포함됩니다.
- 물리적 머신에 설치된 Windows 서버
- 온-프레미스 가상 머신에 설치된 Windows 서버
- 비 Azure 클라우드의 가상 머신에 설치된 Windows 서버
Microsoft Sentinel 포털(UI)에서 커넥터 설정
커넥터 페이지를 열고 DCR을 만듭니다.
- Azure Portal을 열고, Microsoft Sentinel 서비스로 이동합니다.
- 데이터 커넥터 블레이드의 검색 창에 DNS를 입력합니다.
- AMA를 통한 Windows DNS 이벤트 커넥터를 선택합니다.
- 커넥터 설명 아래에서 커넥터 페이지 열기를 선택합니다.
- 구성 영역에서 데이터 수집 규칙 만들기를 선택합니다. 작업 영역당 단일 DCR을 만들 수 있습니다. 여러 DCR을 만들어야 하는 경우 API를 사용합니다.
DCR 이름, 구독 및 리소스 그룹은 작업 영역 이름, 현재 구독 및 커넥터가 선택된 리소스 그룹을 기반으로 자동으로 설정됩니다.
리소스(VM) 정의
리소스 탭을 선택하고 리소스 추가를 선택합니다.
커넥터를 설치하여 로그를 수집할 VM을 선택합니다.
변경 내용을 검토하고 저장>적용을 선택합니다.
원하지 않는 이벤트 필터링
필터를 사용할 때 필터가 지정하는 이벤트를 제외합니다. 즉, Microsoft Sentinel은 지정된 이벤트에 대한 데이터를 수집하지 않습니다. 이 단계는 필수는 아니지만 비용을 절감하고 이벤트 심사를 단순화하는 데 도움이 될 수 있습니다.
필터를 만들려면 다음을 수행합니다.
커넥터 페이지의 구성 영역에서 데이터 수집 필터 추가를 선택합니다.
필터 이름을 입력하고 필터 형식을 선택합니다. 필터 형식은 수집된 이벤트 수를 줄이는 매개 변수입니다. 매개 변수는 DNS 정규화 스키마에 따라 정규화됩니다. 필터링에 사용할 수 있는 필드 목록을 참조하세요.
드롭다운에 나열된 값 중에서 필드를 필터링할 값을 선택합니다.
복잡한 필터를 추가하려면 필터링할 제외 필드 추가를 선택하고 관련 필드를 추가합니다. 아래 고급 필터 사용 섹션의 예제를 참조하세요.
새 필터를 더 추가하려면 새 제외 필터 추가를 선택합니다.
필터 추가가 완료되면 추가를 선택합니다.
기본 커넥터 페이지로 돌아가서 변경 내용 적용을 선택하여 필터를 저장하고 커넥터에 배포합니다. 기존 필터 또는 필드를 편집하거나 삭제하려면 구성 영역 아래의 표에서 편집 또는 삭제 아이콘을 선택합니다.
초기 배포 후에 필드 또는 필터를 추가하려면 데이터 수집 필터 추가를 다시 선택합니다.
API를 사용하여 커넥터 설정
API를 사용하여 DCR을 만들 수 있습니다. 여러 DCR을 만들어야 하는 경우 이 옵션을 사용합니다.
이 예를 템플릿으로 사용하여 DCR을 만들거나 업데이트합니다.
요청 URL 및 헤더
PUT
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/dataCollectionRules/{dataCollectionRuleName}?api-version=2019-11-01-preview
요청 본문
{
"properties": {
"dataSources": {
"windowsEventLogs": [],
"extensions": [
{
"streams": [
"Microsoft-ASimDnsActivityLogs"
],
"extensionName": "MicrosoftDnsAgent",
"extensionSettings": {
"Filters": [
{
"FilterName": "SampleFilter",
"Rules": [
{
"Field": "EventOriginalType",
"FieldValues": [
"260"
]
}
]
}
]
},
"name": "SampleDns"
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.OperationalInsights/workspaces/{sentinelWorkspaceName}",
"workspaceId": {WorkspaceGuid}",
"name": "WorkspaceDestination"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft-ASimDnsActivityLogs"
],
"destinations": [
" WorkspaceDestination "
]
}
],
},
"location": "eastus2",
"tags": {},
"kind": "Windows",
"id":"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Insights/dataCollectionRules/{workspaceName}-microsoft-sentinel-asimdnsactivitylogs ",
"name": " {workspaceName}-microsoft-sentinel-asimdnsactivitylogs ",
"type": "Microsoft.Insights/dataCollectionRules",
}
고급 필터 사용
DNS 서버 이벤트 로그에는 수많은 이벤트가 포함될 수 있습니다. 고급 필터링을 사용하여 데이터가 업로드되기 전에 불필요한 이벤트를 필터링하여 귀중한 심사 시간과 비용을 절약할 수 있습니다. 필터는 작업 영역에 업로드된 이벤트 스트림에서 불필요한 데이터를 제거합니다.
필터는 수많은 필드의 조합을 기반으로 합니다.
- 쉼표로 구분된 목록을 사용하여 각 필드에 여러 값을 사용할 수 있습니다.
- 복합 필터를 만들려면 AND 관계가 있는 다른 필드를 사용합니다.
- 다른 필터를 결합하려면 필터 사이에 OR 관계를 사용합니다.
필터링에 사용 가능한 필드를 검토합니다.
와일드카드 사용
고급 필터에서 와일드카드를 사용할 수 있습니다. 와일드카드를 사용할 때 다음 고려 사항을 검토합니다.
- 각 별표(
*.
) 뒤에 점을 추가합니다. - 도메인 목록 사이에 공백을 사용하지 마세요.
- 와일드카드는 프로토콜에 관계없이
www.domain.com
을 포함하여 도메인의 하위 도메인에만 적용됩니다. 예를 들어 고급 필터에서*.domain.com
을 사용하는 경우:- 필터는 프로토콜이 HTTPS, FTP 등인지 여부에 관계없이
www.domain.com
및subdomain.domain.com
에 적용됩니다. - 필터가
domain.com
에 적용되지 않습니다. 필터를domain.com
에 적용하려면 와일드카드를 사용하지 않고 도메인을 직접 지정합니다.
- 필터는 프로토콜이 HTTPS, FTP 등인지 여부에 관계없이
고급 필터 예
특정 이벤트 ID를 수집하지 마세요.
이 필터는 IPv6 주소가 있는 EventID 256, EventID 257 또는 EventID 260을 수집하지 않도록 커넥터에 지시합니다.
Microsoft Sentinel 포털 사용:
Equals 연산자를 사용하여 EventOriginalType 필드가 포함된 필터를 만듭니다. 이 값은 256, 257 및 260입니다.
위에 정의된 And 연산자를 사용하여 EventOriginalType 필드가 포함된 필터를 만듭니다. 여기에 AAAA로 설정된 DnsQueryTypeName 필드도 포함합니다.
API 사용:
"Filters": [
{
"FilterName": "SampleFilter",
"Rules": [
{
"Field": "EventOriginalType",
"FieldValues": [
"256", "257", "260"
]
},
{
"Field": "DnsQueryTypeName",
"FieldValues": [
"AAAA"
]
}
]
},
{
"FilterName": "EventResultDetails",
"Rules": [
{
"Field": "EventOriginalType",
"FieldValues": [
"230"
]
},
{
"Field": "EventResultDetails",
"FieldValues": [
"BADKEY","NOTZONE"
]
}
]
}
]
특정 도메인으로 이벤트를 수집하지 마세요.
이 필터는 커넥터가 microsoft.com, google.com, amazon.com의 하위 도메인 또는 facebook.com 또는 center.local의 이벤트를 수집하지 않도록 지시합니다.
Microsoft Sentinel 포털 사용:
Equals 연산자를 사용하여 DnsQuery 필드를 설정합니다. 이 목록은 *.microsoft.com,*.google.com,facebook.com,*.amazon.com,center.local입니다.
와일드카드 사용에 대한 다음 고려 사항을 검토합니다.
단일 필드에 다른 값을 정의하려면 OR 연산자를 사용합니다.
API 사용:
와일드카드 사용에 대한 다음 고려 사항을 검토합니다.
"Filters": [
{
"FilterName": "SampleFilter",
"Rules": [
{
"Field": "DnsQuery",
"FieldValues": [
"*.microsoft.com", "*.google.com", "facebook.com", "*.amazon.com","center.local"
]
},
}
}
]
다음 단계
이 문서에서는 AMA를 통한 Windows DNS 이벤트 커넥터를 설정하여 데이터를 업로드하고 Windows DNS 로그를 필터링하는 방법을 알아보았습니다. Microsoft Sentinel에 대해 자세히 알아보려면 다음 문서를 참조하세요.
- 데이터에 대한 가시성을 얻고 재적 위협을 확인하는 방법을 알아봅니다.
- Microsoft Sentinel을 사용하여 위협 탐지에서 시작합니다.
- 통합 문서를 사용하여 데이터를 모니터링합니다.