Badanie planu bazowego systemu operacyjnego (na podstawie testu porównawczego CIS)
Wykonaj podstawowe i zaawansowane badania na podstawie zaleceń dotyczących linii bazowej systemu operacyjnego.
Podstawowe badanie zaleceń dotyczących zabezpieczeń punktu odniesienia systemu operacyjnego
Możesz zbadać zalecenia dotyczące linii bazowej systemu operacyjnego, przechodząc do usługi Defender dla IoT w witrynie Azure Portal. Aby uzyskać więcej informacji, zobacz jak zbadać zalecenia dotyczące zabezpieczeń.
Zaawansowane badanie zaleceń dotyczących zabezpieczeń punktu odniesienia systemu operacyjnego
W tej sekcji opisano, jak lepiej zrozumieć wyniki testu punktu odniesienia systemu operacyjnego i wykonywać zapytania dotyczące zdarzeń w usłudze Azure Log Analytics.
Wymagania wstępne:
Zaawansowane badanie zaleceń dotyczących zabezpieczeń punktu odniesienia systemu operacyjnego jest obsługiwane tylko przy użyciu usługi Azure Log Analytics i przed kontynuowaniem należy połączyć usługę Defender dla IoT z obszarem roboczym usługi Log Analytics.
Aby uzyskać więcej informacji, zobacz Konfigurowanie rozwiązania opartego na agencie usługi Microsoft Defender dla IoT.
Aby wykonywać zapytania dotyczące zdarzeń zabezpieczeń IoT w usłudze Log Analytics pod kątem alertów:
W obszarze roboczym usługi Log Analytics przejdź do pozycji Dzienniki>AzureSecurityOfThings>SecurityAlert.
W edytorze zapytań po prawej stronie wprowadź zapytanie KQL, aby wyświetlić alerty, które chcesz zobaczyć.
Wybierz pozycję Uruchom , aby wyświetlić alerty zgodne z zapytaniem.
Na przykład:
Uwaga
Oprócz alertów można również użyć tej samej procedury do wykonywania zapytań dotyczących zaleceń lub nieprzetworzonych danych zdarzeń.
Przydatne zapytania do badania zasobów punktu odniesienia systemu operacyjnego
Uwaga
Pamiętaj, aby zastąpić <device-id>
wartością nazw nadanych urządzeniu w każdym z poniższych zapytań.
Pobieranie najnowszych informacji
Niepowodzenie floty urządzeń: uruchom to zapytanie, aby pobrać najnowsze informacje o kontrolach, które zakończyły się niepowodzeniem w całej flocie urządzeń:
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
Określony błąd urządzenia — uruchom to zapytanie, aby pobrać najnowsze informacje o sprawdzaniu, które zakończyły się niepowodzeniem na określonym urządzeniu:
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
Określony błąd urządzenia — uruchom to zapytanie, aby pobrać najnowsze informacje o sprawdzaniu, które zawierają błąd na określonym urządzeniu:
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
Aktualizowanie listy urządzeń dla floty urządzeń, które zakończyły się niepowodzeniem — uruchom to zapytanie, aby pobrać zaktualizowaną listę urządzeń (w całej floty urządzeń), które zakończyły się niepowodzeniem określonego sprawdzenia:
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;
Następne kroki
Zbadaj zalecenia dotyczące zabezpieczeń.