Skip to content

Cirius Group Threat Model

Purpose: Living threat model for Cirius Group. Defines crown jewel assets, realistic threat actors, STRIDE-based attack paths against those assets, and the controls mapped against each attack chain. This document is the single canonical security-reasoning reference — every security project, detection agent, tabletop, and compliance artifact should be traceable back to an item in this document.

Status: READY FOR REVIEW by Greg and Kevin (see §9).

Owner: Rory (Security Officer) Audience: Security Officer, T1 Domain Admins (Greg, Kevin), engineering, auditors (SOC2 September 2026) Scope: Azure PROD (ciriusgroup.com, tenant d477c9f8), Azure DDE (ciriusdde.com, tenant ff1c5d68), AWS 7-account organization, SaaS fabric (M365, Cortex, Arctic Wolf, Twingate, Keeper). Review frequency: Annual in December (see §10) plus any of: major incident, material environment change, new crown jewel added, new actor emerges. Last reviewed: April 2026 (initial production version).


Contents

  1. Executive summary
  2. Crown jewel inventory (TMOD-001)
  3. Threat actor profiles (TMOD-002)
  4. STRIDE analysis on crown jewel attack paths (TMOD-003)
  5. Controls mapped to each attack chain (TMOD-004)
  6. Aggregate coverage and residual risk
  7. Recommendations
  8. Cross-references
  9. Ready-for-review note (TMOD-006)
  10. Review schedule (TMOD-005, TMOD-007)

1. Executive summary

Cirius Group is a small healthcare services business operating in a high-threat environment. We handle ePHI on behalf of healthcare customers and host a customer-facing published application for Medicare patients inside the DDE tenant (ciriusdde.com). The November 2024 ransomware incident is the anchoring event of this threat model — the patterns observed there drive actor selection, crown jewel prioritization, and detection investment.

Key findings:

  1. The single highest-likelihood, highest-impact actor is the ransomware-as-a-service (RaaS) affiliate operating on a credential-spray → lateral-movement → backup-destruction → encryption pattern. LockBit, ALPHV/BlackCat, and Akira have each targeted healthcare SMBs of our size in the past 24 months and are assumed to be persistently on the target list.
  2. The top crown jewels are the DDE AVD environment (PHI access plane), the on-prem/Azure AD forests (identity authority), Terraform state (infrastructure authority), and Veeam/backup targets (recovery authority). The Palo Alto Panorama, cirius-openai-kv-prod, psql-secops-prod, and the 18 break-glass accounts round out the crown jewel set.
  3. Preventive control coverage is strong across every kill chain stage — Conditional Access, Twingate ZTA, Palo Alto + DNS Security, Cortex XDR, Arctic Wolf MDR, Intune, immutable backup. There is no kill chain stage with zero preventive coverage.
  4. Detective control coverage has live gaps at stages 2–7 — execution, persistence, credential dumping, lateral movement, exfiltration, defense evasion. Every one of these gaps is under active remediation as kill-chain Phase 1 (audit policy enablement) and Phase 2 (agent build).
  5. A phishing / credential-spray campaign is currently active against Cirius user identities (justinc, gregd, adrianam, paulb, sophien, lauramaeb). This is an opportunistic actor and is covered under Actor Profile 3 below.

By the September 2026 SOC2 audit window, with kill-chain Phase 1 and Phase 2 complete, residual risk should drop from its current MEDIUM-HIGH posture to LOW-MEDIUM across all crown jewels.


2. Crown jewel inventory (TMOD-001)

A crown jewel asset is any system, dataset, or credential whose compromise would cause disproportionate harm — to patients, customers, the business, or the organization's ability to recover. Crown jewels are selected against five criteria:

  1. PHI concentration — stores, processes, or routes significant ePHI
  2. Identity authority — compromise grants privilege to impersonate any user or workload
  3. Infrastructure authority — compromise grants the ability to reshape the environment itself
  4. Network authority — compromise grants visibility into, or control over, traffic
  5. Recovery authority — compromise undermines our ability to recover from a prior compromise
  6. Key material — holds encryption keys or secrets whose exfiltration unlocks other resources

The inventory is ranked by impact-if-compromised, worst first.

CJ-1 — DDE AVD environment (PHI / Medicare)

  • Category: 1 (PHI concentration), 2 (identity — DDE tenant)
  • Location: Azure DDE tenant ciriusdde.com (ff1c5d68) — AVD host pool + published app serving Medicare patients
  • What it is: The customer-facing AVD and published app that Medicare patients connect to. The PHI access plane. This is the reason Cirius Group has a HIPAA obligation at all.
  • Impact if compromised: CRITICAL. Direct PHI exposure at scale. HHS Breach Notification Rule triggered. Loss of Medicare customer relationship. Potential regulatory penalties. This is the single most sensitive asset in the environment.
  • Existing controls: Separate DDE tenant (blast-radius isolation from PROD), Conditional Access with device compliance, Cortex XDR on AVD session hosts, Arctic Wolf visibility, DDE has its own break-glass, DDE SecOps agents report with source_system=DDE.
  • Residual risk: HIGH until kill-chain agents are live across DDE and FIDO2 covers all privileged DDE accounts.

CJ-2 — Active Directory forests (ACTDIRAZP01 / ACTDIRAZP02 and DDE equivalents)

  • Category: 2 (identity authority), 6 (stores KRBTGT and machine account passwords)
  • Location: Azure PROD and Azure DDE — ACTDIRAZP01 / ACTDIRAZP02 in PROD, DDE forest equivalents
  • What it is: The authoritative identity fabric for every Windows workload — domain controllers, all user and machine authentication, KRBTGT, GPO deployment.
  • Impact if compromised: CRITICAL. A single DC compromise yields domain-wide privilege. DCSync extracts every user's password hash and the KRBTGT key. With KRBTGT, an attacker forges Golden Tickets valid until KRBTGT is rotated twice. GPO modification lets the attacker push ransomware to every domain-joined host.
  • Existing controls: Tier 0 isolation, restricted DA membership, Cortex XDR on DCs, Arctic Wolf visibility, 4662 SACL for DCSync (scheduled), 5136/5137 directory-service events, KRBTGT rotation cadence, break-glass rotation procedure.
  • Residual risk: HIGH. DCSync detection and Pass-the-Hash detection agents are in build.

CJ-3 — Terraform state (S3 + Azure Storage)

  • Category: 3 (infrastructure authority), 6 (contains secret outputs)
  • Location: Azure Storage (azure-infra, azure-dde-infra, ops-automation, bedrock-hub) + S3 in each AWS account (aws-infra)
  • What it is: The source-of-truth description of every cloud resource — identities, roles, network topology, secret references, resource relationships. State files contain resource IDs and, where providers leak them, sensitive attributes.
  • Impact if compromised: CRITICAL. A write-capable attacker can surreptitiously modify state to unmanage resources, hide them from drift detection, or prepare a coordinated infrastructure change that bypasses PR review. A read-capable attacker maps the entire environment from a single file.
  • Existing controls: State storage private; storage-account firewall restricts access to OIDC federated identities (github-deploy-main per subscription/account); AWS S3 versioning; Azure Storage soft-delete; access logs to LAW / CloudTrail; no local terraform apply permitted; every state change goes through PR + CI.
  • Residual risk: MEDIUM. Key residual vector is OIDC identity compromise via a poisoned GitHub Action. Mitigated by SHA-pinning every Action.

CJ-4 — Veeam backup targets (AWS S3 with Object Lock) and RSV copies

  • Category: 5 (recovery authority)
  • Location: Veeam infrastructure → AWS S3 Object Lock (primary offsite, 2190d) + Azure Recovery Services Vaults (secondary, immutability Unlocked)
  • What it is: The last line of defense against ransomware. If everything else burns, this is what we restore from.
  • Impact if compromised: CRITICAL in combination with a ransomware event. Without immutable backups, we pay or fail. With them, we recover.
  • Existing controls: S3 Object Lock (write-once 2190d, independent of Veeam state), RSV immutability, Veeam service account isolated from AD admin tier, dedicated management network, monthly restore spot-check, Q2 + Q4 DR tests scheduled.
  • Residual risk: MEDIUM — validation by Q2 DR test (compliance/q2-dr-test-plan-2026.md).

CJ-5 — Palo Alto Panorama

  • Category: 4 (network authority)
  • Location: Panorama management VM + 4 VM-Series enforcement nodes
  • What it is: Central policy, central logging, central visibility for east-west and north-south traffic. DNS Security blocks C2 callbacks. Central authority for perimeter defense.
  • Impact if compromised: HIGH. Attacker can alter security policy (allow egress, disable DNS Security), disable decryption, remove logging destinations, blind network-based detection. Does not directly touch PHI but removes the ability to see an attacker doing so.
  • Existing controls: Management network isolated, named admin accounts with MFA, config backup on schedule, credential rotation procedure (security/palo-alto-backup-credential-rotation.md), syslog shipped to LAW independent of Panorama, local break-glass per firewall.
  • Residual risk: MEDIUM. Syslog redundancy means Panorama compromise is survivable, but tampering window is real.

CJ-6 — psql-secops-prod (SecOps platform PostgreSQL)

  • Category: 1 (PHI metadata concentration), 3 (integrity of the incident/audit trail)
  • Location: Azure PROD, rg-logging-logs (logging subscription). PostgreSQL 15 Flexible Server.
  • What it is: The database behind the SecOps platform — every incident, every finding, every known-good rule, every change ticket, every piece of evidence. References to PHI context. Audit authority.
  • Impact if compromised: HIGH. Tampered incident records destroy non-repudiability. A read-capable attacker sees every detection and every suppression rule, enabling targeted evasion. Direct PHI volume is low but context is significant.
  • Existing controls: Private endpoint only, Entra AD authentication only (no local SQL accounts), PITR 35d, CMK encryption, Palo Alto egress inspection, Defender for SQL, Keeper PAM session recording on admin access, break-glass suppression hard-blocked at API level. pgaudit enablement in progress.
  • Residual risk: MEDIUM until pgaudit is live and streamed to LAW.

CJ-7 — cirius-openai-kv-prod (and the CMK vaults)

  • Category: 6 (key material)
  • Location: Azure PROD. Multiple Key Vaults — cirius-openai-kv-prod for app secrets, additional CMK vaults backing storage and KV-managed HSM.
  • What it is: Azure OpenAI secrets, SecOps API keys, third-party API credentials, CMKs that encrypt data at rest across storage accounts and databases.
  • Impact if compromised: HIGH. CMK compromise enables decryption of data at rest for every resource using that key. App-secret compromise grants whatever the secret permits (SecOps API, ingest, AI endpoints).
  • Existing controls: Soft delete + purge protection, Entra identity–only access, diagnostic logs to LAW, quarterly rotation for app secrets, vault firewall, private endpoint where supported.
  • Residual risk: MEDIUM. Key material is only as safe as the identity that can access it; RBAC and Conditional Access on workload identities is the mitigating layer.

CJ-8 — Break-glass accounts (18 total)

  • Category: 2 (identity — emergency)
  • Location: On-prem AD (3), AWS root (7), Entra PROD (2), Entra DDE (2), Palo Alto local admin (4).
  • What it is: The highest-privilege credentials in their respective trust boundaries. By design, they bypass MFA, PIM, and (in some cases) Conditional Access so that a real emergency is survivable.
  • Impact if compromised: HIGH. Instant top-privilege for that boundary. Only reason this is not CRITICAL is that detection is guaranteed — any use is a permanently unsuppressible CRITICAL alert.
  • Existing controls: Permanently unsuppressible audit rule, API-level hard block against being added to any known-good rule, Keeper storage with split knowledge where feasible, physical safekeeping for offline credentials, twice-yearly viability drill.
  • Residual risk: LOW. Detection certainty is the compensating control; real risk is physical custody.

Impact ranking (worst first)

RankIDAssetImpact if compromisedPrimary category
1CJ-1DDE AVD environment (PHI)CRITICALPHI concentration
2CJ-2AD forestsCRITICALIdentity authority
3CJ-3Terraform stateCRITICALInfrastructure authority
4CJ-4Veeam backup targetsCRITICAL (in combination)Recovery authority
5CJ-5Palo Alto PanoramaHIGHNetwork authority
6CJ-6psql-secops-prodHIGHPHI metadata + integrity
7CJ-7cirius-openai-kv-prodHIGHKey material
8CJ-8Break-glass accountsHIGHIdentity (emergency)

3. Threat actor profiles (TMOD-002)

We model realistic actors for a healthcare SMB of Cirius Group's size. We do not model capabilities that do not match our threat surface (e.g., we do not model destructive wiper APTs targeting industrial control systems — we don't run ICS). We do model actors who have hit businesses of our shape in the last 24 months.

Actor 1 — Ransomware groups targeting healthcare (RaaS affiliates)

  • Named groups of concern: LockBit (and successor branding), ALPHV / BlackCat (and successors), Akira.
  • Motivation: Financial. Affiliate receives a share of ransom; operator takes the rest. Healthcare is a preferred sector because of operational urgency and data sensitivity — victims pay faster.
  • Likelihood: HIGH. The November 2024 incident demonstrates we are on the target list. RaaS affiliates recycle targets for 12–24 months.
  • Impact: CRITICAL — production outage, PHI exposure risk, Breach Notification Rule obligation, loss of customer confidence (Paul's FTP customer relationship in particular).
  • Typical TTPs (MITRE-adjacent):
    • Initial access: credential spray (T1110.003), phishing for OAuth consent (T1528), exposed RDP historically (closed by Twingate-only policy).
    • Execution: beacon binaries in %APPDATA%\Local\Temp (T1059), LOLBins — rundll32, mshta, wscript, regsvr32 (T1218).
    • Persistence: EventID 7045 new service (T1543.003), EventID 4698 scheduled task (T1053.005), registry run keys (T1547.001).
    • Credential access: LSASS memory dump (T1003.001), DCSync against DC (T1003.006).
    • Lateral movement: RDP with stolen creds (T1021.001), Pass-the-Hash (T1550.002), admin shares C$/ADMIN$ (T1021.002).
    • Defense evasion: Clear Security log — EventID 1102 (T1070.001), disable security agents (T1562.001).
    • Exfiltration: RClone, WinSCP, Mega.nz double-extortion (T1567.002).
    • Impact: Ransomware deployment via GPO scheduled task (T1486), shadow-copy deletion (T1490), backup deletion attempts.
  • Likely targets in our environment: CJ-2 (AD), CJ-4 (Veeam), CJ-8 (break-glass), ultimately CJ-1 (DDE) or PROD-wide encryption.
  • Specific mitigations: Kill-chain agent set (one agent per stage), Cortex XDR behavioral detection, Arctic Wolf act-first MDR, Palo Alto DNS Security, RSV + Object Lock, 4662 SACL for DCSync, quarterly CA policy audit for MFA exclusions (direct lesson from Nov 2024).

Actor 2 — Insider threat (disgruntled admin or privileged user)

  • Motivation: Revenge after termination or role change, coerced action under duress, financial gain, or negligence without malicious intent.
  • Likelihood: LOW to MEDIUM. Our headcount is small and the personnel are long-tenured; absolute count of potential insiders is low. Any single T1 Domain Admin insider is a CRITICAL threat actor on a per-capita basis.
  • Impact: HIGH to CRITICAL depending on role. T1 DA insider (Greg or Kevin-level access) = CRITICAL. Standard user insider = HIGH but bounded.
  • Typical TTPs:
    • Legitimate session at the end of employment
    • Bulk data export via sanctioned tools (SharePoint download, DB export via pg_dump)
    • Creating hidden persistence (new service account, new OAuth app, new GPO)
    • Disabling or tampering with security tooling — specifically targeting Cortex XDR, Arctic Wolf, SecOps known-good rules
    • Credential sharing or writing credentials outside Keeper
    • After-hours privileged activity when detection is quieter
  • Likely targets in our environment: Whatever the insider's role grants. A SecOps-tier insider threatens CJ-6 (psql-secops-prod) and CJ-5 (Panorama). An AD-tier insider threatens CJ-2 and CJ-1 via GPO. An ops-automation insider threatens CJ-3 (Terraform state).
  • Specific mitigations: Entra PIM (nothing standing), quarterly LPRIV audit (compliance/lpriv-*), Keeper PAM session recording, monthly Keeper session review (runbooks/monthly-security-review.md §3), 4-hour termination runbook (compliance/hipaa-administrative-procedures.md §3.3), DLP bulk-egress alerts, UBA baseline (in build), break-glass accounts permanently unsuppressible (detects tampering even by the Security Officer), 6-year immutable audit trail.

Actor 3 — Opportunistic attackers (phishing, credential spray, commodity malware)

  • Motivation: Opportunistic financial gain — resell working credentials to RaaS affiliates, run business email compromise, harvest M365 tokens.
  • Likelihood: HIGH. There is an active campaign currently probing Cirius identities (observed targets: justinc, gregd, adrianam, paulb, sophien, lauramaeb — per the ongoing identity-agent telemetry noted in CLAUDE.md). This actor is continuously live, not a theoretical future threat.
  • Impact: LOW to HIGH. A single successful phishing credential capture is LOW because of Conditional Access + MFA. A successful AiTM capture of an Entra session cookie is HIGH because it bypasses MFA. If those credentials are resold to Actor 1 (RaaS), the follow-on impact is CRITICAL — Actor 3 is the on-ramp for Actor 1.
  • Typical TTPs:
    • Password spray against Entra — low-velocity, many-accounts
    • AiTM phishing kits to capture session cookies (evilginx, Tycoon 2FA)
    • OAuth consent phishing — malicious app registration with Graph offline_access
    • Commodity infostealers via malicious attachments / drive-by
  • Likely targets in our environment: Any Entra identity, especially service accounts with MFA exclusions, OAuth-consentable scopes on CJ-1 and CJ-2 context.
  • Specific mitigations: Conditional Access (block legacy auth, device compliance), SecOps identity agent (credential spray detection, impossible travel, unmanaged-device sign-in), KnowBe4 phishing simulation + training, Maester M365 weekly audit of CA posture, OAuth consent anomaly review, FIDO2 for privileged accounts (in progress — AiTM resistance is the specific mitigation).

Actor 4 — Nation-state (low probability, supply-chain vector most realistic)

  • Motivation: Intelligence, long-dwell persistence for future leverage, or collateral damage via supply-chain compromise of a shared vendor.
  • Likelihood: LOW for direct targeting of Cirius Group specifically. MEDIUM as a shared-fate vector through vendor compromise (Microsoft, Palo Alto, Cortex, Arctic Wolf, Keeper).
  • Impact: CRITICAL if realized. Nation-state capabilities exceed most commercial defense stacks.
  • Typical TTPs: SolarWinds-class supply chain, Storm-0558-class token-signing key theft, living-off-the-land, months-to-years dwell, highly targeted custom malware with minimal telemetry, use of legitimate cloud services for C2.
  • Likely targets in our environment: CJ-2 (AD), CJ-5 (Panorama — intelligence value), CJ-7 (Key Vaults if keys are extractable).
  • Specific mitigations: SHA-pin every GitHub Action, Defender for Cloud anomaly detection, annual vendor attestation review (compliance/vendor-risk-inventory.md), Entra AuditLogs for token-signing anomalies, Arctic Wolf MDR (primary value), defense-in-depth assumption. We do not build nation-state-specific tooling — we rely on vendor ecosystem and hygiene.

Actor summary matrix

ActorLikelihoodImpactPrimary targetsKey mitigations
1. RaaS affiliate (LockBit, ALPHV, Akira)HIGHCRITICALCJ-2, CJ-4, CJ-8, CJ-1Kill-chain agents + Arctic Wolf + Object Lock
2. Insider (disgruntled admin)LOW-MEDIUMHIGH-CRITICALRole-dependentPIM + Keeper PAM + LPRIV + UBA
3. Opportunistic (phishing / spray) — ACTIVEHIGHLOW-HIGHAny Entra identityCA + identity agent + FIDO2 + KnowBe4
4. Nation-state (supply chain)LOWCRITICALVendor fabricSHA-pinning + vendor attestation + defense-in-depth

4. STRIDE analysis on crown jewel attack paths (TMOD-003)

We apply STRIDE (Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege) to each crown jewel. For each cell we document: threat method, current primary control, residual gap (LOW/MEDIUM/HIGH).

CJ-1 — DDE AVD environment

STRIDEThreatCurrent controlGap
SAiTM phishing of DDE user sessionCA + device compliance; FIDO2 planned for privilegedMEDIUM — FIDO2 pending
SService-principal impersonation in DDE tenantDDE has its own managed identities; no cross-tenant SPsLOW
TPublished-app configuration tampered to enable data exfilAdmin changes audited; CM ticket requiredMEDIUM
RUser denies accessing patient recordM365 audit log + AVD session recordsLOW
IBulk PHI download from the published appDLP + M365 audit + UBA (in build) + Arctic WolfMEDIUM
IScreen-scrape / clipboard exfil from AVD sessionAVD clipboard policy + device complianceMEDIUM
DAVD host pool unavailableHost pool redundancy; runbook runbooks/incident-response.mdLOW
EStandard user escalates to session host adminSession-host local admin restricted; Intune enforcesLOW

CJ-2 — Active Directory forests

STRIDEThreatCurrent controlGap
SPass-the-Hash with stolen DA hash4624/4648 monitoring; kill-chain lateral-movement agentHIGH — agent in build
SOverpass-the-Hash / Pass-the-Ticket4624/4648 + Kerberos event monitoringHIGH
TGPO modification to deploy ransomware5136/5137 directory events; Maester on-prem baselineMEDIUM
TSchema tamperingSchema Admins empty; break-glass onlyLOW
RAdversary clears Security log (EventID 1102)1102 agent fires CRITICAL immediately; logs already in LAWLOW (detection guaranteed)
IDCSync — dumping KRBTGT hash4662 SACL (scheduled); Cortex XDR behavioral on DCsHIGH
INTDS.dit extractionFile audit + VSS creation monitoring; Cortex XDRMEDIUM
DDC crash / replication failureMulti-DC redundancy; RSV + Veeam backupLOW
EKerberoasting against service accountsHigh-entropy passwords; 4769 encryption-type monitoringMEDIUM
EDelegation abuseMaester delegation audit (scheduled)MEDIUM

CJ-3 — Terraform state

STRIDEThreatCurrent controlGap
SForged OIDC federated identity from Cirius-Group-Inc lookalikeExact-name OIDC trust (Cirius-Group-Inc) — mismatches failLOW
SCompromised GitHub Action runs with github-deploy-main roleSHA-pin every Action; review every uses: changeMEDIUM
TState file surreptitiously modified to hide a resourcePR + CI + Rory review; state history in storage; terraform plan diff catches driftMEDIUM
Tterraform state rm to orphan a resourceBlocked by CI (no local applies); would produce a plan diffLOW
ROperator denies applying a changeEvery apply is a GitHub Actions run with identity on the commitLOW
IRead of state file reveals secret outputsProvider config avoids sensitive outputs; KV refs instead of inline secretsMEDIUM
IState storage account enumeratedStorage firewall, private endpoint where supportedLOW
DState lock held indefinitelyLock timeout; manual unlock runbookLOW
EA reader SP escalates to state writerRBAC quarterly review; OIDC identities scoped per-subscriptionLOW

CJ-4 — Veeam backup targets

STRIDEThreatCurrent controlGap
SAttacker impersonates Veeam service accountDedicated service account; isolated management networkLOW
TBackup deletion or encryptionS3 Object Lock (2190d) + RSV immutability are independent of Veeam stateMEDIUM — validated Q2 DR test
ROperator denies modifying retentionVeeam audit log + SecOps change ticketLOW
IBackup image exfil (contains PHI VM snapshots)Offsite Object Lock + access restrictedMEDIUM
DVeeam server shutdown or encryptionObject Lock independent path; RSV independent path; monthly restore spot-checkMEDIUM — Q2 DR test validates
EVeeam admin escalates domain privilegesVeeam service account separate from AD admin tierLOW

CJ-5 — Palo Alto Panorama

STRIDEThreatCurrent controlGap
SAdmin takeoverNamed admin + MFA; break-glass local per firewallLOW
TAttacker alters security policy (allow egress, disable DNS Security)Panorama audit + syslog to LAW out-of-band + config backupMEDIUM
TDecryption policy disabledMonthly security review §2 checks policy hashMEDIUM
RAdmin denies making a policy changePanorama admin audit; SecOps CM ticket requiredLOW
IPanorama config exfil (includes passwords, topology)RBAC tight; backup credentials rotated (security/palo-alto-backup-credential-rotation.md)LOW
DPanorama down4 independent enforcement nodes with last-known config; local break-glassLOW
ERead-only admin escalates to superuserRole audit in monthly reviewLOW

CJ-6 — psql-secops-prod

STRIDEThreatCurrent controlGap
SImpersonate SecOps app SPEntra managed identity; short-lived tokensLOW
SImpersonate a human DB adminEntra AD auth only; no local SQL accounts; Keeper PAM recordingLOW
TRow-level tampering of evidence / incidentsPITR 35d; backup to Object Lock; pgaudit (in build)MEDIUM
TSchema tamperingDDL audited; only infra admin role has DDL rightsLOW
ROperator denies a changepgaudit to LAW (pending); app-level user-id on every writeMEDIUM
IDB dump exfiltrationPrivate endpoint only; Palo Alto egress; Defender for SQL; DNS Security for C2LOW
IRead via stolen app secretSecrets in Key Vault; rotation schedule; KV access loggedMEDIUM
DDROP DATABASE / mass deleteRole restrictions; pgaudit to LAW; PITR for restoreMEDIUM
EApp role escalates to DB adminSeparate secops_app role; quarterly LPRIV auditLOW

CJ-7 — cirius-openai-kv-prod

STRIDEThreatCurrent controlGap
SSP impersonation to read secretsCA on workload identity; short-lived federated credentialsLOW
TTampering with secret versionsKV versioning + soft delete + purge protectionLOW
ROperator denies rotating a secretKV diagnostic logs to LAWLOW
ISecret exfiltration via KV readTight RBAC; only named identities; private endpoint where supportedLOW
DVault throttling / DoSRegional redundancy; KV SLALOW
EReader escalates to Secret ReaderRole-separation audit quarterlyLOW

CJ-8 — Break-glass accounts

STRIDEThreatCurrent controlGap
SUnauthorized sign-inPermanently unsuppressible rule fires CRITICAL; API blocks suppressionLOW
TTampering with credential storageKeeper with split knowledge; physical safekeepingLOW
RSO denies a break-glass useEvery use documented; non-repudiable trailLOW
IExfil of credential itselfPhysical safekeeping; access-logged KeeperLOW
DAccount lockout prevents legitimate emergency useTwice-yearly drill validates account viabilityLOW
EBreak-glass is already max privilege

STRIDE gap summary

SeverityGaps
HIGHCJ-2 Pass-the-Hash / Overpass-the-Hash / DCSync (all three agent-pending)
MEDIUMCJ-1 AiTM + DLP on AVD; CJ-3 Action-compromise + state-read; CJ-4 DR validation; CJ-5 policy tampering; CJ-6 pgaudit; CJ-7 none MEDIUM
LOWCJ-7 (all), CJ-8 (all except N/A)

5. Controls mapped to each attack chain (TMOD-004)

We map controls against both the generic 8-stage ransomware kill chain and the four representative actor-driven attack chains (A–D). This section is the one operational engineers should look at when adding a new detection — find the kill chain stage, find the control gap, close it.

5.1 Kill chain control map (by stage)

StagePreventive controlsDetective controlsGapStatus
1. Initial AccessEntra CA, Twingate ZTA, Palo Alto perimeter, no public management, KnowBe4, patch cadenceSecOps identity agent (spray, impossible travel, unmanaged-device), Palo Alto threat prevention + DNS Security, Maester weekly CA audit, Cortex XDR, Arctic Wolf, Twingate_CL in LAWFIDO2 not yet deployed for privileged accounts (RA-2026-001)COVERED
2. ExecutionIntune MDM, Cortex XDR behavioral, ASR rules, AppLocker/WDAC on sensitive serversEventID 4688 process creation, PS 4103/4104 script block, Cortex behavioral (LSASS, unusual parent-child), kill-chain Execution agent (in build)4688 coverage not complete on all host populations; agent in buildCOVERED — active gap
3. PersistenceLimited local admin, GPO startup restrictions, admin-approval required for service installEventID 7045 (service), 4698 (scheduled task), 5136/5137 (GPO mod), FIM on registry run keys, Persistence agent (in build)FIM coverage verification in-progressCOVERED — active gap
4. Credential DumpingCredential Guard, LSASS protection (PPL), no password reuse, Keeper, KRBTGT rotation4688 + process name lsass, 4624 multi-target auth, 4662 SACL for DCSync (scheduled), Cortex behavioral, Credential-dump agent (in build)DCSync detection highest-priority gapCOVERED — active gap
5. Lateral MovementVNet segmentation, Tier 0/1/2 model, admin workstations for privileged sessions4624/4648 explicit creds, 5140 admin-share access, Palo Alto east-west logs, Lateral-movement agent (in build)Agent in build; east-west logs completeCOVERED — active gap
6. ExfiltrationPalo Alto App-ID blocks RClone/WinSCP/Mega, DLP on SharePoint/OneDrive, egress allowlist, DNS SecurityPalo Alto traffic vs baseline, DNS Security logs, M365 audit for Graph bulk ops, UBA baseline (in build), Exfiltration agent (in build)UBA + agent active developmentCOVERED — active gap
7. Defense EvasionCortex XDR tamper protection, 6-year WORM archive (can't delete what already shipped), Intune enforces agent presence, DCR to multiple destinationsEventID 1102 (log cleared) — CRITICAL, Cortex silence detection (backlog), agent heartbeat in SecOps, LAW ingestion anomaly (backlog)Cortex silence escalation in backlogCOVERED — active gap
8. Impact (Encryption)Cortex XDR behavioral ransomware prevention, Intune device compliance, Veeam + RSV + S3 Object Lock, no attacker path to backup managementCortex ransomware behavioral, FIM on ransomware paths, Veeam job failure alerts, SecOps mass-delete volume alertsFIM coverage for ransomware paths to be verified (Q2)COVERED — active gap

Pattern: preventive coverage is strong across all 8 stages. Detective coverage for stages 2–8 has known gaps, every one of which is on the Q2 kill-chain workstream.

5.2 Attack chain walkthroughs (actor-driven)

Each chain below is an ordered sequence a real attacker would execute. Detection and prevention gates appear at each stage.

Chain A — Ransomware (RaaS affiliate, Nov 2024 pattern)

#StageAttacker actionControl
1Initial accessCredential spray against Entra, hits service account excluded from MFAPrevent: quarterly CA audit catches MFA exclusion. Detect: identity agent flags spray + anomalous service-account login.
2ExecutionBeacon binary dropped to %APPDATA%\Local\TempPrevent: Cortex XDR behavioral. Detect: 4688 + Execution agent (pending).
3Credential accessLSASS dump on pivot host, DCSync against DCPrevent: Credential Guard, LSASS PPL. Detect: 4662 SACL + Credential-dumping agent (pending) + Cortex behavioral.
4Lateral movementPass-the-Hash / RDP to high-value hostsPrevent: Tier model + admin workstations. Detect: 4624/4648 + Lateral-movement agent (pending).
5Defense evasionClear Security log (1102); attempt Cortex tamperPrevent: Cortex tamper protection. Detect: 1102 = CRITICAL; Cortex silence (backlog).
6ImpactRansomware via GPO scheduled task; encrypt 60+ VMs; target VeeamPrevent: Object Lock + RSV immutability — encryption is recoverable. Detect: FIM + Cortex ransomware behavioral + Veeam job-failure alerts.

Largest gaps today: stages 2 and 4 (both agent-pending). When Q2 ships: every stage has at least one live detective control.

Chain B — Data theft (Actor 3 → Actor 1 on-ramp, or Actor 2 directly)

#StageAttacker actionControl
1Initial accessAiTM phishing harvests credentials + session cookiePrevent: FIDO2 (in progress) — AiTM-resistant. Detect: unmanaged-device sign-in (backlog), Maester CA weekly.
2PersistenceRegister malicious OAuth app with Graph offline_accessPrevent: admin consent required for sensitive scopes. Detect: SecOps identity agent flags anomalous consent.
3Credential accessRefresh token abuse bypasses password rotationDetect: Entra AuditLogs + SignInLogs correlation.
4DiscoveryGraph API enumerates M365 business documents, OneDrive, Exchange mailboxesDetect: Graph API activity in LAW, UBA baseline (in build).
5ExfiltrationSlow-and-low document pull over daysPrevent: DLP on PHI keywords. Detect: Exfiltration agent + UBA (both in build).

Largest gap today: stage 5 — UBA is the key detection bet; agent in build.

Chain C — Nation-state supply chain (hypothetical)

#StageAttacker actionControl
1Initial accessTrusted vendor update contains implant (SolarWinds-class)Prevent: SHA-pin every GitHub Action; vendor attestation review.
2ExecutionImplant runs under trusted processDetect: Cortex behavioral + Arctic Wolf MDR.
3PersistenceStays dormant for weeksDetect: 7045/4698 (if the implant persists that way); otherwise Arctic Wolf long-dwell analytics.
4Credential accessHarvests keys slowlyDetect: Entra AuditLogs anomaly (token-signing), KV diagnostic review.
5ImpactData theft or positioningDetect: UBA + Exfiltration agent; Defender for Cloud.

Reality check: detection here relies heavily on vendor telemetry. We accept this — we do not build nation-state-specific tooling.

Chain D — Insider (disgruntled T1 DA or ops-automation insider)

#StageAttacker actionControl
1Initial accessLegitimate session, last day of employmentPrevent: 4-hour termination runbook. Detect: after-hours privileged activity flag.
2DiscoveryKnows exactly where PHI is— (unavoidable for trusted role)
3ExfiltrationBulk SharePoint download / DB export / Terraform state readPrevent: DLP + PIM (nothing standing). Detect: DLP bulk-egress alert, Keeper PAM session recording, UBA baseline, pgaudit (in build).
4ImpactSold, sent to competitor, publishedDetect: 6-year immutable audit trail — tampering detected even if insider is SO (Kevin / Greg execute that audit).

Largest gap today: UBA baseline pending; until live, DLP + Keeper PAM review is the detection.


6. Aggregate coverage and residual risk

StagePreventiveDetectiveOverall
1. Initial AccessSTRONGSTRONGGOOD (FIDO2 gap)
2. ExecutionMEDIUMPARTIALGAP (4688 + agent in build)
3. PersistenceMEDIUMPARTIALGAP (FIM + agent)
4. Credential AccessSTRONGPARTIALGAP (DCSync detection)
5. Lateral MovementSTRONGPARTIALGAP (agent in build)
6. ExfiltrationSTRONGPARTIALGAP (UBA + agent in build)
7. Defense EvasionSTRONGMEDIUMGAP (silence escalation)
8. ImpactSTRONGMEDIUMGAP (FIM verification)

Residual risk register (tracked separately)

RiskCurrent stateTargetTracking
DCSync detection (CJ-2)PARTIALFull coverage via 4662 SACL agentcompliance scorecard
FIDO2 phishing-resistant MFAIN_PROGRESSDeployed for all privilegedrisk-acceptance-register.md RA-2026-001
IR retainerGAPExecuted by Q3 2026risk-acceptance-register.md RA-2026-002
FIM coverage for ransomware pathsIN_PROGRESSVerified scope + pathscompliance scorecard
Kill-chain agents (exec, persist, cred, lat, exfil)IN_PROGRESSDeployed + tunedCLAUDE.md priorities 2 and 3
Cortex silence escalationNOT STARTEDCorrelation ruleBacklog
pgaudit on psql-secops-prodIN_PROGRESSEnabled + DCR to LAWcompliance scorecard
BAA backlog (4 vendors)IN_PROGRESSAll IN_FORCEvendor-risk-inventory.md

7. Recommendations

In priority order:

  1. Complete kill-chain Phase 1 + Phase 2 (CLAUDE.md priorities 2 and 3). This single workstream closes detection gaps at stages 2–7 simultaneously. Highest-leverage investment of 2026.
  2. Deploy FIDO2 for all privileged accounts by Q3 2026. Direct mitigation for Actor 3 → Actor 1 on-ramp. AiTM-resistant auth eliminates the credential-phishing vector against highest-value identities.
  3. Execute IR retainer before SOC2 audit (September 2026). Currently GAP status.
  4. Enable pgaudit on psql-secops-prod (Q2 2026). Closes CJ-6 tampering and repudiation gap.
  5. Verify FIM coverage and monitored paths (Q2 2026). Tightens Stage 3 and Stage 8 detection.
  6. Q2 DR test validates Veeam vs RSV vs S3 independence for CJ-4. Tabletop the Chain A ransomware scenario end-to-end first (compliance/ir-tabletop-scenario-2026.md) so lessons inform the live restore.
  7. Close the BAA backlog (Arctic Wolf, Keeper, Twingate, Cortex) before September audit.
  8. Cortex silence escalation rule — get off the backlog, build the correlation. Stage 7 gap.

8. Cross-references

  • Crown-jewel detail files (if retained as supporting docs):
    • security/threat-model/crown-jewels.md
    • security/threat-model/threat-actors.md
    • security/threat-model/stride-analysis.md
    • security/threat-model/controls-mapping.md
  • Operational runbooks:
    • runbooks/incident-response.md
    • runbooks/kill-chain-audit-policy.md
    • runbooks/monthly-security-review.md
    • runbooks/year-end-checklist.md (annual threat model review — §6 of that runbook)
  • Compliance and risk:
    • compliance/compliance-scorecard.md
    • compliance/risk-acceptance-register.md
    • compliance/ir-tabletop-scenario-2026.md
    • compliance/q2-dr-test-plan-2026.md
    • compliance/q4-dr-test-plan-2026.md
  • Architecture context: CLAUDE.md (operating instructions), README.md

This threat model is the canonical single-document reference. Every security project, detection agent, tabletop scenario, and compliance artifact should be traceable back to a crown jewel, an actor, and a kill-chain stage defined here. If it does not trace back, it is either missing from this document (file an update) or not justified (file a known-risk exception).


9. Ready-for-review note (TMOD-006)

This document is READY FOR REVIEW by Greg and Kevin.

Both are T1 Domain Admins (DR) and serve as the escalation path / consumers of compliance reports for Cirius Group. Their specific review tasks:

  • Greg: confirm Actor 1 (RaaS) mitigations match your view of the November 2024 incident. Confirm Chain A walkthrough reflects reality.
  • Kevin: confirm Actor 2 (insider) mitigations are sufficient for the scenario where the SO (Rory) is the insider. Confirm the 6-year immutable audit trail under §4 Chain D step 4 is what you would rely on to execute the reverse-audit.
  • Both: confirm the crown jewel ranking (§2) matches your priority ordering. Note any asset you would add, remove, or re-rank.
  • Both: confirm Recommendations §7 prioritization. If you would reorder, capture why.

Rory is the document owner. Sign-off flow: Greg + Kevin review → Rory merges feedback → next annual review in December 2026.

Review tracking: this document's presentation to Greg and Kevin is tracked under SecOps story TMOD-006 (closed at publication of this version).


10. Review schedule (TMOD-005, TMOD-007)

Annual review cadence

This is a living document. It is reviewed annually in December. Additionally, a mid-cycle review is triggered by any of:

  • Any material security incident (by our definition, any incident where SecurityAgent fires CRITICAL and the incident reaches OPEN status)
  • Material environment change — new tenant, new AWS account, new crown-jewel-class asset
  • New threat actor emerges that materially changes the threat landscape for healthcare SMBs
  • New regulatory obligation (e.g., HIPAA amendment, state privacy law update)
  • Third-party pen test or audit finding that invalidates an assumption

Annual review checklist (runs in December)

Full steps live in runbooks/year-end-checklist.md §6. The threat model annual review specifically requires:

  1. Re-confirm crown jewel inventory — add / remove / re-rank as needed
  2. Refresh threat actor profiles — incorporate new RaaS group branding, new campaign intelligence, any insider personnel change
  3. Re-walk the four attack chains — any new TTPs seen this year? Any old TTPs closed by a new control?
  4. Re-score every STRIDE cell — gaps that were HIGH a year ago should be LOW if the corresponding agent is live; any new gap must be registered in compliance/risk-acceptance-register.md
  5. Re-score the eight kill-chain stages in §5.1
  6. Update Recommendations §7 — remove done items, add new ones
  7. Update "Last reviewed" date at the top and add a row to the Document history table
  8. Present refreshed version to Greg and Kevin; capture sign-off

Referenced-by contract

This document is referenced by, and therefore must stay current for, the following projects:

  • Kill-chain detection workstream — agent design pulls expected TTPs from §3
  • SecOps identity agent — spray / consent / unmanaged-device detections derive from Actor 3
  • SOC2 audit prep — §2 crown jewels, §4 STRIDE, §5 controls map are direct audit evidence
  • IR tabletops — §5.2 Chain A is the baseline ransomware scenario
  • DR tests — §5 Stage 8 + CJ-4 backup independence is the recovery assertion under test
  • New security projects — Rory's gate before accepting a new security project is "which crown jewel / stage / actor does this close a gap for?" — the answer must reference §2, §5, or §3 in this file

Document history

DateChangeAuthor
April 2026Initial consolidated v1 — crown jewels, actors, STRIDE, controls, review schedule; ready for Greg / Kevin reviewKobe (TMOD-001 through TMOD-007)

Internal use only — Cirius Group