Using SRUM in a forensic investigation
5/17/2026
SRUM is the artefact that closes the loop on "did this run, when, who ran it, how much data did it move". On the cases where EDR is absent, where the suspicious window predates EDR coverage, or where EDR has been bypassed, SRUM is frequently the most defensible per-process activity record on the machine. The trade-off is resolution: most rows are bucketed to the hour, so you anchor coarse claims with SRUM and sharpen them with second-precise artefacts elsewhere.
What SRUM is good at proving
- An application was running on a given date. Application Resource
Use rows with
FaceTime > 0orBackgroundCycleTime > 0for anAppId-resolved binary place that process on the system for a given hourly bucket. - How much data an application sent or received. Network Data
Usage
BytesSent/BytesRecvdperAppIdper network profile. - Which network the host was on. Network Connectivity carries precise FILETIME connect timestamps per Wi-Fi profile.
- Whether the laptop was on AC or battery. Energy Usage records every transition with a second-precise FILETIME.
A worked example: data exfiltration
The standard departing-employee pattern. Image taken three days after last day; the question is whether they staged and exfiltrated data.
- Acquire
C:\Windows\System32\sru\*and theSOFTWAREregistry hive from the image. See where SRUDB.dat lives. - Recover the database if dirty — how to fix a dirty SRUDB.dat.
- Parse. Drop the database in the in-browser parser or run
SrumECmd. See how to parse SRUDB.dat. - Filter Network Data Usage to the suspect's
UserId(resolved viaSruDbIdMapTableto their SID, which you map back to a user name viaProfileListin the registry). - Sort by
BytesSentdesc for the suspicion window (last 14 days of employment). Look for non-browser processes with multi-hundred-MB outbound:OneDrive.exe,Dropbox.exe,pwsh.exe,curl.exe,7z.exe, custom binaries. - Cross-check Network Connectivity for the same window. Was the
device on corporate Wi-Fi, a personal hotspot, or an unknown SSID?
Mobile broadband (
L2ProfileFlags & 0x400) often means a hotspot intentionally chosen to bypass egress filtering. - Pivot to Application Resource Use for those processes. `FaceTime
0` distinguishes foreground use from a background sync agent.
- Corroborate file activity with the USN journal and MFT — the bytes are gravy if you can also show what was archived and copied.
Process + bytes + network + user + time is a far stronger story than any single source.
A worked example: malware persistence
SOC alert fires on a low-prevalence binary executed yesterday morning.
- Resolve the binary path in
SruDbIdMapTable. If a row exists, the process registered with SRUM at some point — meaning it ran. - Pull every Application Resource Use row for that
AppId, sorted byTimeStamp. The earliest row is first execution; subsequent rows show recurrence intervals — a fingerprint for scheduled-task or run-key persistence. - If background CPU cycles continue with no foreground time, the process is running silently.
- Cross-reference Network Data Usage for the same
AppIdto see whether it phoned out, and which network it used. - Pull the binary's hash via AmCache for threat-intel pivoting, Prefetch for second-precise execution timestamps, and Sysmon 1 / EVTX 4688 (EVTX) for the parent process.
EDR overlap and where SRUM still wins
Modern EDR records most of what SRUM does, often with better granularity. SRUM still earns its place when:
- EDR was not deployed at the time of the suspicious activity.
- EDR has been disabled or bypassed by the adversary (and SRUM has not — DPS is rarely on adversary checklists).
- EDR retention is shorter than the investigation window.
- The host is a personal/contractor laptop where EDR coverage was patchy.
In those cases SRUM is a built-in, on-by-default audit log Microsoft left running for years.
Cautions
- Hourly bucketing. A five-minute browser session may show up as one 60-minute row. Do not claim minute-by-minute resolution.
FaceTime > 0≠ human at keyboard. UI visible is not human input. RDP sessions, kiosks, unattended login screens all register.- LT aggregates differ from short-term counters. Do not compare weekly LT byte counts one-to-one with hourly short-term rows.
- SYSTEM can tamper. Check
SRUDB.dat's MFT MFT entry for unexpected modification timestamps and use Energy Usage as a continuity oracle (it logs even when most application telemetry is suppressed).
Further reading
Frequently asked questions
Is SRUM evidence admissible in court?
Yes — courts in the US, UK, and EU have accepted SRUM-derived testimony. As with any digital evidence, the acquisition chain of custody and the parsing methodology must be documented.
Can SRUM prove a user was at the keyboard?
Indirectly. The FaceTime column on Application Resource Use captures time the app's UI was visible, which usually correlates with active use. It is not the same as confirmed human input.
How precise are SRUM timestamps?
Row TimeStamps are bucketed to the SRUM sample interval (typically 60 minutes). Energy events and network connection events are precise to the second.
Can an attacker tamper with SRUDB.dat?
Yes, with SYSTEM privileges they can stop the SRUM service and overwrite the file. Look for inconsistent row counts, gaps in TimeStamp sequences, or recent modification timestamps on the file itself.
Does SRUM record private/incognito browsing?
It records bytes the browser process used, but not URLs visited. So you'll see Chrome sent 200 MB on a given hour, but not where to.