Microsoft Sentinel 쿼리 및 활동 감사

이 문서에서는 SOC(보안 작업) 작업 영역의 내부 및 외부 규정 준수 요구 사항과 같이 Microsoft Sentinel 작업 영역에서 수행되는 쿼리 실행 및 활동에 대한 감사 데이터를 보는 방법을 설명합니다.

Microsoft Sentinel 다음에 대한 액세스를 제공합니다.

이 문서에 설명된 수동 쿼리 외에도 SOC 환경에서 활동을 감사하는 데 도움이 되는 기본 제공 작업 영역 감사 통합 문서를 사용하는 것이 좋습니다. 자세한 내용은 Microsoft Sentinel 통합 문서를 사용하여 데이터 시각화 및 모니터링을 참조하세요.

필수 구성 요소

Azure 활동 로그를 사용하여 감사

Microsoft Sentinel 감사 로그는 Azure 활동 로그에서 유지 관리됩니다. 여기서 AzureActivity 테이블에는 Microsoft Sentinel 작업 영역에서 수행된 모든 작업이 포함됩니다.

Microsoft Sentinel 사용하여 SOC 환경에서 활동을 감사할 때 AzureActivity 테이블을 사용합니다.

AzureActivity 테이블을 쿼리하려면 다음을 수행합니다.

  1. Sentinel 솔루션용 Azure 활동 솔루션을 설치하고 Azure 활동 데이터 커넥터를 연결하여 감사 이벤트 스트리밍을 라는 AzureActivity새 테이블에 연결합니다.

  2. 다른 테이블과 마찬가지로 KQL(Kusto 쿼리 언어)을 사용하여 데이터를 쿼리합니다.

    • Azure Portal 로그 페이지에서 이 테이블을 쿼리합니다.
    • Defender 포털의 조사 & 응답 > 헌팅 고급 헌팅> 페이지에서 이 테이블을 쿼리합니다.

    AzureActivity 테이블에는 Microsoft Sentinel 포함하여 많은 서비스의 데이터가 포함됩니다. Microsoft Sentinel 데이터만 필터링하려면 다음 코드로 쿼리를 시작합니다.

     AzureActivity
    | where OperationNameValue startswith "MICROSOFT.SECURITYINSIGHTS"
    

    예를 들어 특정 분석 규칙을 마지막으로 편집한 사용자가 누구인지 알아보려면 다음 쿼리를 사용합니다(를 검사 규칙 ID로 대체xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).

    AzureActivity
    | where OperationNameValue startswith "MICROSOFT.SECURITYINSIGHTS/ALERTRULES/WRITE"
    | where Properties contains "alertRules/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    | project Caller , TimeGenerated , Properties
    

보고해야 하는 항목에 따라 쿼리에 더 많은 매개 변수를 추가하여 AzureActivities 테이블을 추가로 탐색합니다. 다음 섹션에서는 AzureActivity 테이블 데이터로 감사할 때 사용할 다른 샘플 쿼리를 제공합니다.

자세한 내용은 Azure 활동 로그에 포함된 Microsoft Sentinel 데이터를 참조하세요.

지난 24시간 동안 특정 사용자가 수행한 모든 작업 찾기

다음 AzureActivity 테이블 쿼리는 지난 24시간 동안 특정 Microsoft Entra 사용자가 수행한 모든 작업을 나열합니다.

AzureActivity
| where OperationNameValue contains "SecurityInsights"
| where Caller == "[AzureAD username]"
| where TimeGenerated > ago(1d)

모든 삭제 작업 찾기

다음 AzureActivity 테이블 쿼리는 Microsoft Sentinel 작업 영역에서 수행된 모든 삭제 작업을 나열합니다.

AzureActivity
| where OperationNameValue contains "SecurityInsights"
| where OperationName contains "Delete"
| where ActivityStatusValue contains "Succeeded"
| project TimeGenerated, Caller, OperationName

Azure 활동 로그에 포함된 데이터 Microsoft Sentinel

Microsoft Sentinel 감사 로그는 Azure 활동 로그에 유지 관리되며 다음 유형의 정보를 포함합니다.

작업 정보 유형
만든 날짜 경고 규칙
사례 설명
인시던트 주석
저장된 검색
관심 목록
통합 문서
삭제됨 경고 규칙
책갈피
데이터 커넥터
인시던트
저장된 검색
Settings
위협 인텔리전스 보고서
관심 목록
통합 문서
워크플로
업데이트 완료 경고 규칙
책갈피
경우
데이터 커넥터
인시던트
인시던트 주석
위협 인텔리전스 보고서
통합 문서
워크플로

Azure 활동 로그를 사용하여 사용자 권한 부여 및 라이선스를 검사 수도 있습니다. 예를 들어 다음 표에서는 로그 데이터가 가져온 특정 리소스를 사용하여 Azure 활동 로그에서 찾은 선택한 작업을 나열합니다.

작업 이름 리소스 유형
통합 문서 만들기 또는 업데이트 Microsoft.Insights/통합 문서
통합 문서 삭제 Microsoft.Insights/통합 문서
워크플로 설정 Microsoft.Logic/workflows
워크플로 삭제 Microsoft.Logic/workflows
저장된 검색 만들기 Microsoft.OperationalInsights/workspaces/savedSearches
저장된 검색 삭제 Microsoft.OperationalInsights/workspaces/savedSearches
경고 규칙 업데이트 Microsoft.SecurityInsights/alertRules
경고 규칙 삭제 Microsoft.SecurityInsights/alertRules
경고 규칙 응답 작업 업데이트 Microsoft.SecurityInsights/alertRules/actions
경고 규칙 응답 작업 삭제 Microsoft.SecurityInsights/alertRules/actions
책갈피 업데이트 Microsoft.SecurityInsights/책갈피
책갈피 삭제 Microsoft.SecurityInsights/책갈피
업데이트 사례 Microsoft.SecurityInsights/Cases
사례 조사 업데이트 Microsoft.SecurityInsights/Cases/investigations
사례 주석 만들기 Microsoft.SecurityInsights/Cases/comments
데이터 커넥터 업데이트 Microsoft.SecurityInsights/dataConnectors
데이터 커넥터 삭제 Microsoft.SecurityInsights/dataConnectors
설정 업데이트 Microsoft.SecurityInsights/settings

자세한 내용은 Azure 활동 로그 이벤트 스키마를 참조하세요.

LAQueryLogs를 사용하여 감사

LAQueryLogs 테이블은 Log Analytics에서 실행되는 로그 쿼리에 대한 세부 정보를 제공합니다. Log Analytics는 Microsoft Sentinel 기본 데이터 저장소로 사용되므로 Microsoft Sentinel 작업 영역에서 LAQueryLogs 데이터를 수집하도록 시스템을 구성할 수 있습니다.

LAQueryLogs 데이터에는 다음과 같은 정보가 포함됩니다.

  • 쿼리가 실행된 경우
  • Log Analytics에서 쿼리를 실행한 사람
  • Log Analytics에서 쿼리를 실행하는 데 사용된 도구(예: Microsoft Sentinel
  • 쿼리 텍스트 자체
  • 각 쿼리 실행의 성능 데이터

참고

  • LAQueryLogs 테이블에는 Microsoft Sentinel 로그 블레이드에서 실행된 쿼리만 포함됩니다. 예약된 분석 규칙, 조사 그래프 사용, Microsoft Sentinel 헌팅 페이지 또는 Defender 포털의 고급 헌팅 페이지에서 실행되는 쿼리는 포함되지 않습니다.

  • 쿼리가 실행되고 데이터가 LAQueryLogs 테이블에 채워지는 시간 사이에 짧은 지연이 있을 수 있습니다. 감사 데이터에 대한 LAQueryLogs 테이블을 쿼리하는 데 5분 정도 기다리는 것이 좋습니다.

LAQueryLogs 테이블을 쿼리하려면 다음을 수행합니다.

  1. LAQueryLogs 테이블은 Log Analytics 작업 영역에서 기본적으로 사용하도록 설정되지 않습니다. Microsoft Sentinel 감사할 때 LAQueryLogs 데이터를 사용하려면 먼저 Log Analytics 작업 영역의 진단 설정 영역에서 LAQueryLogs 사용하도록 설정합니다.

    자세한 내용은 Azure 모니터 로그의 쿼리 감사를 참조하세요.

  2. 그런 다음 다른 테이블과 마찬가지로 KQL을 사용하여 데이터를 쿼리합니다.

    예를 들어 다음 쿼리는 지난 주에 매일 실행된 쿼리 수를 보여 줍니다.

    LAQueryLogs
    | where TimeGenerated > ago(7d)
    | summarize events_count=count() by bin(TimeGenerated, 1d)
    

다음 섹션에서는 Microsoft Sentinel 사용하여 SOC 환경에서 활동을 감사할 때 LAQueryLogs 테이블에서 실행할 더 많은 샘플 쿼리를 보여 줍니다.

응답이 "정상"이 아닌 쿼리 수가 실행됩니다.

다음 LAQueryLogs 테이블 쿼리는 실행된 쿼리 수를 보여 줍니다. 여기서 200 OK 의 HTTP 응답 이외의 항목이 수신되었습니다. 예를 들어 이 숫자에는 실행하지 못한 쿼리가 포함됩니다.

LAQueryLogs
| where ResponseCode != 200 
| count 

CPU 집약적 쿼리에 대한 사용자 표시

다음 LAQueryLogs 테이블 쿼리는 사용된 CPU 및 쿼리 시간 길이를 기준으로 CPU 집약적 쿼리를 실행한 사용자를 나열합니다.

LAQueryLogs
|summarize arg_max(StatsCPUTimeMs, *) by AADClientId
| extend User = AADEmail, QueryRunTime = StatsCPUTimeMs
| project User, QueryRunTime, QueryText
| sort by QueryRunTime desc

지난 주에 가장 많은 쿼리를 실행한 사용자 표시

다음 LAQueryLogs 테이블 쿼리는 지난 주에 가장 많은 쿼리를 실행한 사용자를 나열합니다.

LAQueryLogs
| where TimeGenerated > ago(7d)
| summarize events_count=count() by AADEmail
| extend UserPrincipalName = AADEmail, Queries = events_count
| join kind= leftouter (
    SigninLogs)
    on UserPrincipalName
| project UserDisplayName, UserPrincipalName, Queries
| summarize arg_max(Queries, *) by UserPrincipalName
| sort by Queries desc

Microsoft Sentinel 활동에 대한 경고 구성

Microsoft Sentinel 감사 리소스를 사용하여 사전 경고를 만들 수 있습니다.

예를 들어 Microsoft Sentinel 작업 영역에 중요한 테이블이 있는 경우 다음 쿼리를 사용하여 해당 테이블을 쿼리할 때마다 알립니다.

LAQueryLogs
| where QueryText contains "[Name of sensitive table]"
| where TimeGenerated > ago(1d)
| extend User = AADEmail, Query = QueryText
| project User, Query

통합 문서, 규칙 및 플레이북을 사용하여 Microsoft Sentinel 모니터링

Microsoft Sentinel 고유한 기능을 사용하여 Microsoft Sentinel 내에서 발생하는 이벤트 및 작업을 모니터링합니다.

  • 통합 문서를 사용하여 모니터링합니다. 여러 기본 제공 Microsoft Sentinel 통합 문서는 작업 영역에서 작업하는 사용자에 대한 정보, 사용 중인 분석 규칙, 가장 많이 다루는 MITRE 전술, 중단 또는 중지된 수집 및 SOC 팀 성능을 포함하여 작업 영역 활동을 모니터링하는 데 도움이 될 수 있습니다.

    자세한 내용은 Microsoft Sentinel 통합 문서 및 일반적으로 사용되는 Microsoft Sentinel 통합 문서를 사용하여 데이터 시각화 및 모니터링을 참조하세요.

  • 수집 지연을 감시합니다. 수집 지연에 대한 우려가 있는 경우 분석 규칙에서 지연을 나타내도록 변수를 설정합니다.

    예를 들어 다음 분석 규칙은 결과에 중복 항목이 포함되지 않고 규칙을 실행할 때 로그가 누락되지 않도록 하는 데 도움이 될 수 있습니다.

    let ingestion_delay= 2min;let rule_look_back = 5min;CommonSecurityLog| where TimeGenerated >= ago(ingestion_delay + rule_look_back)| where ingestion_time() > (rule_look_back)
    - Calculating ingestion delay
      CommonSecurityLog| extend delay = ingestion_time() - TimeGenerated| summarize percentiles(delay,95,99) by DeviceVendor, DeviceProduct
    

    자세한 내용은 자동화 규칙을 사용하여 Microsoft Sentinel 인시던트 처리 자동화를 참조하세요.

  • 커넥터 상태 푸시 알림 솔루션 플레이북을 사용하여 데이터 커넥터 상태를 모니터링하여 중단되거나 중지된 수집을 감시하고 커넥터가 데이터 수집을 중지하거나 컴퓨터가 보고를 중지한 경우 알림을 보냅니다.

이전 예제에서 사용된 다음 항목에 대한 자세한 내용은 Kusto 설명서를 참조하세요.

KQL에 대한 자세한 내용은 Kusto 쿼리 언어(KQL) 개요를 참조하세요.

기타 리소스:

다음 단계

Microsoft Sentinel 작업 영역 감사 통합 문서를 사용하여 SOC 환경의 활동을 감사합니다. 자세한 내용은 데이터 시각화 및 모니터링을 참조하세요.