분석 규칙의 상태 모니터링 및 무결성 감사
Microsoft Sentinel 서비스에서 포괄적이고 중단 없이 변조되지 않는 위협 탐지를 보장하려면 분석 규칙의 상태 및 무결성을 추적하고 , 실행 인사이트를 모니터링하고, 상태 및 감사 로그를 쿼리하고, 수동 다시 실행을 사용하여 규칙을 테스트하고 최적화하여 최적으로 작동하도록 합니다.
조치를 취할 수 있는 관련 이해 관계자에 대한 상태 및 감사 이벤트 알림을 설정합니다. 예를 들어 이메일 또는 Microsoft Teams 메시지를 정의 및 전송하고 티켓팅 시스템에서 새 티켓을 생성하는 등의 작업을 수행합니다.
이 문서에서는 Microsoft Sentinel의 감사 및 상태 모니터링 기능을 사용하여 Microsoft Sentinel 내에서 분석 규칙의 상태 및 무결성을 추적하는 방법을 설명합니다.
규칙 인사이트 및 규칙의 수동 다시 실행에 대한 자세한 내용은 예약된 분석 규칙의 실행 모니터링 및 최적화를 참조하세요.
Important
SentinelHealth 및 SentinelAudit 데이터 테이블은 현재 미리 보기로 제공됩니다. 베타 또는 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 추가 약관은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요.
요약
Microsoft Sentinel 분석 규칙 상태 로그:
- 이 로그는 분석 규칙의 실행을 기록하는 이벤트와 이러한 실행의 최종 결과(성공 또는 실패 여부, 실패한 경우 그 이유)를 캡처합니다.
- 또한 로그는 분석 규칙의 각 실행에 대해 다음을 기록합니다.
- 규칙의 쿼리에 의해 캡처된 이벤트 수.
- 규칙에서 정의된 임계값을 통과한 이벤트 수로 인해 규칙이 경고를 발생시키는지 여부.
이러한 로그는 Log Analytics의 SentinelHealth 테이블에서 수집됩니다.
Microsoft Sentinel 분석 규칙 감사 로그:
- 이 로그는 다음 세부 정보를 포함하여 분석 규칙의 변경 내용을 기록하는 이벤트를 캡처합니다.
- 변경된 규칙의 이름.
- 변경된 규칙의 속성.
- 변경 전후의 규칙 설정 상태.
- 변경한 사용자 또는 ID.
- 변경의 원본 IP 및 날짜/시간.
- 등등
이러한 로그는 Log Analytics의 SentinelAudit 테이블에서 수집됩니다.
- 이 로그는 다음 세부 정보를 포함하여 분석 규칙의 변경 내용을 기록하는 이벤트를 캡처합니다.
SentinelHealth 및 SentinelAudit 데이터 테이블 사용(미리 보기)
위에 설명된 테이블에서 감사 및 상태 데이터를 가져오려면 먼저 작업 영역에 대해 Microsoft Sentinel 상태 기능을 켜야 합니다. 자세한 내용은 Microsoft Sentinel에 대한 감사 및 상태 모니터링 켜기를 참조하세요.
상태 기능이 켜져 있으면 자동화 규칙 및 플레이북에 대해 만들어진 첫 번째 성공 또는 실패 이벤트에서 SentinelHealth 데이터 테이블이 만들어집니다.
SentinelHealth 및 SentinelAudit 테이블 이벤트 이해
다음 형식의 분석 규칙 상태 이벤트가 SentinelHealth 테이블에 기록됩니다.
예약된 분석 규칙 실행.
NRT 분석 규칙 실행.
자세한 내용은 SentinelHealth 테이블 열 스키마를 참조하세요.
다음 형식의 분석 규칙 감사 이벤트가 SentinelAudit 테이블에 기록됩니다.
분석 규칙을 만들거나 업데이트.
분석 규칙 삭제.
자세한 내용은 SentinelAudit 테이블 열 스키마를 참조하세요.
쿼리를 실행하여 상태 및 무결성 문제 검색
최상의 결과를 위해서는 테이블을 직접 쿼리하는 대신 이러한 테이블인 _SentinelHealth() 및 _SentinelAudit()에서 미리 빌드된 함수에 대한 쿼리를 빌드해야 합니다. 이러한 함수는 테이블 자체의 스키마가 변경되는 경우 쿼리의 이전 버전과의 호환성을 유지 관리합니다.
첫 번째 단계로 쿼리는 분석 규칙과 관련된 데이터에 대한 테이블을 필터링해야 합니다. SentinelResourceType
매개 변수를 사용합니다.
_SentinelHealth()
| where SentinelResourceType == "Analytics Rule"
원하는 경우 특정 종류의 분석 규칙에 대한 목록을 추가로 필터링할 수 있습니다. SentinelResourceKind
매개 변수를 사용합니다.
| where SentinelResourceKind == "Scheduled"
# OR
| where SentinelResourceKind == "NRT"
다음은 시작하는 데 도움이 되는 몇 가지 샘플 쿼리입니다.
성공적으로 실행되지 않은 규칙을 찾습니다.
_SentinelHealth() | where SentinelResourceType == "Analytics Rule" | where Status != "Success"
"자동 비활성화"된 규칙을 찾습니다.
_SentinelHealth() | where SentinelResourceType == "Analytics Rule" | where Reason == "The analytics rule is disabled and was not executed."
성공하거나 실패한 규칙 및 실행 수를 다음과 같이 계산합니다.
_SentinelHealth() | where SentinelResourceType == "Analytics Rule" | summarize Occurrence=count(), Unique_rule=dcount(SentinelResourceId) by Status, Reason
규칙 삭제 작업을 찾습니다.
_SentinelAudit() | where SentinelResourceType =="Analytic Rule" | where Description =="Analytics rule deleted"
규칙 이름 및 활동 이름으로 규칙에 대한 활동을 찾습니다.
_SentinelAudit() | where SentinelResourceType =="Analytic Rule" | summarize Count= count() by RuleName=SentinelResourceName, Activity=Description
호출자 이름(활동을 수행한 ID)을 기준으로 규칙에 대한 활동을 찾습니다.
_SentinelAudit() | where SentinelResourceType =="Analytic Rule" | extend Caller= tostring(ExtendedProperties.CallerName) | summarize Count = count() by Caller, Activity=Description
상태, 오류 및 제안된 단계
예약된 분석 규칙 실행 또는 NRT 분석 규칙 실행의 경우 다음 상태 및 설명이 표시될 수 있습니다.
성공: 규칙이 성공적으로 실행되어
<n>
개의 경고가 생성되었습니다.성공: 규칙이 성공적으로 실행되었지만 경고를 생성하는 데 필요한 임계값(
<n>
)에 도달하지 못했습니다.실패: 규칙 실패에 대한 가능한 설명과 이에 대해 수행할 수 있는 작업입니다.
설명 수정 쿼리를 실행하는 동안 내부 서버 오류가 발생했습니다. 쿼리 실행 시간이 초과되었습니다. 쿼리에서 참조된 테이블을 찾을 수 없습니다. 관련 데이터 원본이 연결되어 있는지 확인합니다. 쿼리를 실행하는 동안 의미 체계 오류가 발생했습니다. 설정을 변경하지 않은 채로 편집하고 저장하여 분석 규칙을 다시 설정해 보세요. 쿼리에서 호출하는 함수의 이름은 예약어로 지정됩니다. 함수를 제거하거나 이름을 바꿉니다. 쿼리를 실행하는 동안 구문 오류가 발생했습니다. 설정을 변경하지 않은 채로 편집하고 저장하여 분석 규칙을 다시 설정해 보세요. 작업 영역이 없습니다. 이 쿼리는 너무 많은 시스템 리소스를 사용하는 것으로 확인되었으며 실행되지 않았습니다. 분석 규칙을 검토하고 조정합니다. Kusto 쿼리 언어 개요 및 모범 사례 설명서를 참조하세요. 쿼리에서 호출한 함수를 찾을 수 없습니다. 쿼리에서 호출하는 모든 함수의 작업 영역에 있는지 확인합니다. 쿼리에 사용된 작업 영역을 찾을 수 없습니다. 쿼리의 모든 작업 영역이 있는지 확인합니다. 이 쿼리를 실행할 수 있는 권한이 없습니다. 설정을 변경하지 않은 채로 편집하고 저장하여 분석 규칙을 다시 설정해 보세요. 쿼리에서 하나 이상의 리소스에 대한 액세스 권한이 없습니다. 쿼리를 찾을 수 없는 스토리지 경로를 참조했습니다. 쿼리에 스토리지 경로에 대한 액세스가 거부되었습니다. 이름이 같은 여러 함수가 이 작업 영역에 정의되어 있습니다. 중복 함수를 제거하거나 이름을 바꾸고 규칙을 편집하고 저장하여 다시 설정합니다. 이 쿼리가 결과를 반환하지 않았습니다. 이 쿼리의 여러 결과 집합은 허용되지 않습니다. 쿼리 결과에는 행당 필드 수가 일치하지 않습니다. 긴 데이터 수집 시간 때문에 규칙의 실행이 지연되었습니다. 임시 문제로 인해 규칙 실행이 지연되었습니다. 일시적인 문제로 인해 경고가 보강되지 않았습니다. 엔터티 매핑 문제로 인해 경고가 보강되지 않았습니다. 32KB 경고 크기 제한으로 인해 경고 <이름>에서 <숫자>개의 엔터티가 삭제되었습니다. 엔터티 매핑 문제로 인해 경고 <이름>에서 <숫자>개의 엔터티가 삭제되었습니다. 쿼리로 인해 행별 경고 이벤트 그룹화 구성이 있는 <규칙 유형> 규칙에 허용되는 최대 <제한>개의 결과를 초과하는 <숫자>개의 이벤트가 발생했습니다. 첫 번째 <제한-1>개의 이벤트에 대해 행당 경고가 생성되었으며 모든 이벤트를 고려하여 추가 집계된 경고가 생성되었습니다.
- <숫자> = 쿼리에서 반환된 이벤트 수
- <제한> = 현재 예약된 규칙에 대한 경고 150개, NRT 규칙의 경우 30개
- <규칙 유형> = 예약됨 또는 NRT
감사 및 상태 모니터링 통합 문서 사용
작업 영역에서 통합 문서를 사용할 수 있도록 하려면 Microsoft Sentinel 콘텐츠 허브에서 통합 문서 솔루션을 설치해야 합니다.
Microsoft Sentinel 포털의 콘텐츠 관리 메뉴에서 콘텐츠 허브(미리 보기)를 선택합니다.
콘텐츠 허브의 검색 창에 상태를 입력하고 결과에서 독립 실행형 아래 통합 문서 솔루션 중에서 분석 상태 및 감사를 선택합니다.
세부 정보 창에서 설치를 선택한 다음, 해당 위치에 표시되는 저장을 선택합니다.
솔루션이 설치되었음을 나타내면 위협 관리 메뉴에서 통합 문서를 선택합니다.
통합 문서 갤러리에서 템플릿 탭을 선택하고, 검색 표시줄에 상태를 입력하고, 결과 중에서 분석 상태 및 감사를 선택합니다.
세부 정보 창에서 저장을 선택하여 통합 문서의 편집 가능하고 사용 가능한 복사본을 만듭니다. 복사본을 만들 때 저장된 통합 문서 보기를 선택합니다.
통합 문서에서 먼저 보려는 구독 및 작업 영역을 선택한 다음(이미 선택되어 있을 수 있음), TimeRange를 정의하여 필요에 따라 데이터를 필터링합니다. 도움말 표시 토글을 사용하여 통합 문서에 대한 현재 위치 설명을 표시합니다.
이 통합 문서에는 다음과 같은 세 개의 탭 섹션이 있습니다.
개요 탭
개요 탭에 상태 및 감사 요약이 표시됩니다.
- 선택한 작업 영역에서 실행되는 분석 규칙의 상태 대한 상태 요약: 실행 수, 성공 및 실패, 실패 이벤트 세부 정보.
- 선택한 작업 영역의 분석 규칙에 대한 활동 요약 감사: 시간 경과에 따른 활동 수, 유형별 활동 수 및 규칙별 다양한 유형의 활동 수.
상태 탭
상태 탭을 사용하면 특정 상태 이벤트로 드릴다운할 수 있습니다.
- 전체 페이지 데이터를 상태(성공/실패) 및 규칙 유형(예약/NRT)으로 필터링합니다.
- 선택한 기간 동안의 성공 및/또는 실패한 규칙 실행 추세(상태 필터에 따라 다름)를 참조하세요. 추세 그래프를 "시간 브러시"하여 원래 시간 범위의 하위 집합을 볼 수 있습니다.
- 이유로 페이지의 나머지 부분을 필터링합니다.
- 원형 차트에서 상태에 비례적으로 표시되는 모든 분석 규칙에 대한 총 실행 수를 참조하세요.
- 다음은 규칙 유형 및 상태 따라 실행되고 세분화되는 고유한 분석 규칙의 수를 보여 주는 테이블입니다.
- 상태를 선택하여 해당 상태에 대한 나머지 차트를 필터링합니다.
- 차트의 오른쪽 위 모서리에 있는 "선택 영역 지우기" 아이콘("실행 취소" 아이콘처럼 표시됨)을 선택하여 필터를 지웁니다.
- 해당 상태에 대해 가능한 이유의 수와 함께 각 상태를 확인합니다. (선택한 시간 프레임의 실행에 나타나는 이유만 표시됩니다.)
- 상태를 선택하여 해당 상태에 대한 나머지 차트를 필터링합니다.
- 차트의 오른쪽 위 모서리에 있는 "선택 영역 지우기" 아이콘("실행 취소" 아이콘처럼 표시됨)을 선택하여 필터를 지웁니다.
- 다음으로 총 규칙 실행 수와 실행된 고유 규칙 수가 있는 이러한 이유의 목록을 참조하세요.
- 이러한 이유로 다음 차트를 필터링할 이유를 선택합니다.
- 차트의 오른쪽 위 모서리에 있는 "선택 영역 지우기" 아이콘("실행 취소" 아이콘처럼 표시됨)을 선택하여 필터를 지웁니다.
- 그 후에는 실행된 고유한 분석 규칙의 목록이며, 최신 결과와 성공 및/또는 실패의 추세선이 나타납니다(목록을 필터링하기 위해 선택한 상태에 따라 다름).
- 드릴다운할 규칙을 선택하고 선택한 시간 프레임에서 해당 규칙의 모든 실행이 포함된 새 테이블을 표시합니다.
- 차트의 오른쪽 위 모서리에 있는 "선택 영역 지우기" 아이콘("실행 취소" 아이콘처럼 표시됨)을 선택하여 해당 테이블을 지웁니다.
- 위의 목록에서 규칙을 선택한 경우 선택한 규칙에 대한 상태 세부 정보와 함께 새 테이블이 표시됩니다.
감사 탭
감사 탭을 사용하면 특정 감사 이벤트로 드릴다운할 수 있습니다.
- 감사 규칙 유형(예약/Fusion)을 기준으로 전체 페이지 데이터를 필터링합니다.
- 선택한 기간 동안 분석 규칙에 대한 감사된 활동의 추세를 참조하세요. 추세 그래프를 "시간 브러시"하여 원래 시간 범위의 하위 집합을 볼 수 있습니다.
- 활동 및 규칙 유형으로 세분화된 감사된 이벤트 수를 참조하세요.
- 활동을 선택하여 해당 활동에 대해 다음 차트를 필터링합니다.
- 차트의 오른쪽 위 모서리에 있는 "선택 영역 지우기" 아이콘("실행 취소" 아이콘처럼 표시됨)을 선택하여 필터를 지웁니다.
- 규칙 이름별로 감사된 이벤트 수를 참조하세요.
- 규칙 이름을 선택하여 해당 규칙에 대해 다음 테이블을 필터링하고 해당 규칙의 모든 작업이 있는 새 테이블을 드릴다운하고 표시합니다(선택한 시간 프레임). (다음 스크린샷 이후 부분을 참조하세요.)
- 차트의 오른쪽 위 모서리에 있는 "선택 영역 지우기" 아이콘("실행 취소" 아이콘처럼 표시됨)을 선택하여 필터를 지웁니다.
- 호출자가 감사한 이벤트 수(활동을 수행한 ID)를 참조하세요.
- 위에 표시된 차트에서 규칙 이름을 선택한 경우 해당 규칙의 감사된 활동을 보여주는 다른 테이블이 나타납니다. ExtendedProperties 열에서 링크로 표시되는 값을 선택하여 규칙의 변경 내용을 표시하는 측면 패널을 엽니다.
다음 단계
- Microsoft Sentinel에서 분석 규칙 실행 모니터링 및 최적화.
- Microsoft Sentinel의 감사 및 상태 모니터링에 대해 알아봅니다.
- Microsoft Sentinel에서 감사 및 상태 모니터링 켜기
- 자동화 규칙 및 플레이북의 상태를 모니터링합니다.
- 데이터 커넥터의 상태를 모니터링합니다.
- SentinelHealth 및 SentinelAudit 테이블 스키마에 대한 자세한 내용을 참조하세요.