Microsoft Entra Domain Services에 대한 보안 및 DNS 감사 사용

Microsoft Entra Domain Services 보안 및 DNS 감사를 통해 Azure는 이벤트를 대상 리소스로 스트리밍할 수 있습니다. 이러한 리소스에는 Azure Storage, Azure Log Analytics 작업 영역 또는 Azure Event Hub가 포함됩니다. 보안 감사 이벤트를 사용하도록 설정하면 Domain Services는 선택한 범주에 대해 감사된 모든 이벤트를 대상 리소스로 보냅니다.

Azure Event Hubs를 사용하여 이벤트를 Azure Storage에 보관하고 이벤트를 SIEM(보안 정보 및 이벤트 관리) 소프트웨어(또는 이에 상응하는 소프트웨어)로 스트리밍하거나, Microsoft Entra 관리 센터의 Azure Log Analytics 작업 영역을 사용하여 자체 분석을 수행할 수 있습니다.

보안 감사 대상

Azure Storage, Azure Event Hubs 또는 Azure Log Analytics 작업 영역을 Domain Services 보안 감사의 대상 리소스로 사용할 수 있습니다. 이러한 대상을 결합할 수 있습니다. 예를 들어 보안 감사 이벤트를 보관하는 데 Azure Storage를 사용할 수 있지만 Azure Log Analytics 작업 영역은 단기간에 정보를 분석하고 보고할 수 있습니다.

다음 표에서는 각 대상 리소스 종류에 대한 시나리오를 간략하게 설명합니다.

Important

Domain Services 보안 감사를 사용하도록 설정하기 전에 대상 리소스를 만들어야 합니다. Microsoft Entra 관리 센터, Azure PowerShell 또는 Azure CLI를 사용하여 이러한 리소스를 만들 수 있습니다.

대상 리소스 시나리오
Azure Storage 이 대상은 보관을 위해 보안 감사 이벤트를 저장해야 하는 경우에 사용해야 합니다. 다른 대상은 보관 목적으로 사용할 수 있지만, 이러한 대상은 보관의 기본 필요 이상으로 기능을 제공합니다.

Domain Services 보안 감사 이벤트를 사용하도록 설정하기 전에 먼저 Azure Storage 계정을 만듭니다.
Azure Event Hubs 이 대상은 데이터 분석 소프트웨어 또는 SIEM(보안 정보 및 이벤트 관리) 소프트웨어와 같은 추가 소프트웨어를 사용하여 보안 감사 이벤트를 공유해야 하는 경우에 사용해야 합니다.

Domain Services 보안 감사 이벤트를 사용하도록 설정하기 전에 Microsoft Entra 관리 센터를 사용하여 이벤트 허브 만들기
Azure Log Analytics 작업 영역 이 대상은 Microsoft Entra 관리 센터에서 직접 보안 감사를 분석하고 검토해야 하는 경우에 사용해야 합니다.

Domain Services 보안 감사 이벤트를 사용하도록 설정하기 전에 Microsoft Entra 관리 센터에서 Log Analytics 작업 영역을 만듭니다.

Microsoft Entra 관리 센터를 사용하여 보안 감사 이벤트 사용

Microsoft Entra 관리 센터를 사용하여 Domain Services 보안 감사 이벤트를 사용하도록 설정하려면 다음 단계를 완료합니다.

Important

Domain Services 보안 감사는 소급 적용되지 않습니다. 이전의 이벤트를 검색하거나 재생할 수 없습니다. Domain Services는 보안 감사가 사용하도록 설정된 후에 발생하는 이벤트만 보낼 수 있습니다.

  1. 전역 관리자로 Microsoft Entra 관리 센터에 로그인합니다.

  2. Microsoft Entra Domain Services를 검색하여 선택합니다. 관리되는 도메인(예: aaddscontoso.com)을 선택합니다.

  3. Domain Services 창의 왼쪽에 있는 진단 설정을 선택합니다.

  4. 진단 기본적으로 구성되지 않습니다. 시작하려면 진단 설정 추가를 선택합니다.

    Add a diagnostic setting for Microsoft Entra Domain Services

  5. aadds-auditing과 같은 진단 구성의 이름을 입력합니다.

    원하는 보안 또는 DNS 감사 대상의 확인란을 선택합니다. Log Analytics 작업 영역, Azure Storage 계정, Azure Event Hubs 또는 파트너 솔루션 중에서 선택할 수 있습니다. 이러한 대상 리소스는 Azure 구독에 이미 있어야 합니다. 이 마법사에서는 대상 리소스를 만들 수 없습니다.

    • Azure Log Analytic 작업 영역
      • Log Analytics로 보내기를 선택하고 감사 이벤트를 저장하는 데 사용하려는 구독Log Analytics 작업 영역을 선택합니다.
    • Azure Storage
      • 스토리지 계정에 보관을 선택한 다음 구성을 선택합니다.
      • 감사 이벤트를 보관하는 데 사용할 구독스토리지 계정을 선택합니다.
      • 준비가 되면 확인을 선택합니다.
    • Azure 이벤트 허브
      • 이벤트 허브로 스트림을 선택한 다음 구성을 선택합니다.
      • 구독 및 이벤트 허브 네임스페이스를 선택합니다. 필요한 경우 이벤트 허브 이름이벤트 허브 정책 이름도 선택합니다.
      • 준비가 되면 확인을 선택합니다.
    • 파트너 솔루션
      • 파트너 솔루션으로 보내기를 선택한 다음 감사 이벤트를 저장하는 데 사용할 구독대상을 선택합니다.
  6. 특정 대상 리소스에 포함할 로그 범주를 선택합니다. 감사 이벤트를 Azure Storage 계정으로 보내는 경우 데이터를 보존할 일 수를 정의하는 보존 정책을 구성할 수도 있습니다. 기본 설정 0 은 모든 데이터를 유지하고 일정 기간 후에 이벤트를 회전하지 않습니다.

    단일 구성 내에서 각 대상 리소스에 대해 서로 다른 로그 범주를 선택할 수 있습니다. 이 기능을 사용하여 Log Analytics에 대해 유지할 로그 범주와 보관할 로그 범주를 선택할 수 있습니다.

  7. 완료되면 저장을 선택하여 변경 내용을 커밋합니다. 대상 리소스는 구성이 저장된 직후 Domain Services 감사 이벤트를 수신하기 시작합니다.

Azure PowerShell을 사용하여 보안 및 DNS 감사 이벤트를 사용하도록 설정합니다.

Azure PowerShell을 사용하여 Domain Services 보안 및 DNS 감사 이벤트를 사용하도록 설정하려면 다음 단계를 완료합니다. 필요한 경우 먼저 Azure PowerShell 모듈을 설치하고 Azure 구독에 연결합니다.

Important

Domain Services 감사는 소급 적용되지 않습니다. 이전의 이벤트를 검색하거나 재생할 수 없습니다. Domain Services는 감사가 사용하도록 설정된 후에 발생하는 이벤트만 보낼 수 있습니다.

  1. 커넥트-AzAccount cmdlet을 사용하여 Azure 구독에 인증합니다. 메시지가 표시되면 계정 자격 증명을 입력합니다.

    Connect-AzAccount
    
  2. 감사 이벤트에 대한 대상 리소스를 만듭니다.

    • Azure Log Analytic 작업 영역 - 은 Azure PowerShell을 사용하여 Log Analytics 작업 영역을 만듭니다.

    • Azure Storage - Azure PowerShell을 사용하여 스토리지 계정 만들기

    • Azure Event Hubs - Azure PowerShell을 사용하여 이벤트 허브를 만듭니다. 또한 이벤트 허브 네임스페이스에 Domain Services 권한을 부여하는 권한 부여 규칙을 만들려면 New-AzEventHubAuthorizationRule cmdlet을 사용해야 할 수도 있습니다. 권한 부여 규칙에는 관리, 수신 대기보내기 권한이 포함되어합니다.

      Important

      이벤트 허브 자체가 아니라 이벤트 허브 네임스페이스에서 권한 부여 규칙을 설정해야 합니다.

  3. Get-AzResource cmdlet을 사용하여 Domain Services 관리되는 도메인의 리소스 ID를 가져옵니다. $aadds 변수 를 만듭니다. 값을 저장할 ResourceId :

    $aadds = Get-AzResource -name aaddsDomainName
    
  4. Set-AzDiagnosticSetting cmdlet을 사용하여 Azure Diagnostic 설정을 구성하고 Microsoft Entra Domain Services 감사 이벤트에 대한 대상 리소스를 사용합니다. 다음 예제에서는 변수 가 $aadds. ResourceId 는 이전 단계에서 사용됩니다.

    • Azure Storage - storageAccountId를 스토리지 계정 이름으로 바꿉니다.

      Set-AzDiagnosticSetting `
          -ResourceId $aadds.ResourceId `
          -StorageAccountId storageAccountId `
          -Enabled $true
      
    • Azure Event Hubs - eventHubName을 이벤트 허브의 이름으로 바꾸고 eventHubRuleId를 권한 부여 규칙 ID로 바꿉니다.

      Set-AzDiagnosticSetting -ResourceId $aadds.ResourceId `
          -EventHubName eventHubName `
          -EventHubAuthorizationRuleId eventHubRuleId `
          -Enabled $true
      
    • Azure Log Analytic 작업 영역 - workspaceId를 Log Analytics 작업 영역의 ID로 바꿉니다.

      Set-AzureRmDiagnosticSetting -ResourceId $aadds.ResourceId `
          -WorkspaceID workspaceId `
          -Enabled $true
      

Azure Monitor를 사용하여 보안 및 DNS 감사 이벤트 쿼리 및 보기

Log Analytic 작업 영역을 사용하면 Azure Monitor 및 Kusto 쿼리 언어를 사용하여 보안 및 DNS 감사 이벤트를 보고 분석할 수 있습니다. 이 쿼리 언어는 읽기 쉬운 구문으로 강력한 분석 기능을 지원하는 읽기 전용 용도로 설계되었습니다. Kusto 쿼리 언어를 시작하는 방법에 대한 자세한 내용은 다음 문서를 참조하세요.

다음 샘플 쿼리를 사용하여 Domain Services에서 감사 이벤트 분석을 시작할 수 있습니다.

샘플 쿼리 1

지난 7일 동안의 모든 계정 잠금 이벤트를 봅니다.

AADDomainServicesAccountManagement
| where TimeGenerated >= ago(7d)
| where OperationName has "4740"

샘플 쿼리 2

2020년 6월 3일 오전 9시부터 2020년 6월 10일 자정 사이의 모든 계정 잠금 이벤트(4740)를 날짜 및 시간을 기준으로 오름차순으로 정렬하여 봅니다.

AADDomainServicesAccountManagement
| where TimeGenerated >= datetime(2020-06-03 09:00) and TimeGenerated <= datetime(2020-06-10)
| where OperationName has "4740"
| sort by TimeGenerated asc

샘플 쿼리 3

User라는 계정에 대해 (지금으로부터) 7일 전의 계정 로그인 이벤트를 확인합니다.

AADDomainServicesAccountLogon
| where TimeGenerated >= ago(7d)
| where "user" == tolower(extract("Logon Account:\t(.+[0-9A-Za-z])",1,tostring(ResultDescription)))

샘플 쿼리 4

잘못된 암호를 사용하여 로그인을 시도한 User라는 계정에 대해 지금으로부터 7일 전의 계정 로그인 이벤트를 확인합니다(0xC0000006a).

AADDomainServicesAccountLogon
| where TimeGenerated >= ago(7d)
| where "user" == tolower(extract("Logon Account:\t(.+[0-9A-Za-z])",1,tostring(ResultDescription)))
| where "0xc000006a" == tolower(extract("Error Code:\t(.+[0-9A-Fa-f])",1,tostring(ResultDescription)))

샘플 쿼리 5

계정이 잠겨 있는 동안 로그인을 시도한 사용자 계정(0xC0000234)에 대한 계정 로그인 이벤트를 지금부터 7일 전에 봅니다.

AADDomainServicesAccountLogon
| where TimeGenerated >= ago(7d)
| where "user" == tolower(extract("Logon Account:\t(.+[0-9A-Za-z])",1,tostring(ResultDescription)))
| where "0xc0000234" == tolower(extract("Error Code:\t(.+[0-9A-Fa-f])",1,tostring(ResultDescription)))

샘플 쿼리 6

잠긴 모든 사용자에 대해 발생한 모든 로그인 시도에 대해 지금부터 7일 전의 계정 로그인 이벤트 수를 확인합니다.

AADDomainServicesAccountLogon
| where TimeGenerated >= ago(7d)
| where "0xc0000234" == tolower(extract("Error Code:\t(.+[0-9A-Fa-f])",1,tostring(ResultDescription)))
| summarize count()

보안 및 DNS 이벤트 범주 감사

Domain Services 보안 및 DNS 감사는 기존 AD DS 도메인 컨트롤러에 대한 기존 감사와 일치합니다. 하이브리드 환경에서는 기존 감사 패턴을 다시 사용할 수 있으므로 이벤트를 분석할 때 동일한 논리를 사용할 수 있습니다. 문제를 해결하거나 분석해야 하는 시나리오에 따라 다양한 감사 이벤트 범주를 대상으로 지정해야 합니다.

다음 감사 이벤트 범주를 사용할 수 있습니다.

감사 범주 이름 설명
계정 로그온 감사는 할 일기본 컨트롤러 또는 SAM(로컬 보안 계정 관리자)에서 계정 데이터를 인증하려고 시도합니다.
-로그온 및 로그오프 정책 설정 및 이벤트 추적은 특정 컴퓨터에 대한 액세스를 시도합니다. 이 범주의 설정 및 이벤트는 사용되는 계정 데이터베이스에 중점을 둡니다. 이 범주에는 다음 하위 범주가 포함됩니다.
-자격 증명 유효성 검사 감사
-Kerberos 인증 오류 감사
-Kerberos 서비스 티켓 작업 감사
-기타 로그온/로그오프 이벤트 감사
계정 관리 사용자 및 컴퓨터 계정 및 그룹에 대한 변경 내용을 감사합니다. 이 범주에는 다음 하위 범주가 포함됩니다.
-애플리케이션 그룹 관리 감사
-컴퓨터 계정 관리 감사
-메일 그룹 관리 감사
-기타 계정 관리 감사
-보안 그룹 관리 감사
-사용자 계정 관리 감사
DNS 서버 DNS 환경의 변경 내용을 감사합니다. 이 범주에는 다음 하위 범주가 포함됩니다.
- DNSServerAuditsDynamicUpdates(미리 보기)
- DNSServerAuditsGeneral(미리 보기)
세부 정보 추적 해당 컴퓨터에 있는 개별 애플리케이션 및 사용자의 작업을 감사하고 컴퓨터가 사용되는 방식을 이해합니다. 이 범주에는 다음 하위 범주가 포함됩니다.
-DPAPI 작업 감사
-PNP 작업 감사
-프로세스 만들기 감사
-프로세스 종료 감사
-RPC 이벤트 감사
디렉터리 서비스 액세스 감사는 AD DS(Active Directory 도메인 Services)에서 개체에 액세스하고 수정하려고 시도합니다. 이러한 감사 이벤트는 도메인 컨트롤러에만 로그됩니다. 이 범주에는 다음 하위 범주가 포함됩니다.
-상세 디렉터리 서비스 복제 감사
-디렉터리 서비스 액세스 감사
-디렉터리 서비스 변경 감사
-디렉터리 서비스 복제 감사
로그온-로그오프 감사는 대화형으로 또는 네트워크를 통해 컴퓨터에 로그온하려고 시도합니다. 이러한 이벤트는 사용자 활동을 추적하고 네트워크 리소스에 대한 잠재적인 공격을 식별하는 데 유용합니다. 이 범주에는 다음 하위 범주가 포함됩니다.
-계정 잠금 감사
-사용자/디바이스 클레임 감사
-IPsec 확장 모드 감사
-그룹 멤버 자격 감사
-IPsec 기본 모드 감사
-IPsec 빠른 모드 감사
-로그오프 감사
-로그온 감사
-네트워크 정책 서버 감사
-기타 로그온/로그오프 이벤트 감사
-특수 로그온 감사
개체 액세스 네트워크 또는 컴퓨터에서 특정 개체 또는 개체 유형에 대한 액세스 시도를 감사합니다. 이 범주에는 다음 하위 범주가 포함됩니다.
-생성된 애플리케이션 감사
-인증 서비스 감사
-세부 파일 공유 감사
-파일 공유 감사
-파일 시스템 감사
-필터링 플랫폼 연결 감사
-필터링 플랫폼 패킷 삭제 감사
-핸들 조작 감사
-커널 개체 감사
-기타 개체 액세스 이벤트 감사
-레지스트리 감사
-이동식 스토리지 감사
-SAM 감사
-중앙 액세스 정책 준비 감사
정책 변경 로컬 시스템 또는 네트워크의 중요한 보안 정책에 대한 변경 내용을 감사합니다. 정책은 일반적으로 네트워크 리소스를 보호하기 위해 관리자에 의해 설정됩니다. 이러한 정책을 변경하거나 변경하려는 모니터링은 네트워크에 대한 보안 관리의 중요한 측면일 수 있습니다. 이 범주에는 다음 하위 범주가 포함됩니다.
-감사 정책 변경 감사
-인증 정책 변경 감사
-권한 부여 정책 변경 감사
-필터링 플랫폼 정책 변경 감사
-MPSSVC 규칙 수준 정책 변경 감사
-기타 정책 변경 감사
권한 사용 하나 이상의 시스템에서 특정 사용 권한의 사용을 감사합니다. 이 범주에는 다음 하위 범주가 포함됩니다.
-중요하지 않은 권한 사용 감사
-중요한 권한 사용 감사
-기타 권한 사용 이벤트 감사
시스템 다른 범주에 포함되지 않은 컴퓨터에 대한 시스템 수준 변경 내용을 감사하고 보안에 영향을 미칠 수 있습니다. 이 범주에는 다음 하위 범주가 포함됩니다.
-IPsec 드라이버 감사
-기타 시스템 이벤트 감사
-보안 상태 변경 감사
-보안 시스템 확장 감사
-시스템 무결성 감사

범주당 이벤트 ID

Domain Services 보안 및 DNS 감사는 특정 작업이 감사 가능한 이벤트를 트리거할 때 다음 이벤트 ID를 기록합니다.

이벤트 범주 이름 이벤트 ID
계정 로그온 보안 4767, 4774, 4775, 4776, 4777
계정 관리 보안 4720, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4737, 4738, 4740, 4741, 4742, 4743, 4754, 4755, 4756, 4757, 4758, 4764, 4765, 4766, 4780, 4781, 4782, 4793, 4798, 4799, 5376, 5377
세부 정보 추적 보안 없음
DNS 서버 513-523, 525-531, 533-537, 540-582
DS 액세스 보안 5136, 5137, 5138, 5139, 5141
로그온-로그오프 보안 4624, 4625, 4634, 4647, 4648, 4672, 4675, 4964
개체 액세스 보안 없음
정책 변경 보안 4670, 4703, 4704, 4705, 4706, 4707, 4713, 4715, 4716, 4717, 4718, 4719, 4739, 4864, 4865, 4866, 4867, 4904, 4906, 4911, 4912
권한 사용 보안 4985
시스템 보안 4612, 4621

다음 단계

Kusto에 대한 자세한 내용은 다음 문서를 참조하세요.