Skip to content

Hunting shadow IT with Defender for Cloud Apps

An audit of 200+ unsanctioned cloud apps turned up a consumer file-sync service with foreign data residency and active uploads, which was blocked the same week.

Date

The finding

Among more than 200 cloud applications in use that nobody had sanctioned, one was a consumer file-sync service hosted outside the country with real upload volume behind it. In a regulated healthcare environment that is a data exfiltration path, whether or not anyone meant it that way. It was blocked at the proxy the same week.

Context

Microsoft Defender for Cloud Apps builds a cloud discovery inventory from firewall and proxy logs. The inventory existed. What did not exist was anyone working through it with a question sharper than “what is on this list.”

Method

The discovery data is queryable in Sentinel through the McasShadowItReporting table, which is faster to reason about than the portal for anything beyond a single app. The first pass ranked unsanctioned apps by risk score and upload volume, in the shape of this query, with column names generalized:

McasShadowItReporting
| where TimeGenerated > ago(30d)
| where AppTags !has "Sanctioned"
| summarize
    Uploaded = sum(UploadedBytes),
    Users = dcount(UserName),
    Score = any(AppScore)
  by AppName, AppCategory
| where Uploaded > 0
| order by Score asc, Uploaded desc

Low score plus non-trivial upload volume is the combination that matters. A risky app nobody sends data to is a policy problem. A risky app receiving data is an incident waiting for a name.

The second pass looked at the survivors one at a time: where the vendor is, where the data sits, what the compliance attestations say, and whether the users had a business reason.

Evidence

What it means

  • The inventory is not the audit. Discovery tools produce a list; the audit is the question you ask of it. “Unsanctioned, low-scored, and receiving data” was the question that worked.
  • Upload bytes are the signal. Sessions and users describe popularity. Bytes leaving describe risk.
  • Blocking was the easy part. The harder follow-up was finding out why people reached for the app, and making sure the sanctioned alternative actually covered that need.