調查 OS 基準 (根據 CIS 基準) 建議
根據 OS 基準建議執行基本和進階調查。
基本 OS 基準安全性建議調查
您可以在 Azure 入口網站中瀏覽至適用於 IoT 的 Defender,以調查 OS 基準建議。 如需詳細資訊,請參閱如何調查安全性建議。
進階 OS 基準安全性建議調查
本節說明如何進一步了解 OS 基準測試結果,以及在 Azure Log Analytics 中查詢事件。
先決條件:
只有使用 Azure Log Analytics 時才支援進階 OS 基準安全性建議調查,且您必須先將適用於 IoT 的 Defender 連線至 Log Analytics 工作區,再繼續操作。
如需詳細資訊,請參閱設定適用於 IoT 的 Microsoft Defender 代理程式型解決方案。
若要在 Log Analytics 中查詢 IoT 安全性事件的警示:
在 Log Analytics 工作區中,移至 [記錄]>[AzureSecurityOfThings]>[SecurityAlert]。
在右側的查詢編輯器中輸入 KQL 查詢,以顯示您要查看的警示。
選取 [執行] 以顯示與您的查詢相符的警示。
例如:
注意
除了警示以外,您也可以使用此程序來查詢建議或原始事件資料。
調查 OS 基準資源的實用查詢
注意
在下列每個查詢中,請務必將 <device-id>
取代為您提供給裝置的名稱。
擷取最新資訊
裝置群失敗:執行此查詢,以擷取有關裝置群失敗的最新檢查資訊:
let lastDates = SecurityIoTRawEvent | where RawEventName == "Baseline" | summarize TimeStamp=max(TimeStamp) by DeviceId; lastDates | join kind=inner (SecurityIoTRawEvent) on TimeStamp, DeviceId | extend event = parse_json(EventDetails) | where event.BaselineCheckResult == "FAIL" | project DeviceId, event.BaselineCheckId, event.BaselineCheckDescription
特定裝置失敗 - 執行此查詢,以擷取特定裝置失敗的最新檢查資訊:
let id = SecurityIoTRawEvent | extend IoTRawEventId = extractjson("$.EventId", EventDetails, typeof(string)) | where TimeGenerated <= now() | where RawEventName == "Baseline" | where DeviceId == "<device-id>" | summarize arg_max(TimeGenerated, IoTRawEventId) | project IoTRawEventId; SecurityIoTRawEvent | extend IoTRawEventId = extractjson("$.EventId", EventDetails, typeof(string)), extraDetails = todynamic(EventDetails) | where IoTRawEventId == toscalar(id) | where extraDetails.BaselineCheckResult == "FAIL" | project DeviceId, CceId = extraDetails.BaselineCheckId, Description = extraDetails.BaselineCheckDescription
特定裝置錯誤 - 執行此查詢,以擷取特定裝置上發生錯誤的最新檢查資訊:
let id = SecurityIoTRawEvent | extend IoTRawEventId = extractjson("$.EventId", EventDetails, typeof(string)) | where TimeGenerated <= now() | where RawEventName == "Baseline" | where DeviceId == "<device-id>" | summarize arg_max(TimeGenerated, IoTRawEventId) | project IoTRawEventId; SecurityIoTRawEvent | extend IoTRawEventId = extractjson("$.EventId", EventDetails, typeof(string)), extraDetails = todynamic(EventDetails) | where IoTRawEventId == toscalar(id) | where extraDetails.BaselineCheckResult == "ERROR" | project DeviceId, CceId = extraDetails.BaselineCheckId, Description = extraDetails.BaselineCheckDescription
針對特定檢查失敗的裝置群更新裝置清單 - 執行此查詢,以擷取裝置群中特定檢查失敗的已更新裝置清單:
let lastDates = SecurityIoTRawEvent | where RawEventName == "Baseline" | summarize TimeStamp=max(TimeStamp) by DeviceId; lastDates | join kind=inner (SecurityIoTRawEvent) on TimeStamp, DeviceId | extend event = parse_json(EventDetails) | where event.BaselineCheckResult == "FAIL" | where event.BaselineCheckId contains "6.2.8" | project DeviceId;