ASIM(고급 보안 정보 모델) 사용자는 쿼리의 테이블 이름 대신 통합 파서를 사용하여 정규화된 형식으로 데이터를 보고 단일 쿼리에서 스키마와 관련된 모든 데이터를 가져옵니다. 각 통합 파서는 각 원본의 특정 세부 정보를 처리하는 여러 원본별 파서를 사용합니다.
파서가 ASIM 아키텍처에 어떻게 적합한지 이해하려면 ASIM 아키텍처 다이어그램을 참조하세요.
각 통합 파서에서 사용하는 원본별 파서를 관리하여 다음을 수행해야 할 수 있습니다.
통합 파서에 사용자 지정 원본별 파서를 추가합니다.
통합 파서에서 사용하는 기본 제공 원본별 파서를 사용자 지정 원본별 파서로 바꿉니다. 다음을 수행하려는 경우 기본 제공 파서를 교체합니다.
통합 파서에서 기본적으로 사용되는 파서 이외의 기본 제공 파서 버전을 사용합니다.
통합 파서에서 사용하는 원본별 파서의 버전을 유지하여 자동화된 업데이트를 방지합니다.
기본 제공 파서의 수정된 버전을 사용합니다.
예를 들어 파서와 관련된 정보를 보내는 원본을 정의하도록 원본별 파서를 구성합니다.
이 문서에서는 파서 관리를 안내합니다.
필수 구성 요소
이 문서의 절차에서는 모든 원본별 파서가 이미 Microsoft Sentinel 작업 영역에 배포되었다고 가정합니다.
자세한 내용은 ASIM 파서 개발을 참조하세요.
기본 제공 통합 파서 관리
작업 영역 설정
Microsoft Sentinel 사용자는 기본 제공 통합 파서를 편집할 수 없습니다. 대신 다음 메커니즘을 사용하여 기본 제공 통합 파서의 동작을 수정합니다.
원본별 파서 추가를 지원하기 위해 ASIM은 통합 사용자 지정 파서를 사용합니다. 이러한 사용자 지정 파서는 작업 영역에 배포되므로 편집할 수 있습니다. 기본 제공, 통합 파서가 있는 경우 이러한 사용자 지정 파서를 자동으로 선택합니다.
지원되는 모든 스키마에 대해 또는 특정 스키마에 대해 개별적으로 Microsoft Sentinel 작업 영역에 초기, 비어 있는 통합 사용자 지정 파서를 배포할 수 있습니다. 자세한 내용은 Microsoft Sentinel GitHub 리포지토리에서 초기 ASIM 빈 사용자 지정 통합 파서 배포를 참조하세요.
기본 제공 원본별 파서 제외를 지원하기 위해 ASIM은 관심 목록을 사용합니다. Microsoft Sentinel GitHub 리포지토리에서 Microsoft Sentinel 작업 영역에 관심 목록을 배포합니다.
기본 제공 및 사용자 지정 파서의 원본 형식을 정의하기 위해 ASIM은 관심 목록을 사용합니다. Microsoft Sentinel GitHub 리포지토리에서 Microsoft Sentinel 작업 영역에 관심 목록을 배포합니다.
기본 제공 통합 파서에 사용자 지정 파서 추가
사용자 지정 파저를 추가하려면 사용자 지정 통합 파서에 줄을 삽입하여 새 사용자 지정 파서를 참조합니다.
필터링 사용자 지정 파서와 매개 변수가 없는 사용자 지정 파저를 모두 추가해야 합니다. 파서를 편집하는 방법에 대한 자세한 내용은 로그 쿼리 모니터링 Azure 문서 함수를 참조하세요.
추가할 줄의 구문은 각 스키마마다 다릅니다.
| 스키마 | 파서 | 추가할 줄 |
|---|---|---|
| AlertEvent | Im_AlertEventCustom |
_parser_name_ (starttime, endtime, ipaddr_has_any_prefix, hostname_has_any, username_has_any, attacktactics_has_any, attacktechniques_has_any, threatcategory_has_any, alertverdict_has_any, eventseverity_has_any) |
| AuditEvent | Im_AuditEventCustom |
_parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, eventtype_in, eventresult, actorusername_has_any, operation_has_any, object_has_any, newvalue_has_any) |
| 인증 | Im_AuthenticationCustom |
_parser_name_ (starttime, endtime, targetusername_has_any, actorusername_has_any, srcipaddr_has_any_prefix, srchostname_has_any, targetipaddr_has_any_prefix, dvcipaddr_has_any_prefix, dvchostname_has_any, eventtype_in, eventresultdetails_in, eventresult) |
| DhcpEvent | Im_DhcpEventCustom |
_parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, srchostname_has_any, srcusername_has_any, eventresult) |
| Dns | Im_DnsCustom |
_parser_name_ (starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype) |
| FileEvent | Im_FileEventCustom |
_parser_name_ (starttime, endtime, eventtype_in, srcipaddr_has_any_prefix, actorusername_has_any, targetfilepath_has_any, srcfilepath_has_any, hashes_has_any, dvchostname_has_any) |
| NetworkSession | Im_NetworkSessionCustom |
_parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, dstipaddr_has_any_prefix, ipaddr_has_any_prefix, dstportnumber, hostname_has_any, dvcaction, eventresult) |
| ProcessEvent | Im_ProcessEventCustom |
_parser_name_ (starttime, endtime, commandline_has_any, commandline_has_all, commandline_has_any_ip_prefix, actingprocess_has_any, targetprocess_has_any, parentprocess_has_any, targetusername_has, actorusername_has, dvcipaddr_has_any_prefix, dvchostname_has_any, eventtype) |
| RegistryEvent | Im_RegistryEventCustom |
_parser_name_ (starttime, endtime, eventtype_in, actorusername_has_any, registrykey_has_any, registryvalue_has_any, registryvaluedata_has_any, dvchostname_has_any) |
| UserManagement | Im_UserManagementCustom |
_parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, targetusername_has_any, actorusername_has_any, eventtype_in) |
| WebSession | Im_WebSessionCustom |
_parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, ipaddr_has_any_prefix, url_has_any, httpuseragent_has_any, eventresultdetails_in, eventresult) |
이미 파서를 참조하는 통합 사용자 지정 파서에 파서를 추가하는 경우 이전 줄 끝에 쉼표가 추가되었는지 확인합니다.
예를 들어 다음 코드는 를 추가한 후 사용자 지정 통합 파서 를 보여 줍니다 added_parser.
union isfuzzy=true
existing_parser(starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype),
added_parser(starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype)
기본 제공 파서의 수정된 버전 사용
기존 기본 제공 원본별 파서를 수정하려면 다음을 수행합니다.
원래 파서에 따라 사용자 지정 파서 만들기 및 기본 제공 파서에 추가 합니다. 파서의 배포된 작업 영역 버전을 시작점으로 사용할 수 있습니다.
관심 목록에 레코드를
ASim Disabled Parsers추가합니다.CallerContext값을 로Exclude<parser name>정의합니다. 여기서<parser name>는 파서를 제외하려는 통합 파서의 이름입니다.값을 정의합니다
SourceSpecificParser. 여기서<parser name>는 버전 지정자 없이 제외하려는 파서의 이름Exclude<parser name>입니다.
예를 들어 Azure Firewall DNS 파서는 제외하려면 관심 목록에 다음 레코드를 추가합니다.
| CallerContext | SourceSpecificParser |
|---|---|
Exclude_Im_Dns |
Exclude_Im_Dns_AzureFirewall |
기본 제공 파서의 자동화된 업데이트 방지
다음 프로세스를 사용하여 기본 제공 원본별 파서에 대한 자동 업데이트를 방지합니다.
사용하려는 기본 제공 파서 버전(예:
_Im_Dns_AzureFirewallV02)을 사용자 지정 통합 파서에 추가합니다. 자세한 내용은 위에서 기본 제공 통합 파서에 사용자 지정 파서 추가를 참조하세요.기본 제공 파서에 대한 예외를 추가합니다. 예를 들어 자동 업데이트를 완전히 옵트아웃하여 많은 수의 기본 제공 파서를 제외하려는 경우 다음을 추가합니다.
- 에 대한 모든 파서를 제외하기 위해 를 필드로
SourceSpecificParser사용하는 레코드Any입니다CallerContext. - 모든 기본 제공 파서를 제외할 CallerContext 및
SourceSpecificParser필드에 대한 레코드Any입니다.
자세한 내용은 기본 제공 파서의 수정된 버전 사용을 참조하세요.
원본별 파서와 관련된 원본 구성
일부 파서는 파서와 관련된 원본 목록을 업데이트해야 합니다. 예를 들어 Syslog 데이터를 사용하는 파서는 파서와 관련된 Syslog 이벤트를 결정하지 못할 수 있습니다. 이러한 파서는 관심 목록을 사용하여 Sources_by_SourceType 파서와 관련된 정보를 보내는 원본을 결정할 수 있습니다. 이러한 구문 분석의 경우 관심 목록에 각 관련 원본에 대한 레코드를 추가합니다.
-
SourceType필드를 파서 설명서에 지정된 파서별 값으로 설정합니다. -
Source필드를 이벤트에 사용된 원본의 식별자로 설정합니다. 올바른 값을 확인하려면 원래 테이블(예: Syslog)을 쿼리해야 할 수 있습니다.
시스템에 관심 목록이 배포되지 않은 Sources_by_SourceType 경우 Microsoft Sentinel GitHub 리포지토리에서 관심 목록을 Microsoft Sentinel 작업 영역에 배포합니다.
다음 단계
이 문서에서는 ASIM(고급 보안 정보 모델) 파서 관리에 대해 설명합니다.
ASIM 파서에 대해 자세히 알아보세요.
일반적으로 ASIM에 대해 자세히 알아보세요.