ASIM(고급 보안 정보 모델)을 사용하도록 콘텐츠 수정(퍼블릭 미리 보기)

Microsoft Sentinel의 정규화된 보안 콘텐츠에는 통합 정규화 파서에서 작동하는 분석 규칙, 헌팅 쿼리, 통합 문서가 포함됩니다.

Microsoft Sentinel 갤러리 및 솔루션에서 정규화된 기본 제공 콘텐츠를 찾거나, 정규화된 고유 콘텐츠를 만들거나, 정규화된 데이터를 사용하도록 기존 사용자 지정 콘텐츠를 수정할 수 있습니다.

이 문서에서는 ASIM(고급 보안 정보 모델)으로 정규화된 데이터를 사용하도록 기존 Microsoft Sentinel 분석 규칙을 변환하는 방법을 설명합니다.

정규화된 콘텐츠를 ASIM 아키텍처에 맞추는 방법을 이해하려면 ASIM 아키텍처 다이어그램을 참조하세요.

또한 Microsoft Sentinel 정규화 파서 및 정규화된 콘텐츠에 대한 심층 분석 웨비나를 시청하거나 슬라이드를 검토합니다. 자세한 내용은 다음 단계를 참조하세요.

Important

ASIM은 현재 미리 보기 상태입니다. Azure Preview 추가 약관에는 베타, 미리 보기 또는 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 추가 법률 용어가 포함되어 있습니다.

정규화를 사용하도록 사용자 지정 콘텐츠 수정

사용자 지정 Microsoft Sentinel 콘텐츠가 정규화를 사용할 수 있도록 하려면 다음을 수행합니다.

  • 쿼리와 관련된 통합 파서를 사용하도록 쿼리를 수정합니다.

  • 정규화된 스키마 필드 이름을 사용하도록 쿼리의 필드 이름을 수정합니다.

  • 해당하는 경우 쿼리에서 필드의 정규화된 값을 사용하도록 조건을 변경합니다.

분석 규칙에 대한 샘플 정규화

예를 들어 Infoblox DNS 서버에서 보내는 DNS 이벤트에서 작동하는 역방향 DNS 조회 횟수가 높은 DNS 분석 규칙으로 관찰되는 드문 클라이언트를 살펴보겠습니다.

let threshold = 200;
InfobloxNIOS
| where ProcessName =~ "named" and Log_Type =~ "client"
| where isnotempty(ResponseCode)
| where ResponseCode =~ "NXDOMAIN"
| summarize count() by Client_IP, bin(TimeGenerated,15m)
| where count_ > threshold
| join kind=inner (InfobloxNIOS
    | where ProcessName =~ "named" and Log_Type =~ "client"
    | where isnotempty(ResponseCode)
    | where ResponseCode =~ "NXDOMAIN"
    ) on Client_IP
| extend timestamp = TimeGenerated, IPCustomEntity = Client_IP

다음 코드는 정규화를 사용하여 DNS 쿼리 이벤트를 제공하는 모든 원본에 대해 동일한 검색을 제공하는 원본 중립적 버전입니다. 다음 예제에서는 기본 제공 ASIM 파서를 사용합니다.

_Im_Dns(responsecodename='NXDOMAIN')
| summarize count() by SrcIpAddr, bin(TimeGenerated,15m)
| where count_ > threshold
| join kind=inner (imDns(responsecodename='NXDOMAIN')) on SrcIpAddr
| extend timestamp = TimeGenerated, IPCustomEntity = SrcIpAddr

작업 영역 배포 ASIM 파서를 사용하려면 첫 번째 줄을 다음 코드로 바꿉니다.

imDns(responsecodename='NXDOMAIN')

기본 제공 파서와 작업 영역 배포 파서 간 차이점

예제의 두 옵션은 기능이 동일합니다. 정규화된 소스에 구애받지 않은 버전은 다음과 같은 차이점이 있습니다.

  • _Im_Dns 또는 imDns 정규화된 파서가 Infoblox 파서 대신 사용됩니다.

  • 정규화된 파서는 DNS 쿼리 이벤트만 가져오므로 Infoblox 버전의 where ProcessName =~ "named" and Log_Type =~ "client"가 수행하는 것처럼 이벤트 유형을 확인할 필요가 없습니다.

  • SrcIpAddr 필드가 Client_IP 대신 사용됩니다.

  • ResponseCodeName에 대해 파서 매개 변수 필터링이 사용되므로 명시적 where 절이 필요하지 않습니다.

참고 항목

정규화된 DNS 원본을 지원하는 것 외에도 정규화된 버전은 더 짧고 이해하기 쉽습니다.

스키마 또는 파서가 필터링 매개 변수를 지원하지 않는 경우 원본 쿼리의 필터링 조건이 유지된다는 점을 제외하고 변경 내용은 유사합니다. 예시:

let threshold = 200;
imDns
| where isnotempty(ResponseCodeName)
| where ResponseCodeName =~ "NXDOMAIN"
| summarize count() by SrcIpAddr, bin(TimeGenerated,15m)
| where count_ > threshold
| join kind=inner (imDns
    | where isnotempty(ResponseCodeName)
    | where ResponseCodeName =~ "NXDOMAIN"
    ) on SrcIpAddr
| extend timestamp = TimeGenerated, IPCustomEntity = SrcIpAddr

다음 단계

이 문서에서는 ASIM(고급 보안 정보 모델) 콘텐츠에 대해 설명합니다.

자세한 내용은 다음을 참조하세요.