Agent Foskett Academy • SOC Analyst Academy • Module 10 • Lesson 100 • Complete SOC Investigation Scenarios

Lesson 100 — Your Final SOC Investigation

One alert.

Multiple identities and devices.

Cloud activity. Endpoint activity. Unanswered questions.

This investigation is yours.

Follow the evidence. Build the timeline. Question the assumption. The Logs Already Knew.
Agent Foskett final SOC investigation
No single query solves this case.

Triage. Investigate. Scope. Contain. Document. Close.

✓ Triage
✓ Correlate
✓ Contain
✓ Decide

Final case briefing

MONDAY — 08:57 ALERT: Suspicious PowerShell activity DEVICE: WS-447 USER: mia@contoso.com SEVERITY: MEDIUM THEN... 09:03 Unfamiliar sign-in 09:08 Mailbox activity 09:14 SharePoint downloads 09:21 Remote activity on SRV-FILE-02 09:27 Second identity appears YOU HAVE THE ALERT. YOU DO NOT HAVE THE STORY.

Your objective

Triage the alert, build the timeline, investigate identity and endpoint evidence, scope related activity, assess cloud impact, contain confirmed compromise and produce a defensible final incident record.

Final investigator's rule

Do not investigate the alert. Investigate the incident.

Stage 1 — triage what you actually know

KnownNot yet known
PowerShell alert on WS-447Whether execution was malicious
mia@contoso.com associated with deviceWhether the identity is compromised
Medium alert severityTrue incident impact
Specific alert timestampActual incident start time

Severity is not your verdict

Use the alert to prioritise investigation, but let evidence and context determine the final assessment.

Start with entities

Identify the user, device, process, time and any network or file indicators that can become pivots.

Stage 2 — investigate the endpoint

01-final-endpoint-investigation.kql
1234567891011
let Device = "WS-447";
DeviceProcessEvents
| where Timestamp > ago(8h)
| where DeviceName =~ Device
| project Timestamp,
          AccountName,
          InitiatingProcessFileName,
          FileName,
          ProcessCommandLine,
          SHA1
| order by Timestamp asc

Reconstruct process ancestry

Determine what launched PowerShell, what PowerShell executed and what processes followed. A command without its process context is only part of the evidence.

Move before and after the alert

Search backwards for the setup and forwards for consequences. The detection timestamp is a pivot, not a boundary.

Endpoint evidence

08:52 WINWORD.EXE ↓ 08:53 POWERSHELL.EXE Encoded command ↓ 08:54 Network connection ↓ 08:56 Credential-related process ↓ 08:57 ALERT ↓ 09:02 Remote command activity THE ALERT SITS IN THE MIDDLE AGAIN.

First assessment

The process chain makes benign administrative PowerShell less likely. You now have enough evidence to broaden the investigation, not enough to declare the full scope.

Preserve uncertainty

Record what is supported and what still requires validation. Confidence should increase as independent evidence converges.

Stage 3 — pivot to identity

02-final-identity-investigation.kql
123456789101112
let User = "mia@contoso.com";
EntraIdSignInEvents
| where Timestamp > ago(8h)
| where AccountUpn =~ User
| project Timestamp,
          AccountUpn,
          IPAddress,
          Country,
          Application,
          ErrorCode
| order by Timestamp asc

Authentication adds another story

An unfamiliar successful sign-in appears shortly after the endpoint activity. Determine whether it matches the user's normal context and whether the resulting session performed suspicious actions.

Account does not equal human

Actions performed under mia@contoso.com show which identity was used, not automatically who controlled it.

Stage 4 — correlate cloud activity

03-final-cloud-investigation.kql
1234567891011
let User = "mia@contoso.com";
CloudAppEvents
| where Timestamp > ago(8h)
| where AccountId =~ User
| project Timestamp,
          AccountId,
          IPAddress,
          Application,
          ActionType,
          ObjectName
| order by Timestamp asc

Follow the session

Mailbox searches and SharePoint downloads occur after the suspicious authentication. Correlate time, source and action before attributing them to the legitimate user.

Access is not automatically exfiltration

Record confirmed file access and downloads precisely. Determine whether evidence supports movement outside organisational control.

Stage 5 — build the incident timeline

08:52 DOCUMENT ACTIVITY 08:53 SUSPICIOUS POWERSHELL 08:54 NETWORK CONNECTION 08:56 CREDENTIAL ACTIVITY 08:57 ALERT 09:03 UNFAMILIAR SIGN-IN 09:08 MAILBOX ACTIVITY 09:14 SHAREPOINT DOWNLOADS 09:21 REMOTE SERVER ACTIVITY 09:27 SECOND IDENTITY NOW YOU HAVE AN INCIDENT. NOT JUST AN ALERT.

Correlation changes severity

A medium endpoint alert now connects to identity, cloud and server activity. Incident priority should reflect the combined evidence, not the original alert label.

Keep one timeline

Identity, endpoint and cloud telemetry should contribute to the same chronological incident story.

Stage 6 — scope the behaviour

04-final-scope-investigation.kql
1234567891011
let SuspiciousIP = "203.0.113.42";
EntraIdSignInEvents
| where Timestamp > ago(8h)
| where IPAddress == SuspiciousIP
| summarize
    FirstSeen=min(Timestamp),
    LastSeen=max(Timestamp),
    Events=count()
    by AccountUpn, Application
| order by FirstSeen asc

The second identity matters

The suspicious source also appears against another account. Do not assume that account is compromised, but immediately add it to scope for validation.

Scope behaviour as well as indicators

Exact IP addresses and hashes are useful pivots, but attackers can change infrastructure. Search for the technique and sequence too.

Stage 7 — classify the scope

EntityAssessmentEvidence
WS-447Confirmed compromisedMalicious process chain and network activity
mia@contoso.comConfirmed compromisedSuspicious sign-in with correlated cloud activity
SRV-FILE-02Suspected compromisedRelated remote execution requires validation
noah@contoso.comSuspectedAuthentication from suspicious source
Finance SharePointAffected resourceSensitive downloads confirmed

Do not flatten scope

Confirmed compromise, suspected compromise and affected resources are different states. Preserve those distinctions throughout response.

Unknown is still evidence work

Every suspected entity should have a reason for inclusion and a defined next investigative action.

Stage 8 — choose containment

CONTAIN NOW ✓ Revoke mia sessions ✓ Reset compromised credentials ✓ Isolate WS-447 ✓ Block confirmed malicious indicators VALIDATE URGENTLY ○ SRV-FILE-02 ○ noah@contoso.com ○ Other sessions ○ Other affected devices PRESERVE ✓ Sign-in evidence ✓ Endpoint timeline ✓ Cloud activity ✓ Response actions CONTAIN WHAT YOU KNOW. KEEP SCOPING WHAT YOU DON'T.

Contain evidence-supported compromise

Do not wait for perfect knowledge while confirmed attacker access remains active. At the same time, avoid destructive action against every suspected entity without justification.

Contain the attack path

Sessions, credentials, endpoints and remote access paths may all require action. Stopping one process is not equivalent to containing the incident.

Stage 9 — validate containment

AFTER CONTAINMENT: Any new sign-ins? Any cloud actions? Any remote execution? Any new devices? Any second identity activity? Any malicious network traffic? CONTAINMENT IS A CLAIM. VALIDATION IS THE EVIDENCE.

Look for attacker adaptation

If activity shifts to another identity or device after containment, the scope or access-path assessment was incomplete.

Do not call it contained too early

State exactly what has been controlled and what remains under investigation until evidence supports broader containment.

Stage 10 — write the final finding

FINAL FINDING WS-447 was compromised through malicious document and PowerShell activity. The associated identity, mia@contoso.com, was then used from an unfamiliar external source. The session accessed mailbox content and downloaded sensitive SharePoint files. Related remote activity reached SRV-FILE-02. A second identity was observed from the suspicious source and required separate validation. CONTAINMENT: WS-447 isolated. Sessions revoked. Credentials reset. Malicious indicators blocked. IMPACT: Endpoint and identity compromise confirmed. Sensitive cloud downloads confirmed. External data destination not confirmed.

Write only what the evidence supports

A strong final finding distinguishes confirmed compromise, suspected scope, affected data and unresolved impact without exaggeration.

Explain why the incident can close

Closure requires a defensible reason: active access controlled, required scope resolved or transferred, evidence preserved, recovery actions completed or owned, and remaining risk documented.

Final decision

THE ALERT IS QUIET. DO YOU CLOSE? ASK: Is active access controlled? Is scope understood? Are affected identities secured? Are compromised devices contained? Is data impact documented? Are remaining actions owned? Is the evidence preserved? IF YES: CLOSE WITH A DEFENSIBLE RECORD. IF NO: THE INVESTIGATION IS NOT FINISHED.

Closure is a decision

An alert disappearing from the queue does not close an incident. Closure should follow evidence that the response objectives have been met.

And then improve the SOC

Ask whether this investigation should create a new detection, hunting hypothesis, playbook change, control improvement or analyst lesson.

Your final investigation checklist

  • Triage the alert without treating severity as the verdict.
  • Identify useful entities and investigative pivots.
  • Investigate before and after the detection timestamp.
  • Reconstruct endpoint process ancestry and consequences.
  • Validate identity and authentication context.
  • Correlate cloud actions with the suspicious session.
  • Build one cross-service timeline.
  • Scope identities, devices, resources and attacker behaviour.
  • Separate confirmed, suspected and unknown findings.
  • Contain active access paths using evidence-supported actions.
  • Validate containment rather than assuming it worked.
  • Document impact at the level the evidence supports.
  • Preserve evidence and response actions.
  • Close only when the incident has a defensible end state.
  • Turn the investigation into better future capability.

100 lessons later...

YOU STARTED WITH: AN ALERT. NOW YOU KNOW TO ASK: What actually happened? What happened before? What happened after? Which identity? Which device? Which session? Which data? What is confirmed? What is suspected? What is still unknown? What must be contained? What does the evidence prove? THAT IS THE INVESTIGATION.

The Agent Foskett method

Follow the evidence. Build the timeline. Question the assumption.

The tools will change. The alerts will change. The attackers will change. The investigative discipline remains.

The Logs Already Knew

The evidence was there across identity, endpoint, cloud and activity logs. The analyst's job was to connect it, challenge the first explanation and build a defensible story.

Lesson 100 — complete

You have reached the end of the Agent Foskett SOC Analyst Academy: 100 scenario-driven lessons built around investigation, evidence, decision-making and real SOC thinking.

Follow the evidence. Build the timeline. The Logs Already Knew.

Continue your SOC Analyst training

Module 9 focuses on turning validated investigation findings into transparent, tested and operationally useful detections.

How do you complete a full SOC investigation?

Lesson 100 is the final Agent Foskett SOC Analyst Academy scenario. It combines alert triage, endpoint investigation, identity analysis, cloud investigation, KQL, timeline reconstruction, scoping, containment, evidence preservation, documentation and incident closure.

Final SOC analyst investigation scenario

Work a multi-stage security incident from the first alert through correlated identity, endpoint and cloud evidence, then determine scope, contain active compromise, validate response actions and produce a defensible final finding.