배포된 작업 영역 ASIM(고급 보안 정보 모델) 파서는 ASIM 파서 개발 및 수정을 지원하는 데 사용됩니다.
작업 영역 파서 배포
ASIM은 ARM 템플릿을 사용하여 GitHub의 특정 작업 영역에 파서를 배포하는 것도 지원합니다. 배포된 작업 영역 파서는 ASIM 파서 개발 및 관리에 사용됩니다. 배포된 작업 영역 파서는 기능적으로 동일하지만 명명 규칙이 약간 다르기 때문에 두 파서 집합이 동일한 Microsoft Sentinel 작업 영역에서 기본 제공 파서와 공존할 수 있습니다.
ASIM 콘텐츠를 개발할 때 기본 제공 파서를 사용하는 것이 좋습니다. 작업 영역 배포 파서는 일반적으로 파서 개발 프로세스 중에 사용되거나 파서 관리에 설명된 대로 수정된 버전의 기본 제공 파서를 제공하는 데 사용됩니다.
작업 영역 파서 사용
쿼리에서 작업 영역 파서를 사용하는 경우 통합 파서 이름은 입니다. 여기서 <schema> 은 im<schema>서비스하는 특정 스키마를 나타냅니다.
다음 표에는 사용 가능한 통합 파서가 나와 있습니다.
| 스키마 | 파서 통합 |
|---|---|
| 경고 이벤트 | imAlertEvent |
| 감사 이벤트 | imAuditEvent |
| 인증 | imAuthentication |
| DHCP 이벤트 | imDhcpEvent |
| Dns | imDns |
| 파일 이벤트 | imFileEvent |
| 네트워크 세션 | imNetworkSession |
| 프로세스 이벤트 | imProcess만들기 imProcessTerminate |
| 레지스트리 이벤트 | imRegistry |
| 사용자 관리 | imUserManagement |
| 웹 세션 | imWebSession |
작업 영역 배포 통합 파서 관리
작업 영역 배포 통합 파서에 사용자 지정 파서 추가
사용자 지정 파서를 추가하려면 새 사용자 지정 파서를 참조하는 union 작업 영역 배포 통합 파서의 문에 줄을 삽입합니다.
필터링 사용자 지정 파서와 매개 변수가 없는 사용자 지정 파저를 모두 추가해야 합니다. 추가할 줄의 구문은 각 스키마마다 다릅니다.
| 스키마 | 파서 | 추가할 줄 |
|---|---|---|
| AlertEvent | imAlertEvent |
_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 | imAuditEvent |
_parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, eventtype_in, eventresult, actorusername_has_any, operation_has_any, object_has_any, newvalue_has_any) |
| 인증 | imAuthentication |
_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 | imDhcpEvent |
_parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, srchostname_has_any, srcusername_has_any, eventresult) |
| Dns | imDns |
_parser_name_ (starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype) |
| FileEvent | imFileEvent |
_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 | imNetworkSession |
_parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, dstipaddr_has_any_prefix, ipaddr_has_any_prefix, dstportnumber, hostname_has_any, dvcaction, eventresult) |
| ProcessEvent |
imProcessCreate, imProcessTerminate |
_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 | imRegistry |
_parser_name_ (starttime, endtime, eventtype_in, actorusername_has_any, registrykey_has_any, registryvalue_has_any, registryvaluedata_has_any, dvchostname_has_any) |
| UserManagement | imUserManagement |
_parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, targetusername_has_any, actorusername_has_any, eventtype_in) |
| WebSession | imWebSession |
_parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, ipaddr_has_any_prefix, url_has_any, httpuseragent_has_any, eventresultdetails_in, eventresult) |
통합 파서에 파서 추가를 추가할 때 이전 줄 끝에 쉼표가 추가되었는지 확인합니다.
예를 들어 다음 예제에서는 사용자 지정 added_parser를 추가한 후 DNS 필터링 통합 파서 를 보여 줍니다.
let Generic=(starttime:datetime=datetime(null), endtime:datetime=datetime(null) , srcipaddr:string='*' , domain_has_any:dynamic=dynamic([]) , responsecodename:string='*', response_has_ipv4:string='*' , response_has_any_prefix:dynamic=dynamic([]) , eventtype:string='lookup' ){
let DisabledParsers=materialize(_GetWatchlist('ASimDisabledParsers') | where SearchKey in ('Any', 'imDns') | extend SourceSpecificParser=column_ifexists('SourceSpecificParser','') | distinct SourceSpecificParser);
let imDnsBuiltInDisabled=toscalar('imDnsBuiltIn' in (DisabledParsers) or 'Any' in (DisabledParsers));
union isfuzzy=true
vimDnsEmpty
, vimDnsCiscoUmbrella ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsCiscoUmbrella' in (DisabledParsers) )))
, vimDnsInfobloxNIOS ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsInfobloxNIOS' in (DisabledParsers) )))
...
, vimDnsAzureFirewall ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsAzureFirewall' in (DisabledParsers) )))
, vimDnsMicrosoftNXlog ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsMicrosoftNXlog' in (DisabledParsers) ))),
added_parser ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype)
};
Generic( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype)
작업 영역 배포 파서의 수정된 버전 사용
Microsoft Sentinel 사용자는 작업 영역 배포 파서를 직접 수정할 수 있습니다. 원본을 기반으로 파서 만들기, 원본 주석 처리, 작업 영역 배포 통합 파서에 수정된 버전을 추가합니다.
예를 들어 다음 코드는 파서가 수정된 버전으로 대체된 vimDnsAzureFirewall DNS 필터링 통합 파서입니다.
let Generic=(starttime:datetime=datetime(null), endtime:datetime=datetime(null) , srcipaddr:string='*' , domain_has_any:dynamic=dynamic([]) , responsecodename:string='*', response_has_ipv4:string='*' , response_has_any_prefix:dynamic=dynamic([]) , eventtype:string='lookup' ){
let DisabledParsers=materialize(_GetWatchlist('ASimDisabledParsers') | where SearchKey in ('Any', 'imDns') | extend SourceSpecificParser=column_ifexists('SourceSpecificParser','') | distinct SourceSpecificParser);
let imDnsBuiltInDisabled=toscalar('imDnsBuiltIn' in (DisabledParsers) or 'Any' in (DisabledParsers));
union isfuzzy=true
vimDnsEmpty
, vimDnsCiscoUmbrella ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsCiscoUmbrella' in (DisabledParsers) )))
, vimDnsInfobloxNIOS ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsInfobloxNIOS' in (DisabledParsers) )))
...
// , vimDnsAzureFirewall ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsAzureFirewall' in (DisabledParsers) )))
, vimDnsMicrosoftNXlog ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsMicrosoftNXlog' in (DisabledParsers) ))),
modified_vimDnsAzureFirewall ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype)
};
Generic( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype)
관련 콘텐츠
자세한 내용은 다음 항목을 참조하세요.