次の方法で共有


Advanced Security Information Model (ASIM) スキーマ

Advanced Security Information Model (ASIM) スキーマは、アクティビティを表すフィールドのセットです。 正規化されたスキーマのフィールドをクエリで使用すると、すべての正規化されたソースでクエリが確実に動作するようになります。

スキーマが ASIM アーキテクチャにどのように適合するかを理解するには、ASIM アーキテクチャの図を参照してください。

スキーマ リファレンスでは、各スキーマを構成するフィールドの概要が示されています。 現在、ASIM では次のスキーマが定義されています。

スキーマ Version Status
アラート イベント 0.1 GA
監査イベント 0.1.2 GA
認証イベント 0.1.4 GA
DNS アクティビティ 0.1.7 GA
DHCP アクティビティ 0.1.1 GA
ファイル アクティビティ 0.2.2 GA
ネットワーク セッション 0.2.7 GA
プロセス イベント 0.1.4 GA
レジストリ イベント 0.1.3 GA
ユーザー管理 0.1.2 GA
Web セッション 0.2.7 GA

フィールドの名前付け

各スキーマの中核となるのは、そのフィールド名です。 フィールド名は、次のグループに属します。

  • すべてのスキーマに共通のフィールド。
  • スキーマに固有のフィールド。
  • スキーマに含まれるエンティティ (ユーザーなど) を表すフィールド。 エンティティを表すフィールドは、スキーマ間で類似しています

文書化されたスキーマに存在しないフィールドがソースにある場合、一貫性を維持するために正規化されます。 追加のフィールドがエンティティを表す場合は、エンティティ フィールドのガイドラインに基づいて正規化されます。 それ以外の場合、スキーマはすべてのスキーマ間で一貫性を保つように努めます。

たとえば、DNS サーバーのアクティビティ ログではユーザー情報が提供されない一方で、エンドポイントからの DNS アクティビティ ログにはユーザー情報が含まれる場合があります。これは、ユーザー エンティティのガイドラインに従って正規化できます。

共通フィールド

一部のフィールドは、すべての ASIM スキーマに共通です。 各スキーマによって、共通フィールドの一部を特定のスキーマのコンテキストで使うためのガイドラインが追加されることがあります。 たとえば、EventType フィールドに使用できる値はスキーマごとに異なる可能性があり、EventSchemaVersion フィールドの値も同様に異なる可能性があります。

フィールドクラス

フィールドには、パーサーによってフィールドを実装する必要があるタイミングを定義する、いくつかのクラスが含まれる場合があります。

  • 必須 フィールドは、すべてのパーサーに含まれる必要があります。 ソースでこの値の情報が提供されない場合、またはデータを別の方法で追加できない場合、正規化されたスキーマを参照するほとんどのコンテンツ項目ではサポートされません。
  • 推奨される フィールドは、使用可能な場合は正規化する必要があります。 ただし、すべてのソースで利用できるとは限りません。 正規化されたスキーマを参照するコンテンツ項目では利用可能性を考慮する必要があります。
  • 省略可能な フィールド (使用可能な場合) は、正規化することも、元の形式のままにすることもできます。 通常、最小限のパーサーでは、パフォーマンス上の理由から正規化されません。
  • 追従するフィールドに入力がある場合、条件付き フィールドは必須です。 通常、条件付きフィールドは、別のフィールドの値を記述するために使用されます。 たとえば、共通フィールド DvcIdType は共通フィールド DvcId の値 int を記述するため、後者が設定されている場合は必須です。
  • エイリアス は、条件付きフィールドの特殊な型であり、エイリアス化されたフィールドが設定されている場合は必須です。

エンティティ

イベントは、ユーザー、ホスト、プロセス、ファイルなどのエンティティを中心に発展します。 各エンティティは、それを記述するために複数のフィールドを必要とする場合があります。 たとえば、ホストは名前と IP アドレスを持つことができます。

1 つのレコードに、ソース ホストと宛先ホストの両方など、同じ種類の複数のエンティティが含まれる場合があります。

ASIM によって、エンティティを一貫して記述する方法が定義され、エンティティではスキーマの拡張が考慮されます。

たとえば、Network Session スキーマにはプロセス情報は含まれませんが、一部のイベント ソースによって追加できるプロセス情報が提供されます。 詳しくは、「エンティティ」をご覧ください。

エンティティの機能を有効にするために、エンティティ表現には次のガイドラインがあります。

ガイドライン 説明
プレフィックスとエイリアス 1 つのイベントには、多くの場合、ソース ホストや宛先ホストなど、同じ種類の複数のエンティティが含まれるため、フィールドが関連付けられているエンティティを識別するために プレフィックス が使用されます。

正規化を維持するために、ASIM は少数の標準プレフィックスセットを使用し、エンティティの特定の役割に最も適したプレフィックスを選択します。

型の 1 つのエンティティがイベントに関連する場合は、プレフィックスを使用する必要はありません。 また、プレフィックスのないフィールドのセットは、各型で最も使用されるエンティティをエイリアス化します。
識別子と型 正規化されたスキーマでは、各エンティティに対して複数の識別子を使用できます。これは、イベントに共存させることを想定しています。 ソース イベントに、正規化されたスキーマにマップできない他のエンティティ識別子がある場合は、ソースの形式で保持するか、AdditionalFields 動的フィールドを使用します。

識別子の型情報を保持するには、必要に応じて、同じ名前に加えて Type のサフィックスを持つフィールドに型を保存します。 たとえば、UserIdType です。
属性 エンティティには多くの場合、識別子として機能しない他の属性があり、記述子で修飾することもできます。 たとえば、ソース ユーザーがドメイン情報を持っている場合、正規化されたフィールドは SrcUserDomain になります。

特定のエンティティ型の詳細については、以下を参照してください。

Aliases

エイリアスでは、指定した値に対して複数の名前が許可されます。 場合によっては、あるフィールドに対して予想される名前がユーザーによって異なるケースがあります。 たとえば、DNS の用語では DnsQuery という名前のフィールドを想定する場合がありますが、より一般的には、これにはドメイン名が保持されます。 エイリアス Domain は、両方の名前の使用を許可することでユーザーの役に立ちます。

エイリアスは、アナリストが対話型クエリを使用できるようにするためのものです。 再利用可能なコンテンツ、例えばカスタム検出、分析ルール、ワークブックなどでクエリを使用する際は、エイリアスではなく、エイリアスが適用されたフィールドを使用してください。 エイリアス化されたフィールドを使用すると、パフォーマンスが向上し、エラーが少なくなり、クエリの読みやすさが向上します。

場合によっては、イベントで使用できる値に応じて、エイリアスに複数のフィールドの 1 つの値が入ります。 たとえば、Dvc エイリアスには、DvcFQDNDvcIdDvcHostnameDvcIpAddrEvent Product のいずれかのフィールドが入ります。 1 つのエイリアスに複数の値が入る可能性がある場合、その型は、可能なすべてのエイリアス値に対応する文字列である必要があります。 そのため、そのようなエイリアスに値を割り当てるときには、KQL 関数 tostring を使用して型を文字列に確実に変換してください。

ネイティブ正規化テーブル には、エイリアスは入りません。これは、データの重複保存を意味するためです。 代わりに、スタブ パーサーによってエイリアスを追加します。 パーサーでエイリアスを実装するには、extend 演算子を使用して元の値のコピーを作成します。

論理型

スキーマの各フィールドには型があります。 Log Analytics ワークスペースにあるデータ型のセットは限られています。 この理由により、Microsoft Sentinel は多くのスキーマ フィールドで論理型を使います。Log Analytics ではこれを強制していませんが、スキーマの互換性のためには必要です。 論理フィールド型を使用すると、ソース間で値とフィールド名の両方の一貫性が保たれます。

データ型 物理型 形式と値
Boolean Bool ブール値を表す数値または文字列形式ではなく、組み込みの KQL bool データ型を使います。
列挙 String フィールドに対して明示的に定義された値のリストです。 スキーマ定義には、受け入れ可能な値が一覧表示されます。
日付/時刻 インジェスト メソッドの機能に応じて、次の物理表現のいずれかを降順の優先順位で使用します。

- Log Analytics 組み込みの datetime 型
- Log Analytics の datetime の数値表現を使用した整数フィールド。
- Log Analytics の datetime の数値表現を使用した文字列フィールド
- サポートされている Log Analytics の日付/時刻形式を格納する文字列フィールド。
Log Analytics の日付と時刻の表現は、Unix の時刻表現と似ていますが異なります。 詳細については、変換ガイドラインに関するページをご覧ください。

: 該当する場合は、時刻のタイム ゾーンを調整する必要があります。
MAC アドレス String コロン 16 進表記。
IP アドレス (IP address) String Microsoft Sentinel スキーマは、IPv4 アドレスと IPv6 アドレスを別々に保持しません。 どの IP アドレス フィールドにも、IPv4 アドレスまたは IPv6 アドレスのどちらかを次のように含めることができます。

- ドット 10 進表記の IPv4
- IPv6 は 8 ヘクステットで表記します。短い形式が許容されます。

次に例を示します。
- IPv4: 192.168.10.10
- IPv6: FEDC:BA98:7654:3210:FEDC:BA98:7654:3210
- IPv6 短い形式: 1080::8:800:200C:417A
FQDN String ドット表記を使用した完全修飾ドメイン名 (例: learn.microsoft.com)。 詳細については、「デバイス エンティティ」を参照してください。
ホスト名 String FQDN ではないホスト名は最大 63 文字で、英数字とハイフンを使用できます。 詳細については、「デバイス エンティティ」を参照してください。
[ドメイン] String FQDN のドメイン部分 (ホスト名なし)、たとえば、 learn.microsoft.com。 詳細については、「デバイス エンティティ」を参照してください。
DomainType Enumerated ドメイン フィールドと FQDN フィールドに格納されているドメインの種類。 値のリストと詳細については、「デバイス エンティティ」を参照してください。
DvcIdType Enumerated DvcId フィールドに格納されているデバイス ID の種類。 有効な値の一覧とその他の情報については「DvcIdType」を参照してください。
DeviceType Enumerated DeviceType フィールドに格納されているデバイスの種類。 指定できる値は、次のとおりです。
- Computer
- Mobile Device
- IOT Device
- Other。 詳細については、「デバイス エンティティ」を参照してください。
ユーザー名 String サポートされている種類のいずれかである有効なユーザー名。 詳細については、「ユーザー エンティティ」を参照してください。
ユーザー名タイプ Enumerated ユーザー名フィールドに格納されているユーザー名の種類。 詳細とサポートされている値のリストについては、「ユーザー エンティティ」を参照してください。
UserIdType Enumerated ユーザー ID フィールドに格納されている ID の種類。

サポートされている値は、SIDUISAADIDOktaIdAWSIdPUID です。 詳細については、「ユーザー エンティティ」を参照してください。
ユーザータイプ Enumerated ユーザーの種類。 詳細と使用できる値のリストについては、「ユーザー エンティティ」を参照してください。
AppType Enumerated アプリケーションの種類。 サポートされている値の一覧については、「 アプリケーション エンティティ」を参照してください。
Country (国) String ISO 3166-1 を使用した文字列で、次の優先順位に従う:

- Alpha-2 コード (例: 米国は US)。
- Alpha-3 コード (例: 米国は USA)。
- 短い名前。

コードの一覧は、国際標準化機構 (ISO) の Web サイトで確認できます。
リージョン String ISO 3166-2 を使用した、国/地域の下位区分名

コードの一覧は、国際標準化機構 (ISO) の Web サイトで確認できます。
City (市) String
Longitude (経度) Double ISO 6709 座標表現 (符号付き 10 進数)。
Latitude (緯度) Double ISO 6709 座標表現 (符号付き 10 進数)。
MD5 String 32 桁の 16 進数文字。
SHA1 String 40 桁の 16 進数文字。
SHA256 String 64 桁の 16 進数文字。
SHA512 String 128 桁の 16 進数文字。
ConfidenceLevel 整数 0 から 100 の範囲に正規化された信頼度レベル。
RiskLevel 整数 0 から 100 の範囲に正規化されたリスク レベル。
SchemaVersion String ASIM スキーマのバージョンは<major>.<minor>.<sub-minor>形式である
DnsQueryClassName String DNS クラスの名前
ユーザー名 String 単純なユーザー名またはドメインで修飾されたユーザー名

エンティティ マッピングの例

このセクションでは、Windows イベント 4624 を例として、Microsoft Sentinel でイベント データがどのように正規化されるかを説明します。

このイベントには、次のエンティティがあります。

Microsoft の用語 元のイベント フィールド プレフィックス ASIM フィールド プレフィックス 説明
件名 Subject Actor サインインの成功に関する情報をレポートしたユーザー。
新しいログオン Target TargetUser サインインが実行された対象のユーザー。
処理 - ActingProcess サインインを試行したプロセス。
ネットワーク情報 - Src サインインの試行が実行されたマシン。

これらのエンティティに基づいて Windows イベント 4624 は次のように正規化されます (一部のフィールドは省略可能です)。

正規化されたフィールド 元のフィールド 例における値 Notes
ActorUserId SubjectUserSid S-1-5-18
ActorUserIdType - SID
ActorUserName SubjectDomainName\ SubjectUserName WORKGROUP\WIN-GG82ULGC9GO$ 2 つのフィールドを連結して構築
ActorUserNameType - Windows
ActorSessionId SubjectLogonId 0x3e7
TargetUserId TargetUserSid S-1-5-21-1377283216-344919071-3415362939-500
UserId TargetUserSid エイリアス
TargetUserIdType - SID
TargetUserName TargetDomainName\ TargetUserName Administrator\WIN-GG82ULGC9GO$ 2 つのフィールドを連結して構築
ユーザー名 TargetDomainName\ TargetUserName エイリアス
TargetUserNameType - Windows
TargetSessionId TargetLogonId 0x8dcdc
ActingProcessName ProcessName C:\Windows\System32\svchost.exe
ActingProcessId ProcessId 0x44c
SrcHostname WorkstationName Windows
SrcIpAddr IpAddress 127.0.0.1
SrcPortNumber IpPort 0
TargetHostname Computer WIN-GG82ULGC9GO
Hostname Computer エイリアス

次のステップ

この記事では、Microsoft Sentinel での正規化の概要と、ASIM について説明しています。

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