次の方法で共有


Advanced Security Information Model (ASIM) スキーマ

Advanced Security Information Model (ASIM) スキーマは、アクティビティまたはエンティティを表す一連のフィールドです。 クエリで正規化されたスキーマのフィールドを使用すると、すべての正規化されたソースでクエリが動作します。

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

アクティビティ/イベント スキーマ

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

スキーマ テストのスキーマ名 Version Status
アラート イベント AlertEvent 0.1 GA
監査イベント AuditEvent 0.1.2 GA
認証イベント Authentication 0.1.4 GA
DHCP アクティビティ DhcpEvent 0.1.1 GA
DNS アクティビティ Dns 0.1.7 GA
ファイル アクティビティ FileEvent 0.2.2 GA
ネットワーク セッション NetworkSession 0.2.7 GA
プロセス イベント ProcessEvent 0.1.4 GA
レジストリ イベント RegistryEvent 0.1.3 GA
ユーザー管理 UserManagement 0.1.2 GA
Web セッション WebSession 0.2.7 GA

エンティティ スキーマ

ASIM では現在、エンティティに対して次のスキーマが定義されています。

スキーマ テストのスキーマ名 Version Status
アセットエンティティ AssetEntity 0.1.0 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 エイリアスには、DvcFQDN、DvcId、DvcHostname、DvcIpAddr、Event Product のいずれかのフィールドが入ります。 1 つのエイリアスに複数の値が入る可能性がある場合、その型は、可能なすべてのエイリアス値に対応する文字列である必要があります。 そのため、そのようなエイリアスに値を割り当てるときには、KQL 関数 tostring を使用して型を文字列に確実に変換してください。

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

論理型

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

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

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

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

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

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

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

- アルファ2コード、例えばアメリカ合衆国のUS
- アメリカ合衆国を表すUSAなどのアルファ3コード。
- 短い名前。

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

コードの一覧は、国際標準化機構 (ISO) の Web サイトで確認できます。
City String
経度 Double ISO 6709 座標表現 (符号付き 10 進数)。
緯度 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 の範囲に正規化されたリスク レベル。
スキーマバージョン String ASIM スキーマのバージョンは形式である
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
ユーザー ID TargetUserSid エイリアス
TargetUserIdType - SID
TargetUserName TargetDomainName\ TargetUserName Administrator\WIN-GG82ULGC9GO$ 2 つのフィールドを連結して構築
ユーザー名 TargetDomainName\ TargetUserName エイリアス
TargetUserNameType - Windows
TargetSessionId TargetLogonId 0x8dcdc
代理プロセス名 ProcessName C:\Windows\System32\svchost.exe
アクティングプロセスID ProcessId 0x44c
SrcHostname WorkstationName Windows
SrcIpAddr IpAddress 127.0.0.1
送信元ポート番号 IpPort 0
TargetHostname Computer WIN-GG82ULGC9GO
ホスト名 Computer エイリアス

次のステップ

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

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