進階安全性資訊模型 (ASIM) 進程事件正規化架構參考 (公開預覽)
Process 事件正規化架構可用來描述執行和終止進程的作業系統活動。 這類事件是由作業系統和安全性系統所報告,例如 EDR(端點偵測和回應)系統。
OSSEM 所定義的進程是內含專案和管理物件,代表程式執行中的實例。 雖然進程本身不會執行,但它們會管理執行和執行程式碼的執行緒。
如需 Microsoft Sentinel 中正規化的詳細資訊,請參閱 正規化和進階安全性資訊模型(ASIM)。
重要
Process 事件正規化架構目前為 PREVIEW。 此功能在沒有服務等級協定的情況下提供,不建議用於生產工作負載。
Azure 預覽補充條款 包含適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未發行的版本) 的其他法律條款。
剖析器
若要使用統一的剖析器來統一所有列出的剖析器,並確保您分析所有已設定的來源,請在查詢中使用下表名稱:
- imProcess 針對需要進程建立資訊的查詢建立 。 這些查詢是最常見的案例。
- 需要進程終止資訊的查詢 imProcessTerminate 。
如需處理事件剖析器清單,Microsoft Sentinel 提供現成的參考 ASIM 剖析器清單 。
從 Microsoft Sentinel GitHub 存放庫 部署驗證剖析器。
如需詳細資訊,請參閱 ASIM 剖析器概觀 。
新增您自己的標準化剖析器
實作自訂進程事件剖析器時,請使用下列語法為您的 KQL 函式命名: imProcessCreate<vendor><Product>
和 imProcessTerminate<vendor><Product>
。 將 取代 im
ASim
為 無參數版本。
將 KQL 函式新增至統一剖析器,如管理 ASIM 剖析器 中所述 。
篩選剖析器參數
im
和 vim*
剖析器支援 篩選參數 。 雖然這些剖析器是選擇性的,但它們可以改善查詢效能。
下列篩選參數可供使用:
名稱 | 類型 | 描述 |
---|---|---|
starttime | Datetime | 僅篩選此時間或之後發生的進程事件。 |
endtime | Datetime | 只篩選此時或之前發生的事件查詢。 |
commandline_has_any | dynamic | 只篩選執行命令列 具有任何 列出的值的進程事件。 清單的長度限制為 10,000 個專案。 |
commandline_has_all | dynamic | 只篩選執行命令列具有 所有 列出的值的事件。 清單的長度限制為 10,000 個專案。 |
commandline_has_any_ip_prefix | dynamic | 只篩選執行命令列 具有所有 列出的 IP 位址或 IP 位址首碼的事件。 前置詞應該以 . 結尾,例如: 10.0. 。 清單的長度限制為 10,000 個專案。 |
actingprocess_has_any | dynamic | 只篩選作用中進程名稱包含整個進程路徑的進程事件,其中包含任何列出的值。 清單的長度限制為 10,000 個專案。 |
targetprocess_has_any | dynamic | 只篩選目標進程名稱包含整個進程路徑的進程事件,其中含有任何列出的值。 清單的長度限制為 10,000 個專案。 |
parentprocess_has_any | dynamic | 只篩選目標進程名稱包含整個進程路徑的進程事件,其中含有任何列出的值。 清單的長度限制為 10,000 個專案。 |
targetusername_has 或 actorusername_has | string | 只篩選目標使用者名稱(用於進程建立事件)或動作專案使用者名稱(針對進程終止事件)具有任何列出的值的事件。 清單的長度限制為 10,000 個專案。 |
dvcipaddr_has_any_prefix | dynamic | 僅篩選裝置 IP 位址符合任何列出的 IP 位址或 IP 位址首碼的事件。 前置詞應該以 . 結尾,例如: 10.0. 。 清單的長度限制為 10,000 個專案。 |
dvchostname_has_any | dynamic | 僅篩選裝置主機名稱或裝置 FQDN 可用的事件,具有任何列出的值。 清單的長度限制為 10,000 個專案。 |
eventtype | string | 只篩選指定類型的進程事件。 |
或範例,若要僅篩選過去一天到特定使用者的驗證事件,請使用:
imProcessCreate (targetusername_has = 'johndoe', starttime = ago(1d), endtime=now())
提示
若要將常值清單傳遞至預期動態值的參數,請明確使用 動態常值 。 例如: dynamic(['192.168.','10.'])
。
標準化內容
如需使用標準化進程事件之分析規則的完整清單,請參閱 處理事件安全性內容 。
架構詳細資料
Process 事件資訊模型會對齊 OSSEM Process 實體架構 。
一般 ASIM 欄位
重要
ASIM 通用欄位一文會詳細說明 所有架構的通用欄位 。
具有特定指導方針的常見欄位
下列清單提及具有進程活動事件特定指導方針的欄位:
欄位 | 類別 | 類型 | 描述 |
---|---|---|---|
EventType | 必要 | 枚舉 | 描述記錄所報告的作業。 針對進程記錄,支援的值包括: - ProcessCreated - ProcessTerminated |
EventSchemaVersion | 必要 | String | 結構描述的版本。 這裡記載的架構版本如下 0.1.4 |
EventSchema | 選擇性 | String | 這裡記載的架構名稱為 ProcessEvent 。 |
Dvc 欄位 | 針對進程活動事件,裝置欄位會參考執行進程所在的系統。 |
重要
欄位 EventSchema
目前為選擇性欄位,但將于 2022 年 9 月 1 日變成 [強制]。
所有通用欄位
下表中顯示的欄位適用于所有 ASIM 架構。 上述任何指定的指導方針會覆寫欄位的一般指導方針。 例如,欄位通常是選擇性的,但特定架構的必要專案。 如需每個欄位的進一步詳細資料,請參閱 ASIM 通用欄位 一文。
處理事件特定欄位
下表所列的欄位專屬於處理事件,但與其他架構中的欄位類似,並遵循類似的命名慣例。
進程事件架構會參考下列實體,這些實體是處理建立和終止活動的核心:
- 動作專案 - 起始程式建立或終止的使用者。
- ActingProcess - 動作專案用來起始進程建立或終止的程式。
- TargetProcess - 新進程。
- TargetUser - 用來建立新進程的認證使用者。
- ParentProcess - 起始動作專案進程的進程。
別名
欄位 | 類別 | 類型 | 描述 |
---|---|---|---|
使用者 | Alias | TargetUsername 的 別名。 範例: CONTOSO\dadmin |
|
處理 | Alias | TargetProcessName 的 別名 範例: C:\Windows\System32\rundll32.exe |
|
CommandLine | Alias | TargetProcessCommandLine 的 別名 | |
雜湊 | Alias | 目標進程的最佳可用雜湊別名。 |
動作專案欄位
欄位 | 類別 | 類型 | 描述 |
---|---|---|---|
ActorUserId | 建議需求 | String | 機器可讀取、英數位元、動作專案的唯一標記法。 如需不同識別碼類型支援的格式,請參閱 User 實體 。 範例: S-1-12 |
ActorUserIdType | 條件 | String | 儲存在 ActorUserId 欄位中的識別碼類型。 如需允許值的清單和進一步資訊,請參閱 架構概觀一文 中的 UserIdType 。 |
ActorScope | 選擇性 | String | 定義 ActorUserId 和 ActorUsername 的 Microsoft Entra 租使用者 等範圍。 或詳細資訊和允許的值清單,請參閱 架構概觀一文 中的 UserScope 。 |
ActorUsername | 必要 | String | 動作專案使用者名稱,包括可用時的網域資訊。 如需不同識別碼類型支援的格式,請參閱 User 實體 。 只有在網域資訊無法使用時,才使用簡單表單。 將 Username 類型儲存在 ActorUsernameType 欄位中。 如果有其他使用者名稱格式可供使用,請將它們儲存在 欄位中 ActorUsername<UsernameType> 。範例: AlbertE |
ActorUsernameType | 條件 | 枚舉 | 指定儲存在 ActorUsername 欄位中的使用者名稱類型。 如需允許值的清單和進一步資訊, 請參閱架構概觀一文 中的 UsernameType 。 範例: Windows |
ActorSessionId | 選擇性 | String | 動作專案登入會話的唯一識別碼。 範例: 999 注意 :類型定義為 支援不同系統的字串 ,但在 Windows 上,此值必須是數值。 如果您使用 Windows 電腦並使用不同的類型,請務必轉換值。 例如,如果您使用十六進位值,請將它轉換成十進位值。 |
ActorUserType | 選擇性 | UserType | 動作專案的類型。 如需允許值的清單和進一步資訊,請參閱 架構概觀一文 中的 UserType 。 注意 :來源記錄中可能會使用不同的詞彙來提供此值,這應該會正規化為這些值。 將原始值儲存在 ActorOriginalUserType 欄位中。 |
ActorOriginalUserType | 選擇性 | String | 如果報告裝置提供,則為原始目的地使用者類型。 |
代理程式欄位
欄位 | 類別 | 類型 | 描述 |
---|---|---|---|
ActingProcessCommandLine | 選擇性 | String | 用來執行代理程式的命令列。 範例: "choco.exe" -v |
ActingProcessName | 選擇性 | string | 代理程式的名稱。 此名稱通常衍生自映射或可執行檔,用來定義對應至進程虛擬位址空間的初始程式碼和資料。 範例: C:\Windows\explorer.exe |
ActingProcessFileCompany | 選擇性 | String | 建立代理程式影像檔的公司。 範例: Microsoft |
ActingProcessFileDescription | 選擇性 | String | 內嵌在代理程式影像檔的版本資訊中的描述。 範例: Notepad++ : a free (GPL) source code editor |
ActingProcessFileProduct | 選擇性 | String | 代理程式映射檔中版本資訊中的產品名稱。 範例: Notepad++ |
ActingProcessFileVersion | 選擇性 | String | 代理程式影像檔之版本資訊的產品版本。 範例: 7.9.5.0 |
ActingProcessFileInternalName | 選擇性 | String | 代理程式影像檔之版本資訊的產品內部檔案名。 |
ActingProcessFileOriginalName | 選擇性 | String | 代理程式影像檔之版本資訊的產品原始檔案名稱。 範例: Notepad++.exe |
ActingProcessIsHidden | 選擇性 | 布林值 | 指示代理程式是否處於隱形模式。 |
ActingProcessInjectedAddress | 選擇性 | String | 負責處理進程儲存所在的記憶體位址。 |
ActingProcessId | 必要 | String | 代理程式的進程識別碼(PID)。 範例: 48610176 注意 :類型定義為 支援不同系統的字串 ,但在 Windows 和 Linux 上,此值必須是數值。 如果您使用 Windows 或 Linux 電腦並使用不同的類型,請務必轉換值。 例如,如果您使用十六進位值,請將它轉換成十進位值。 |
ActingProcessGuid | 選擇性 | string | 代理程式所產生的唯一識別碼 (GUID)。 啟用跨系統識別程式。 範例: EF3BD0BD-2B74-60C5-AF5C-010000001E00 |
ActingProcessIntegrityLevel | 選擇性 | String | 每個進程都有在其權杖中表示的完整性層級。 完整性層級會決定保護或存取的程式層級。 Windows 定義下列完整性層級: 低 、 中 、 高 和 系統 。 標準使用者會收到 中等 完整性層級,而提升許可權的使用者會收到 高 完整性層級。 如需詳細資訊,請參閱 強制完整性控制 - Win32 應用程式 。 |
ActingProcessMD5 | 選擇性 | String | 代理程式映射檔的 MD5 雜湊。 範例: 75a599802f1fa166cdadb360960b1dd0 |
ActingProcessSHA1 | 選擇性 | SHA1 | 代理程式影像檔的 SHA-1 雜湊。 範例: d55c5a4df19b46db8c54c801c4665d3338acdab0 |
ActingProcessSHA256 | 選擇性 | SHA256 | 代理程式影像檔的 SHA-256 雜湊。 範例: e81bb824c4a09a811af17deae22f22dd 2e1ec8cbb00b22629d2899f7c68da274 |
ActingProcessSHA512 | 選擇性 | SHA521 | 代理程式影像檔的 SHA-512 雜湊。 |
ActingProcessIMPHASH | 選擇性 | String | 代理程式所使用的所有程式庫 DLL 的匯入雜湊。 |
ActingProcessCreationTime | 選擇性 | Datetime | 啟動代理程式的日期和時間。 |
ActingProcessTokenElevation | 選擇性 | String | 標記,指出套用至代理程式的使用者存取控制 (UAC) 許可權提升是否存在。 範例: None |
ActingProcessFileSize | 選擇性 | Long | 執行代理程式的檔案大小。 |
父進程欄位
欄位 | 類別 | 類型 | 描述 |
---|---|---|---|
ParentProcessName | 選擇性 | string | 父進程的名稱。 此名稱通常衍生自映射或可執行檔,用來定義對應至進程虛擬位址空間的初始程式碼和資料。 範例: C:\Windows\explorer.exe |
ParentProcessFileCompany | 選擇性 | String | 建立父進程映射檔的公司名稱。 範例: Microsoft |
ParentProcessFileDescription | 選擇性 | String | 父進程映射檔中版本資訊的描述。 範例: Notepad++ : a free (GPL) source code editor |
ParentProcessFileProduct | 選擇性 | String | 父進程映射檔中版本資訊中的產品名稱。 範例: Notepad++ |
ParentProcessFileVersion | 選擇性 | String | 父進程映射檔中版本資訊的產品版本。 範例: 7.9.5.0 |
ParentProcessIsHidden | 選擇性 | 布林值 | 指出父進程是否處於隱形模式。 |
ParentProcessInjectedAddress | 選擇性 | String | 負責父進程儲存所在的記憶體位址。 |
ParentProcessId | 建議需求 | String | 父進程的進程識別碼 (PID)。 範例: 48610176 |
ParentProcessGuid | 選擇性 | String | 父進程的產生唯一識別碼 (GUID)。 啟用跨系統識別程式。 範例: EF3BD0BD-2B74-60C5-AF5C-010000001E00 |
ParentProcessIntegrityLevel | 選擇性 | String | 每個進程都有在其權杖中表示的完整性層級。 完整性層級會決定保護或存取的程式層級。 Windows 定義下列完整性層級: 低 、 中 、 高 和 系統 。 標準使用者會收到 中等 完整性層級,而提升許可權的使用者會收到 高 完整性層級。 如需詳細資訊,請參閱 強制完整性控制 - Win32 應用程式 。 |
ParentProcessMD5 | 選擇性 | MD5 | 父進程映射檔的 MD5 雜湊。 範例: 75a599802f1fa166cdadb360960b1dd0 |
ParentProcessSHA1 | 選擇性 | SHA1 | 父進程映射檔的 SHA-1 雜湊。 範例: d55c5a4df19b46db8c54c801c4665d3338acdab0 |
ParentProcessSHA256 | 選擇性 | SHA256 | 父進程映射檔的 SHA-256 雜湊。 範例: e81bb824c4a09a811af17deae22f22dd 2e1ec8cbb00b22629d2899f7c68da274 |
ParentProcessSHA512 | 選擇性 | SHA512 | 父進程映射檔的 SHA-512 雜湊。 |
ParentProcessIMPHASH | 選擇性 | String | 父進程所使用的所有程式庫 DLL 的匯入雜湊。 |
ParentProcessTokenElevation | 選擇性 | String | 標記,指出套用至父進程之使用者存取控制 (UAC) 許可權提升是否存在。 範例: None |
ParentProcessCreationTime | 選擇性 | Datetime | 啟動父進程的日期和時間。 |
目標使用者欄位
欄位 | 類別 | 類型 | 描述 |
---|---|---|---|
TargetUsername | 程式建立事件的必要專案。 | String | 目標使用者名稱,包括可用時的網域資訊。 如需不同識別碼類型支援的格式,請參閱 User 實體 。 只有在網域資訊無法使用時,才使用簡單表單。 將 [使用者名稱類型] 儲存在 [TargetUsernameType ] 欄位中。 如果有其他使用者名稱格式可供使用,請將它們儲存在 欄位中 TargetUsername<UsernameType> 。範例: AlbertE |
TargetUsernameType | 條件 | 枚舉 | 指定儲存在 TargetUsername 欄位中的使用者名稱類型。 如需允許值的清單和進一步資訊, 請參閱架構概觀一文 中的 UsernameType 。 範例: Windows |
TargetUserId | 建議需求 | String | 電腦可讀取、英數位元、目標使用者的唯一標記法。 如需不同識別碼類型支援的格式,請參閱 User 實體 。 範例: S-1-12 |
TargetUserIdType | 條件 | String | 儲存在 TargetUserId 欄位中的識別碼類型。 如需允許值的清單和進一步資訊,請參閱 架構概觀一文 中的 UserIdType 。 |
TargetUserSessionId | 選擇性 | String | 目標使用者登入會話的唯一識別碼。 範例: 999 注意 :類型定義為 支援不同系統的字串 ,但在 Windows 上,此值必須是數值。 如果您使用 Windows 或 Linux 電腦並使用不同的類型,請務必轉換值。 例如,如果您使用十六進位值,請將它轉換成十進位值。 |
TargetUserType | 選擇性 | UserType | 動作專案的類型。 如需允許值的清單和進一步資訊,請參閱 架構概觀一文 中的 UserType 。 注意 :來源記錄中可能會使用不同的詞彙來提供此值,這應該會正規化為這些值。 將原始值儲存在 TargetOriginalUserType 欄位中。 |
TargetOriginalUserType | 選擇性 | String | 如果報告裝置提供,則為原始目的地使用者類型。 |
目標進程欄位
欄位 | 類別 | 類型 | 描述 |
---|---|---|---|
TargetProcessName | 必要 | string | 目標進程的名稱。 此名稱通常衍生自映射或可執行檔,用來定義對應至進程虛擬位址空間的初始程式碼和資料。 範例: C:\Windows\explorer.exe |
TargetProcessFileCompany | 選擇性 | String | 建立目標進程映射檔的公司名稱。 範例: Microsoft |
TargetProcessFileDescription | 選擇性 | String | 目標進程映射檔中版本資訊的描述。 範例: Notepad++ : a free (GPL) source code editor |
TargetProcessFileProduct | 選擇性 | String | 目標進程映射檔中版本資訊中的產品名稱。 範例: Notepad++ |
TargetProcessFileSize | 選擇性 | String | 執行負責事件之進程的檔案大小。 |
TargetProcessFileVersion | 選擇性 | String | 目標進程映射檔中版本資訊的產品版本。 範例: 7.9.5.0 |
TargetProcessFileInternalName | 選擇性 | String | 目標進程映射檔版本資訊的產品內部檔案名。 |
TargetProcessFileOriginalName | 選擇性 | String | 來自目標進程映射檔版本資訊的產品原始檔案名稱。 |
TargetProcessIsHidden | 選擇性 | 布林值 | 指出目標進程是否處於隱形模式。 |
TargetProcessInjectedAddress | 選擇性 | String | 負責目標進程儲存所在的記憶體位址。 |
TargetProcessMD5 | 選擇性 | MD5 | 目標進程映射檔的 MD5 雜湊。 範例: 75a599802f1fa166cdadb360960b1dd0 |
TargetProcessSHA1 | 選擇性 | SHA1 | 目標進程映射檔的 SHA-1 雜湊。 範例: d55c5a4df19b46db8c54c801c4665d3338acdab0 |
TargetProcessSHA256 | 選擇性 | SHA256 | 目標進程映射檔的 SHA-256 雜湊。 範例: e81bb824c4a09a811af17deae22f22dd 2e1ec8cbb00b22629d2899f7c68da274 |
TargetProcessSHA512 | 選擇性 | SHA512 | 目標進程映射檔的 SHA-512 雜湊。 |
TargetProcessIMPHASH | 選擇性 | String | 目標進程所使用的所有程式庫 DLL 的匯入雜湊。 |
HashType | 建議需求 | String | 儲存在 HASH 別名欄位中的雜湊類型,允許的值為 MD5 、 SHA 、 SHA256 SHA512 和 IMPHASH 。 |
TargetProcessCommandLine | 必要 | String | 用來執行目標進程的命令列。 範例: "choco.exe" -v |
TargetProcessCurrentDirectory | 選擇性 | String | 執行目標進程的目前目錄。 範例: c:\windows\system32 |
TargetProcessCreationTime | 建議需求 | Datetime | 目標進程映射檔版本資訊的產品版本。 |
TargetProcessId | 必要 | String | 目標進程的進程識別碼 (PID)。 範例: 48610176 注意 :類型定義為 支援不同系統的字串 ,但在 Windows 和 Linux 上,此值必須是數值。 如果您使用 Windows 或 Linux 電腦並使用不同的類型,請務必轉換值。 例如,如果您使用十六進位值,請將它轉換成十進位值。 |
TargetProcessGuid | 選擇性 | String | 目標進程所產生的唯一識別碼 (GUID)。 啟用跨系統識別程式。 範例: EF3BD0BD-2B74-60C5-AF5C-010000001E00 |
TargetProcessIntegrityLevel | 選擇性 | String | 每個進程都有在其權杖中表示的完整性層級。 完整性層級會決定保護或存取的程式層級。 Windows 定義下列完整性層級: 低 、 中 、 高 和 系統 。 標準使用者會收到 中等 完整性層級,而提升許可權的使用者會收到 高 完整性層級。 如需詳細資訊,請參閱 強制完整性控制 - Win32 應用程式 。 |
TargetProcessTokenElevation | 選擇性 | String | 權杖類型,指出已建立或終止的進程套用使用者存取控制 (UAC) 許可權提升。 範例: None |
TargetProcessStatusCode | 選擇性 | String | 終止時,目標進程所傳回的結束代碼。 此欄位僅適用于進程終止事件。 為了一致性,欄位類型為字串,即使作業系統所提供的值為數值也一樣。 |
架構更新
這些是架構 0.1.1 版的變更:
- 已新增欄位
EventSchema
。
這些是架構 0.1.2 版的變更
- 已新增 、
ActorOriginalUserType
、TargetUserType
、TargetOriginalUserType
和HashType
欄位ActorUserType
。
這些是架構 0.1.3 版的變更
- 將欄位
ParentProcessId
和TargetProcessCreationTime
從強制變更為建議。
這些是架構 0.1.4 版的變更
- 已新增 、 和
DvcScope
欄位ActorScope
DvcScopeId
。
下一步
如需詳細資訊,請參閱