レジストリ イベント スキーマは、Windows レジストリ エンティティの作成、変更、または削除の Windows アクティビティを記述するために使用されます。
レジストリ イベントは Windows システムに固有ですが、EDR (エンドポイント検出と応答) システム、Sysmon、Windows 自体など、Windows を監視するさまざまなシステムによって報告されます。
Microsoft Sentinelでの正規化の詳細については、「正規化と高度なセキュリティ情報モデル (ASIM)」を参照してください。
パーサー
組み込みパーサーをすべて統合する統合パーサーを使用し、構成されているすべてのソースで分析が確実に実行されるようにするには、クエリのテーブル名として imRegistry を使用します。
すぐに使用できるプロセス イベント パーサー Microsoft Sentinel一覧については、ASIM パーサーの一覧を参照してください。
Microsoft Sentinel GitHub リポジトリから統合パーサーとソース固有のパーサーをデプロイします。
詳細については、「ASIM パーサー」および「ASIM パーサーを使用する」を参照してください。
独自の正規化されたパーサーを追加する
レジストリ イベント情報モデルにカスタム パーサーを実装する場合は、次の構文を使用して KQL 関数に名前を付けます: imRegistry<vendor><Product>。
KQL 関数を imRegistry 統合パーサーに追加して、Registry Event モデルを使用するすべてのコンテンツで新しいパーサーも使用されるようにします。
パーサー パラメーターのフィルター処理
レジストリ イベント パーサーでは、 フィルター 処理パラメーターがサポートされています。 これらのパラメーターは省略可能ですが、クエリのパフォーマンスを向上させることができます。
次のフィルター パラメーターを使用できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| starttime | datetime | この時刻以降に発生したレジストリ イベントのみをフィルター処理します。 このパラメーターは、EventStartTime フィールドと EventEndTime フィールドのパーサー固有のマッピングに関係なく、イベントの時刻の標準指定子である TimeGenerated フィールドでフィルター処理します。 |
| endtime | datetime | この時刻以前に発生したレジストリ イベントのみをフィルター処理します。 このパラメーターは、EventStartTime フィールドと EventEndTime フィールドのパーサー固有のマッピングに関係なく、イベントの時刻の標準指定子である TimeGenerated フィールドでフィルター処理します。 |
| eventtype_in | 動的 |
RegistryKeyCreated、RegistryKeyDeleted、RegistryKeyRenamed、RegistryValueDeleted、RegistryValueSetなど、イベントの種類がいずれかの値であるレジストリ イベントのみをフィルター処理します。 |
| actorusername_has_any | 動的 | アクター ユーザー名に一覧表示されている値が含まれるレジストリ イベントのみをフィルター処理します。 |
| registrykey_has_any | 動的 | レジストリ キーの値が一覧表示されているレジストリ イベントのみをフィルター処理します。 |
| registryvalue_has_any | 動的 | レジストリ値に一覧表示されている値が含まれるレジストリ イベントのみをフィルター処理します。 |
| registrydata_has_any | 動的 | レジストリ データの値が一覧表示されているレジストリ イベントのみをフィルター処理します。 |
| dvchostname_has_any | 動的 | デバイス ホスト名に一覧表示されている値が含まれるレジストリ イベントのみをフィルター処理します。 |
たとえば、最後の日のレジストリ キー作成イベントのみをフィルター処理するには、次を使用します。
_Im_RegistryEvent (eventtype_in=dynamic(['RegistryKeyCreated']), starttime = ago(1d), endtime=now())
正規化されたコンテンツ
Microsoft Sentinelは、IFEO レジストリ キーハンティング クエリを使用して永続化を提供します。 このクエリは、高度なセキュリティ情報モデルを使用して正規化されたすべてのレジストリ アクティビティ データに対して機能します。
詳細については、「Microsoft Sentinelを使用して脅威を探す」を参照してください。
スキーマの詳細
レジストリ イベント情報モデルは、 OSSEM レジストリ エンティティ スキーマに合わせて調整されます。
一般的な ASIM フィールド
重要
すべてのスキーマに共通のフィールドについては、 ASIM 共通フィールド に関する記事を参照してください。
特定のガイドラインを含む一般的なフィールド
次の一覧では、プロセス アクティビティ イベントに関する特定のガイドラインがあるフィールドについて説明します。
| フィールド | クラス | タイプ | 説明 |
|---|---|---|---|
| EventType | 必須 | 列挙 | レコードによって報告される操作について説明します。 レジストリ レコードの場合、サポートされる値は次のとおりです。 - RegistryKeyCreated - RegistryKeyDeleted- RegistryKeyRenamed - RegistryValueDeleted - RegistryValueSet |
| EventSchemaVersion | 必須 | SchemaVersion(文字列) | スキーマのバージョン。 ここに記載されているスキーマのバージョンは次のとおりです。 1.0.0 |
| EventSchema | 必須 | 文字列 | ここに記載されているスキーマの名前は RegistryEvent。 |
| Dvc フィールド | レジストリ アクティビティ イベントの場合、デバイス フィールドはレジストリ アクティビティが発生したシステムを参照します。 |
すべての共通フィールド
次の表に示すフィールドは、すべての ASIM スキーマに共通です。 上記で指定したガイドラインは、フィールドの一般的なガイドラインをオーバーライドします。 たとえば、フィールドは一般的には省略可能ですが、特定のスキーマでは必須です。 各フィールドの詳細については、 ASIM 共通フィールド に関する記事を参照してください。
| クラス | フィールド |
|---|---|
| 必須 |
-
イベントカウント - イベントスタート時間 - イベントエンドタイム - Eventtype - イベント結果 - イベントプロダクト - イベントベンダー - イベントスキーマ - イベントスキーマバージョン - DVC |
| 推奨 |
-
イベント結果詳細 - イベントの重大さ - 結局 - DvcIpAddr - Dvcホストネーム - Dvcドメイン - DvcDomainType - DvcFQDN - DvcId - DvcIdType - Dvcアクション |
| 省略可能 |
-
イベントメッセージ - イベントサブタイプ - イベントオリジナルUid - イベントオリジナルタイプ - イベントオリジナルサブタイプ - イベントオリジナル結果詳細 - イベントオリジナルの重大さ - イベントプロダクトバージョン - イベントレポートURL(イベントレポートURL) - イベントオーナー - Dvcゾーン - DvcMacAddr - DVCOS - DVCOSバージョン - Dvcオリジナルアクション - Dvcインターフェース - 追加フィールド - DVCの説明 - DvcScopeId - DVCスコープ |
レジストリ イベント固有のフィールド
次の表に示すフィールドはレジストリ イベントに固有ですが、他のスキーマのフィールドと似ていますが、同様の名前付け規則に従います。
詳細については、Windows ドキュメント の「レジストリの構造 」を参照してください。
| フィールド | クラス | タイプ | 説明 |
|---|---|---|---|
| Registrykey | 必須 | 文字列 | 操作に関連付けられたレジストリ キー。標準のルート キーの名前付け規則に正規化されます。 詳細については、「 ルート キー」を参照してください。 レジストリ キーは、ファイル システムのフォルダーに似ています。 例: HKEY_LOCAL_MACHINE\SOFTWARE\MTG |
| RegistryValue | 推奨 | 文字列 | 操作に関連付けられているレジストリ値。 レジストリ値は、ファイル システムのファイルに似ています。 例: Path |
| レジストリバリュータイプ | 推奨 | 文字列 | 標準フォームに正規化されたレジストリ値の種類。 詳細については、「 値の型」を参照してください。 例: Reg_Expand_Sz |
| RegistryValueData | 推奨 | 文字列 | レジストリ値に格納されているデータ。 例: C:\Windows\system32;C:\Windows; |
| RegistryPreviousKey | 推奨 | 文字列 | レジストリを変更する操作の場合は、元のレジストリ キーが標準のルート キーの名前付けに正規化されます。 詳細については、「 ルート キー」を参照してください。 注: 操作によって値などの他のフィールドが変更されても、キーが変わらない場合、 RegistryPreviousKey の値は RegistryKey と同じになります。 例: HKEY_LOCAL_MACHINE\SOFTWARE\MTG |
| レジストリプリビアバリュー | 推奨 | 文字列 | レジストリを変更する操作の場合は、元の値の型が標準フォームに正規化されます。 詳細については、「 値の型」を参照してください。 型が変更されなかった場合、このフィールドの値は RegistryValueType フィールドと同じです。 例: Path |
| RegistryPreviousValueType | 推奨 | 文字列 | レジストリを変更する操作の場合は、元の値の型。 型が変更されなかった場合、このフィールドの値は RegistryValueType フィールドと同じになり、標準フォームに正規化されます。 詳細については、「 値の型」を参照してください。 例: Reg_Expand_Sz |
| RegistryPreviousValueData | 推奨 | 文字列 | レジストリを変更する操作用の元のレジストリ データ。 例: C:\Windows\system32;C:\Windows; |
| ユーザー | Alias |
ActorUsername フィールドのエイリアス。 例: CONTOSO\ dadmin |
|
| プロセス | Alias |
ActingProcessName フィールドのエイリアス。 例: C:\Windows\System32\rundll32.exe |
|
| ActorUsername | 必須 | ユーザー名 (文字列) | イベントを開始したユーザーのユーザー名。 例: CONTOSO\WIN-GG82ULGC9GO$ |
| ActorUsernameType | 条件 付き | 列挙 |
ActorUsername フィールドに格納されているユーザー名の種類を指定します。 詳細については、「 ユーザー エンティティ」を参照してください。 例: Windows |
| ActorUserID | 推奨 | 文字列 | アクターの一意の ID。 特定の ID は、イベントを生成するシステムによって異なります。 詳細については、「 ユーザー エンティティ」を参照してください。 例: S-1-5-18 |
| ActorScope | 省略可能 | 文字列 | ActorUserId と ActorUsername が定義されているMicrosoft Entra テナントなどのスコープ。 または、許可される値の詳細と一覧については、スキーマの概要に関する記事の UserScope を参照してください。 |
| ActorUserIdType | 条件 付き | 列挙 |
ActorUserId フィールドに格納されている ID の型。 詳細については、「 ユーザー エンティティ」を参照してください。 例: SID |
| ActorSessionId | 省略可能 | 文字列 | アクターのログイン セッションの一意の ID。 例: 999注: 型は、さまざまなシステムをサポートするために 文字列 として定義されていますが、Windows ではこの値は数値である必要があります。 Windows マシンを使用していて、ソースから別の型が送信される場合は、必ず値を変換してください。 たとえば、source が 16 進値を送信する場合は、10 進値に変換します。 |
| ActingProcessName(代理プロセスネーム) | 省略可能 | 文字列 | 処理プロセス イメージ ファイルのファイル名。 通常、この名前はプロセス名と見なされます。 例: C:\Windows\explorer.exe |
| ActingProcessId | 必須 | 文字列 | 処理プロセスのプロセス ID (PID)。 例: 48610176 注: 型は、さまざまなシステムをサポートするために文字列として定義されていますが、Windows では、この値Linux数値にする必要があります。 Windows または Linux コンピューターを使用していて、別の種類を使用している場合は、必ず値を変換してください。 たとえば、16 進値を使用した場合は、10 進値に変換します。 |
| ActingProcessGuid | 省略可能 | GUID (文字列) | 処理プロセスの生成された一意識別子 (GUID)。 例: EF3BD0BD-2B74-60C5-AF5C-010000001E00 |
| ParentProcessName | 省略可能 | 文字列 | 親プロセス イメージ ファイルのファイル名。 通常、この値はプロセス名と見なされます。 例: C:\Windows\explorer.exe |
| ParentProcessId | 必須 | 文字列 | 親プロセスのプロセス ID (PID)。 例: 48610176 |
| ParentProcessGuid | 省略可能 | 文字列 | 親プロセスの生成された一意識別子 (GUID)。 例: EF3BD0BD-2B74-60C5-AF5C-010000001E00 |
検査フィールド
次のフィールドは、EDR システムなどのセキュリティ システムによって実行される検査を表すために使用されます。
| フィールド | クラス | タイプ | 説明 |
|---|---|---|---|
| ルールネーム | 省略可能 | 文字列 | 検査結果に関連付けられたルールの名前または ID。 |
| ルールナンバー | 省略可能 | 整数 | 検査結果に関連付けられているルールの番号。 |
| Rule | 条件 付き | 文字列 | kRuleName の値または RuleNumber の値のいずれか。 RuleNumber の値を使用する場合は、型を文字列に変換する必要があります。 |
| ThreatId | 省略可能 | 文字列 | ファイル アクティビティで特定された脅威またはマルウェアの ID。 |
| ThreatName | 省略可能 | 文字列 | ファイル アクティビティで特定された脅威またはマルウェアの名前。 例: EICAR Test File |
| ThreatCategory | 省略可能 | 文字列 | ファイル アクティビティで特定された脅威またはマルウェアのカテゴリ。 例: Trojan |
| ThreatRiskLevel | 省略可能 | RiskLevel (整数) | 特定された脅威に関連付けられているリスク レベル。 レベルは 0 ~ 100 の数値 にする必要があります。 注: この値は、このスケールに正規化する必要がある別のスケールを使用してソース レコードに提供される場合があります。 元の値は ThreatOriginalRiskLevel に格納する必要があります。 |
| ThreatOriginalRiskLevel | 省略可能 | 文字列 | レポート デバイスによって報告されるリスク レベル。 |
| スレットフィールド | 省略可能 | 文字列 | 脅威が特定されたフィールド。 |
| ThreatConfidence | 省略可能 | ConfidenceLevel (整数) | 特定された脅威の信頼レベルを、0 から 100 の値に正規化します。 |
| ThreatOriginalConfidence | 省略可能 | 文字列 | レポート デバイスによって報告された、特定された脅威の元の信頼レベル。 |
| ThreatIsActive | 省略可能 | ブール値 | True を指定すると、特定された脅威がアクティブな脅威と見なされます。 |
| ThreatFirstReportedTime | 省略可能 | datetime | IP アドレスまたはドメインが脅威として初めて識別された場合。 |
| ThreatLastReportedTime | 省略可能 | datetime | IP アドレスまたはドメインが脅威として識別された最後の時刻。 |
ルート キー
異なるソースは、異なる表現を使用してレジストリ キープレフィックスを表します。 RegistryKey フィールドと RegistryPreviousKey フィールドには、次の正規化されたプレフィックスを使用します。
| 正規化されたキー プレフィックス | その他の一般的な表現 |
|---|---|
| HKEY_LOCAL_MACHINE |
HKLM、\REGISTRY\MACHINE |
| HKEY_USERS |
HKU、\REGISTRY\USER |
値の型
異なるソースは、異なる表現を使用してレジストリ値の種類を表します。 RegistryValueType フィールドと RegistryPreviousValueType フィールドには、次の正規化された型を使用します。
| 正規化されたキー プレフィックス | その他の一般的な表現 |
|---|---|
| Reg_None |
None、%%1872 |
| Reg_sz |
String、%%1873 |
| Reg_Expand_Sz |
ExpandString、%%1874 |
| Reg_binary |
Binary、%%1875 |
| Reg_dword |
Dword、%%1876 |
| Reg_Multi_Sz |
MultiString、%%1879 |
| Reg_QWord |
Qword、%%1883 |
エンティティ相関フィールド
Note
貢献者はこれらのフィールドを埋める必要はありません。 該当するパーサーは、内部Microsoftのサポートが追加された際にそれらに入力されます。
| フィールド | クラス | タイプ | 説明 |
|---|---|---|---|
| ActingProcessEntityKey | 省略可能 | 文字列 | 単一の名前空間内で動作プロセスを一意に識別する、安定的で決定的な文字列識別子です。 このシステム全体の一意識別子により、他のイベントやエンティティインベントリ内のエンティティとの相関が可能となります。 |
| ActorUserAdditionalIds | 省略可能 | 動的 | フィールド構造と使用については、「Fields」に AdditionalIdsが付随する接尾辞を参照してください。 |
| ActorUserEntityKey | 省略可能 | 文字列 | 安定した決定性文字列識別子で、単一の名前空間内でアクターユーザーを一意に識別します。 このシステム全体の一意識別子により、他のイベントやエンティティインベントリ内のエンティティとの相関が可能となります。 |
| ParentProcessEntityKey | 省略可能 | 文字列 | 単一の名前空間内で親プロセスを一意に識別する、安定的で決定的な文字列識別子です。 このシステム全体の一意識別子により、他のイベントやエンティティインベントリ内のエンティティとの相関が可能となります。 |
スキーマの更新
| バージョン | 変更点 |
|---|---|
| 0.1.1 | フィールド EventSchemaを追加しました。 |
| 0.1.2 | フィールド ActorScope、 DvcScopeId、および DvcScopeを追加しました。 |
| 0.1.3 | 検査フィールドを追加しました。 |
| 1.0.0 | エンティティ相関フィールドを追加しました。 |