次の方法で共有


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

Advanced Security Information Model (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 Monitor ログ クエリでの関数に関する記事を参照してください。

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

スキーマ パーサー 追加する行
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)
Authentication 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)
ユーザー管理 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)

組み込みパーサーの修正バージョンを使用する

既存の組み込みのソース固有のパーサーを修正するには:

  1. オリジナルのパーサーに基づいてカスタム パーサーを作成し、それを組み込みパーサーに追加します。 ワークスペースでデプロイされたバージョンのパーサーを開始点として使用できます。

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

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

  4. SourceSpecificParser 値を Exclude<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 および Any フィールド内の SourceSpecificParser に関するレコード。

詳細については、「組み込みパーサーの修正バージョンを使用する」を参照してください。

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

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

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

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

次のステップ

この記事では、Advanced Security Information Model (ASIM) パーサーの管理について説明します。

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

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