Lesson 75 — The Baseline Changed
For thirty days, FIN-WS-117 behaved exactly as expected.
The reporting workflow launched PowerShell every weekday morning.
Same time.
Same parent process.
Same command.
Same account.
Then, on Monday, the pattern changed.
The executions started later.
The command line was different.
A second account appeared.
And one of the processes connected externally.
The baseline had moved.
Agent Foskett looked at the timeline.
“The question isn't whether the baseline changed. It did. The question is why.”

Normal is not permanent.
Environments evolve. The analyst must determine whether the change is expected business drift or security-significant behaviour.
Case briefing
Investigation objective
Recognise when a previously understood behavioural pattern has changed, identify which dimensions changed, validate legitimate business drift and isolate evidence that cannot be explained by the new operating context.
Investigator's rule
Do not force new evidence to fit an old baseline.
Stage 1 — establish exactly what changed
| Baseline dimension | Historical pattern | New observation |
|---|---|---|
| Time | 06:40–07:05 weekdays | 07:18 and 07:24 |
| Parent process | Approved reporting application | Chrome and approved application |
| Command line | Known reporting command | One new command + known command |
| Account | Reporting service account | User account + service account |
| Network | No expected external connection | External connection from PowerShell |
Change is multidimensional
A baseline can shift in frequency, timing, account, parent process, command, destination, device population or sequence. Capture the differences before deciding what they mean.
One changed dimension may be benign
A schedule moving from 06:40 to 07:20 could reflect a business change. Several simultaneous changes deserve stronger scrutiny.
Stage 2 — compare old and recent activity
DeviceProcessEvents
| where Timestamp > ago(30d)
| where DeviceName =~ "FIN-WS-117"
| where FileName in~ ("powershell.exe", "pwsh.exe")
| extend Period = iff(
Timestamp > ago(7d),
"Recent 7 days",
"Previous period"
)
| summarize Executions=count(),
Commands=dcount(ProcessCommandLine)
by Period, InitiatingProcessFileName, AccountName
| order by Period ascCompare periods deliberately
Instead of looking only at today's events, compare a recent window against the established historical period. That makes emerging behavioural changes easier to see.
New does not mean malicious
A newly observed parent process or command should be treated as a lead. The next task is to explain it using independent evidence.
Stage 3 — form competing explanations
Competing hypotheses prevent tunnel vision
If the analyst decides too early that “the baseline simply changed,” malicious evidence may be rationalised away. If they decide everything new is hostile, normal business evolution becomes noise.
Mixed explanations are common
A legitimate change and an unrelated security event can occur on the same device at the same time. Do not assume one explanation must account for every observation.
Stage 4 — validate legitimate change outside the telemetry
| Validation source | What the analyst learns |
|---|---|
| Change record | Finance reporting application was upgraded Friday evening. |
| Application owner | New version now runs at 07:20 instead of 06:40. |
| Deployment records | Updated package was deployed to FIN-WS-117. |
| Script owner | Approved reporting command remained unchanged. |
| User interview | User did not intentionally launch PowerShell from Chrome. |
Part of the drift is explained
The new schedule is legitimate. The approved application is legitimate. The known reporting PowerShell execution is legitimate.
But not every difference is explained
The Chrome-launched PowerShell process, new command, user account and external network activity remain outside the validated business change.
Stage 5 — split explained drift from unexplained behaviour
This is the critical analyst move
Once legitimate drift is validated, remove it conceptually from the suspicious population and continue investigating the residue that remains unexplained.
Do not close the whole case because one change was approved
A valid change ticket can explain specific activity. It does not automatically legitimise every event observed near the change window.
Stage 6 — investigate the unexplained command
DeviceProcessEvents
| where Timestamp > ago(30d)
| where FileName in~ ("powershell.exe", "pwsh.exe")
| where InitiatingProcessFileName =~ "chrome.exe"
| project Timestamp, DeviceId, DeviceName,
AccountName, ProcessCommandLine,
InitiatingProcessFileName
| order by Timestamp ascAsk whether the new behaviour exists elsewhere
If Chrome-to-PowerShell is truly new on FIN-WS-117, search the broader environment. A matching sequence on other devices may transform a local anomaly into an attack pattern.
History helps classify novelty
Novel within one device, novel within a peer group and novel across the entire environment are different findings. Record which one the evidence supports.
Stage 7 — pivot into follow-on network activity
DeviceNetworkEvents
| where Timestamp between (
datetime(2026-09-04 07:15:00) ..
datetime(2026-09-04 07:25:00)
)
| where DeviceName =~ "FIN-WS-117"
| where InitiatingProcessFileName in~ (
"powershell.exe", "pwsh.exe"
)
| project Timestamp, DeviceName,
InitiatingProcessFileName,
RemoteIP, RemotePort, RemoteUrl
| order by Timestamp ascCorrelate the changed behaviour with consequences
A new command becomes more significant when it is followed by suspicious network activity, file creation, credential access, persistence or lateral movement.
Sequence matters
The strongest conclusion often comes from a chain of related events rather than one changed baseline attribute.
Stage 8 — the environment provides another clue
The baseline shift is now security-significant
The analyst has moved beyond “this device looks different.” A correlated new behaviour across several comparable endpoints strongly increases the need for incident investigation.
Do not confuse correlation with final attribution
The evidence may support malicious activity without yet proving the attacker, entry vector or exact technique chain. Keep conclusions proportional to the evidence.
Stage 9 — decide what becomes the new baseline
| Observed change | Disposition |
|---|---|
| Reporting task moved to 07:20 | Validated legitimate drift — update baseline context. |
| Approved reporting command remains present | Expected behaviour. |
| Chrome → PowerShell | Unexplained and correlated across devices. |
| New user-context command | Suspicious — continue investigation. |
| External connection from PowerShell | Suspicious follow-on behaviour. |
Baselines should evolve only with validated context
Do not absorb new behaviour into “normal” merely because it has occurred repeatedly. Repetition without validation can normalise an attack.
Update the baseline, not the suspicion away
Record the legitimate schedule change while preserving the separate suspicious pattern as investigative evidence.
Stage 10 — write a defensible finding
Separate facts from interpretation
The strongest report distinguishes validated operational changes from unexplained security-relevant evidence instead of labelling the entire behavioural shift as either benign or malicious.
A baseline is a living reference
Good threat hunting continually updates its understanding of the environment while resisting the temptation to treat every repeated behaviour as normal.
Lesson 75 key takeaways
- Normal behaviour changes as environments and business processes evolve.
- Identify exactly which baseline dimensions changed.
- Several simultaneous changes deserve stronger scrutiny than one isolated difference.
- Form competing explanations before choosing a conclusion.
- Legitimate drift and malicious activity can coexist.
- Validate business changes using independent evidence.
- An approved change only explains the activity it actually covers.
- Separate validated drift from unexplained residual behaviour.
- Search historical and environmental telemetry for new patterns.
- Correlate changed behaviour with follow-on activity.
- Do not automatically absorb repeated unexplained behaviour into the baseline.
- Update baselines when legitimate drift is validated.
Module 8 — Threat Hunting: Looking Beyond the Alerts
Lesson 75 separated validated operational drift from suspicious behavioural change. Lesson 76 moves into another core hunting skill: combining several individually weak signals until they form one much stronger investigative lead.
Continue your SOC Analyst training
🔎 SOC Analyst Academy — Module 8: Threat Hunting: Looking Beyond the Alerts
How do threat hunters investigate a changing behavioural baseline?
Lesson 75 of the Agent Foskett SOC Analyst Academy teaches analysts how to distinguish validated business drift from unexplained security-relevant behaviour when a previously understood baseline changes.
Separating legitimate drift from attack behaviour
Learn how to compare historical and recent Microsoft Defender XDR telemetry, validate approved changes, preserve unexplained evidence, correlate new behaviours across devices and update a baseline without normalising malicious activity.
