Courseiva

KQL Query to Identify Malware Alerts on Unmanaged Devices in Microsoft Sentinel

Exhibit

SecurityAlert
| where AlertName == "Malware detected"
| extend DeviceName = tostring(CompromisedEntity)
| join kind=inner (
  DeviceInfo
  | where Timestamp > ago(7d)
  | project DeviceName, OSVersion, IsManaged
) on DeviceName
| where IsManaged == false

Refer to the exhibit. You are analyzing a KQL query in Microsoft Sentinel. What is the purpose of this query?

Quick Answer

The answer is to identify malware alerts on unmanaged devices in Microsoft Sentinel. This is correct because the KQL query first filters the `DeviceInfo` table for entries where `IsManaged` is `false`, isolating devices not under endpoint management, then joins that result with the `SecurityAlert` table to find alerts whose `AlertName` contains the string 'Malware'. The join ensures only alerts tied to those specific unmanaged devices are returned, rather than all malware alerts or a general device inventory. On the Microsoft Cybersecurity Architect exam, this tests your ability to interpret KQL logic for security operations scenarios, often appearing in questions that require distinguishing between managed and unmanaged device telemetry. A common trap is assuming the query counts all malware alerts, but the `IsManaged` filter is the critical differentiator. Memory tip: think "Unmanaged + Malware = Unmalware" or simply remember that `IsManaged == false` is the gatekeeper for unmanaged device alerts.

⚠ Common exam trap

Watch out — candidates often confuse the purpose of the query as simply listing all malware alerts (Option B) or showing device inventory (Option D), overlooking the critical `IsManaged == false` filter that narrows the scope to unmanaged devices.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

Identify malware alerts on unmanaged devices

The query uses the `DeviceInfo` table to filter for devices where `IsManaged` is `false`, then joins with `SecurityAlert` to find alerts where `AlertName` contains 'Malware'. This specifically identifies malware alerts generated on unmanaged devices, not all malware alerts or a general device inventory.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • Correlate malware alerts with device OS version

    Why it's wrong here

    While it includes OSVersion, the main filter is unmanaged status.

  • List all malware alerts in the last 7 days

    Why it's wrong here

    It only shows alerts from unmanaged devices, not all.

  • Identify malware alerts on unmanaged devices

    Why this is correct

    Exactly: filters on IsManaged == false.

  • Show device inventory for unmanaged devices

    Why it's wrong here

    It shows alerts, not inventory.

About these practice questions

One of 208 original SC-100 practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

Same concept, more angles

1 more way this is tested on SC-100

These questions test the same concept from different angles. Work through them to make sure you can recognise it however the exam phrases it.

Variation 1. Refer to the exhibit. You are analyzing a KQL query in Microsoft Sentinel that detects machines with more than two malware alerts in a day. The query returns no results even though you know there are machines with multiple malware alerts. What is the most likely reason?

medium
  • A.The 'summarize' function is incorrectly used and creates duplicate counts.
  • B.The query filters out alerts with severity less than 'High'.
  • C.The query does not include a time range filter, so it returns data from all time.
  • D.The alert name in the environment is not exactly 'Malware detected'; it might include a suffix like 'on endpoint'.

Why D: The KQL query likely uses a hardcoded string 'Malware detected' in a where clause to filter alerts. If the actual alert names in the environment include a suffix like 'on endpoint' (e.g., 'Malware detected on endpoint'), the exact string match fails, causing the query to return no results. This is a common issue when alert naming conventions vary across Microsoft Defender for Endpoint or other data sources ingested into Sentinel.

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This SC-100 practice question is part of Courseiva's free Microsoft certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the SC-100 exam.