共用方式為


調查 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 安全性事件的警示

  1. 在 Log Analytics 工作區中,移至 [記錄]>[AzureSecurityOfThings]>[SecurityAlert]

  2. 在右側的查詢編輯器中輸入 KQL 查詢,以顯示您要查看的警示。

  3. 選取 [執行] 以顯示與您的查詢相符的警示。

例如:

Log Analytics 工作區的螢幕快照,其中包含適用於 I o T 的 Defender 警示查詢。

注意

除了警示以外,您也可以使用此程序來查詢建議或原始事件資料。

調查 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;
    

下一步

調查安全性建議