The unit file is the malware’s configuration
ExecStart names the binary and where it reports. A unit you can read tells you the C2, the user it runs as, and whether it restarts — before you touch a single process.
A RHEL 9 API server stopped enforcing SELinux at 23:10, and two minutes later a systemd service and timer began beaconing every ten minutes. Work the host with journalctl, systemctl and the SELinux tooling, contain it, and record why the denials that used to stop this stopped firing.
Mission brief · H-303
the break-glass IR account `svc-ir`, checked out of the vault for this incident — never the compromised identity
The detection fired in the EDR console. You opened a live-response session from that detection, so your shell rides the EDR agent channel — containing the host will *not* cut you off, which is exactly why you contain from here rather than over SSH.
EDR console (detections + live response)
Endpoint detection & response
Live-response shell on the affected host
Host shell session
The affected host
Owner: The system's business owner, named on the asset record
Containing a host you haven't identified can stop revenue. Check criticality and owner before you isolate anything.
You may act alone
Ask a human first
On Linux, persistence and the control that should have stopped it live in the same place: systemd and SELinux. This case makes the analyst read both. The attacker did not defeat SELinux — they turned it off, and the audit log recorded the exact moment the denials stopped.
ExecStart names the binary and where it reports. A unit you can read tells you the C2, the user it runs as, and whether it restarts — before you touch a single process.
The journal shows sudo, the unit starting and the timer re-arming. The audit log shows the AVC denials at permissive=0 and the MAC_STATUS record where enforcement flipped. Together they date the control failure.
Containment is consequential and passes a gate. The build host answered a legitimate SSH session and is not a containment target.
Stopping nw-metrics.service buys ten minutes. Eradication means the timer, the unit, the binary and the SELinux mode all going back to where they belong.
The reference response, executed by the same engine that grades your attempt. Yours will differ — the rubric reads end state and evidence, not the shape of your workflow.
Gate approved — 100%
22 of 22 rubric rules hold.
Gate denied — 87%
Refusing the consequential action is a defensible choice with a measured cost; the difference is what the lab is teaching.
SELinux is dropped to permissive on a RHEL API server, a systemd service and matching timer install an unsigned collector that beacons over HTTPS, and the audit log keeps the denials that used to block it.
| Technique | Name | Tactic |
|---|---|---|
| T1562.001 | Disable or Modify Tools | Defense Evasion |
| T1543.002 | Create or Modify System Process: Systemd Service | Persistence |
| T1053.006 | Scheduled Task/Job: Systemd Timers | Persistence |
| T1071.001 | Application Layer Protocol: Web Protocols | Command and Control |
| T1078 | Valid Accounts | Defense Evasion |
The workflow reached a terminal success state on the graded run.
behavior · weight 20 · T1543.002 Create or Modify System Process: Systemd Service (Persistence)
A consequential action passed through a human approval gate.
safety · weight 15 · T1543.002 Create or Modify System Process: Systemd Service (Persistence)
No non-idempotent operation was retried without an idempotency key.
efficiency · weight 10 · T1071.001 Application Layer Protocol: Web Protocols (Command and Control)
Every action node resolves its secret from the vault, never an inline field.
configuration · weight 10 · T1078 Valid Accounts (Defense Evasion)
The learner attached at least one linkable piece of evidence to the case.
investigation · weight 10 · T1562.001 Disable or Modify Tools (Defense Evasion)
The case carries an analyst closure note explaining the outcome.
explanation · weight 10 · T1543.002 Create or Modify System Process: Systemd Service (Persistence)
No innocent asset in the alert batch was contained, disabled or revoked.
behavior · weight 15 · T1078 Valid Accounts (Defense Evasion)
The playbook survived the integration faults it met and still finished.
configuration · weight 15 · T1071.001 Application Layer Protocol: Web Protocols (Command and Control)
Nothing was changed in the estate before evidence had been gathered.
investigation · weight 10 · T1562.001 Disable or Modify Tools (Defense Evasion)
The analyst worked the RHEL host directly instead of grading the alert text.
investigation · weight 10 · T1543.002 Create or Modify System Process: Systemd Service (Persistence)
The persistence unit was located on disk, so eradication has a concrete target.
investigation · weight 10 · T1543.002 Create or Modify System Process: Systemd Service (Persistence)
The external peer was proven from the host's own socket table, not from the alert.
investigation · weight 10 · T1071.001 Application Layer Protocol: Web Protocols (Command and Control)
The analyst checked SELinux state and found the control had been dropped to permissive.
investigation · weight 10 · T1562.001 Disable or Modify Tools (Defense Evasion)
The live beacon was identified by PID before anything was contained.
behavior · weight 10 · T1071.001 Application Layer Protocol: Web Protocols (Command and Control)
The compromised API server is isolated at end state.
behavior · weight 15 · T1543.002 Create or Modify System Process: Systemd Service (Persistence)
The service account that ran setenforce and installed the unit is disabled pending rotation.
behavior · weight 10 · T1078 Valid Accounts (Defense Evasion)
The timer that re-arms the implant was found, so eradication outlives a service stop.
behavior · weight 10 · T1053.006 Scheduled Task/Job: Systemd Timers (Persistence)
Root cause is recorded as the unpatched API version carrying the advisory.
explanation · weight 10 · T1543.002 Create or Modify System Process: Systemd Service (Persistence)
A post-incident timeline was filed: setenforce, unit install, first beacon, timer re-arm, containment.
explanation · weight 15 · T1543.002 Create or Modify System Process: Systemd Service (Persistence)
The analyst scoped the host's network from the wire, so containment decisions know which segment is in play.
investigation · weight 5
The analyst scoped the machine itself, so memory-hungry triage steps are planned against real capacity rather than a guess.
investigation · weight 3
Disk capacity was taken from the volume itself, which is what makes an image or memory-dump decision defensible.
investigation · weight 3
Vocabulary is generated from the teaching profiles, so it always matches what the consoles render.
| Concept | Cortex Forge | Summit SOAR | Storyline |
|---|---|---|---|
| artifact | Indicator | Artifact | Record |
| case | Incident | Container | Case |
| approval | Manual task | Prompt | Page |
| note | War Room entry | Note | Case note |
The same reference to an enrichment node's verdict, written three ways:
The consoles you practice in use teaching names. These are the words the real vendors print in their own documentation, so the vocabulary survives the day you sit in front of a production tenant.
| Concept | Cortex XSOARXSOAR 8.x | Splunk SOARSplunk SOAR 6.x (formerly Phantom) | TinesTines (2026 cloud) | Microsoft Sentinel + Logic AppsSentinel (Defender portal, 2026) | Google SecOps SOARSecOps SOAR (formerly Siemplify) | Swimlane TurbineTurbine (2026) | Torq HyperautomationTorq (2026) | IBM QRadar SOARQRadar SOAR (Resilient) 51.x | ServiceNow Security OperationsSecOps (Flow Designer era) |
|---|---|---|---|---|---|---|---|---|---|
| artifact | Indicator | Artifact (CEF fields) | Event payload field | Entity | Entity | Field / correlation value | Event field | Artifact | Observable |
| case | Incident | Container | Case | Incident | Case | Record | Case | Incident | Security incident (SIR) |
| approval | Manual (data collection) task | Prompt block | Page (form) / Send to Chat | Approval action (Teams / email) | Manual action | Task / approval action | Approval step (Torq Chat / Slack) | Manual task / phase gate | Approval activity |
| note | War Room entry | Note | Case note | Comment | Case wall comment | Comment | Case comment | Note | Work note |
Impaired defenses are a finding in their own right. Wherever you work, the first question after “how did it run?” is “what should have stopped it, and who turned that off?”