Security & Compliance

The end-to-end security & compliance posture for REV.health — a multi-tenant cloud EHR / practice-management platform handling Protected Health Information (PHI) for clinicians, staff, and patients. This page is the canonical reference for our threat model, regulatory obligations, identity & access controls, data protection, tenant isolation, audit & detection, secure SDLC, operational security, incident response, supply chain, application hardening, privacy by design, AI/ML safeguards, workforce & physical controls, and our public trust surface. Every section states the decision we have made (or are making), flags open questions / TBDs, and links to the module pages and the v1 → v2 gap report where relevant.

Scope & audience. This is an internal product PRD page for the engineering, product, security, and compliance teams. It is not the customer-facing trust page — that lives at trust.rev.health and is summarized in Section 15. RBAC matrices per module are intentionally not duplicated here; cross-link to Data Model § Authorization Evaluation Flow and to the per-module dev pages under dev/modules/. The v1 → v2 gap report explicitly notes that the per-module RBAC matrices are partially missing in v2 (P1 priority restoration) — that gap is referenced throughout this page.

Contents

1. Threat Model & Assumptions

REV.health is a multi-tenant cloud platform storing and processing PHI in direct clinical workflows ("north of the stethoscope" — i.e. our software is in the decision loop, not just downstream reporting). Our threat model frames every architectural decision below.

Assets we are protecting

Adversaries we plan against

Adversary classes (STRIDE-style)
ClassExamplesPrimary controls
External criminalRansomware affiliates, credential-stuffing botnets, opportunistic web attackersWAF, MFA-everywhere, immutable backups, EDR on workstations, network egress controls
Nation-state / APTTargeted intrusion against healthcare supply chainDefense-in-depth, anomaly detection, mandatory third-party pen test, SBOM monitoring
Malicious insider — workforceCurious employee, exiting employee, bribed employeeLeast privilege, JIT prod access, recorded sessions, snooping detection, offboarding SLA
Malicious insider — tenantClinic staff accessing celebrity / ex-spouse / coworker recordsABAC + relationship checks, break-the-glass + justification, same-name / VIP / after-hours alerts, patient "who saw my chart"
Cross-tenant attackerPaying customer attempting to read another tenant's dataPartition-key isolation, query-rewrite layer, RLS, prepared-statement allow-list (see §5)
Supply chain attackerCompromised npm/NuGet package, malicious model weights, compromised partner integrationSCA, signed images, SBOM, vendor security review (see §10)
Patient adversaryPatient trying to access another patient's data via portal IDOR; patient submitting prompt injection in chief-complaint textPortal IDOR tests, persisted queries, AI input sanitization (see §13)
Regulator-as-evaluatorOCR HIPAA audit, DEA inspector for EPCS, ONC surveillance, state AGContinuous control evidence, audit-ready logs, tabletop exercises

Trust boundaries

Decision · TM-1 We adopt the STRIDE framework per feature and the LINDDUN privacy framework for patient-facing features. Threat models are reviewed at every feature kickoff and re-validated quarterly (see §7).
TBD · TM-A A consolidated written threat-model document per module — currently exists informally. Owner: Security Lead. Target: end of P1a.

2. Regulatory & Contractual Landscape

The applicable rules below are stated as decisions: which standard we follow, to what level, and when. See Roadmap for the regulatory milestones (ONC, SOC 2, EPCS) on the platform Gantt.

FrameworkApplicabilityOur postureTarget
HIPAA Security Rule (45 CFR 164.302–318)We are a Business Associate to every customer; many customers are Covered Entities.Full implementation of Administrative, Physical, and Technical Safeguards. See sub-section below.P1a
HIPAA Privacy Rule (45 CFR 164.500–534)Indirectly via BAA; we are obligated to honor patient rights forwarded to us.Implement minimum-necessary defaults; accounting of disclosures support; right-of-access workflow (see §12).P1b
HITECH Breach Notification RuleYes — BA obligations.≤60-day customer notification SLA; ≤24-hour internal escalation; documented playbook (see §9).P1a
21st Century Cures Act — interop & information blockingEHR functionality is in scope.Standards-based USCDI v4 export, FHIR R4 Bulk Data, patient electronic-access right; documented info-blocking exceptions per 45 CFR Part 171.P3 (full)
ONC Health IT Certification (HTI-1 / HTI-2)Required if a customer participates in MIPS/Promoting Interoperability.Drummond ATL engagement; pursue cert for the criteria listed in our HTI scope statement.P3 (complete by 2027-09)
DEA EPCS (21 CFR Part 1311)Required for controlled-substance e-prescribing.Drummond EPCS cert; two-factor with hard token (FIPS 140-2 Level 1 cryptographic module); identity proofing at IAL2.P1b (live), P3 (Surescripts direct)
42 CFR Part 2Applies to substance-use disorder records sourced from Part 2 programs.Per-record sensitivity flag; consent ledger; segregation in disclosures and HIE outflow.P1b
CA CMIA (Confidentiality of Medical Information Act)CA-resident patients; many partners.Treat as default state floor; align retention & disclosure with CMIA; mental-health records gating in portal.P1a
TX HB300TX-resident patients.Mandatory employee training within 90 days of hire (see §14); breach notification 60 days.P1a
NY SHIELD ActNY residents.Reasonable safeguards (we exceed); breach notification.P1a
GDPR / UK GDPROnly if we onboard EU/UK customers (none in P1).Hold pattern: DPA template ready, EU data residency plan drafted; no EU enrollment until enclave live.Hold
CPRACA residents in customer-care relationships are covered by HIPAA carve-out; CPRA still applies to workforce data and certain non-PHI.Workforce + marketing-site privacy notice; DSR workflow.P1b
SOC 2 Type IICustomer table-stakes.Type I in P1b, Type II report 9-month observation period landing 2027-09.P3
HITRUST CSFSales requirement at large IDNs.Target r2 (Implemented) at i1 in P3; consider e1 in P1 as cost-effective entry. Final tier TBD.P3
PCI-DSSCard processing scope.SAQ A — we never touch PAN; payment fields are iframe-hosted by processor; tokens only stored.P1a
NIST 800-53 / 800-171Used as cross-walk reference for HITRUST & FedRAMP-readiness.Map controls; no active FedRAMP pursuit.Reference only
HIPAA Security Rule — safeguard implementation summary
SafeguardImplementationOwner
Administrative — Security Management Process (§164.308(a)(1))Annual risk analysis, risk management plan, sanction policy, info-system activity review (§6 audit).Security Lead
Administrative — Workforce Security (§164.308(a)(3))Background checks, role-based authorization, termination procedures (§14 offboarding).HR + Security
Administrative — Information Access Management (§164.308(a)(4))Isolation between tenants (§5), access authorization process (§3 RBAC/ABAC).Eng + Security
Administrative — Security Awareness & Training (§164.308(a)(5))Onboarding + annual refresher; phishing simulations quarterly.HR + Security
Administrative — Security Incident Procedures (§164.308(a)(6))IR plan (§9), tabletop quarterly.Security Lead
Administrative — Contingency Plan (§164.308(a)(7))Backup strategy, DR plan, restore drills (§8).SRE
Administrative — BA Contracts (§164.308(b))BAA inventory (§10) signed with every sub-processor handling PHI.Legal + Security
Physical — Facility Access (§164.310(a))Inherited from AWS — no on-prem PHI hardware (§14).Inherited
Physical — Workstation Use & Security (§164.310(b)–(c))MDM-enrolled, disk-encrypted; browser-only PHI access (§14).IT
Physical — Device & Media Controls (§164.310(d))No removable media; e-waste destruction via NAID-AAA vendor (TBD).IT
Technical — Access Control (§164.312(a))Unique user IDs, emergency access (break-the-glass), automatic logoff, encryption (§3/§4).Eng
Technical — Audit Controls (§164.312(b))Per-record read & write audit trail (§6).Eng
Technical — Integrity (§164.312(c))Hash-chained audit log, write-once backup tier (§6/§8).Eng
Technical — Person/Entity Authentication (§164.312(d))SSO + MFA + WebAuthn for prescribing (§3).Eng
Technical — Transmission Security (§164.312(e))TLS 1.3, mTLS for partners (§4).Eng
BAA & sub-processor posture

Our outbound BAA (REV.health → customer) is a standard BA contract with the following defining clauses:

  • ≤60-day breach notification, with ≤72-hour preliminary notice once a reportable event is confirmed.
  • Sub-processor list maintained on trust center; 30-day notice of material additions.
  • Customer audit rights via SOC 2 + HITRUST report distribution (no on-site walk-throughs without cause).
  • Data return / destruction within 60 days of termination; certificate of destruction on request.

Inbound BAAs (REV.health ← sub-processors): every vendor that processes, stores, or transmits PHI must sign our standard inbound BAA — see §10 for vendor security review.

TBD · REG-A HITRUST tier final selection (e1 vs i1 vs r2). Decision needed by 2026-Q4 to align assessment scheduling. Owner: Security + Sales leadership.
TBD · REG-B EU enclave: do we commit to eu-west-1 or eu-central-1 in 2027? Driven by first EU customer demand.

3. Identity, Authentication & Authorization

Cross-reference: the authorization evaluation pipeline (RBAC → ABAC → scope check → break-the-glass) is diagrammed in Data Model § Authorization Evaluation Flow. Per-module RBAC matrices are noted as partially missing in the v1 → v2 gap report (P1 priority).

3.1 Provider & staff authentication

3.2 Patient authentication

3.3 Session management

Role classIdle timeoutAbsolute timeoutConcurrent sessionsDevice binding
Clinician (in-clinic)15 min12 h3Soft (cookie + IP fingerprint)
Clinician (remote / telehealth)10 min10 h2Soft + device-trust check
Front desk / staff10 min12 h3Soft
Billing15 min10 h2Soft
Tenant admin10 min8 h2Soft + MFA step-up on sensitive ops
Patient portal20 min24 h5Cookie binding
REV.health workforce — prod plane5 min4 h (per JIT request)1Hardware key + recorded session
Break-the-glass (BTG) workflow
  1. User attempts to access a record their relationship or ABAC context does not authorize.
  2. If their role has BTG capability (e.g. clinician on duty, emergency-department user) and the record is BTG-eligible (not 42 CFR Part 2, not user-restricted), they are presented with a justification modal.
  3. Free-text justification + a structured reason code (Emergency / Continuity-of-care / Coverage / Quality / Audit / Other).
  4. Access is granted, the event is logged at severity=high in the audit log, and the patient sees the entry in their portal "Who saw my chart" view (§6).
  5. Daily BTG report goes to the tenant's Privacy Officer; spike alerts to REV.health Security.

3.4 RBAC + ABAC layers

RBAC defines what a role can do across the platform; ABAC narrows it to the records the actor should see in this context.

Decision · ID-1 Authorization decisions are made by a single PDP (Policy Decision Point) service that returns deny/permit/permit-with-obligation. Application code never hand-rolls authorization checks; it consults the PDP and obeys obligations (e.g. "require BTG justification before write"). This is the only way we can ship the missing RBAC matrices uniformly across modules.
Gap · ID-G1 Per-module RBAC matrices are missing in 9 of 10 module dev pages. Track in gap report; restoration is P1.
TBD · ID-A Identity-proofing vendor for patient AAL2 step-up. Candidates: Stripe Identity, ID.me, Persona, Onfido. Decision needed before chart export feature ships.
TBD · ID-B Adolescent-confidentiality default policy — per-state matrix or single conservative default with tenant overrides. Legal review pending.

4. Data Protection

4.1 Encryption at rest

4.2 Encryption in transit

4.3 KMS / HSM & key custody

4.4 Tokenization

Decision · DP-1 Field-level encryption is applied to SSN, EPCS biometric hash, and recovery answers. We do not field-encrypt the broader PHI corpus because tenant-key + container DEK already gives us per-tenant cryptographic isolation and full-text search remains tractable.
TBD · DP-A Final cloud provider for KMS/HSM is locked to the platform cloud decision; confirm with Architecture once finalized. Affects FIPS endpoint enablement defaults.
TBD · DP-B Token vault — build vs buy (HashiCorp Vault Enterprise, Skyflow, Very Good Security). Cost vs control evaluation outstanding.

5. Tenant Isolation & Data Residency

Cross-reference: the data-ownership and partitioning model lives in Data Model. This section adds the cross-tenant attack prevention layer.

5.1 Logical isolation model

Decision · TI-1 Shared infrastructure, partition-key logical isolation. Org-scoped data: container partitioned by OrganizationID. Global entities (Patient, Problem, etc.): partitioned by PatientID. We do not ship per-tenant databases by default. Trade-off accepted: we get scale economics, simpler ops, and faster cross-org patient view; we pay for it with stronger query-rewrite, RLS, and audit controls (below). Enterprise dedicated tenancy (separate database account or even separate cluster) is available as a SKU.

5.2 Cross-tenant query prevention

5.3 Noisy neighbor & tenant rate limiting

5.4 Data residency

TBD · TI-A Per-tenant database SKU pricing & activation runbook. Owner: Product + SRE.

6. Audit, Monitoring & Detection

6.1 Audit log model

6.2 SIEM & cloud-control plane

6.3 Behavior analytics (UEBA)

Automated detection of snooping and abuse, with tenant-Privacy-Officer dashboards:

6.4 Application logs

TBD · AU-A Specific SIEM product (Splunk vs Sumo vs Microsoft Sentinel vs Datadog) — pending cost & cloud-alignment decision in P0.
TBD · AU-B UEBA: build (rules engine on existing log pipeline) vs buy (Splunk UBA / Exabeam / ManageEngine). Lean build for v1 with a swap-in posture.

7. Vulnerability Management & Secure SDLC

PracticeTool(s)TriggerSLA
SASTGitHub Advanced Security CodeQL + Semgrep custom rulesEvery PR + nightly full scanBlock merge on Critical/High
DASTOWASP ZAP automated + Burp Suite Pro for manualNightly against stagingCritical: 7d, High: 30d, Medium: 90d
SCAGitHub Dependabot + Snyk + OSSIndexOn every dependency change + dailyCritical CVE: 24h, High: 7d
License complianceFOSSA or Snyk LicensePer PRBlock merge on disallowed license (AGPL etc.)
Dependency pinning & auto-updateRenovateDaily PRs, batched weeklyPatch window weekly
Container image scanTrivy + Snyk ContainerOn image build + nightly registry sweepPer CVE SLA above
Image signingcosign + Sigstore; SLSA Level 3 targetEvery buildAdmission controller rejects unsigned images
Secrets scanninggitleaks pre-commit + GitHub secret scanningPre-commit + push + history rewrite alertingRotate exposed secret < 1 h
IaC scanningCheckov + tfsecPer PR on infra reposBlock merge on High
Threat modelingSTRIDE workshops + LINDDUN for patient flowsPer feature + quarterly per moduleDocumented in module dev page
External pen testReputable boutique (rotated every 2 years)Annual + after major releaseCritical: 14d, High: 30d, retest required
VDP / bug bountyHackerOne (private → public after 12 mo)ContinuousPer security.txt commitments

7.1 Patching SLA

SeverityDefinition (CVSS)Internet-exposedInternal
Critical9.0–10.024 h7 d
High7.0–8.97 d30 d
Medium4.0–6.930 d90 d
Low< 4.090 dNext planned cycle
Decision · SDLC-1 All container images and binary artifacts are signed (cosign) and admission-controller-gated. The runtime cluster rejects any image without a valid Sigstore signature traceable to our build provenance.
TBD · SDLC-A Pen test vendor selection (rotation 1) — shortlist: Bishop Fox, NCC Group, Trail of Bits, Doyensec. Decision before first paying-design-partner go-live.

8. Operational Security

8.1 Production access

8.2 Least-privilege IAM

8.3 Backup strategy

Data classRPORTORetentionRestore drill
Operational (Cosmos / DB)≤ 5 min≤ 1 h35 d point-in-timeMonthly partial
Blob / document storage≤ 15 min (cross-region replication)≤ 4 h7 y (versioning + lifecycle)Quarterly
Audit logreal-time tee≤ 1 h≥ 6 y immutableSemi-annual
Configuration / secretsper-change≤ 15 minIndefinite (versioned)Quarterly
Full-tenant restore (single-tenant scenario)≤ 1 h≤ 4 hn/aSemi-annual tabletop + annual live

8.4 DR & chaos

8.5 Change management

TBD · OPS-A JIT-access tool selection (Teleport vs ConductorOne vs Opal vs cloud-native).

9. Incident Response & Breach Notification

9.1 IR plan (NIST 800-61)

  1. Preparation — runbooks, contact lists, tabletop schedule, retainer with external IR firm + outside counsel.
  2. Detection & analysis — sources: SIEM alerts, customer reports, VDP submissions, anomaly alerts (§6). Severity triage within 30 min.
  3. Containment — short-term (isolate session, revoke credentials, block IP) and long-term (rotate keys, deploy patch).
  4. Eradication & recovery — remove footholds, restore from clean backup if needed, verify, monitor heightened.
  5. Post-incident — RCA within 5 business days; blameless review; action items tracked to closure.

9.2 Severity tiers

TierExamplesInternal escalationExternal communication
Sev-1 — CriticalConfirmed PHI exfiltration, cross-tenant data exposure, ransomware, RCE in prodPage exec + Legal immediatelyStatus page within 30 min; affected-customer notice within 24 h
Sev-2 — HighTargeted account takeover, prod outage > 30 min, partial data integrity issuePage on-call lead + SecurityStatus page; customer email within 4 h
Sev-3 — MediumSingle-user phishing fall, minor data-quality bug, suspicious access patternStandard ticketNone unless escalates
Sev-4 — LowInformational signals, tuning neededBacklogNone

9.3 Forensic readiness

9.4 Breach notification

9.5 Tabletop & communications

10. Supply Chain & Third Parties

Cross-reference: the BUILD / BUY / HYBRID vendor decisions live in Integrations. This section is about the security posture applied to whichever vendor we pick.

10.1 Vendor security review checklist

  1. SOC 2 Type II report (or HITRUST, ISO 27001) received and reviewed (≤ 12 months old).
  2. BAA executed if PHI is involved.
  3. Pen test summary or security whitepaper.
  4. Sub-processor list and notification commitment.
  5. Incident-notification SLA aligned with our §9 commitments.
  6. Data residency commitment (US-only by default for PHI).
  7. Encryption posture (at rest + in transit) at parity with §4.
  8. Authentication and access controls (SSO, MFA, JIT).
  9. Backup & data-portability commitments; exit plan.
  10. Insurance (cyber + E&O) at $5M+ aggregate.

10.2 BAA inventory & sub-processor list

10.3 Ongoing oversight

10.4 SBOM

TBD · SC-A GRC platform (Vanta vs Drata vs Secureframe vs Tugboat Logic) — drives evidence collection for SOC 2 & HITRUST. Decision in P0.

11. Application-Layer Hardening

11.1 ASVS baseline

Decision · APP-1 OWASP ASVS L2 for all customer-facing applications; L3 for endpoints that read/write PHI (most of our API surface) and all endpoints in the EPCS pipeline. ASVS controls mapped in the security requirements traceability matrix maintained alongside engineering specs.

11.2 Standard attack-class controls

ClassControls
CSRFSameSite=strict cookies for session; double-submit token on state-changing requests; verb constraints.
XSSOutput encoding by default in the templating layer; CSP with nonces; Trusted Types on the patient portal SPA.
SSRFEgress allow-list; metadata-endpoint block; URL fetcher runs in a separate restricted account.
SQL/NoSQL injectionParameterized queries enforced; prepared-statement allow-list (§5).
IDORPDP-mediated access (§3); ID values are not sequential (Short GUID — see Data Model § Short GUID); ID guess attempts rate-limited; positive-control tests in CI.
Mass assignmentExplicit DTO allow-list on input deserialization; no auto-binding of model fields.
SSTINo user data into template syntax; sandboxed templating for any patient/clinician-authored content.
Open redirectRedirect target validated against allow-list.
Insecure deserializationJSON-only by default; no native object deserialization on untrusted input.
Header / response splittingHTTP framework-level mitigations; output sanitization.

11.3 File uploads

11.4 Rate limiting & bot mitigation

11.5 API gateway & partner APIs

11.6 GraphQL hardening (where applicable)

TBD · APP-A WAF/CDN choice (Cloudflare vs AWS WAF + CloudFront vs Akamai) — depends on cloud decision and partner-edge needs.

12. Privacy by Design

12.1 Minimum-necessary defaults in the UI

12.2 Patient consent ledger

A first-class entity (planned, owner: Patient Portal team) capturing granular consent:

12.3 Data subject rights workflow

RightWorkflowSLA
Access & portabilityPortal self-serve for view; on-demand CCDA + FHIR bulk export≤ 30 d (HIPAA), targeting same-day digital
Correction / amendmentPatient submits correction request → assigned to provider task queue → accept / reject with explanation≤ 60 d (HIPAA §164.526)
Restriction of disclosureWorkflow with practice approval; flagged on chartProcess within 14 d
Accounting of disclosuresGenerated from audit log (§6) filtered to non-TPO disclosures≤ 60 d, fulfilled digitally
Confidential communicationsPer-patient preference: alternate address / phoneSet at portal account setup

12.4 De-identification & pseudonymization

TBD · PRIV-A Consent ledger schema — partly drafted in Patient Portal; needs formalization with Legal sign-off on the consent UX language.

13. AI/ML Specific Safeguards

Cross-reference: AI features live in Clinical Documentation (Scribe), Coding & CDS, and the Encounter Type System learning loop.

13.1 Tenant isolation in models

13.2 Prompt injection defenses

13.3 Output validation & HITL

13.4 Bias & quality monitoring

13.5 Vendor LLM contracts

Decision · AI-1 For clinical write-back paths, AI is an assistant, never an actor: every chart write requires a human attestation event. The audit trail captures "provider X accepted AI suggestion Y at T" with the source artifact retained for record reconstruction.
TBD · AI-A Bias monitoring metric set and external auditor engagement model. Owner: AI Lead + Compliance.
TBD · AI-B AI red-teaming cadence and tooling. Initial pass at first GA of Scribe.

14. Physical & Personnel

14.1 Data center / cloud

14.2 Workforce

14.3 Workstation security

14.4 Travel & off-hours

TBD · PER-A EDR vendor (CrowdStrike vs SentinelOne vs Microsoft Defender for Endpoint).

15. Trust Center & Customer-Facing

15.1 Public trust page contents (trust.rev.health)

15.2 Questionnaire response posture

15.3 Status page

TBD · TC-A Status-page vendor (Statuspage by Atlassian vs Better Stack vs Instatus).
TBD · TC-B Trust-center hosting (Conveyor, SafeBase, Vanta Trust, Drata Trust). Choice typically follows GRC platform.

Appendix — Open Questions Roll-Up

Every TBD flagged above, in one place for the next review.

IDSectionQuestionOwner
TM-A§1Consolidated written threat model per moduleSecurity Lead
REG-A§2HITRUST tier (e1 / i1 / r2)Security + Sales
REG-B§2EU region selection & timingProduct + Eng
ID-A§3Identity-proofing vendor for patient AAL2Product + Security
ID-B§3Adolescent-confidentiality default policyLegal + Clinical
DP-A§4Final cloud KMS/HSM endpoint modeEng
DP-B§4Token vault build vs buyEng + Security
TI-A§5Per-tenant dedicated database SKUProduct + SRE
AU-A§6SIEM productSecurity + SRE
AU-B§6UEBA build vs buySecurity
SDLC-A§7Pen test vendor rotation 1Security
OPS-A§8JIT access toolSRE + Security
SC-A§10GRC platformSecurity + Ops
APP-A§11WAF/CDN selectionSRE
PRIV-A§12Consent ledger schema sign-offProduct + Legal
AI-A§13Bias monitoring metric setAI Lead + Compliance
AI-B§13AI red-teaming cadenceAI Lead + Security
PER-A§14EDR vendorIT
TC-A§15Status-page vendorSRE + Marketing
TC-B§15Trust-center hostingSecurity + Marketing

Known gaps tracked in the v1 → v2 gap report