高度なセキュリティ情報モデル (ASIM) パーサーを管理する

高度なセキュリティ情報モデル (ASIM) ユーザーは、クエリでテーブル名ではなく 統合パーサーを 使用して、正規化された形式でデータを表示し、スキーマに関連するすべてのデータを 1 つのクエリで取得します。 各統合パーサーでは、各ソースの特定の詳細を処理する複数のソース固有のパーサーが使用されます。

パーサがASIMアーキテクチャ内でどのように位置づけられるかを理解するには、 ASIMアーキテクチャ図のASIMコンポーネントセクションを参照してください。

各統合パーサーで使用されるソース固有のパーサーを、次の目的で管理する必要がある場合があります。

  • 統合パーサーに、ソース固有のカスタム パーサーを追加します。

  • 統合パーサーによって使用される組み込みのソース固有パーサーを、カスタムのソース固有パーサーに置き換えます。 組み込みパーサーを置き換えるのは、次のような場合です。

    • 統合パーサーで既定で使用されるパーサー以外の組み込みパーサーのバージョンを使用します。

    • 統合パーサーで使用されるソース固有のパーサーのバージョンを保持することで、自動更新を防止します。

    • 組み込みパーサーの変更されたバージョンを使用します。

  • ソース固有のパーサーを構成します。たとえば、パーサーに関連する情報を送信するソースを定義します。

この記事では、パーサーを統合することによって使用されるソース固有のパーサーを管理する手順について説明します。

前提条件

この記事の手順では、ソース固有のすべてのパーサーが既に Microsoft Sentinel ワークスペースにデプロイされていることを前提としています。

展開手順については、「 Develop ASIM parsers」の「Deploy parsers」セクションをご覧ください。

組み込みの統合パーサーを管理する

組み込みの統合パーサーは直接編集できないため、カスタム統合パーサーをデプロイし、ソース固有のパーサーを追加または除外し、ウォッチリストを使用してパーサーの動作を制御することで、パーサーを管理します。

ワークスペースを設定する

Microsoft Sentinelユーザーは組み込みの統合パーサーを編集できません。 代わりに、次のメカニズムを使用して、組み込みの統合パーサーの動作を変更します。

組み込みの統合パーサーにカスタム パーサーを追加する

カスタム パーサーを追加するには、カスタム統合パーサーに行を挿入して、新しいカスタム パーサーを参照します。

フィルタリングのカスタムパーサー(フィルタリングパラメータを受け入れてパフォーマンスを最適化するもの)と、パラメータレスのカスタムパーサー(フィルタリングパラメータなしですべての結果を返すもの)の両方を追加してください。 パーサーを編集する方法の詳細については、「ログ クエリの監視Azure関数」を参照してください。

追加する行の構文は、スキーマごとに異なります。

スキーマ パーサー 追加する行
アラートイベント 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)
レジストリ イベント Im_RegistryEventCustom _parser_name_ (starttime, endtime, eventtype_in, actorusername_has_any, registrykey_has_any, registryvalue_has_any, registryvaluedata_has_any, dvchostname_has_any)
ユーザー管理 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文は既存と新しいカスタムパーサーの両方の結果を組み合わせ、両者が正規化出力に寄与しつつ、わずかなスキーマの違いを許容します。

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. 元のパーサーに基づいてカスタム パーサーを作成し、 組み込みの統合パーサーにカスタム パーサーを追加しますワークスペースでデプロイされた ASIM パーサー バージョンのパーサーを開始点として使用できます。

  2. レコードを ASim Disabled Parsers ウォッチリストに追加します。

  3. CallerContext値をExclude<parser name>として定義します。ここで、<parser name>はパーサーを除外する統合パーサーの名前です。

  4. SourceSpecificParserExclude<parser name>を定義します。ここで、<parser name>は、バージョン指定子を指定せずに、除外するパーサーの名前です。

たとえば、Azure Firewall DNS パーサーを除外するには、ウォッチリストに次のレコードを追加します。

CallerContext SourceSpecificParser
Exclude_Im_Dns Exclude_Im_Dns_AzureFirewall

組み込みパーサーの自動更新を防止する

組み込みのソース固有パーサーを特定のバージョンにピン留めし、自動更新を防止するには、次の手順を実行します。

  1. _Im_Dns_AzureFirewallV02など、使用する組み込みのパーサー バージョンをカスタム統合パーサーに追加します。 詳細については、「 組み込みの統合パーサーにカスタム パーサーを追加する」を参照してください。

  2. 組み込みパーサーの例外を追加します。 たとえば、自動更新から完全にオプトアウトし、多数の組み込みパーサーを除外する場合は、次のように追加します。

  • Any フィールドに SourceSpecificParser を持ち、CallerContext のすべてのパーサーを除外するレコード。
  • 組み込みパーサーをすべて除外するための、CallerContext の AnySourceSpecificParser フィールド内のレコード。

ウォッチリストを使った組み込みパーサーの除外については、「 組み込みパーサーの修正版を使用する 」セクションを参照してください。

ソース固有のパーサーに関連するソースを構成する

一部のパーサーでは、パーサーに関連するソースの一覧を更新する必要があります。 たとえば、Syslog データを使用するパーサーでは、パーサーに関連する Syslog イベントを特定できない場合があります。 このようなパーサーは、 Sources_by_SourceType ウォッチリストを使用して、パーサーに関連する情報を送信するソースを決定できます。 このような解析では、関連する各ソースのレコードをウォッチリストに追加します。

  • SourceType フィールドを、パーサー ドキュメントで指定されたパーサー固有の値に設定します。
  • Source フィールドを、イベントで使用されるソースの識別子に設定します。 Syslog などの元のテーブルに対してクエリを実行して、正しい値を判断する必要がある場合があります。

Sources_by_SourceTypeウォッチリストがシステムにデプロイされていない場合は、GitHubの ASIM ウォッチリストデプロイ テンプレートからMicrosoft Sentinel ワークスペースにウォッチリストをデプロイします。

ASIM パーサーの詳細については、以下を参照してください。

一般的な ASIM の詳細については、次を参照してください。