高度なセキュリティ情報モデル (ASIM) ユーザーは、クエリでテーブル名ではなく 統合パーサーを 使用して、正規化された形式でデータを表示し、スキーマに関連するすべてのデータを 1 つのクエリで取得します。 各統合パーサーでは、各ソースの特定の詳細を処理する複数のソース固有のパーサーが使用されます。
パーサがASIMアーキテクチャ内でどのように位置づけられるかを理解するには、 ASIMアーキテクチャ図のASIMコンポーネントセクションを参照してください。
各統合パーサーで使用されるソース固有のパーサーを、次の目的で管理する必要がある場合があります。
統合パーサーに、ソース固有のカスタム パーサーを追加します。
統合パーサーによって使用される組み込みのソース固有パーサーを、カスタムのソース固有パーサーに置き換えます。 組み込みパーサーを置き換えるのは、次のような場合です。
統合パーサーで既定で使用されるパーサー以外の組み込みパーサーのバージョンを使用します。
統合パーサーで使用されるソース固有のパーサーのバージョンを保持することで、自動更新を防止します。
組み込みパーサーの変更されたバージョンを使用します。
ソース固有のパーサーを構成します。たとえば、パーサーに関連する情報を送信するソースを定義します。
この記事では、パーサーを統合することによって使用されるソース固有のパーサーを管理する手順について説明します。
前提条件
この記事の手順では、ソース固有のすべてのパーサーが既に Microsoft Sentinel ワークスペースにデプロイされていることを前提としています。
展開手順については、「 Develop ASIM parsers」の「Deploy parsers」セクションをご覧ください。
組み込みの統合パーサーを管理する
組み込みの統合パーサーは直接編集できないため、カスタム統合パーサーをデプロイし、ソース固有のパーサーを追加または除外し、ウォッチリストを使用してパーサーの動作を制御することで、パーサーを管理します。
ワークスペースを設定する
Microsoft Sentinelユーザーは組み込みの統合パーサーを編集できません。 代わりに、次のメカニズムを使用して、組み込みの統合パーサーの動作を変更します。
ソース固有のパーサーの追加をサポートするために、ASIM では統合カスタム パーサーが使用されます。 これらのカスタム パーサーはワークスペースにデプロイされるため、編集可能です。 組み込みの統合パーサーは、これらのカスタム パーサーが存在する場合、自動的にそれらを認識します。
サポートされているすべてのスキーマ向け、または特定のスキーマごとに個別に、初期状態の空の統合用カスタム パーサーを Microsoft Sentinel ワークスペースにデプロイできます。 詳細については、「Microsoft Sentinel GitHub リポジトリに初期 ASIM 空のカスタム統合パーサーをデプロイする」を参照してください。
組み込みのソース固有パーサーの除外をサポートするために、ASIM はウォッチリストを使用します。 GitHubの Microsoft Sentinel ASIM ウォッチリスト デプロイ テンプレートからMicrosoft Sentinel ワークスペースにウォッチリストをデプロイします。
組み込みパーサーとカスタム パーサーのソースの種類を定義するために、ASIM はウォッチリストを使用します。 GitHubの Microsoft Sentinel ASIM ウォッチリスト デプロイ テンプレートから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)
組み込みパーサーの変更されたバージョンを使用する
既存の組み込みのソース固有パーサーを変更するには:
元のパーサーに基づいてカスタム パーサーを作成し、 組み込みの統合パーサーにカスタム パーサーを追加します。 ワークスペースでデプロイされた ASIM パーサー バージョンのパーサーを開始点として使用できます。
レコードを
ASim Disabled Parsersウォッチリストに追加します。CallerContext値をExclude<parser name>として定義します。ここで、<parser name>はパーサーを除外する統合パーサーの名前です。SourceSpecificParser値Exclude<parser name>を定義します。ここで、<parser name>は、バージョン指定子を指定せずに、除外するパーサーの名前です。
たとえば、Azure Firewall DNS パーサーを除外するには、ウォッチリストに次のレコードを追加します。
| CallerContext | SourceSpecificParser |
|---|---|
Exclude_Im_Dns |
Exclude_Im_Dns_AzureFirewall |
組み込みパーサーの自動更新を防止する
組み込みのソース固有パーサーを特定のバージョンにピン留めし、自動更新を防止するには、次の手順を実行します。
_Im_Dns_AzureFirewallV02など、使用する組み込みのパーサー バージョンをカスタム統合パーサーに追加します。 詳細については、「 組み込みの統合パーサーにカスタム パーサーを追加する」を参照してください。組み込みパーサーの例外を追加します。 たとえば、自動更新から完全にオプトアウトし、多数の組み込みパーサーを除外する場合は、次のように追加します。
-
AnyフィールドにSourceSpecificParserを持ち、CallerContextのすべてのパーサーを除外するレコード。 - 組み込みパーサーをすべて除外するための、CallerContext の
AnyとSourceSpecificParserフィールド内のレコード。
ウォッチリストを使った組み込みパーサーの除外については、「 組み込みパーサーの修正版を使用する 」セクションを参照してください。
ソース固有のパーサーに関連するソースを構成する
一部のパーサーでは、パーサーに関連するソースの一覧を更新する必要があります。 たとえば、Syslog データを使用するパーサーでは、パーサーに関連する Syslog イベントを特定できない場合があります。 このようなパーサーは、 Sources_by_SourceType ウォッチリストを使用して、パーサーに関連する情報を送信するソースを決定できます。 このような解析では、関連する各ソースのレコードをウォッチリストに追加します。
-
SourceTypeフィールドを、パーサー ドキュメントで指定されたパーサー固有の値に設定します。 -
Sourceフィールドを、イベントで使用されるソースの識別子に設定します。 Syslog などの元のテーブルに対してクエリを実行して、正しい値を判断する必要がある場合があります。
Sources_by_SourceTypeウォッチリストがシステムにデプロイされていない場合は、GitHubの ASIM ウォッチリストデプロイ テンプレートからMicrosoft Sentinel ワークスペースにウォッチリストをデプロイします。
関連コンテンツ
ASIM パーサーの詳細については、以下を参照してください。
一般的な ASIM の詳細については、次を参照してください。