The Register's report on NightmareEclipse's latest zero-day describes a failure mode that should make every on-call tech's stomach drop. The payload — BigDiskBuster — doesn't crash Microsoft Defender. It doesn't kill the service or break the agent heartbeat. It leaves Defender running and simply makes it unable to install updates.
Sit with that from a monitoring perspective. Every check you're probably running comes back clean: the WinDefend service is Running, the endpoint agent heartbeat is green, CPU, memory, and disk all look normal. Meanwhile, every affected endpoint drifts further behind on security signatures with every hour, and nothing in your stack says a word about it.
If you've ever carried the on-call phone, you know the shape of this problem. It's not the alerts that fire that wreck teams. It's the ones that should have fired and didn't — or the four hundred that fired when one contextual alert would have told the whole story.
This is an alert management story more than a malware story. BigDiskBuster is just the sharpest recent example of the class of failure most monitoring stacks cannot see: things that are up and not working.
'Running' Is Not 'Working' — and Most Checks Only Know the First One
Walk through what a typical stack actually verifies about antivirus health:
- An RMM heartbeat: is the machine online?
- A service check: is
WinDefendstarted? - Maybe an agent process check: is
MsMpEngconsuming CPU?
Under BigDiskBuster, all three pass. Defender stays up. The tray icon is there. The service answers. What none of these checks ask is the only question that matters in this scenario: when did this endpoint last successfully pull a signature update, and how many attempts have failed since?
That data exists. It lives in the endpoint security console — or, if you're an MSP, in a different console per client, each with its own login, its own alerting rules, and its own idea of what 'alerting' means. Your RMM doesn't consume it. Your helpdesk has never seen it. So the single most useful health signal for endpoint protection sits in a silo that nobody watches at 2 a.m.
Why the Gap Exists: Three Tools, Zero Signal Between Them
This blind spot isn't a knowledge problem. Every admin knows signature freshness matters. It's an architecture problem:
- Monitoring/RMM tools were built around binary state. Online/offline, running/stopped, up/down. 'Degraded but technically operational' isn't a first-class concept, so it becomes invisible.
- Endpoint security consoles are walled gardens. Rich data — signature age, failed update jobs, engine versions — but separate from your RMM, your helpdesk, and your reporting. Integration, where it exists, is a CSV export or an API connector someone built in 2021 and nobody dares touch.
- The helpdesk finds out last. By the time tickets arrive, the problem is user-visible — which means it's already an incident instead of a task.
Each tool is individually defensible. Together they guarantee that a failure which crosses their boundaries — 'the service is fine but updates stopped installing' — falls into the gap between them and stays there until a human stumbles over it.
What It Actually Costs
Take a scenario every MSP will recognize: 40 clients, roughly 3,000 managed Windows endpoints. A BigDiskBuster-style update block lands on one client's subnet on a Thursday night. Here are the six days that follow:
- Alerts fired: zero. Every service and heartbeat check is green the entire time.
- Endpoints accumulating stale definitions: ~800 across that client's sites.
- First signal: Monday, 9:40 a.m. A user ticket: 'the invoice attachment I opened did something weird.' Attachments aren't being quarantined anymore.
- What it becomes: not a 30-minute remediation task, but incident response — scoping, client notification, and an uncomfortable conversation about exposure windows.
- The postmortem line nobody wants to write: 'Monitoring reported all systems healthy throughout the period.'
There's an inverse failure that costs just as much. Plenty of teams respond to this risk by turning everything on: the AV console emails on every event, the RMM alerts on every service hiccup, and the on-call tech gets 2,400 notifications a day. The one that mattered — 'signature update failed on 12 servers, third consecutive failure' — is notification number 1,907. Alert fatigue isn't a volume problem. It's a signal quality problem, and both failure modes — silence and noise — come from alerts that carry no context about what healthy actually looks like.
How AlertMonitor Closes the Gap
AlertMonitor was built around exactly this failure class. The design bet: if every alert carries full context — device, client, what changed, and what healthy looks like — your on-call team can trust the signal, and the silently broken stuff gets caught while it's still a task.
Here's what that means against a BigDiskBuster-style scenario:
1. Context-rich alerts, not state flips. Instead of silence, you get: 'CLIENT Acme Corp / APP-DB-02 — Defender signature age 61h (threshold: 48h). Last 3 update attempts failed. Definitions stuck at 1.421.x.' Device, client, delta from healthy, and the next step, right in the alert.
2. Smart deduplication. When 800 endpoints go stale, you don't get 800 pages or 800 emails. You get one correlated, client-level alert with a drill-down of affected devices. The problem becomes visible at the size it actually is.
3. Escalation that matches severity. Signature staleness is a P3: routed to the endpoint patching queue during business hours, auto-escalating if untouched for 24 hours. A domain controller dropping offline is a P1: page the primary on-call immediately, escalate to secondary after 15 minutes. You decide what wakes a human — and nothing wakes a human that shouldn't.
4. Maintenance window suppression. Saturday patch window? Planned restarts and update cycles generate zero pages — which means anything that does page during the window is real by definition.
5. One console for the whole loop. The alert auto-creates a ticket that already contains the device's history, current patch compliance, and a one-click remote session. The old workflow — RMM tab, three per-client AV consoles, helpdesk tab, Event Viewer over VPN — burns 15–20 minutes on context-gathering before anyone touches the actual problem. In AlertMonitor, that's under two minutes, because the context arrives with the alert.
The class of failure BigDiskBuster exploits — nominally healthy, silently degraded — is precisely the class context-rich alerting catches early. Not because the tool got louder, but because the signal finally describes reality.
What You Can Do Today
1. Stop trusting service state — measure signature age
A service check will tell you Defender is running. This tells you whether it's actually doing its job:
$mp = Get-MpComputerStatus
$ageHrs = (New-TimeSpan -Start $mp.AntivirusSignatureLastUpdated -End (Get-Date)).TotalHours
if ($ageHrs -gt 48) {
Write-Output ('STALE: signatures are {0}h old on {1}' -f [math]::Round($ageHrs, 1), $env:COMPUTERNAME)
} else {
Write-Output ('OK: signatures are {0}h old on {1}' -f [math]::Round($ageHrs, 1), $env:COMPUTERNAME)
}
2. Sweep the whole fleet
Run this against your server list from a jump host with WinRM access. Anything over 48 hours goes on the remediation list — regardless of what the service state claims:
$servers = Get-Content 'C:\scripts\servers.txt'
Invoke-Command -ComputerName $servers -ScriptBlock {
$s = Get-MpComputerStatus
[PSCustomObject]@{
Computer = $env:COMPUTERNAME
SigAgeHrs = [math]::Round((New-TimeSpan -Start $s.AntivirusSignatureLastUpdated -End (Get-Date)).TotalHours, 1)
SigVersion = $s.AntivirusSignatureVersion
RealTime = $s.RealTimeProtectionEnabled
}
} | Sort-Object SigAgeHrs -Descending | Format-Table -AutoSize
3. Fix — then verify the fix actually took
Push fresh signatures and confirm the timestamp actually moved:
Update-MpSignature -UpdateSource MicrosoftUpdateServer
Get-MpComputerStatus |
Select-Object AntivirusSignatureLastUpdated, AntivirusSignatureVersion, AMServiceEnabled
If the timestamp doesn't move, the update pipeline itself is your problem:
Get-Service WinDefend, wuauserv, BITS | Select-Object Name, Status, StartType
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-Windows Defender/Operational'; Id=2000, 2001} -MaxEvents 10 |
Select-Object TimeCreated, Id, Message
Event ID 2000 means a signature update succeeded; 2001 means it failed. If your log is a wall of 2001s, you've found the silent failure the service checks were never going to show you.
4. Same discipline on Linux endpoints
# When did this endpoint last pull updates successfully?
stat -c '%y' /var/lib/apt/periodic/update-success-stamp 2>/dev/null || echo 'No successful apt update on record'
5. Turn the manual sweep into a standing alert
This is where the Friday spreadsheet ritual dies. In AlertMonitor:
- Create an alert policy on Defender signature age: warn at 48h, high at 96h.
- Deduplicate per client, so a fleet-wide issue is one alert with a device list — not one alert per machine.
- Route it as P3 to the endpoint patching queue during business hours, with 24-hour escalation if untouched.
- Suppress it during the scheduled patch maintenance window, so planned update cycles never page anyone.
You write the policy once. It watches every endpoint on every client, forever. That's the difference between remembering to check and being told.
The Takeaway
NightmareEclipse will eventually get patched, and BigDiskBuster will join the deck of war stories every admin keeps. The pattern underneath it isn't going anywhere: every environment has components that are running and not working, and 'service is started' will never be enough to catch them.
The teams that come out ahead aren't the ones with more alerts. They're the ones whose alerts describe what healthy means — device, client, what changed, what normal looks like — so the 2 a.m. pages are real, the degraded stuff gets caught while it's still cheap, and nobody has to write 'monitoring said everything was fine' into a postmortem ever again.
Related Resources
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.