AMA 커넥터를 사용하여 Windows DNS 서버에서 데이터 Stream 및 필터링

이 문서에서는 AMA(Azure Monitor Agent) 커넥터를 사용하여 DNS(Windows Domain Name System) 서버 로그에서 이벤트를 스트리밍하고 필터링하는 방법을 설명합니다. 그런 다음 데이터를 심층 분석하여 위협 및 공격으로부터 DNS 서버를 보호할 수 있습니다. AMA 및 해당 DNS 확장은 DNS 분석 로그에서 Microsoft Sentinel 작업 영역으로 데이터를 업로드하기 위해 Windows Server 설치됩니다.

DNS는 호스트 이름과 컴퓨터에서 읽을 수 있는 IP 주소 간에 매핑되는 널리 사용되는 프로토콜입니다. DNS는 보안을 염두에 두고 설계되지 않았기 때문에 서비스는 악의적인 활동의 대상이 높기 때문에 로깅은 보안 모니터링의 필수적인 부분입니다. DNS 서버를 대상으로 하는 잘 알려진 위협에는 DNS 서버를 대상으로 하는 DDoS 공격, DNS DDoS 증폭, DNS 하이재킹 등이 포함됩니다.

이 프로토콜의 전반적인 보안을 개선하기 위해 일부 메커니즘이 도입되었지만 DNS 서버는 여전히 높은 대상 서비스입니다. 조직은 DNS 로그를 모니터링하여 네트워크 활동을 더 잘 이해하고 네트워크 내 리소스를 대상으로 하는 의심스러운 동작 또는 공격을 식별할 수 있습니다. AMA 커넥터를 통한 Windows DNS 이벤트는 이러한 유형의 가시성을 제공합니다. 예를 들어 커넥터를 사용하여 악의적인 도메인 이름을 resolve, DNS 서버에서 요청 부하를 보고 모니터링하거나, 동적 DNS 등록 실패를 보려는 클라이언트를 식별합니다.

참고

AMA 커넥터를 통한 Windows DNS 이벤트는 분석 로그 이벤트만 지원합니다.

필수 구성 요소

시작하기 전에 다음이 있는지 확인합니다.

  • Microsoft Sentinel 사용하도록 설정된 Log Analytics 작업 영역입니다.
  • 콘텐츠 허브에서 Windows Server DNS 솔루션의 일부로 설치된 AMA 데이터 커넥터를 통한 Windows DNS 이벤트입니다.
  • Windows Server 2016 이상이 지원되거나 감사 핫픽스를 사용하여 R2를 Windows Server 2012.
  • DNS-Server 분석 이벤트 로그를 사용하도록 설정된 DNS 서버 역할. DNS 분석 이벤트 로그는 기본적으로 사용하도록 설정되지 않습니다. 자세한 내용은 분석 이벤트 로깅 사용을 참조하세요.

Azure 가상 머신이 아닌 시스템에서 이벤트를 수집하려면 Azure Arc가 설치되어 있는지 확인합니다. Azure Monitor 에이전트 기반 커넥터를 사용하도록 설정하기 전에 Azure Arc를 설치하고 사용하도록 설정합니다. 이 요구 사항에는 다음이 포함됩니다.

  • 물리적 컴퓨터에 설치된 Windows 서버
  • 온-프레미스 가상 머신에 설치된 Windows 서버
  • 비 Azure 클라우드의 가상 머신에 설치된 Windows 서버

포털을 통해 AMA 커넥터를 통해 Windows DNS 구성

포털 설정 옵션을 사용하여 작업 영역당 단일 DCR(데이터 수집 규칙)을 사용하여 커넥터를 구성합니다. 그런 다음 고급 필터를 사용하여 특정 이벤트 또는 정보를 필터링하고 모니터링하려는 중요한 데이터만 업로드하여 비용과 대역폭 사용량을 줄입니다.

여러 DCR을 만들어야 하는 경우 대신 API를 사용합니다 . API를 사용하여 여러 DCR을 만들면 포털에 DCR이 하나만 표시됩니다.

커넥터를 구성하려면 다음을 수행합니다.

  1. Microsoft Sentinel 데이터 커넥터 페이지를 열고 AMA 커넥터를 통해 Windows DNS 이벤트를 찾습니다.

  2. 측면 창 아래쪽에서 커넥터 페이지 열기를 선택합니다.

  3. 구성 영역에서 데이터 수집 규칙 만들기를 선택합니다. 작업 영역당 단일 DCR을 만들 수 있습니다.

    DCR 이름, 구독 및 리소스 그룹은 커넥터가 선택된 작업 영역 이름, 현재 구독 및 리소스 그룹에 따라 자동으로 설정됩니다. 예시:

    M A 커넥터를 통해 Windows D N S에 대한 새 DC R을 만드는 스크린샷

  4. 리소스 탭 >리소스 추가를 선택합니다.

  5. 커넥터를 설치하여 로그를 수집할 VM을 선택합니다. 예시:

    M A 커넥터를 통해 Windows D N S에 대한 리소스를 선택하는 스크린샷

  6. 변경 내용을 검토하고 적용 저장>을 선택합니다.

API를 통해 AMA 커넥터를 통해 Windows DNS 구성

API 설정 옵션을 사용하여 작업 영역당 여러 DCR 을 사용하여 커넥터를 구성합니다. 단일 DCR을 사용하려는 경우 포털 옵션을 대신 사용합니다.

API를 사용하여 여러 DCR을 만들면 포털에 DCR이 하나만 표시됩니다.

다음 예제를 템플릿으로 사용하여 DCR을 만들거나 업데이트합니다.

요청 URL 및 헤더

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/dataCollectionRules/{dataCollectionRuleName}?api-version={latest-supported-version}

지원되는 최신 API 버전은 데이터 수집 규칙 - REST API(Azure Monitor) | 를 참조하세요. Microsoft Learn.

DCR 설명서의 API 버전 모양 스크린샷

요청 본문

{
    "location": "eastus2",
    "kind" : "Windows",
    "properties": {
        "dataSources": {
            "windowsEventLogs": [],
            "extensions": [
                {
                    "streams": [
                        "Microsoft-ASimDnsActivityLogs"
                    ],
                    "extensionName": "MicrosoftDnsAgent",
                    "extensionSettings": {
                        "Filters": [
                            {
                                "FilterName": "SampleFilter",
                                "Rules": [
                                    {
                                        "Field": "EventOriginalType",
                                        "FieldValues": [
                                            "260"
                                        ]
                                    }
                                ]
                            }
                        ]
                    },
                    "name": "SampleDns"
                }
            ]
        },
        "destinations": {
            "logAnalytics": [
                {
                    "name" : "WorkspaceDestination",
                    "workspaceId" : "{WorkspaceGuid}",
                    "workspaceResourceId" : "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.OperationalInsights/workspaces/{sentinelWorkspaceName}"
                }
            ]
        },
        "dataFlows": [
            {
                "streams": [
                    "Microsoft-ASimDnsActivityLogs"
                ],
                "destinations": [
                    "WorkspaceDestination"
                ]
            }
        ],
    },
    "tags" : {}
}

DCR에서 고급 필터 사용

DNS 서버 이벤트 로그에는 엄청난 수의 이벤트가 포함될 수 있습니다. 고급 필터링을 사용하여 데이터를 업로드하기 전에 불필요한 이벤트를 필터링하여 중요한 심사 시간과 비용을 절약하는 것이 좋습니다. 필터는 작업 영역에 업로드된 이벤트 스트림에서 불필요한 데이터를 제거하고 여러 필드의 조합을 기반으로 합니다.

자세한 내용은 필터링에 사용할 수 있는 필드를 참조하세요.

포털을 통해 고급 필터 만들기

포털을 통해 필터를 만들려면 다음 절차를 따르세요. API를 사용하여 필터를 만드는 방법에 대한 자세한 내용은 고급 필터링 예제를 참조하세요.

포털을 통해 필터를 만들려면 다음을 수행합니다.

  1. 커넥터 페이지의 구성 영역에서 데이터 수집 필터 추가를 선택합니다.

  2. 필터의 이름을 입력하고 수집된 이벤트 수를 줄이는 매개 변수인 필터 형식을 선택합니다. 매개 변수는 DNS 정규화된 스키마에 따라 정규화됩니다. 자세한 내용은 필터링에 사용할 수 있는 필드를 참조하세요.

    M A 커넥터를 통해 Windows D N S에 대한 필터를 만드는 스크린샷

  3. 드롭다운에 나열된 값 중에서 필드를 필터링할 값을 선택합니다.

    M A 커넥터를 통해 Windows D N S에 대한 필터에 필드를 추가하는 스크린샷

  4. 복합 필터를 추가하려면 제외 필드 추가를 선택하여 필터링 하고 관련 필드를 추가합니다.

    • 쉼표로 구분된 목록을 사용하여 각 필드에 대해 여러 값을 정의합니다.
    • 복합 필터를 만들려면 AND 관계와 함께 다른 필드를 사용합니다.
    • 다른 필터를 결합하려면 필터 간에 OR 관계를 사용합니다.

    필터는 다음과 같이 와일드카드도 지원합니다.

    • 각 별표(*.) 다음에 점을 추가합니다.
    • 도메인 목록 사이에 공백을 사용하지 마세요.
    • 와일드카드는 프로토콜에 관계없이 를 포함하여 www.domain.com도메인의 하위 도메인에만 적용됩니다. 예를 들어 고급 필터에서 를 사용하는 *.domain.com 경우:
      • 이 필터는 프로토콜이 HTTPS, FTP 등인지 여부에 관계없이 및 subdomain.domain.com에 적용됩니다www.domain.com.
      • 필터는 에 domain.com적용되지 않습니다. 에 필터 domain.com를 적용하려면 와일드카드를 사용하지 않고 도메인을 직접 지정합니다.
  5. 새 필터를 더 추가하려면 새 제외 필터 추가를 선택합니다.

  6. 필터 추가가 완료되면 추가를 선택합니다.

  7. 기본 커넥터 페이지로 돌아가 서 변경 내용 적용 을 선택하여 필터를 저장하고 커넥터에 배포합니다. 기존 필터 또는 필드를 편집하거나 삭제하려면 구성 영역 아래의 테이블에서 편집 또는 삭제 아이콘을 선택합니다.

  8. 초기 배포 후 필드 또는 필터를 추가하려면 데이터 수집 필터 추가를 다시 선택합니다.

고급 필터링 예제

포털 또는 API를 통해 일반적으로 사용되는 고급 필터를 만들려면 다음 예제를 사용합니다.

특정 이벤트 ID를 수집하지 않음

이 필터는 커넥터가 IPv6 주소로 EventID 256 또는 EventID 257 또는 EventID 260을 수집하지 않도록 지시합니다.

Microsoft Sentinel 포털 사용:

  1. Equals 연산자를 사용하여 EventOriginalType 필드를 사용하여 값이 256, 257 및 260인 필터를 만듭니다.

    M A 커넥터를 통해 Windows D N S에 대한 이벤트 ID를 필터링하는 스크린샷

  2. 위에서 정의한 EventOriginalType 필드를 사용하여 필터를 만들고,AAAA로 설정된 DnsQueryTypeName 필드를 포함하여 And 연산자를 사용합니다.

    M A 커넥터를 통해 Windows D N S에 대한 이벤트 ID 및 IPv6 주소를 필터링하는 스크린샷

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"                                        
                ]
            }
        ]
    }
]

특정 도메인을 사용하여 이벤트를 수집하지 마세요.

이 필터는 커넥터가 facebook.com 또는 center.local에서 microsoft.com, google.com, amazon.com 또는 이벤트의 하위 도메인에서 이벤트를 수집하지 않도록 지시합니다.

Microsoft Sentinel 포털 사용:

Equals 연산자를 사용하여 DnsQuery 필드를 *.microsoft.com,*.google.com,facebook.com,*.amazon.com,center.local 목록과 함께 설정합니다.

와일드카드 사용에 대한 이러한 고려 사항을 검토합니다.

M A 커넥터를 통해 Windows D N S에 대한 도메인을 필터링하는 스크린샷

단일 필드에서 다른 값을 정의하려면 OR 연산자를 사용합니다.

API 사용:

와일드카드 사용에 대한 이러한 고려 사항을 검토합니다.

"Filters": [ 
    { 
        "FilterName": "SampleFilter", 
        "Rules": [ 
            { 
                "Field": "DnsQuery", 
                "FieldValues": [ 
                    "*.microsoft.com", "*.google.com", "facebook.com", "*.amazon.com","center.local"                                                                               
                ]
            }
        ]
    }
]

ASIM을 사용한 정규화

이 커넥터는 ASIM(고급 보안 정보 모델) 파서를 사용하여 완전히 정규화됩니다. 커넥터는 분석 로그에서 시작된 이벤트를 라는 ASimDnsActivityLogs정규화된 테이블로 스트리밍합니다. 이 테이블은 하나의 통합 언어를 사용하여 번역기 역할을 하며, 올 모든 DNS 커넥터에서 공유됩니다.

모든 DNS 데이터를 통합하고 구성된 모든 원본에서 분석이 실행되도록 하는 소스 중립적 파서의 경우 ASIM DNS 통합 파서_Im_Dns 를 사용합니다.

ASIM 통합 파서는 네이티브 ASimDnsActivityLogs 테이블을 보완합니다. 네이티브 테이블은 ASIM 규격이지만 쿼리 시간에만 사용할 수 있는 별칭과 같은 기능을 추가하고 다른 DNS 데이터 원본과 결합 ASimDnsActivityLogs 하려면 파서가 필요합니다.

ASIM DNS 스키마는 분석 로그의 Windows DNS 서버에 기록된 DNS 프로토콜 작업을 나타냅니다. 스키마는 필드와 값을 정의하는 공식 매개 변수 목록 및 RFC에 의해 제어됩니다.

정규화된 필드 이름으로 변환된 Windows DNS 서버 필드 목록을 참조하세요.

이 문서에서는 AMA 커넥터를 통해 Windows DNS 이벤트를 설정하여 데이터를 업로드하고 Windows DNS 로그를 필터링하는 방법을 알아보았습니다. Microsoft Sentinel 대한 자세한 내용은 다음 문서를 참조하세요.