Skip to main content

Security Risk Register

Overview

The risk register documents known security risks, their severity, mitigations, and acceptance status. This demonstrates informed security posture and enables risk-based decisions. Quarterly reviews ensure the register remains current; post-incident updates capture new learnings.

Risk Scoring: Likelihood (Very Low / Low / Medium / High) × Impact (Low / Medium / High / Critical) = Risk Level (Low / Medium / High / Critical)

Review Schedule: Quarterly review + post-incident updates

Risk Inventory

IDRisk DescriptionCategoryLikelihoodImpactLevelMitigationStatusReview
R1Dependency vulnerability (CVE)Supply ChainMediumHighHighDependabot monitoring, frozen lockfile, audit policyMitigatedQuarterly
R2Config drift (env var error)DeploymentMediumHighHighValidation, promotion gates, .env.exampleMitigatedQuarterly
R3Secrets accidentally loggedOperationsLowCriticalHighTruffleHog scan, structured logging, secrets runbookMitigatedQuarterly
R4CSP nonce misconfigurationSecurityLowHighMediumCSP nonce enforcement, header validation, CI checksMitigatedQuarterly
R5Vercel infrastructure breachExternalVery LowCriticalMediumTrust Vercel controls, immutable deploys, least privilegeAcceptedQuarterly
R6npm/CDN supply chain attackExternalLowCriticalMediumLockfile integrity, audit policy, reviewAcceptedQuarterly
R7Browser 0-day XSSExternalVery LowCriticalLowCSP, framework updates, dependency scanningAcceptedQuarterly
R8Insider threat (malicious dev)InternalVery LowCriticalLowCode review, audit logs, least privilegeAcceptedQuarterly
R9Framework deserialization RCERuntimeMediumCriticalHighPatch SLA, CSP nonce, strict validation, CSRF, rate limitMitigatedQuarterly

Risk Acceptance Justification

R4: CSP Nonce Misconfiguration

Risk: Missing or incorrect CSP nonce could weaken script execution controls.

Why Necessary: Inline scripts are required for theme init and JSON-LD; nonce ensures safe execution.

Mitigated Because: CSP nonce is enforced in proxy and validated in header checks.

Review: Confirm header validation during quarterly reviews.

R5–R8: External & Internal Risks

Why Accepted: Out of direct control (external) or prohibitive cost (internal). Strategy: assume-breach mentality; focus on detection and response (runbooks, audit logs, monitoring).

Residual Posture:

  • No critical unmitigated risks
  • High-risk mitigations are active and enforceable in CI
  • Medium-risk acceptances have clear rationale and review schedules
  • Low-risk acceptances are acceptable for this platform's threat model

Residual Risk Summary

  • Critical risks remaining: 0 (all mitigated or accepted at acceptable level)
  • High risks remaining: 4 (R1, R2, R3, R9 with active mitigations in CI/runbooks)
  • Medium risks remaining: 3 (R4, R5, R6 with documented acceptance)
  • Low risks remaining: 2 (R7, R8 with documented acceptance)

Overall posture: Enterprise-grade with clear mitigations for high risks and documented acceptance for external/low-likelihood risks.

Risk Tracking & Review

Quarterly Review Checklist

  • All mitigated risks: Is the mitigation still active? (e.g., Dependabot running, CSP headers present)
  • All accepted risks: Has the threat landscape changed? (e.g., new 0-day, new attack technique)
  • New risks: Have new vulnerabilities or threats been identified?
  • Closed risks: Can any risks be removed from the register?

Post-Incident Review Checklist

  • Incident root cause documented
  • Risk register updated with new/reclassified risks if applicable
  • Runbook or mitigation updated to prevent recurrence
  • Risk acceptance status reviewed

References