分享方式:


管理進階安全性資訊模型 (ASIM) 剖析器 (公開預覽)

進階安全性資訊模型 (ASIM) 使用者在其查詢中會使用統一剖析器 (而不是使用資料表名稱),以正規化格式檢視資料,並在單一查詢中取得與結構描述相關的所有資料。 每個統一剖析器都會使用多個來源特定剖析器來處理各個來源的特定詳細資料。

若要了解剖析器如何融入 ASIM 架構內,請參閱 ASIM 架構圖

您可能需要管理每個統一剖析器所使用的來源特定剖析器,以:

  • 將自訂的來源特定剖析器新增至統一剖析器。

  • 以自訂的來源特定剖析器取代統一剖析器所使用的內建來源特定剖析器。 當您想要執行下列動作時,請取代內建剖析器:

    • 不使用依預設在統一剖析器中使用的版本,而使用不同的內建剖析器版本。

    • 藉由保留統一剖析器所使用的來源特定剖析器版本,來防止自動更新。

    • 使用內建剖析器的修改版本。

  • 設定來源特定的剖析器,例如,定義傳送剖析器相關資訊的來源。

本文會引導您管理剖析器,無論使用內建、統一 ASIM 剖析器還是工作區部署的統一剖析器,全都適用。

重要

ASIM 目前為預覽狀態。 Azure 預覽補充條款 包含適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未發行的版本) 的其他法律條款。

必要條件

本文中的程序假設所有來源特定的剖析器都已部署至您的 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 監視器記錄查詢中的函式文件。

對於每個結構描述,要新增的行適用的語法各不相同:

結構描述 剖析器 要新增的行
DNS Im_DnsCustom _parser_name_ (starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype)
NetworkSession Im_NetworkSessionCustom _parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, dstipaddr_has_any_prefix, dstportnumber, hostname_has_any, dvcaction, eventresult)
WebSession Im_WebSessionCustom _parser_name_ (starttime, endtime, srcipaddr_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)

使用內建剖析器的修改版本

若要修改現有的內建來源特定剖析器:

  1. 根據原始剖析器建立自訂剖析器,並將其新增至內建剖析器。

  2. 將記錄新增至 ASim Disabled Parsers 關注清單。

  3. CallerContext 值定義為 Exclude<parser name>,其中,<parser name> 是排除剖析器的統一剖析器名稱。

  4. 定義 SourceSpecificParserExclude<parser name>,其中,<parser name> 是要排除的剖析器名稱 (不含版本指定名稱)。

例如,若要排除 Azure 防火牆 DNS 剖析器,請將下列記錄新增至關注清單:

CallerContext SourceSpecificParser
Exclude_Im_Dns Exclude_Im_Dns_AzureFirewall

防止自動更新內建剖析器

使用下列程序,防止自動更新內建的來源特定剖析器:

  1. 將您想要使用的內建剖析器版本 (例如 _Im_Dns_AzureFirewallV02) 新增至自訂的統一剖析器。 如需詳細資訊,請參閱上方的將自訂剖析器新增至內建的統一剖析器

  2. 新增內建剖析器的例外狀況。 例如,當您想要完全退出自動更新,因而排除了大量內建剖析器時,請新增:

  • Any 作為 SourceSpecificParser 欄位的記錄,以排除 CallerContext 的所有剖析器。
  • CallerCoNtext 和 SourceSpecificParser 欄位中 Any 的記錄,以排除所有的內建剖析器。

如需詳細資訊,請參閱使用內建剖析器的修改版本

管理工作區部署的統一剖析器

將自訂剖析器新增至工作區部署的統一剖析器

若要新增自訂剖析器,請在工作區部署的統一剖析器中,為 union 陳述式插入一行,以參考新的自訂剖析器。

請務必同時新增篩選自訂剖析器和無參數自訂剖析器。 對於每個結構描述,要新增的行適用的語法各不相同:

結構描述 剖析器 要新增的行
驗證 ImAuthentication _parser_name_ (starttime, endtime, targetusername_has)
DNS ImDns _parser_name_ (starttime, endtime, srcipaddr, domain_has_any,
responsecodename, response_has_ipv4, response_has_any_prefix,
eventtype)
檔案事件 imFileEvent _parser_name_
網路工作階段 imNetworkSession _parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, dstipaddr_has_any_prefix, dstportnumber, url_has_any,
httpuseragent_has_any, hostname_has_any, dvcaction, eventresult)
處理事件 - imProcess
- imProcessCreate
- imProcessTerminate
_parser_name_
登錄事件 imRegistry

_parser_name_
Web 工作階段 imWebSession

_parser_name_ parser (starttime, endtime, srcipaddr_has_any, 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 使用者可以直接修改工作區部署的剖析器。 根據原始剖析器建立剖析器、將原始剖析器註解化,然後將已修改的版本新增至工作區部署的統一剖析器。

例如,下列程式碼會顯示 DNS 篩選的統一剖析器,並將 vimDnsAzureFirewall 剖析器取代為已修改的版本:

  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)

設定與來源特定的剖析器相關的來源

某些剖析器會要求您更新與剖析器相關的來源清單。 例如,使用 Syslog 資料的剖析器可能無法判斷哪些 Syslog 事件與剖析器相關。 這類剖析器可能會使用 Sources_by_SourceType 關注清單來判斷哪些來源會傳送與剖析器相關的資訊。 對於這類剖析,請將每個相關來源的記錄新增至關注清單:

  • SourceType 欄位設定為剖析器文件中指定的剖析器特定值。
  • Source 欄位設定為事件中使用的來源識別碼。 您可能需要查詢原始資料表 (例如 Syslog) 以判斷正確的值。

如果您的系統未部署 Sources_by_SourceType 關注清單,請從 Microsoft Sentinel GitHub 存放庫將關注清單部署至 Microsoft Sentinel 工作區。

下一步

本文討論如何管理進階安全性資訊模型 (ASIM) 剖析器。

深入了解 ASIM 剖析器:

整體而深入地了解 ASIM: