Share via


인시던트 메트릭을 사용하여 SOC를 효율적으로 관리

참고 항목

US Government 클라우드의 기능 가용성에 대한 자세한 내용은 US Government 고객을 위한 클라우드 기능 가용성의 Microsoft Sentinel 표를 참조하세요.

SOC(보안 운영 센터) 관리자는 팀의 성과를 측정하기 위해 전체 효율성 메트릭과 측정값을 손쉽게 유지할 수 있어야 합니다. 심각도, MITRE 전술, 평균 심사 시간, 평균 해결 시간 등과 같은 다양한 기준으로 시간에 따른 인시던트 작업을 확인해야 할 것입니다. 이제 Microsoft Sentinel은 Log Analytics의 새 SecurityIncident 테이블 및 스키마와 함께 제공되는 보안 작업 효율성 통합 문서를 통해 이 데이터를 사용할 수 있습니다. 시간에 따른 팀의 성과를 시각화하고 이 인사이트를 사용하여 효율성을 향상시킬 수 있습니다. 인시던트 테이블에 대해 고유한 KQL 쿼리를 작성 및 사용하여 특정 감사 요구 사항 및 KPI에 맞는 사용자 지정 통합 문서를 만들 수도 있습니다.

보안 인시던트 테이블 사용

SecurityIncident 테이블은 Microsoft Sentinel에 기본 제공됩니다. 이 테이블은 로그 아래에 있는 SecurityInsights 컬렉션의 다른 테이블과 함께 찾을 수 있습니다. Log Analytics의 다른 테이블처럼 쿼리할 수 있습니다.

Security incidents table

인시던트를 생성 또는 업데이트할 때마다 테이블에 새 로그 항목이 추가됩니다. 이렇게 하면 인시던트 변경 내용을 추적하고 훨씬 더 강력한 SOC 메트릭을 사용할 수 있습니다. 하지만 인시던트에 대한 중복 항목을 제거해야 할 수도 있으므로(실행 중인 정확한 쿼리에 따라 달라짐), 이 테이블에 대한 쿼리를 생성할 때 이 점을 염두에 두어야 합니다.

예를 들어, 인시던트 번호로 정렬된 모든 인시던트 목록을 반환하려고 할 때 인시던트당 가장 최근 로그만 반환하려는 경우, 다음 arg_max()집계 함수와 함께 KQL summarize 연산자를 사용하여 이 작업을 수행할 수 있습니다.

SecurityIncident
| summarize arg_max(LastModifiedTime, *) by IncidentNumber

추가 샘플 쿼리

인시던트 상태 - 지정된 시간 프레임의 상태 및 심각도별 모든 인시던트:

let startTime = ago(14d);
let endTime = now();
SecurityIncident
| where TimeGenerated >= startTime
| summarize arg_max(TimeGenerated, *) by IncidentNumber
| where LastModifiedTime  between (startTime .. endTime)
| where Status in  ('New', 'Active', 'Closed')
| where Severity in ('High','Medium','Low', 'Informational')

백분위수별 클로저 시간:

SecurityIncident
| summarize arg_max(TimeGenerated,*) by IncidentNumber 
| extend TimeToClosure =  (ClosedTime - CreatedTime)/1h
| summarize 5th_Percentile=percentile(TimeToClosure, 5),50th_Percentile=percentile(TimeToClosure, 50), 
  90th_Percentile=percentile(TimeToClosure, 90),99th_Percentile=percentile(TimeToClosure, 99)

백분위수별 심사 시간:

SecurityIncident
| summarize arg_max(TimeGenerated,*) by IncidentNumber 
| extend TimeToTriage =  (FirstModifiedTime - CreatedTime)/1h
| summarize 5th_Percentile=max_of(percentile(TimeToTriage, 5),0),50th_Percentile=percentile(TimeToTriage, 50), 
  90th_Percentile=percentile(TimeToTriage, 90),99th_Percentile=percentile(TimeToTriage, 99) 

보안 작업 효율성 통합 문서

SecurityIncidents 테이블을 보완 하기 위해, SOC 작업을 모니터링 하는 데 사용할 수 있는 뛰어난 보안 작업 효율성 통합 문서 템플릿을 제공 했습니다. 통합 문서에는 다음 메트릭이 포함되어 있습니다.

  • 시간에 따라 생성된 인시던트
  • 종료 분류, 심각도, 소유자, 상태별로 생성된 인시던트
  • 평균 심사 시간
  • 평균 종료 시간
  • 시간에 따라 심각도, 소유자, 상태, 제품, 전략별로 생성된 인시던트
  • 심사 시간 백분위
  • 종료 시간 백분위
  • 소유자 당 평균 심사 시간
  • 최근 활동
  • 최근 종료 분류

Microsoft Sentinel 탐색 메뉴에서 통합 문서를 선택하고, 템플릿 탭을 선택하여 이 새로운 통합 문서 템플릿을 찾을 수 있습니다. 갤러리에서 보안 작업 효율성을 선택하고, 저장된 통합 문서 보기템플릿 보기 단추 중 하나를 클릭합니다.

Security incidents workbook gallery

Security incidents workbook complete

템플릿을 사용하여 특정 요구 사항에 맞게 사용자 고유의 사용자 지정 통합 문서를 만들 수 있습니다.

SecurityIncidents 스키마

스키마의 데이터 모델

필드 데이터 형식 설명
AdditionalData dynamic 경고 개수, 책갈피 수, 주석 수, 경고 제품 이름 및 전술
AlertIds dynamic 인시던트가 생성된 경고
BookmarkIds dynamic 책갈피를 추가한 엔터티
분류 string 인시던트 종료 분류
ClassificationComment string 인시던트 종료 분류 주석
ClassificationReason string 인시던트 종료 분류 이유
ClosedTime 날짜/시간 인시던트가 마지막으로 종결된 시점의 타임스탬프(UTC)
설명 dynamic 인시던트 설명
CreatedTime 날짜/시간 인시던트가 생성된 시점의 타임스탬프(UTC)
설명 string 인시던트 설명
FirstActivityTime 날짜/시간 첫 번째 이벤트 시간
FirstModifiedTime 날짜/시간 인시던트가 처음 수정된 시점의 타임스탬프(UTC)
IncidentName string 내부 GUID
IncidentNumber int
IncidentUrl string 인시던트에 연결
레이블 dynamic 태그
LastActivityTime 날짜/시간 마지막 이벤트 시간
LastModifiedTime 날짜/시간 인시던트가 마지막으로 수정된 시점의 타임스탬프(UTC)
(현재 레코드에서 설명하는 수정 내용)
ModifiedBy string 인시던트를 수정한 사용자 또는 시스템
담당자 dynamic
RelatedAnalyticRuleIds dynamic 인시던트의 경고가 트리거된 규칙
심각도 string 인시던트의 심각도(높음/보통/낮음/정보)
SourceSystem string 상수('Azure')
상태 string
TenantId string
TimeGenerated 날짜/시간 현재 레코드를 만든 시점의 타임스탬프(UTC)
(인시던트 수정 시)
타이틀 string
Type string 상수('SecurityIncident')

다음 단계