ENCRYPTION
FILE RENAMES
ENTROPY
WRITE BURST
DetectionBlue TeamSOCOctober 12, 2026•9 min read

Detecting Mass File Encryption: Write, Rename and Entropy Bursts

Whatever the family, encryption has a physical footprint: one process touching a huge number of files, fast. That footprint is the most reliable ransomware signal there is.

Scroll

Ransomware families change names, languages and encryption schemes every few months, but the act of encrypting data has to happen on the endpoint, and it looks the same each time: a single process reading, rewriting and often renaming hundreds or thousands of files across many directories in minutes. We build detections on that rate and breadth rather than on file names or hashes, because those are the first things an affiliate changes.

Signals at a Glance

SignalWhereATT&CK
One process renaming or rewriting hundreds of files across many directories in minutesEDR file events, Sysmon 11/23T1486
Many files renamed to the same new extensionEDR file rename eventsT1486
Entropy of rewritten files rises to near-randomEDR content telemetryT1486
Original file deleted or overwritten after a new copy is writtenSysmon 23/26, EDRT1485
Burst touches network shares as well as local disksSMB audit, EDRT1486

Rate and Breadth

The strongest single feature is the combination of volume, directory spread and a small number of distinct extensions. Backup, sync and AV scanners also touch many files, so the aim is a score on shape, not a raw count. This hunt ranks processes by renames and directory spread in five-minute windows:

// Microsoft Defender / Sentinel (KQL) - rename bursts by process
DeviceFileEvents
| where Timestamp > ago(1h)
| where ActionType == "FileRenamed"
| extend oldExt = tolower(tostring(split(PreviousFileName, ".")[-1]))
| extend newExt = tolower(tostring(split(FileName, ".")[-1]))
| where oldExt != newExt
| summarize renames=count(), dirs=dcount(FolderPath), newExts=dcount(newExt),
            topExt=take_any(newExt)
          by DeviceName, InitiatingProcessFileName, InitiatingProcessFolderPath,
             bin(Timestamp, 5m)
| where renames > 200 and dirs > 20 and newExts <= 3
| order by renames desc
// tune/validate: exclude your backup, sync and archive agents by path and signer.

Not every family renames. Some overwrite in place and keep the original name, so pair the rename hunt with a write-rate hunt keyed on the same process and on content entropy where your EDR exposes it:

// KQL - in-place rewrite bursts (no rename) from a single unsigned process
DeviceFileEvents
| where Timestamp > ago(1h)
| where ActionType == "FileModified"
| summarize modified=count(), dirs=dcount(FolderPath), exts=dcount(tolower(tostring(split(FileName, ".")[-1])))
          by DeviceName, InitiatingProcessFileName, InitiatingProcessSHA256, bin(Timestamp, 5m)
| where modified > 500 and dirs > 25 and exts > 10
// A document-wide rewrite across many extensions is the shape of an encryptor.
// tune/validate: thresholds depend on host role (file servers will be noisy).

Tuning and Response

Vetted sources

Use the SigmaHQ and Elastic ransomware behaviour rules, Splunk ESCU file-activity searches and MITRE CAR analytics as starting points, and the CISA #StopRansomware advisories for the surrounding tradecraft. Always baseline your own environment — backup, sync and deduplication software looks like ransomware to a naive threshold.

Build Detections That Fire

Mjolnir Security helps blue teams turn threat intelligence into high-fidelity detections across endpoint, network, identity and cloud telemetry.

Detection EngineeringManaged Detection & ResponseThreat HuntingIncident ResponsePurple Teaming
  • Detection Engineering We build and tune detections mapped to ATT&CK from your own telemetry.
  • Threat Hunting as a Service Hypothesis-driven hunts for the behaviours on this page.
  • 24/7 Incident Response Containment when a detection fires. Call +1 833 403 5875.
Written by: Mjolnir Threat Research (MTAC)  |  Published: October 12, 2026  |  Last reviewed: October 12, 2026