Threat-modelled adversary emulation framework¶
Step 1: Develop a threat profile¶
Know thy enemy (and their favourite toys)
This stage is about identifying who’s most likely to target your organisation, what they’re after, and how they tend to go about it.
Industry focus: Financial services
Primary threat actors:
FIN7 (organised cybercrime group)
Tactics & techniques:
T1078: Valid account exploitation
T1059: Command-line and scripting abuse
T1204: User execution (usually through phishing)
Lazarus Group (state-sponsored APT)
Tactics & techniques:
T1053: Scheduled task manipulation
T1547: Boot/startup persistence mechanisms
T1021: Abuse of Remote Desktop Protocol (RDP)
Critical assets at risk:
SWIFT terminals (lovely honeypots for financial attackers)
Trader workstations (access to juicy credentials)
Core account management systems (where the real damage gets done)
Output
Create an internal threat profile document that includes:
Known TTPs (tactics, techniques, and procedures)
Assets linked to threat groups
Risk ratings for each asset based on exposure and criticality
Step 2: Build the emulation plan¶
Attack like they do — but without getting sacked
The goal is to simulate realistic scenarios that reflect adversary behaviour without crossing operational red lines.
Example emulation scenario (FIN7)¶
# fin7-emulation.yaml
techniques:
- T1078.004: # Valid account compromise
steps:
- "Phish service account credentials"
- "Create persistence via scheduled tasks"
- "Maintain access for 72 hours"
- T1059.005: # Visual Basic script
steps:
- "Deliver macro-enabled Excel document"
- "Establish command and control channel"
- "Perform lateral movement"
Setup instructions¶
Choose an emulation platform: MITRE Caldera, Atomic Red Team, or Vectr
Deploy agents in a segregated test environment (not prod — unless you really want a new job)
Use your YAML file or Caldera plugin to define the scenario
Planning tips¶
Align every action to a MITRE ATT&CK technique ID
Reference real-world breaches in your sector to prioritise emulation paths
Use detection evasion methods sparingly to avoid false negatives hiding real gaps
Step 3: Execute with operational constraints¶
Safety first — then break things. A red team simulation is not an excuse for chaos. Constraints matter.
Execution command (Caldera example)¶
python3 server.py --insecure --plugins threat_emulation/fin7 --constraints realism.yaml
Key operational constraints¶
Time limits:
Max 4 hours for achieving initial access
Wrap up the full scenario in under 24 hours
Technical boundaries:
No interference with live SWIFT traffic
Trader workstations are read-only (yes, really)
Safety mechanisms:
All testing in a segmented environment
Live monitoring from the SOC with a break-glass procedure to halt emulation if needed
Required artefacts¶
Full activity logs (agent, C2, system, and SIEM)
Detection results matched to each ATT&CK ID
Gap analysis comparing expected vs. actual blue team response
Step 4: Detection tuning¶
Turn your logs into something other than noise
Once the emulation’s run, use the output to fine-tune your detections.
Recommendations:
Correlate emulated activity with SIEM alerts (false negatives = blind spots)
Focus on noisy techniques (e.g., T1059 scripting) for signature tuning
Use Sigma or Splunk queries to build detections for missed behaviour
Prioritise behavioural over IOC-based detection — these attackers recycle tooling like bad office jokes
Step 5: Debrief and after-action review¶
Not just ‘what broke’, but why, and how to fix it
Use a structured AAR (after-action review) template to keep the conversation focused and productive.
AAR template (example)¶
1. Summary of objectives
Simulate FIN7-style attack targeting account systems using valid credential access and macro delivery.
2. Scenario walkthrough
Describe major phases (initial access, persistence, lateral movement), and timeline of execution.
3. Successes
Blue team detected scheduled task creation
SIEM correlated abnormal login locations
4. Failures / blind spots
No alert on command-line VBScript
Lateral movement via RDP went undetected
5. Lessons learned
Need deeper endpoint visibility on trader machines
Scheduled task detection is good — expand to cover at job creation time
6. Remediation plan
Write and deploy Sigma rules for VBScript execution
Tune alert thresholds on authentication anomalies
7. Follow-up
Schedule re-run in 90 days with new threat profile updates
Optional extras¶
Share with execs: Condense the AAR into a 1-page “what this means for us” briefing
Include screenshots: A picture of a successful payload might actually scare them into funding
Document lessons in a threat logbook to inform next quarter’s tabletop exercises