Web セッション正規化スキーマは、IP ネットワークのアクティビティを記述するために使用されます。 たとえば、IP ネットワークのアクティビティは、Web サーバー、Web プロキシ、Web セキュリティ ゲートウェイによって報告されます。
Microsoft Sentinel での正規化の詳細については、正規化と Advanced Security Information Model (ASIM) に関するページを参照してください。
スキーマの概要
Web セッション正規化スキーマは HTTP ネットワーク セッションを表し、以下を含む一般的な種類のソースをサポートするのに適しています。
- Web サーバー
- Web プロキシ
- Web セキュリティ ゲートウェイ
ASIM Web セッション スキーマは、HTTP および HTTPS プロトコル アクティビティを表します。 スキーマはプロトコル アクティビティを表しているため、RFC によって管理され、必要に応じてこの記事で言及されているパラメーター リストが正式に割り当てられます。
Web セッション スキーマは、ソース デバイスからの監査イベントは表しません。 たとえば、Web セキュリティ ゲートウェイ ポリシーを変更するイベントは、Web セッション スキーマでは表すことができません。
HTTP セッションは、基になるネットワーク レイヤー セッションとして TCP/IP を利用するアプリケーション レイヤー セッションです。そのため、Web セッション スキーマは、ASIM ネットワーク セッション スキーマのスーパー セットです。
Web セッション スキーマの最も重要なフィールドを次に示します。
- Url。クライアントが要求した、サーバーからの URL がレポートされます。
- SrcIpAddr (IpAddr の別名)。要求が生成された IP アドレスを表します。
- EventResultDetails フィールド。通常、HTTP 状態コードがレポートされます。
また Web セッション イベントには、要求を開始したユーザーとプロセスに関する User および Process 情報が含まれる場合があります。
パーサー
ASIM パーサーの詳細については、ASIM パーサーの概要に関する各ページを参照してください。
統一パーサー
すべての ASIM すぐに使用できるパーサーを統合し、構成されているすべてのソースで分析が確実に実行されるようにするには、 _Im_WebSession パーサーを使用します。
すぐに使える、ソース固有のパーサー
Microsoft Sentinel が提供する We セッションパーサーの一覧については、ASIM パーサーの一覧を参照してください
独自の正規化されたパーサーを追加する
Web セッション情報モデル用のカスタム パーサーを実装するときは、次の構文を使用して KQL 関数に名前を付けます。
-
vimWebSession<vendor><Product>(パラメーター化パーサーの場合) -
ASimWebSession<vendor><Product>(標準パーサーの場合)
パーサー パラメーターのフィルター処理
im および vim* パーサーでは、imがサポートされています。 これらのパーサーは省略可能ですが、クエリのパフォーマンスを向上させることができます。
次のフィルター処理パラメーターを使用できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| starttime | datetime | この時刻以降に開始された Web セッションのみをフィルター処理で抽出します。 |
| endtime | datetime | この時刻以前に実行が開始された Web セッションのみをフィルター処理で抽出します。 |
| srcipaddr_has_any_prefix | 動的 |
ソース IP アドレス フィールドのプレフィックスが一覧にある値のいずれかである Web セッションのみをフィルター処理で抽出します。 値の一覧には、IP アドレスと IP アドレス プレフィックスを含めることができます。 プレフィックスの末尾は . にする必要があります (例: 10.0.)。 リストの長さは 10,000 項目に制限されます。 |
| ipaddr_has_any_prefix | 動的 |
宛先 IP アドレス フィールドまたは 送信元 IP アドレス フィールド のプレフィックスが一覧表示された値のいずれかにあるネットワーク セッションのみをフィルター処理します。 プレフィックスの末尾は . にする必要があります (例: 10.0.)。 リストの長さは 10,000 項目に制限されます。フィールド ASimMatchingIpAddr は、一致するフィールドまたはフィールドを反映するために、 SrcIpAddr、DstIpAddr、またはBothのいずれかの値で設定されます。 |
| url_has_any | 動的 | URL フィールドに一覧にある値のいずれかがある Web セッションのみをフィルター処理で抽出します。 ソースから報告されない場合、パーサーはパラメーターとして渡された URL のスキーマを無視することがあります。 これを指定し、セッションが Web セッションではない場合には、結果は返されません。 リストの長さは 10,000 項目に制限されます。 |
| httpuseragent_has_any | 動的 | ユーザー エージェント フィールドに一覧にある値のいずれかがある Web セッションのみをフィルター処理で抽出します。 これを指定し、セッションが Web セッションではない場合には、結果は返されません。 リストの長さは 10,000 項目に制限されます。 |
| eventresultdetails_in | 動的 | EventResultDetails フィールドに格納されている HTTP 状態コードが一覧にある値のいずれかである Web セッションのみをフィルター処理で抽出します。 |
| eventresult | 文字列 | 特定の EventResult 値を持つネットワーク セッションのみをフィルター処理で抽出します。 |
一部のパラメーターは、dynamic 型の値のリストまたは単一の文字列値の両方を受け取ることができます。 動的な値を期待するパラメーターにリテラル リストを渡すには、動的リテラルを明示的に使用します。 例: dynamic(['192.168.','10.'])
たとえば、指定したドメイン名の一覧に対応する Web セッションのみをフィルター処理で抽出するには、以下を使用します。
let torProxies=dynamic(["tor2web.org", "tor2web.com", "torlink.co"]);
_Im_WebSession (url_has_any = torProxies)
スキーマの詳細
Web セッション情報モデルは、OSSEM ネットワーク エンティティ スキーマと OSSEM HTTP エンティティ スキーマに対応しています。
業界のベスト プラクティスに準拠するために、Web セッション スキーマでは、記述子 Src と Dst を使用して、セッションのソースとターゲットのデバイスが識別されます。フィールド名にトークン Dvc は含まれません。
そのため、たとえば、ソース デバイスのホスト名と IP アドレスは、それぞれ SrcHostname と SrcIpAddr という名前であり、SrcDvchostname および SrcDvcIpAddr ではありません。 プレフィックス Dvc は、レポートまたは中間デバイスに対してのみ使用されます (該当する場合)。
ソース デバイスとターゲット デバイスに関連付けられているユーザーとアプリケーションを記述するフィールドでも、Src と Dst の記述子が使用されます。
他の ASIM スキーマでは、通常、Dst ではなく Target が使用されます。
一般的な ASIM フィールド
重要
すべてのスキーマに共通するフィールドの詳細については、ASIM 共通フィールドに関する記事を参照してください。
特定のガイドラインを持つ共通フィールド
次の一覧には、Web セッション イベントに関する具体的なガイドラインが含まれたフィールドを示しています。
| フィールド | クラス | タイプ | 説明 |
|---|---|---|---|
| イベントタイプ | Mandatory | Enumerated | レコードによって報告される操作を記述します。 使用できる値は、以下のとおりです。 - HTTPsession: HTTP または HTTPS に使用されるネットワーク セッションを示します。通常は、プロキシや Web セキュリティ ゲートウェイなどの中間デバイスによってレポートされます。- WebServerSession: Web サーバーによってレポートされる HTTP 要求を示します。 通常、このようなイベントにはネットワーク関連情報はほとんど含まれません。 レポートされる URL にはスキーマとサーバー名は含まれず、URL のパスとパラメーターの部分のみが含まれます。 - ApiRequest: API 呼び出しに関連してレポートされた HTTP 要求を示します。通常は、アプリケーション サーバーによってレポートされます。 通常、このようなイベントにはネットワーク関連情報はほとんど含まれません。 アプリケーション サーバーによってレポートされる際、レポートされる URL にはスキーマとサーバー名は含まれず、URL のパスとパラメーターの部分のみが含まれます。 |
| EventResult | Mandatory | Enumerated | 次のいずれかの値に正規化されたイベントの結果について説明します。 - Success - Partial - Failure - NA (該当なし) HTTP セッションの場合、 Success は 400 より小さい状態コードとして定義され、Failure は 400 より大きい状態スコードとして定義されます。 HTTP の状態コードの一覧については、W3 Org を参照してください。ソースから EventResultDetails フィールドの値のみが提供される場合があり、EventResult の値を取得するには分析が行われる必要があります。 |
| EventResult詳細 | 推奨 | Enumerated | ワールドワイドウェブコンソーシアムによって定義されたHTTPステータスコード 注: 値は、異なる用語を使用してソース レコードに提供されている場合があり、これらの値に正規化する必要があります。 元の値は EventOriginalResultDetails フィールドに格納する必要があります。 |
| EventSchema | Mandatory | Enumerated | ここに記載されているスキーマの名前は WebSession です。 |
| EventSchemaVersion | Mandatory | SchemaVersion(文字列) | スキーマのバージョン。 ここに記載されているスキーマのバージョンは 0.2.7 です |
| Dvc フィールド | Web セッション イベントの場合、デバイス フィールドは、Web セッション イベントを報告するシステムを示します。 通常これは、HTTPSession イベントの中間デバイスと、WebServerSession および ApiRequest イベントの送信先 Web サーバーまたはアプリケーション サーバーです。 |
すべての共通フィールド
下の表に示すフィールドは、すべての ASIM スキーマに共通です。 上で指定されているガイドラインは、フィールドの一般的なガイドラインに優先します。 たとえば、フィールドは一般的には省略可能ですが、特定のスキーマでは必須です。 各フィールドの詳細については、ASIM 共通フィールドに関する記事を参照してください。
| クラス | Fields |
|---|---|
| Mandatory |
-
イベントカウント - イベント開始時間 - イベント終了時間 - イベントタイプ - イベント結果 - イベント製品 - イベントベンダー - イベントスキーマ - EventSchemaVersion (イベントスキーマバージョン) - DVCの |
| 推奨 |
-
EventResult詳細 - イベント重大度 - イベントUid - DvcIpAddr - Dvcホスト名 - Dvcドメイン - Dvcドメインタイプ - DvcFQDNの - DvcId - DvcIdType - Dvcアクション |
| オプション |
-
イベントメッセージ - イベントサブタイプ - イベントオリジナルUid - イベントオリジナルタイプ - EventOriginalサブタイプ - EventOriginalResult詳細 - EventOriginalSeverity (イベントオリジナル重大度) - イベント製品バージョン - イベントレポートURL - イベントオーナー - DvcZone の - DvcMacAddr の - DVCOS - DVCOSバージョン - Dvcオリジナルアクション - Dvcインターフェイス - 追加フィールド - DVCの説明 - DvcScopeId (英語) - Dvcスコープ |
ネットワーク セッションのフィールド
HTTP セッションは、基になるネットワーク レイヤー セッションとして TCP/IP を利用するアプリケーション レイヤー セッションです。 Web セッション スキーマは ASIM ネットワーク セッション スキーマのスーパー セットであり、すべてのネットワーク スキーマ フィールドも Web セッション スキーマに含まれます。
次の ASIM ネットワーク セッション スキーマのフィールドには、Web セッション イベントに対して使用される場合の特定のガイドラインがあります。
- エイリアス User では、DstUsername ではなく、SrcUsername を参照する必要があります。
- EventOriginalResultDetails フィールドでは、EventResultDetails に格納される HTTP 状態コードに加えて、ソースによって報告されるすべての結果を保持できます。
- Web セッションの場合、プライマリ ターゲット フィールドは Url フィールドです。 DstDomain は、推奨される方法ではなくオプションです。 特に使用できない場合は、パーサーで URL からこれを抽出する必要はありません。
- フィールド
NetworkRuleNameとNetworkRuleNumberの名前は、それぞれRuleNameとRuleNumberに変更されます。
Web セッション イベントは通常、クライアントからの HTTP 接続を終了し、新しい接続を開始する中間デバイス (サーバーと連携してプロキシとして機能します) によって報告されます。 中間デバイスを表すには、 ASIM ネットワーク セッション スキーマIntermediary デバイス フィールドを使用します。
HTTP セッションのフィールド
Web セッションに固有の追加フィールドを次に示します。
| フィールド | クラス | タイプ | 説明 |
|---|---|---|---|
| URL | Mandatory | URL(文字列) | パラメーターを含む HTTP 要求 URL。
HTTPSession イベントの場合、URL にスキーマを含めることができ、サーバー名を含める必要があります。
WebServerSession と ApiRequest の場合は通常、URL にはスキーマとサーバーは含まれません。これらは、それぞれ NetworkApplicationProtocol フィールドと DstFQDN フィールドで確認できます。 例: https://contoso.com/fo/?k=v&q=u#f |
| UrlCategory | オプション | String | URL または URL のドメイン部分の定義されたグループ。 カテゴリは一般に Web セキュリティ ゲートウェイによって提供され、URL が示すサイトの内容に基づきます。 例: 検索エンジン、成人向け、ニュース、広告、パーク ドメイン。 |
| UrlOriginal | オプション | URL(文字列) | URL がレポート デバイスによって変更され、両方の値が提供された場合の、URL の元の値。 |
| HttpVersion | オプション | String | HTTP 要求のバージョン。 例: 2.0 |
| HttpRequestMethod | 推奨 | Enumerated | HTTP メソッド。 値は RFC 7231 と RFC 5789 で定義されており、GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE、PATCH が含まれます。例: GET |
| HttpStatusCode | エイリアス | HTTP 状態コード。 EventResultDetails のエイリアス。 | |
| HttpContentType | オプション | String | HTTP 応答のコンテンツ タイプのヘッダー。 注: HttpContentType フィールドには、コンテンツの形式と、追加のパラメーター (実際の形式を取得するために使用されるエンコードなど) の両方が含まれる場合があります。 例: text/html; charset=ISO-8859-4 |
| HttpContentFormat | オプション | String |
HttpContentType のコンテンツ形式の部分 例: text/html |
| HttpReferrer | オプション | String | HTTP 参照元ヘッダー。 注: ASIM は OSSEM と同期して、元の HTTP ヘッダーのスペルではなく、"参照元" の正しいスペルを使用します。 例: https://developer.mozilla.org/docs |
| HttpUserAgent | オプション | String | HTTP ユーザー エージェント ヘッダー。 例: Mozilla/5.0 (Windows NT 10.0、WOW64)AppleWebKit/537.36 (KHTML、Gecko など)Chrome/83.0.4103.97 Safari/537.36 |
| UserAgent | エイリアス | HttpUserAgent のエイリアス | |
| HttpRequestXff | オプション | IP アドレス | HTTP X-Forwarded-For ヘッダー。 例: 120.12.41.1 |
| HttpRequestTime | オプション | Integer | 要求がサーバーに送信されるまでにかかったミリ秒数 (該当する場合)。 例: 700 |
| HttpResponseTime | オプション | Integer | サーバーで応答を受け取るまでにかかったミリ秒数 (該当する場合)。 例: 800 |
| HttpHost | オプション | String | HTTP 要求の対象となっている仮想 Web サーバー。 この値は通常、HTTP ホスト ヘッダーに基づいています。 |
| FileName | オプション | String | HTTP アップロードの場合、アップロードされたファイルの名前。 |
| FileMD5 | オプション | MD5 | HTTP アップロードの場合、アップロードされたファイルの MD5 ハッシュ。 例: 75a599802f1fa166cdadb360960b1dd0 |
| FileSHA1 | オプション | SHA1 | HTTP アップロードの場合、アップロードされたファイルの SHA1 ハッシュ。 例: d55c5a4df19b46db8c54c801c4665d3338acdab0 |
| FileSHA256 | オプション | SHA256 | HTTP アップロードの場合、アップロードされたファイルの SHA256 ハッシュ。 例: e81bb824c4a09a811af17deae22f22dd2e1ec8cbb00b22629d2899f7c68da274 |
| FileSHA512 | オプション | SHA512 | HTTP アップロードの場合、アップロードされたファイルの SHA512 ハッシュ。 |
| ハッシュ | エイリアス | 使用可能なハッシュ フィールドのエイリアス。 | |
| HashType | Conditional | Enumerated |
Hash フィールド内のハッシュの型。 使用可能な値は、MD5、SHA1、SHA256、SHA512 です。 |
| FileSize | オプション | Long | HTTP アップロードの場合、アップロードされたファイルのバイト サイズ。 |
| FileContentType | オプション | String | HTTP アップロードの場合、アップロードされたファイルのコンテンツ タイプ。 |
| HttpCookie | オプション | String | クライアントからサーバーに送信されるHTTPクッキーヘッダーの内容で、セッションデータの名前と値のペアを含みます。 例: session_id=abc123; user_pref=dark_mode |
| HttpIsProxied | オプション | ブール値 | HTTPリクエストがプロキシサーバー経由で送信されたかどうかを示します。 例: true |
| HttpRequestBodyBytes | オプション | Long | ヘッダーを含まず、HTTPリクエスト本体のサイズ(バイト単位)です。 例: 1024 |
| HttpRequestCacheControl | オプション | String | HTTP Cache-Control リクエストヘッダーの内容は、クライアントからのキャッシュ指令を指定します。 例: no-cache |
| HttpRequestHeaderCount | オプション | Integer | リクエストに含まれるHTTPヘッダーの数。 例: 12 |
| HttpResponseBodyBytes | オプション | Long | ヘッダーを含まず、HTTP応答本体のサイズ(バイト単位)です。 例: 8192 |
| HttpResponseCacheControl | オプション | String | HTTPの内容 Cache-Control 応答ヘッダーで、サーバーからのキャッシュ指令を指定します。 例: max-age=3600, public |
| HttpResponseの期限切れ | オプション | String | HTTP Expiresレスポンスヘッダーの内容は、レスポンス内容がいつ失効するかを示します。 例: Thu, 01 Dec 2024 16:00:00 GMT |
| HttpResponseHeaderCount | オプション | Integer | レスポンスに含まれるHTTPヘッダーの数。 例: 15 |
その他のフィールド
イベントが Web セッションのいずれかのエンドポイントによって報告された場合、セッションを開始または終了したプロセスに関する情報が含まれる場合があります。 このような場合は、ASIM プロセス イベント スキーマを使用してこの情報を正規化します。
スキーマの更新
Web セッション スキーマは、ネットワーク セッション スキーマに依存します。 そのため、ネットワーク セッション スキーマの更新は Web セッション スキーマにも適用されます。
スキーマのバージョン 0.2.5 の変更点を次に示します。
- フィールド
HttpHostが追加されました。
スキーマのバージョン 0.2.6 の変更点を次に示します。
- FileSize の型が Integer から Long に変更されました。
以下はスキーマのバージョン0.2.7における変更点です:
- フィールド
HttpCookie、HttpIsProxied、HttpRequestBodyBytes、HttpRequestCacheControl、HttpRequestHeaderCount、HttpResponseBodyBytes、HttpResponseCacheControl、HttpResponseExpires、HttpResponseHeaderCountが追加されました。
次のステップ
詳細については、次を参照してください。