ASIM (進階安全資訊模型) 程序事件正規化結構參考

程序事件正規化結構用來描述作業系統執行與終止程序的活動。 此類事件會由作業系統和安全系統報告,例如EDR (終端點偵測與回應) 系統。

OSSEM 定義的程序是一個包含與管理物件,代表程式的執行實例。 雖然程序本身不執行,但它們會管理執行與執行程式碼的執行緒。

欲了解更多關於Microsoft Sentinel正規化的資訊,請參閱 ASIM) 正規化及先進安全資訊模型 (

解析器

要使用統一所有列出的解析器,並確保你能跨所有配置的來源進行分析,請在查詢中使用以下表格名稱:

  • 用於需要程序建立資訊的查詢 imProcessCreate。 這類查詢是最常見的情況。
  • imProcessTerminate 用於需要程序終止資訊的查詢。

關於程序事件解析器清單,Microsoft Sentinel 開箱即用,請參考 ASIM 解析器清單

Microsoft Sentinel GitHub 倉庫部署認證解析器。

欲了解更多資訊,請參閱 ASIM 解析器概述

加入你自己的正規化解析器

在實作自訂程序事件解析器時,請使用以下語法命名你的 KQL 函式: imProcessCreate<vendor><Product>imProcessTerminate<vendor><Product>。 將無參數版本替換 imASim

依照 管理 ASIM 解析器說明,將你的 KQL 函式加入統一解析器。

過濾解析器參數

imvim*解析器支援過濾參數。 雖然這些解析器是可選的,但它們可以提升你的查詢效能。

以下過濾參數可用:

名稱 類型 描述
開始時間 日期時間 僅過濾器處理事件發生於此時或之後。 此參數會在欄位上過濾 TimeGenerated ,欄位是事件時間的標準指示符,無論 EventStartTime 和 EventEndTime 欄位的解析器特定映射為何。
末日 日期時間 僅處理在此時間點或之前發生的事件查詢。 此參數會在欄位上過濾 TimeGenerated ,欄位是事件時間的標準指示符,無論 EventStartTime 和 EventEndTime 欄位的解析器特定映射為何。
commandline_has_any 動態 過濾只處理命令 列執行的 事件,該事件的值包含上述任何一個。 清單長度限制為10,000件。
commandline_has_all 動態 僅篩選命令列執行時擁有 所有 列出值的程序事件。 清單長度限制為10,000件。
commandline_has_any_ip_prefix 動態 過濾只針對執行命令列包含 所有 列出的 IP 位址或 IP 前綴的程序事件。 前綴應以 .結尾,例如: 10.0.。 清單長度限制為10,000件。
actingprocess_has_any 動態 僅過濾那些作用程序名稱(包含整個程序路徑)具有上述任一值的程序事件。 清單長度限制為10,000件。
targetprocess_has_any 動態 僅過濾目標程序名稱(包含整個程序路徑)具有上述任一值的程序事件。 清單長度限制為10,000件。
parentprocess_has_any 動態 僅過濾目標程序名稱(包含整個程序路徑)具有上述任一值的程序事件。 清單長度限制為10,000件。
targetusername_hasactorusername_has 字串 僅篩選目標使用者名稱 (的程序事件,作為程序創建事件) ,或演員使用者名稱 (,作為程序終止事件,且具有上述任意值) 。 清單長度限制為10,000件。
dvcipaddr_has_any_prefix 動態 過濾程序僅處理裝置 IP 位址與上述任何 IP 位址或前綴相符的事件。 前綴應以 .結尾,例如: 10.0.。 清單長度限制為10,000件。
dvchostname_has_any 動態 過濾器僅處理裝置主機名稱或裝置 FQDN 具有上述任一值的事件。 清單長度限制為10,000件。
hashes_has_any 動態 僅過濾任何目標程序雜湊值與列出的值相符的事件。
事件類型 字串 僅過濾指定類型的事件。

例如,要只篩選過去一天的認證事件給特定使用者,請使用:

imProcessCreate (targetusername_has = 'johndoe', starttime = ago(1d), endtime=now())

提示

若要將文字列表傳給預期動態值的參數,請明確使用 動態文字。 例如:dynamic(['192.168.','10.'])

正規化內容

如需完整使用正規化流程事件的分析規則清單,請參閱 流程事件安全內容

結構細節

流程事件資訊模型與 OSSEM 流程實體結構對齊。

常見的ASIM欄位

重要事項

所有結構共有的欄位可參考 ASIM 公共欄位 文章。

具有特定指引的共同領域

以下列表提及具有流程活動事件具體指引的欄位:

欄位 類別 類型 描述
EventType 強制性 列舉 描述了紀錄中報告的行動。

對於流程記錄,支援的值包括:
- ProcessCreated
- ProcessTerminated
事件架構版本 強制性 SchemaVersion 的 (字串) 那個版本的架構。 這裡所記錄的結構版本為 0.1.4
事件架構 強制性 字串 此處記錄的結構名稱為 ProcessEvent
DVC 對於程序活動事件,裝置欄位指的是執行程序的系統。

重要事項

EventSchema 欄位目前為選修,但將於2022年9月1日起成為強制。

所有共同領域

下表中出現的欄位是所有 ASIM 架構共有的。 上述任何指引都凌駕於該領域的一般指引之上。 例如,某個欄位一般可能是可選的,但在特定結構中卻是強制的。 關於每個領域的更多細節,請參閱 ASIM Common Fields 條目。

Class Fields
強制性 - 事件計數
- 事件開始時間
- 事件結束時間
- 事件類型
- 事件結果
- EventProduct
- EventVendor
- 事件架構
- 事件架構版本
- DVC
建議 - 事件結果詳情
- 事件嚴重度
- 最終
- DvcIpAddr
- DvcHostname
- DvcDomain
- DvcDomainType
- DvcFQDN
- DVCID
- DvcId類型
- Dvc行動
選用 - 活動訊息
- 事件子類型
- 事件原創
- 事件原創類型
- 事件原始子類型
- 事件原始結果細節
- 事件原始嚴重度
- 事件產品版本
- 事件報告網址
- 活動擁有者
- DvcZone
- DvcMacAddr
- DVCOS
- DvcOS 版本
- DVC原創行動
- Dvc介面
- 額外欄位
- DVC說明
- DvcScopeID
- DvcScope(視覺化器)

事件專屬欄位

下表列出的欄位是針對程序事件的,但與其他結構中的欄位相似,且遵循類似的命名慣例。

程序事件結構參考以下實體,這些實體對程序建立與終止活動至關重要:

  • Actor - 發起程序建立或終止的使用者。
  • ActingProcess - 演員用來啟動程序建立或終止的程序。
  • TargetProcess - 新流程。
  • TargetUser - 用於建立新程序的憑證使用者。
  • ParentProcess - 啟動 Actor Process 的程序。

別名

欄位 類別 類型 描述
使用者 別名 目標 用戶名的別名。

範例:CONTOSO\dadmin
程序 別名 TargetProcessName 的別名

範例:C:\Windows\System32\rundll32.exe
CommandLine 別名 TargetProcessCommandLine 的別名
雜湊 別名 別名到目標程序中可用的最佳雜湊值。

演員欄位

欄位 類別 類型 描述
演員使用者ID 建議 字串 一個機器可讀、字母數字、獨特的演員表示法。 關於不同 ID 類型的支援格式,請參考 使用者實體

範例:S-1-12
ActorUserIdType 條件式 列舉 ActorUserId 欄位中儲存的 ID 類型。 關於允許的值清單及更多資訊,請參閱結構概覽文章中的 UserIdType
演員範圍 選用 字串 範圍,例如 Microsoft Entra 租戶,定義了 ActorUserIDActorUsername。 或更多資訊與允許值清單,請參閱結構概覽文章中的 UserScope
演員範圍ID 選用 字串 範圍 ID,例如 Microsoft Entra Directory ID,定義了 ActorUserIDActorUsername。 或更多資訊與允許值清單,請參見結構概覽文章中的 UserScopeId
演員用戶名 強制性 用戶名 (String) 演員用戶名稱,並在有網域資訊時提供。 關於不同 ID 類型的支援格式,請參考 使用者實體。 只有在網域資訊無法取得時,才使用簡易表單。

將使用者名稱類型儲存在 ActorUsernameType 欄位。 如果有其他使用者名稱格式,請將它們儲存在欄位 ActorUsername<UsernameType>中。

範例:AlbertE
ActorUsernameType 條件式 列舉 指定儲存在 ActorUsername 欄位的使用者名稱類型。 關於允許的值清單及更多資訊,請參閱結構概覽文章中的 UsernameType

範例:Windows
演員會話ID 選用 字串 演員登入會話的唯一 ID。

範例:999

注意:為了支援不同系統,該型別定義為 字串 ,但在 Windows 上此值必須為數字。

如果你使用的是 Windows 電腦且使用不同類型,務必轉換這些數值。 例如,如果你使用了十六進位值,請將其轉換為十進位值。
演員使用者類型 選用 UserType 演員的類型。 關於允許的值列表及更多資訊,請參閱結構概覽文章中的 UserType

注意:該值可能在來源記錄中透過使用不同術語提供,應以這些數值標準化。 將原始值儲存在 ActorOriginalUserType 欄位。
演員原始使用者類型 選用 字串 如果回報裝置提供原始目的使用者類型。

作用過程場

欄位 類別 類型 描述
ActingProcessCommandLine 選用 字串 用來執行執行行動程序的指令列。

範例:"choco.exe" -v
代理過程名稱 選用 字串 演戲過程的名稱。 這個名稱通常源自用於定義初始程式碼與資料的映像檔或可執行檔,這些資料映射到程序的虛擬位址空間中。

範例:C:\Windows\explorer.exe
ActingProcessFilename 選用 字串 檔名部分是 ActingProcessName,但沒有資料夾資訊。

範例:explorer.exe
ActingProcessFile公司 選用 字串 就是製作代理流程影像檔案的公司。

範例:Microsoft
ActingProcessFileDescription 選用 字串 描述嵌入於行動過程影像檔的版本資訊中。

範例:Notepad++ : a free (GPL) source code editor
ActingProcessFileProduct 選用 字串 產品名稱來自演進過程影像檔中的版本資訊。

範例:Notepad++
ActingProcessFile版本 選用 字串 產品版本來自行動過程影像檔的版本資訊。

範例:7.9.5.0
ActingProcessFileInternalName 選用 字串 產品內部檔名來自執行過程影像檔的版本資訊。
ActingProcessFile原始名稱 選用 字串 產品原始檔名來自演繹過程影像檔的版本資訊。

範例:Notepad++.exe
演技過程隱藏 選用 布林值 這是判斷行動過程是否處於隱藏模式的指標。
行動過程注入地址 選用 字串 負責執行的程序所儲存的記憶體位址。
行動過程ID 強制性 字串 流程 ID (PID) 執行流程。

範例:48610176

注意:為了支援不同系統,該型別定義為字串,但在 Windows 和 Linux 上,此值必須是數字。

如果你使用的是 Windows 或 Linux 電腦,且使用不同類型的電腦,務必轉換這些數值。 例如,如果你使用了十六進位值,請將其轉換為十進位值。
ActingProcessGuid 選用 GUID (字串) 產生的唯一識別碼 (GUID) 作用程序。 能在系統間識別流程。

範例:EF3BD0BD-2B74-60C5-AF5C-010000001E00
行動過程完整性水準 選用 字串 每個程序都有一個完整性等級,該等級由其代幣代表。 完整性等級決定了製程的保護或存取層級。

Windows 定義以下完整性等級: 系統。 Standard 用戶獲得等完整性等級,提升用戶則獲得完整性等級。

欲了解更多資訊,請參閱 強制完整性控制 - Win32 應用程式
ActingProcessMD5 選用 字串 行動過程影像檔的 MD5 雜湊值。

範例:75a599802f1fa166cdadb360960b1dd0
ActingProcessSHA1 選用 SHA1 作用過程影像檔的 SHA-1 雜湊值。

範例:d55c5a4df19b46db8c54c801c4665d3338acdab0
行動程序SHA256 選用 SHA256 作用過程影像檔的 SHA-256 雜湊值。

例如:
e81bb824c4a09a811af17deae22f22dd
2e1ec8cbb00b22629d2899f7c68da274
代理程序SHA512 選用 SHA512 SHA-512 哈希值為行動過程影像檔。
行動過程IMPHASH 選用 字串 是所有被執行程序使用的函式庫 DLL 的匯入雜湊值。
行動過程創作時間 選用 DateTime 演出過程開始的日期和時間。
ActingProcessTokenElevation 選用 字串 一個顯示使用者存取控制 (UAC存在或不存在的令牌) 權限提升應用於執行過程。

範例:None
ActingProcessFile Size 選用 Long 執行行動過程的檔案大小。

父程序欄位

欄位 類別 類型 描述
ParentProcessName 選用 字串 母程序的名稱。 這個名稱通常源自用於定義初始程式碼與資料的映像檔或可執行檔,這些資料映射到程序的虛擬位址空間中。

範例:C:\Windows\explorer.exe
ParentProcessFileCompany 選用 字串 製作母程序影像檔案的公司名稱。

範例:Microsoft
ParentProcessFileDescription 選用 字串 這是父程序映像檔中版本資訊的描述。

範例:Notepad++ : a free (GPL) source code editor
ParentProcessFileProduct 選用 字串 產品名稱來自父程序映像檔中的版本資訊。

範例:Notepad++
ParentProcessFileVersion(家長處理檔案版本) 選用 字串 產品版本可從父程序影像檔中的版本資訊中取得。

範例:7.9.5.0
ParentProcessIsHidden 選用 布林值 指示父程序是否處於隱藏模式。
ParentProcessInjectedAddress 選用 字串 負責的父程序所儲存的記憶體位址。
ParentProcessID 建議 字串 程序 ID (父程序的 PID) 。

範例:48610176
ParentProcessGuid 選用 字串 產生的唯一識別碼 (GUID) 父程序。 能在系統間識別流程。

範例:EF3BD0BD-2B74-60C5-AF5C-010000001E00
ParentProcessIntegrityLevel 選用 字串 每個程序都有一個完整性等級,該等級由其代幣代表。 完整性等級決定了製程的保護或存取層級。

Windows 定義以下完整性等級: 系統。 Standard 用戶獲得等完整性等級,提升用戶則獲得完整性等級。

欲了解更多資訊,請參閱 強制完整性控制 - Win32 應用程式
ParentProcessMD5 選用 MD5 父程序映像檔的 MD5 雜湊值。

範例:75a599802f1fa166cdadb360960b1dd0
ParentProcessSHA1 選用 SHA1 父程序映像檔的 SHA-1 雜湊值。

範例:d55c5a4df19b46db8c54c801c4665d3338acdab0
家長程序SHA256 選用 SHA256 父程序影像檔的 SHA-256 雜湊值。

例如:
e81bb824c4a09a811af17deae22f22dd
2e1ec8cbb00b22629d2899f7c68da274
家長程序SHA512 選用 SHA512 父程序影像檔的 SHA-512 雜湊值。
ParentProcessIMPHASH 選用 字串 是父程序所使用的所有函式庫 DLL 的匯入雜湊值。
ParentProcessTokenElevation 選用 字串 一個顯示用戶存取控制 (UAC) 權限提升的令牌套用於父程序。

範例:None
家長流程創造時間 選用 DateTime 家長程序開始的日期和時間。

目標使用者欄位

欄位 類別 類型 描述
目標用戶名稱 對於流程創造事件來說是強制的。 用戶名 (String) 目標用戶名,並在有網域資訊時提供。 關於不同 ID 類型的支援格式,請參考 使用者實體。 只有在網域資訊無法取得時,才使用簡易表單。

將使用者名稱類型儲存在 TargetUsernameType 欄位。 如果有其他使用者名稱格式,請將它們儲存在欄位 TargetUsername<UsernameType>中。

範例:AlbertE
目標用戶名類型 條件式 列舉 指定儲存在 TargetUsername 欄位的使用者名稱類型。 關於允許的值清單及更多資訊,請參閱結構概覽文章中的 UsernameType

範例:Windows
目標使用者ID 建議 字串 一個機器可讀、以字母數字組成且獨特的目標使用者表示方式。 關於不同 ID 類型的支援格式,請參考 使用者實體

範例:S-1-12
TargetUserIdType 條件式 使用者IdType TargetUserId 欄位中儲存的 ID 類型。 關於允許的值清單及更多資訊,請參閱結構概覽文章中的 UserIdType
TargetUserSessionID 選用 字串 目標使用者登入會話的唯一 ID。

範例:999

注意:為了支援不同系統,該型別定義為 字串 ,但在 Windows 上此值必須為數字。

如果你使用的是 Windows 或 Linux 電腦,且使用不同類型的電腦,務必轉換這些數值。 例如,如果你使用了十六進位值,請將其轉換為十進位值。
TargetUserSessionGuid 選用 字串 目標使用者登入會話的唯一 GUID,由回報裝置回報。

範例:{12345678-1234-1234-1234-123456789012}
目標使用者類型 選用 UserType 演員的類型。 關於允許的值列表及更多資訊,請參閱結構概覽文章中的 UserType

注意:該值可能在來源記錄中透過使用不同術語提供,應以這些數值標準化。 將原始值儲存在 TargetOriginalUserType 欄位。
目標原始使用者類型 選用 字串 如果回報裝置提供原始目的使用者類型。
目標使用者範圍 選用 字串 範圍,例如 Microsoft Entra 租戶,定義了 TargetUserIDTargetUsername。 或更多資訊與允許值清單,請參閱結構概覽文章中的 UserScope
目標使用者範圍ID 選用 字串 範圍 ID,例如 Microsoft Entra Directory ID,其中定義了 TargetUserIDTargetUsername。 欲了解更多資訊及允許值清單,請參閱結構概覽文章中的 UserScopeId

目標製程場

欄位 類別 類型 描述
TargetProcessName 強制性 字串 目標流程的名稱。 這個名稱通常源自用於定義初始程式碼與資料的映像檔或可執行檔,這些資料映射到程序的虛擬位址空間中。

範例:C:\Windows\explorer.exe
TargetProcessFilename 選用 字串 檔名部分是 TargetProcessName,但沒有資料夾資訊。

範例:explorer.exe
TargetProcessFileCompany 選用 字串 製作目標流程影像檔的公司名稱。

範例:Microsoft
TargetProcessFileDescription 選用 字串 目標製程映像檔中的版本資訊描述。

範例:Notepad++ : a free (GPL) source code editor
TargetProcessFileProduct 選用 字串 產品名稱來自目標製程影像檔中的版本資訊。

範例:Notepad++
目標處理檔案大小 選用 Long 執行該事件程序的檔案大小。
TargetProcessFileVersion 選用 字串 產品版本來自目標製程影像檔中的版本資訊。

範例:7.9.5.0
TargetProcessFileInternalName 選用 字串 產品內部檔名來自目標程序映像檔的版本資訊。
TargetProcessFile原始名稱 選用 字串 產品原始檔名來自目標程序映像檔的版本資訊。
目標過程隱藏 選用 布林值 指示目標過程是否處於隱藏模式。
目標程序注入地址 選用 字串 負責的目標程序所儲存的記憶體位址。
目標處理MD5 選用 MD5 目標程序影像檔的 MD5 雜湊值。

範例:75a599802f1fa166cdadb360960b1dd0
目標處理SHA1 選用 SHA1 目標程序影像檔的 SHA-1 雜湊值。

範例:d55c5a4df19b46db8c54c801c4665d3338acdab0
目標流程SHA256 選用 SHA256 目標程序影像檔的 SHA-256 雜湊值。

例如:
e81bb824c4a09a811af17deae22f22dd
2e1ec8cbb00b22629d2899f7c68da274
目標處理SHA512 選用 SHA512 目標程序影像檔的 SHA-512 雜湊值。
目標處理IMPHASH 選用 字串 目標是目標程序使用的所有函式庫 DLL 的匯入雜湊值。
雜湊型 條件式 列舉 HASH 別名欄位中允許的雜湊值類型為 MD5SHASHA256SHA512IMPHASH和 。
目標處理指令列 強制性 字串 指令列用於執行目標程序。

範例:"choco.exe" -v
TargetProcessCurrentDirectory 選用 字串 目標程序執行的當前目錄。

範例:c:\windows\system32
目標流程創建時間 建議 DateTime 產品版本來自目標製程影像檔的版本資訊。
目標程序ID 強制性 字串 程序 ID (目標程序的 PID) 。

範例:48610176

注意:為了支援不同系統,該型別定義為字串,但在 Windows 和 Linux 上,此值必須是數字。

如果你使用的是 Windows 或 Linux 電腦,且使用不同類型的電腦,務必轉換這些數值。 例如,如果你使用了十六進位值,請將其轉換為十進位值。
TargetProcessGuid 選用 GUID (弦) 產生的唯一識別碼 (GUID) 目標程序。 能在系統間識別流程。

範例:EF3BD0BD-2B74-60C5-AF5C-010000001E00
目標流程完整性層級 選用 字串 每個程序都有一個完整性等級,該等級由其代幣代表。 完整性等級決定了製程的保護或存取層級。

Windows 定義以下完整性等級: 系統。 Standard 用戶獲得等完整性等級,提升用戶則獲得完整性等級。

欲了解更多資訊,請參閱 強制完整性控制 - Win32 應用程式
TargetProcessTokenElevation 選用 字串 憑證類型顯示使用者存取控制 (UAC的存在) 權限提升,適用於已建立或終止的程序。

範例:None
TargetProcessStatusCode 選用 字串 目標程序在終止時會回傳退出碼。 此欄位僅適用於程序終止事件。 為了保持一致,欄位類型為字串,即使作業系統提供的值是數值。

檢查場

以下欄位用來表示由安全系統(如EDR系統)執行的檢查。

欄位 類別 類型 描述
規則名稱 選用 字串 規則名稱或編號與檢查結果相關聯。
規則編號 選用 整數 與檢查結果相關的規則編號。
Rule 條件式 字串 要麼是 kRuleName 的值,要麼是 RuleNumber 的值。 如果使用 RuleNumber 的值,該型別應轉換為字串。
威脅本體 選用 字串 檔案活動中識別出的威脅或惡意軟體的識別碼。
威脅名稱 選用 字串 檔案活動中識別出的威脅或惡意軟體名稱。

範例:EICAR Test File
威脅類別 選用 字串 檔案活動中識別出的威脅或惡意軟體類別。

範例:Trojan
威脅風險等級 選用 風險等級 (整數) 與已識別威脅相關的風險等級。 等級應該是 0100 之間的數字。

注意:該值可能在來源記錄中透過使用不同的刻度來提供,該刻度應被正規化至該刻度。 原始值應該儲存在 ThreatOriginalRiskLevel
威脅原始風險等級 選用 字串 報告裝置報告的風險等級。
威脅場 選用 字串 該領域被識別為威脅。
威脅場 選用 字串 該領域被識別為威脅。
威脅信心 選用 信心水準 (整數) 所識別威脅的信心等級,標準化為0到100之間的值。
威脅原創自信 選用 字串 根據報告裝置回報的原始威脅信心等級。
威脅是活躍的 選用 布林值 如果所識別的威脅被視為活躍威脅,那是正確的。
威脅首次報告時間 選用 日期時間 第一次識別出 IP 位址或網域為威脅。
威脅最後報告時間 選用 日期時間 最後一次該 IP 位址或網域被識別為威脅的時間。

結構更新

以下是結構 0.1.1 版本的變更:

  • 新增欄位 EventSchema

以下是結構 0.1.2 版本的變更

  • 加上欄位 ActorUserTypeActorOriginalUserTypeTargetUserTypeTargetOriginalUserTypeHashType

這些是結構 0.1.3 版本的變更

  • 換了欄位 ParentProcessIdTargetProcessCreationTime 從強制改成建議。

以下是結構 0.1.4 版本的變更

  • 加入了欄位 ActorScopeDvcScopeIdDvcScope和 。