高度なセキュリティ情報モデル (ASIM) Web セッション正規化スキーマ リファレンス

Web セッション正規化スキーマは、IP ネットワーク アクティビティを記述するために使用されます。 たとえば、IP ネットワーク アクティビティは、Web サーバー、Web プロキシ、Web セキュリティ ゲートウェイによって報告されます。

Microsoft Sentinelでの正規化の詳細については、「正規化と高度なセキュリティ情報モデル (ASIM)」を参照してください。

スキーマの概要

Web セッション正規化スキーマは HTTP ネットワーク セッションを表し、次のような一般的なソースの種類をサポートするのに適しています。

  • Web サーバー
  • Web プロキシ
  • Web セキュリティ ゲートウェイ

ASIM Web セッション スキーマは、HTTP および HTTPS プロトコル アクティビティを表します。 スキーマはプロトコル アクティビティを表すので、RFC と正式に割り当てられたパラメーター リストによって管理されます。このパラメーター リストは、必要に応じてこの記事で参照されます。

Web セッション スキーマは、ソース デバイスからの監査イベントを表しません。 たとえば、Web Security Gateway ポリシーを変更するイベントを Web セッション スキーマで表すことはできません。

HTTP セッションは、TCP/IP を基になるネットワーク層セッションとして利用するアプリケーション層セッションであるため、Web セッション スキーマは ASIM ネットワーク セッション スキーマのスーパー セットです。

Web セッション スキーマの最も重要なフィールドは次のとおりです。

  • クライアントがサーバーから要求した URL を報告する URL。
  • SrcIpAddr (IpAddr にエイリアス付き) は、要求の生成元の IP アドレスを表します。
  • EventResultDetails フィールド。通常は HTTP 状態コードを報告します。

Web セッション イベントには、 ユーザー と要求を開始する プロセス のユーザーとプロセスの情報も含まれる場合があります。

パーサー

ASIM パーサーの詳細については、 ASIM パーサーの概要に関するページを参照してください。

パーサーの統合

すべての ASIM アウト オブ ザ ボックス パーサーを統合し、構成されているすべてのソースで分析が実行されるようにするパーサーを使用するには、 _Im_WebSession パーサーを使用します。

すぐに使用するソース固有のパーサー

すぐに使用できる Web セッション パーサー Microsoft Sentinelの一覧については、ASIM パーサーの一覧を参照してください。

独自の正規化されたパーサーを追加する

Web セッション情報モデルにカスタム パーサーを実装する場合は、次の構文を使用して KQL 関数に名前を付けます。

  • vimWebSession<vendor><Product> パラメーター化されたパーサーの場合
  • ASimWebSession<vendor><Product> 通常のパーサーの場合

パーサー パラメーターのフィルター処理

im および vim* パーサーでは、フィルター 処理パラメーターがサポートされています。 これらのパーサーは省略可能ですが、クエリのパフォーマンスを向上させることができます。

次のフィルター パラメーターを使用できます。

名前 説明
starttime 日付型 この時刻以降に 開始 された Web セッションのみをフィルター処理します。 このパラメーターは、EventStartTime フィールドと EventEndTime フィールドのパーサー固有のマッピングに関係なく、イベントの時刻の標準指定子である TimeGenerated フィールドでフィルター処理します。
endtime 日付型 この時刻以前に実行を 開始 した Web セッションのみをフィルター処理します。 このパラメーターは、EventStartTime フィールドと EventEndTime フィールドのパーサー固有のマッピングに関係なく、イベントの時刻の標準指定子である TimeGenerated フィールドでフィルター処理します。
srcipaddr_has_any_prefix 動的 ソース IP アドレス フィールド プレフィックスが一覧表示されている値のいずれかに含まれる Web セッションのみをフィルター処理します。 値の一覧には、IP アドレスと IP アドレス プレフィックスを含めることができます。 プレフィックスは、 .で終わる必要があります (例: 10.0.)。 リストの長さは 10,000 項目に制限されています。
ipaddr_has_any_prefix 動的 宛先 IP アドレス フィールドまたは送信元 IP アドレス フィールド プレフィックスが一覧表示されている値のいずれかに含まれるネットワーク セッションのみをフィルター処理します。 プレフィックスは、 .で終わる必要があります (例: 10.0.)。 リストの長さは 10,000 項目に制限されています。

フィールド ASimMatchingIpAddr は、一致するフィールドまたはフィールドを反映するために、 SrcIpAddrDstIpAddr、または Both のいずれかの値で設定されます。
url_has_any 動的 URL フィールドの値が一覧表示されている Web セッションのみをフィルター処理します。 ソースから報告されない場合、パーサーはパラメーターとして渡された URL のスキーマを無視できます。 指定したセッションが Web セッションでない場合、結果は返されません。 リストの長さは 10,000 項目に制限されています。
httpuseragent_has_any 動的 ユーザー エージェント フィールドの値が一覧表示されている Web セッションのみをフィルター処理します。 指定したセッションが Web セッションでない場合、結果は返されません。 リストの長さは 10,000 項目に制限されています。
eventresultdetails_in 動的 EventResultDetails フィールドに格納されている HTTP 状態コードが一覧表示されている値のいずれかである Web セッションのみをフィルター処理します。
eventresult string 特定の EventResult 値を持つネットワーク セッションのみをフィルター処理します。

一部のパラメーターでは、 dynamic 型の値の両方のリストまたは単一の文字列値を受け取ることができます。 動的な値が必要なパラメーターにリテラル リストを渡すには、 動的リテラルを明示的に使用します。 例: dynamic(['192.168.','10.'])

たとえば、指定したドメイン名の一覧に対して Web セッションのみをフィルター処理するには、次のコマンドを使用します。

let torProxies=dynamic(["tor2web.org", "tor2web.com", "torlink.co"]);
_Im_WebSession (url_has_any = torProxies)

スキーマの詳細

Web セッション情報モデルは、 OSSEM Network エンティティ スキーマOSSEM HTTP エンティティ スキーマに合わせて調整されます。

業界のベスト プラクティスに準拠するために、Web セッション スキーマは 記述子 SrcDst を使用して、フィールド名にトークン Dvc を含めずにセッションのソースと宛先のデバイスを識別します。

そのため、たとえば、ソース デバイスのホスト名と IP アドレスはそれぞれ SrcHostnameSrcIpAddr という名前で、 SrcDvcHostnameSrcDvcIpAddr という名前ではありません。 プレフィックス Dvc は、該当する場合、レポートまたは中間デバイスにのみ使用されます。

ソースおよび宛先デバイスに関連付けられているユーザーとアプリケーションを記述するフィールドも 、Src 記述子と Dst 記述子を使用します。

他の ASIM スキーマでは、通常、Dst の代わりに Target が使用されます。

一般的な ASIM フィールド

重要

すべてのスキーマに共通のフィールドについては、 ASIM 共通フィールド に関する記事を参照してください。

特定のガイドラインを含む一般的なフィールド

次の一覧では、Web セッション イベントに関する特定のガイドラインがあるフィールドについて説明します。

フィールド クラス 説明
Eventtype 必須 列挙 レコードによって報告される操作について説明します。 有効な値は次のとおりです。
- HTTPsession: HTTP または HTTPS に使用されるネットワーク セッションを示します。通常はプロキシや Web セキュリティ ゲートウェイなどの中間デバイスによって報告されます。
- WebServerSession: Web サーバーによって報告される HTTP 要求を示します。 このようなイベントは、通常、ネットワーク関連の情報が少なくなります。 報告される URL には、スキーマとサーバー名は含めず、URL のパスとパラメーターの一部のみを含める必要があります。
- ApiRequest: API 呼び出しに関連して報告された HTTP 要求を示します。通常はアプリケーション サーバーによって報告されます。 このようなイベントは、通常、ネットワーク関連の情報が少なくなります。 アプリケーション サーバーによって報告される場合、報告される URL にはスキーマとサーバー名を含めず、URL のパスとパラメーターの一部のみを含める必要があります。
EventResult 必須 列挙 次のいずれかの値に正規化されたイベントの結果について説明します。
- Success
- Partial
- Failure
- NA (該当なし)

HTTP セッションの場合、 Success400より低い状態コードとして定義され、 Failure400より高い状態コードとして定義されます。 HTTP 状態コードの一覧については、「 W3 Org」を参照してください。

ソースは 、EventResultDetails フィールドの値のみを提供できます。 これは、EventResult 値を取得するために分析する必要があります。
EventResultDetails 推奨 列挙 World Wide Web Consortium によって定義された HTTP 状態コード

: 値は、これらの値に正規化する必要がある異なる用語を使用してソース レコードで指定できます。 元の値は EventOriginalResultDetails フィールドに格納する必要があります。
EventSchema 必須 列挙 ここに記載されているスキーマの名前は WebSession
EventSchemaVersion 必須 SchemaVersion (String) スキーマのバージョン。 ここに記載されているスキーマのバージョンは次のとおりです。 0.2.7
Dvc フィールド Web セッション イベントの場合、デバイス フィールドは Web セッション イベントを報告するシステムを参照します。 これは通常、 HTTPSession イベントの中間デバイスであり、 WebServerSession イベントと ApiRequest イベントの宛先 Web またはアプリケーション サーバーです。

すべての共通フィールド

次の表に示すフィールドは、すべての ASIM スキーマに共通です。 上記で指定したガイドラインは、フィールドの一般的なガイドラインをオーバーライドします。 たとえば、フィールドは一般的には省略可能ですが、特定のスキーマでは必須です。 各フィールドの詳細については、 ASIM 共通フィールド に関する記事を参照してください。

クラス フィールド
必須 - EventCount
- EventStartTime
- EventEndTime
- Eventtype
- EventResult
- EventProduct
- EventVendor
- EventSchema
- EventSchemaVersion
- Dvc
推奨 - EventResultDetails
- EventSeverity
- EventUid
- DvcIpAddr
- DvcHostname
- DvcDomain
- DvcDomainType
- DvcFQDN
- DvcId
- DvcIdType
- DvcAction
省略可能 - EventMessage
- EventSubType
- EventOriginalUid
- EventOriginalType
- EventOriginalSubType
- EventOriginalResultDetails
- EventOriginalSeverity
- EventProductVersion
- EventReportUrl
- EventOwner
- DvcZone
- DvcMacAddr
- DvcOs
- DvcOsVersion
- DvcOriginalAction
- DvcInterface
- AdditionalFields
- DvcDescription
- DvcScopeId
- DvcScope

ネットワーク セッション フィールド

HTTP セッションは、TCP/IP を基になるネットワーク層セッションとして利用するアプリケーション層セッションです。 Web セッション スキーマは 、ASIM ネットワーク セッション スキーマ のスーパー セットであり、すべてのネットワーク スキーマ フィールドも Web セッション スキーマに含まれています。

次の ASIM ネットワーク セッション スキーマ フィールドには、Web セッション イベントに使用する場合の特定のガイドラインがあります。

  • 別名 User は、DstUsername ではなく SrcUsername を参照する必要があります。
  • EventOriginalResultDetails フィールドには、EventResultDetails に格納されている HTTP 状態コードに加えて、ソースによって報告された結果を保持できます。
  • Web セッションの場合、プライマリ宛先フィールドは URL フィールドですDstDomain は、推奨されるものではなく省略可能です。 具体的には、使用できない場合は、パーサーの URL から抽出する必要はありません。
  • フィールド NetworkRuleNameNetworkRuleNumber はそれぞれ RuleNameRuleNumber に名前が変更されます。

Web セッション イベントは、通常、クライアントからの HTTP 接続を終了し、サーバーとのプロキシとして機能する新しい接続を開始する中間デバイスによって報告されます。 中間デバイスを表すには、ASIM ネットワーク セッション スキーマ中間デバイス フィールドを使用します

HTTP セッション フィールド

Web セッションに固有の追加フィールドを次に示します。

フィールド クラス 説明
Url 必須 URL (文字列) パラメーターを含む HTTP 要求 URL。 HTTPSessionイベントの場合、URL にスキーマが含まれる場合があり、サーバー名を含める必要があります。 WebServerSessionApiRequestの場合、URL には通常、スキーマとサーバーは含まれません。これは、それぞれ NetworkApplicationProtocol フィールドと DstFQDN フィールドにあります。

例: https://contoso.com/fo/?k=v&amp;q=u#f
UrlCategory 省略可能 文字列 URL または URL のドメイン部分の定義済みのグループ化。 このカテゴリは一般的に Web セキュリティ ゲートウェイによって提供され、URL が指すサイトのコンテンツに基づいています。

例: 検索エンジン、成人、ニュース、広告、駐車ドメイン。
UrlOriginal 省略可能 URL (文字列) URL がレポート デバイスによって変更され、両方の値が指定された場合の URL の元の値。
HttpVersion 省略可能 文字列 HTTP 要求バージョン。

例: 2.0
HttpRequestMethod 推奨 列挙 HTTP メソッド。 値は RFC 7231RFC 5789 で定義されており、 GETHEADPOSTPUTDELETECONNECTOPTIONSTRACEPATCHが含まれます。

例: GET
HttpStatusCode Alias HTTP 状態コード。 EventResultDetails へのエイリアス。
HttpContentType 省略可能 文字列 HTTP 応答コンテンツ タイプ ヘッダー。

: HttpContentType フィールドには、コンテンツ形式と、実際の形式を取得するために使用されるエンコードなどの追加パラメーターの両方が含まれる場合があります。

例: text/html; charset=ISO-8859-4
HttpContentFormat 省略可能 文字列 HttpContentType のコンテンツ形式の部分

例: text/html
HttpReferrer 省略可能 文字列 HTTP 参照元ヘッダー。

: ASIM は OSSEM と同期して、元の HTTP ヘッダースペルではなく、 参照元に正しいスペルを使用します。

例: https://developer.mozilla.org/docs
HttpUserAgent 省略可能 文字列 HTTP ユーザー エージェント ヘッダー。

例:
Mozilla/5.0(Windows NT 10.0;WOW64)
AppleWebKit/537.36 (KHTML、Gecko など)
Chrome/83.0.4103.97 Safari/537.36
UserAgent Alias HttpUserAgent へのエイリアス
HttpRequestXff 省略可能 IP アドレス HTTP X-Forwarded-For ヘッダー。

例: 120.12.41.1
HttpRequestTime 省略可能 整数 必要に応じて、要求をサーバーに送信するのにかかった時間 (ミリ秒単位)。

例: 700
HttpResponseTime 省略可能 整数 必要に応じて、サーバーで応答を受信するまでにかかった時間 (ミリ秒単位)。

例: 800
HttpHost 省略可能 文字列 HTTP 要求が対象とする仮想 Web サーバー。 この値は通常、 HTTP ホスト ヘッダーに基づいています。
FileName 省略可 文字列 HTTP アップロードの場合は、アップロードされたファイルの名前。
FileMD5 省略可能 MD5 HTTP アップロードの場合は、アップロードされたファイルの MD5 ハッシュ。

例: 75a599802f1fa166cdadb360960b1dd0
FileSHA1 省略可能 SHA1 HTTP アップロードの場合は、アップロードされたファイルの SHA1 ハッシュ。

例:
d55c5a4df19b46db8c54
c801c4665d3338acdab0
FileSHA256 省略可能 SHA256 HTTP アップロードの場合は、アップロードされたファイルの SHA256 ハッシュ。

例:
e81bb824c4a09a811af17deae22f22dd
2e1ec8cbb00b22629d2899f7c68da274
FileSHA512 省略可能 Sha512 HTTP アップロードの場合は、アップロードされたファイルの SHA512 ハッシュ。
ハッシュ Alias 使用可能な [ハッシュ] フィールドのエイリアス。
HashType 条件 付き 列挙 [ ハッシュ] フィールド のハッシュの型。 使用できる値は、 MD5SHA1SHA256SHA512です。
FileSize 省略可能 Long HTTP アップロードの場合、アップロードされたファイルのサイズ (バイト単位)。
FileContentType 省略可能 文字列 HTTP アップロードの場合、アップロードされたファイルのコンテンツ タイプ。
HttpCookie 省略可能 文字列 セッション データの名前と値のペアを含む、クライアントからサーバーに送信される HTTP Cookie ヘッダーの内容。

例: session_id=abc123; user_pref=dark_mode
HttpIsProxied 省略可能 ブール型 HTTP 要求がプロキシ サーバー経由で送信されたかどうかを示します。

例: true
HttpRequestBodyBytes 省略可能 Long ヘッダーを含まない HTTP 要求本文のサイズ (バイト単位)。

例: 1024
HttpRequestCacheControl 省略可能 文字列 クライアントからのキャッシュ ディレクティブを指定する HTTP Cache-Control 要求ヘッダーの内容。

例: no-cache
HttpRequestHeaderCount 省略可能 整数 要求に含まれる HTTP ヘッダーの数。

例: 12
HttpResponseBodyBytes 省略可能 Long ヘッダーを含まない HTTP 応答本文のサイズ (バイト単位)。

例: 8192
HttpResponseCacheControl 省略可能 文字列 HTTP Cache-Control 応答ヘッダーの内容。サーバーからのキャッシュ ディレクティブを指定します。

例: max-age=3600, public
HttpResponseExpires 省略可能 文字列 HTTP Expires 応答ヘッダーの内容。応答コンテンツの有効期限が切れるタイミングを示します。

例: Thu, 01 Dec 2024 16:00:00 GMT
HttpResponseHeaderCount 省略可能 整数 応答に含まれる HTTP ヘッダーの数。

例: 15

その他のフィールド

イベントが Web セッションのいずれかのエンドポイントによって報告された場合、セッションを開始または終了したプロセスに関する情報が含まれる場合があります。 このような場合、この情報を正規化するための ASIM プロセス イベント スキーマ

スキーマの更新

Web セッション スキーマは、ネットワーク セッション スキーマに依存します。 そのため、 ネットワーク セッション スキーマの更新は 、Web セッション スキーマにも適用されます。

スキーマのバージョン 0.2.5 の変更点を次に示します。

  • フィールド HttpHostを追加しました。

スキーマのバージョン 0.2.6 の変更を次に示します。

  • FileSize の型が Integer から Long に変更されました。

スキーマのバージョン 0.2.7 の変更点を次に示します。

  • フィールド HttpCookieHttpIsProxiedHttpRequestBodyBytesHttpRequestCacheControlHttpRequestHeaderCountHttpResponseBodyBytesHttpResponseCacheControlHttpResponseExpiresHttpResponseHeaderCountを追加しました。

次の手順

詳細については、以下を参照してください。