進階安全性資訊模型 (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 | 字串 | 只篩選目標使用者名稱(用於進程建立事件)或動作專案使用者名稱(針對進程終止事件)具有任何列出的值的事件。 清單的長度限制為10,000個專案。 |
dvcipaddr_has_any_prefix | dynamic | 僅篩選裝置IP位址符合任何列出的IP位址或IP位址前綴的事件。 前置詞應該以 . 結尾,例如: 10.0. 。 清單的長度限制為10,000個專案。 |
dvchostname_has_any | dynamic | 僅篩選裝置主機名或裝置 FQDN 可用的事件,具有任何列出的值。 清單的長度限制為10,000個專案。 |
eventtype | 字串 | 只篩選指定類型的進程事件。 |
或範例,若要僅篩選過去一天到特定用戶的驗證事件,請使用:
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 | 範圍,例如Microsoft Entra 租使用者,其中 已定義ActorUserId 和 ActorUsername 。 或詳細資訊和允許的值清單,請參閱架構概觀一文中的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 | 選擇性 | 字串 | 代理程式的名稱。 此名稱通常衍生自映像或可執行檔,用來定義對應至進程虛擬位址空間的初始程式代碼和數據。 範例: 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 | 選擇性 | 字串 | 代理程式所產生的唯一標識碼 (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 | 選擇性 | 字串 | 父進程的名稱。 此名稱通常衍生自映像或可執行檔,用來定義對應至進程虛擬位址空間的初始程式代碼和數據。 範例: 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 | 必要 | 字串 | 目標進程的名稱。 此名稱通常衍生自映像或可執行檔,用來定義對應至進程虛擬位址空間的初始程式代碼和數據。 範例: 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
。
下一步
如需詳細資訊,請參閱