Purpose
This document establishes procedures for detecting, responding to, recovering from, and learning from information security incidents affecting the Provii platform.
Scope
This procedure applies to all security incidents affecting:
- Provii platform services (provii-verifier including hosted mode, provii-issuer, wallet apps)
- Development and deployment infrastructure
- Cryptographic key material
- Team member accounts and access credentials
- Source code repositories
- Customer-facing services
Definitions
Security Incident
An event that compromises or threatens the confidentiality, integrity, or availability of Maelstrom AI systems or information.
Examples include:
- Unauthorized access to systems or data
- Compromise of cryptographic signing keys
- Service outages or degraded performance
- Malware or malicious code detected
- Data exfiltration attempts
- Successful phishing or social engineering
- Vulnerability exploitation
- Supply chain compromise
- DDoS attacks affecting availability
Security Event
An observable occurrence that may or may not be a security incident (requires investigation).
Examples: Failed login attempts, unusual API traffic patterns, security scan findings
Incident Severity Levels
We categorise incidents by severity to determine response urgency and escalation:
Response Time: Immediate (< 15 minutes)
Criteria:
- Signing key compromise or suspected compromise
- Active exploitation of critical vulnerability
- Complete service outage (all APIs down)
- Data breach involving operational secrets
Response Team: All hands, immediate escalation to ISMS Owner
Customer Communication: Immediate status page update, direct communication to affected parties
Response Time: < 1 hour
Criteria:
- Partial service outage (one API degraded)
- Successful unauthorized access to systems
- Critical vulnerability in production code
- Active DDoS attack bypassing protection
- GitHub or Cloudflare account compromise
Response Team: Security Lead + ISMS Owner on-call
Customer Communication: Status page update within 2 hours
Response Time: < 4 hours (during business hours)
Criteria:
- Non-critical vulnerability requiring patching
- Suspicious activity without confirmed compromise
- Dependency vulnerability (HIGH severity)
- Phishing attempt targeting team members
- Rate limiting triggered excessively
Response Team: Security Lead
Customer Communication: If customer-facing, update within 24 hours
Response Time: < 24 hours
Criteria:
- Dependency vulnerability (MEDIUM severity)
- Security misconfigurations (non-critical)
- Failed social engineering attempts
- Documentation security gaps
Response Team: Assigned to backlog, addressed in normal workflow
Customer Communication: Not typically required
Incident Response Lifecycle
graph LR
A[Detect] --> B[Assess]
B --> C[Contain]
C --> D[Eradicate]
D --> E[Recover]
E --> F[Learn]
F --> G[Close]
Phase 1: Detection
Detection Sources
We detect incidents through multiple channels:
Automated Monitoring
- Grafana Loki alerts on Cloudflare Workers Logs
- GitHub Security Alerts
- CI/CD build failures (security scans)
- Rate limiter triggers
- Failed authentication patterns
Manual Discovery
- Code review findings
- Penetration testing results
- Security audit findings
- Team member observations
- Third-party security reports
External Notification
- Responsible disclosure emails to security@maelstrom.au
- Cloudflare/GitHub status updates
- Dependency vulnerability advisories (rust-sec, npm)
- Customer reports
Audit Log Review
- Weekly review of KV audit logs
- Unusual signing key access
- Anomalous API patterns
- Unexpected administrative actions
Reporting an Incident
Any team member who detects a potential security incident must report it immediately.
Contact Methods (in order of preference):
- Email:
security@maelstrom.au(monitored regularly; response times may vary outside business hours) - Direct Contact: Security Lead (for urgent issues)
- GitHub Security Advisory: For code vulnerabilities (private disclosure)
What to Include:
- What you observed (specific symptoms)
- When it was first noticed
- Which systems/services are affected
- Any actions already taken
- Your assessment of severity (if known)
Phase 2: Assessment
Initial Triage
Security Lead performs initial triage:
Confirm the incident
Is this a security incident or a false positive? Check logs, metrics, and system status
Assign severity
Apply severity criteria (Critical, High, Medium, Low) Start response timer
Assemble response team
- Critical/High: Escalate to ISMS Owner + all engineers
- Medium: Security Lead + 1 Developer
- Low: Security Lead alone
Create incident ticket
Document in tracking system (GitHub issue in private security repo) Include: Detection method, initial assessment, timeline, assigned responders
Impact Assessment
Determine:
- Scope. Which systems, services, or data are affected?
- Access. Has unauthorized access occurred?
- Data. Is any sensitive data (secrets, keys) compromised?
- Duration. How long has the incident been occurring?
- Customers. Are customer services impacted?
Key Questions for Zero knowledge Context:
- Is PII at risk? (Answer: No. Maelstrom AI-operated services don’t store PII.)
- Are signing keys compromised?
- Is proof verification integrity affected?
- Is service availability impacted?
Phase 3: Containment
Goal: Stop the incident from spreading or worsening while preserving evidence.
Short-Term Containment
Immediate actions to limit damage:
Account Compromise
Actions:
- Immediately revoke compromised credentials
- Reset passwords and rotate API keys
- Enable additional MFA requirements
- Review and revoke active sessions
- Check audit logs for unauthorized actions
Cloudflare:
wrangler secret put COMPROMISED_SECRET --env production
# Immediately rotates secret in WorkersGitHub:
- Revoke Personal Access Tokens
- Remove compromised SSH keys
- Review and revert any suspicious commits
Code Vulnerability
Actions:
- Determine if vulnerability is being actively exploited
- If not exploited: Expedited patch and deployment
- If exploited: Consider temporary service shutdown
- Deploy hotfix via emergency change procedure
- Monitor for exploitation attempts
Example:
# Emergency deployment (P0/P1 only)
git checkout main
git pull
# Apply hotfix
git commit -m "Security hotfix: [CVE-ID] - [brief description]"
git push
# Triggers automated deploymentKey Compromise
Actions (CRITICAL - P0):
- Immediately disable compromised signing keys
- Generate new key pair offline
- Update JWKS with new verification keys
- Mark old key status as Deprecated in KV storage
- Notify relying parties of key rotation
- Investigate scope: which credentials were signed with compromised key?
Recovery Time: Expect 2-4 hours for full key rotation
Service Outage
Actions:
- Update status page immediately
- Determine root cause (attack vs infrastructure issue)
- If attack: Enable enhanced rate limiting/DDoS protection
- If infrastructure: Engage Cloudflare support
- Implement workarounds if available
Long-Term Containment
Stabilize systems while preparing permanent fixes:
- Deploy temporary patches or configuration changes
- Implement additional monitoring
- Apply stricter access controls
- Document containment actions for future reference
Phase 4: Eradication
Goal: Eliminate the root cause of the incident.
Root Cause Analysis
Conduct investigation to determine:
- How did the incident occur? (attack vector)
- Why did controls fail? (gap in defences)
- When did it start? (timeline reconstruction)
- Who was responsible? (if relevant, for insider threats)
Remediation Actions
Based on root cause, implement permanent fixes:
| Root Cause | Remediation Examples |
|---|---|
| Vulnerable dependency | Update dependency, add regression tests |
| Weak authentication | Implement stronger auth, require MFA |
| Configuration error | Fix configuration, add validation checks |
| Missing security control | Implement control, update Risk Register |
| Process gap | Update procedures, provide training |
| Social engineering success | Enhanced security awareness training |
Verification
Confirm eradication through:
- Security testing (penetration test, vulnerability scan)
- Code review of fixes
- Monitoring for recurrence
- Third-party verification (if appropriate)
Phase 5: Recovery
Goal: Restore systems to normal operation and verify security.
Service Restoration
Deploy fixes
Follow Change Management procedures Test in development environment first (if time permits)
Verify integrity
- Confirm no backdoors or persistence mechanisms
- Validate cryptographic integrity
- Check audit logs for anomalies
- Run security scans
Restore operations
- Gradually restore traffic (if needed)
- Monitor closely for issues
- Keep enhanced logging enabled initially
Communicate resolution
- Update status page
- Notify affected customers
- Provide post-mortem (if appropriate)
Post-Recovery Monitoring
Enhanced monitoring for 7 days:
- Increased audit log review frequency
- Additional alerting for similar indicators
- Daily check-ins with response team
Phase 6: Lessons Learned
Goal: Improve security posture to prevent recurrence.
Post-Incident Review
Timing: Within 5 business days of incident closure
Attendees: Response team + ISMS Owner
Agenda:
- Timeline Review: What happened and when?
- Response Evaluation: What went well? What didn’t?
- Root Cause: Why did this happen?
- Improvements: What can we do better?
- Action Items: Specific improvements with owners and deadlines
Post-Incident Report
Document the incident (template):
## Incident Summary
- Incident ID: INC-2025-XXX
- Severity: [P0/P1/P2/P3]
- Detection Date: YYYY-MM-DD HH:MM UTC
- Resolution Date: YYYY-MM-DD HH:MM UTC
- Duration: X hours
## What Happened
[2-3 sentence summary]
## Timeline
- [HH:MM] Event 1
- [HH:MM] Event 2
...
## Impact
- Services Affected: [list]
- Customer Impact: [description]
- Data Affected: [none/description]
## Root Cause
[Technical explanation]
## Resolution
[What was done to fix it]
## Lessons Learned
**What Went Well**:
- [list]
**What Needs Improvement**:
- [list]
## Action Items
| Action | Owner | Deadline | Status |
|--------|-------|----------|--------|
| [description] | [role] | YYYY-MM-DD | Open/Done |
## Prevention
[How we'll prevent this in the future]
Follow-Up Actions
- Update Risk Register with new risks identified
- Update Statement of Applicability with control improvements
- Revise procedures if process gaps identified
- Conduct training if knowledge gaps identified
- Share lessons learned with team (blameless post-mortem)
Public Transparency: For incidents that don’t compromise operational security:
- Publish sanitized post-mortem (remove sensitive details)
- Update public security documentation
- Contribute findings to community (e.g., vulnerability databases)
Communication Guidelines
Internal Communication
During Active Incident:
- Use dedicated communication channel (e.g., Signal group, Slack war room)
- Provide regular updates (every 30min for P0/P1, hourly for P2)
- Document all actions in incident ticket
After Resolution:
- Conduct post-mortem meeting
- Share lessons learned with entire team
- Update documentation
External Communication
Status Page (status.provii.app - if implemented):
- Update within 15 minutes for P0/P1
- Provide status updates every hour during incident
- Final “resolved” update with brief summary
Customer Communication:
- P0/P1. Direct email to affected customers
- P2. Status page or blog post if customer-facing
- P3. No communication unless specifically requested
Public Disclosure:
- Sanitized post-mortems for learning opportunities
- CVE disclosure for code vulnerabilities (after fixes deployed)
- Coordinated disclosure with security researchers (90-day standard)
What NOT to disclose:
- Specific API keys, tokens, or secrets (even if rotated)
- Detailed attack vectors that could aid future attackers
- Customer-specific information
- Unpatched vulnerabilities
Privacy Breach Notification Procedures
Overview
While Maelstrom AI’s architecture minimises personal data processing, certain incidents may constitute a personal data breach under GDPR Article 4(12), requiring specific notification procedures beyond standard incident response.
This section establishes procedures for:
- Identifying privacy breaches vs. general security incidents
- Meeting GDPR’s 72-hour notification requirement (Article 33)
- Notifying data subjects when required (Article 34)
- Maintaining a breach register for supervisory authority inspection
Privacy Breach Classification
What is a Personal Data Breach?
GDPR Article 4(12) Definition:
A breach of security leading to the accidental or unlawful destruction, loss, alteration, unauthorised disclosure of, or access to, personal data transmitted, stored or otherwise processed.
Key Components:
- Confidentiality breach: Unauthorized disclosure or access to personal data
- Integrity breach: Unauthorized alteration or loss of personal data
- Availability breach: Accidental or unlawful destruction of personal data
Breach Severity Matrix
We assess privacy breach severity based on risk to data subjects, not just system impact:
Notification Required: Supervisory authority (within 72 hours) AND data subjects (without undue delay)
Criteria:
- Large-scale breach (>500 individuals)
- Special category data exposed (health, biometric, political opinions)
- Data of vulnerable individuals (children)
- Breach likely to result in identity theft, fraud, or financial loss
- Unencrypted sensitive data exposed
- Data that reveals location, online activities, or private life
Example Scenarios:
- GitHub account compromise exposing customer email database
- Cloudflare KV breach exposing plaintext API credentials
- Analytics database breach exposing user behavioural data
Notification Required: Supervisory authority (within 72 hours) ONLY
Criteria:
- Limited number of individuals affected (<500)
- Lower sensitivity data (contact details, usernames)
- Data already partially public
- Strong mitigating factors (data encrypted, quickly contained)
- Minimal likely harm to individuals
Example Scenarios:
- Exposure of team member email addresses in commit logs
- Temporary unauthorized access to audit logs (no exfiltration)
- Third-party service breach affecting limited customer metadata
Notification Required: Document in breach register ONLY (no external notification)
Criteria:
- Unlikely to result in risk to data subjects
- Data already publicly available
- Breach immediately contained before exfiltration
- Data rendered unintelligible (strong encryption maintained)
- Extremely limited scope (<10 individuals)
Example Scenarios:
- Internal misconfiguration exposing logs for <1 hour (no access detected)
- Accidental internal access to customer support data (immediate containment)
- Encrypted backup temporarily accessible (no decryption possible)
Decision Tree: Is Notification Required?
graph TD
A[Personal data involved?] -->|No| B[General security incident only]
A -->|Yes| C[High risk to data subjects?]
C -->|Yes| D[Notify authority + data subjects]
C -->|No| E[More than unlikely risk?]
E -->|Yes| F[Notify authority only]
E -->|No| G[Document in breach register only]
D --> H[Start 72-hour timeline]
F --> H
G --> I[No external notification]
72-Hour Notification Timeline (GDPR Article 33)
Hour 0-24: Detection and Containment
Immediate Actions (Security Lead):
Detect and confirm breach (Hour 0)
- Identify that personal data is involved
- Start the 72-hour clock IMMEDIATELY upon “becoming aware”
- Document exact detection time (UTC)
- Classify breach type: confidentiality, integrity, or availability
Initial containment (Hour 0-4)
- Follow standard Phase 3: Containment procedures
- Preserve evidence (logs, access records, system snapshots)
- Stop ongoing data exfiltration if detected
- Prevent further unauthorized access
Initial assessment (Hour 4-12)
Determine:
- What personal data is affected? (categories, not specific records yet)
- How many individuals are likely affected? (estimate acceptable)
- What is the likely consequence to data subjects?
- Is this a high-risk breach requiring data subject notification?
Create Breach Record (use Internal Breach Report Template below)
Escalate and notify internally (Hour 12-24)
- Notify ISMS Owner immediately
- If high-risk: Notify legal counsel
- Assemble privacy breach response team
- Begin parallel investigation while preparing notification
Deliverable: Initial breach assessment documented
Hour 24-48: Documentation and Impact Assessment
Detailed Investigation (Response Team):
Document breach details (Hour 24-36)
Required Information (GDPR Article 33(3)):
- Nature of breach: Description of incident, breach type, attack vector
- Categories of data subjects: Types of individuals affected (customers, employees, contractors)
- Categories of personal data: Types of data compromised (names, emails, IP addresses, etc.)
- Number affected: Approximate count (or range if exact number unknown)
- Consequences: Likely impact on data subjects (identity theft, financial loss, privacy violation)
- Measures taken: Containment, remediation, mitigation actions
- Measures proposed: Future prevention measures
Data Collection:
- Query audit logs for affected records
- Check backup systems for data inventory
- Interview team members who detected breach
- Review system access logs for timeline reconstruction
Risk assessment (Hour 36-42)
Evaluate Risk to Data Subjects:
- Likelihood of harm. How likely are adverse effects?
- Severity of harm. How serious would consequences be?
- Vulnerability of subjects. Are children, vulnerable groups affected?
- Mitigating factors. Was data encrypted? Quickly recovered?
Determine Notification Requirements:
- Supervisory authority notification: YES (if more than unlikely risk)
- Data subject notification: Only if HIGH RISK
- Other parties: Processors, joint controllers, law enforcement
Prepare notifications (Hour 42-48)
- Draft supervisory authority notification using template
- If high-risk: Draft data subject notification using template
- Have legal counsel review (if available)
- Prepare supporting documentation (logs, timelines, evidence)
- Identify notification method (online portal vs. email)
Deliverable: Complete breach notification draft ready for submission
Hour 48-72: Notification Submission
Final Actions (ISMS Owner + Security Lead):
Final review (Hour 48-60)
- ISMS Owner reviews and approves notification
- Legal counsel final sign-off (if involved)
- Verify all required information included
- Confirm notification method and contact details
Submit to supervisory authority (Hour 60-72)
Notification Method (by jurisdiction):
UK (ICO):
- Online Portal: https://ico.org.uk/for-organisations/report-a-breach/
- Email: casework@ico.org.uk
- Phone: 0303 123 1113 (for urgent high-risk breaches)
EU Member States: See Supervisory Authority Contacts below
Submission:
- Use official notification portal (preferred)
- Include all required Article 33(3) information
- Attach supporting documentation if helpful
- Retain confirmation of submission
- Document submission time (UTC)
Update breach register (Hour 72)
- Log breach in Privacy Breach Register
- Include all details and notification evidence
- Mark as “Notified to Authority” with timestamp
- Begin post-incident activities
Notify data subjects (if high-risk)
Timeline: “Without undue delay” (typically within 72 hours of breach) Method: Direct communication (email preferred), unless impracticable Content: Use Data Subject Notification Template Exceptions: See Data Subject Notification below
Deliverable: Breach notification submitted, confirmation received
Supervisory Authority Contacts
Primary Authorities
United Kingdom - ICO
Information Commissioner’s Office
Online Reporting (preferred):
- Portal: https://ico.org.uk/for-organisations/report-a-breach/
- Login required (create account if first breach)
Email:
Phone (urgent high-risk breaches only):
- 0303 123 1113
- +44 1625 545 745 (international)
Postal Address (not recommended for 72-hour deadline): Information Commissioner’s Office Wycliffe House Water Lane Wilmslow Cheshire SK9 5AF United Kingdom
What to Include:
- Organisation details (Maelstrom AI, registration number if applicable)
- Data Protection Officer contact (if appointed)
- Breach summary (use template)
- All Article 33(3) required information
California - Attorney General (CCPA)
California Attorney General’s Office
Online Reporting:
Email:
- Privacy Enforcement Section: privacy@doj.ca.gov
Postal Address: Office of the Attorney General California Department of Justice ATTN: Privacy Enforcement Section 300 South Spring Street, First Floor Los Angeles, CA 90013
CCPA Requirements:
- Notify if breach affects 500+ California residents
- Sample copy of data subject notification must be submitted
- No strict 72-hour timeline, but “without unreasonable delay”
European Union - Data Protection Authorities
EU Member State DPAs (if processing data in EU):
Select authority based on:
- Main establishment: Where processing decisions are made
- Single point of contact: If appointed under one-stop-shop mechanism
- Data subject location: If no EU establishment
Major EU DPAs:
Ireland (EDPB Lead for many tech companies):
- Data Protection Commission (DPC)
- Email: info@dataprotection.ie
- Portal: https://forms.dataprotection.ie/contact
Germany (GDPR Enforcer):
- Federal Data Protection Authority (BfDI)
- Email: poststelle@bfdi.bund.de
- Portal: https://www.bfdi.bund.de/
France (CNIL):
- Commission Nationale de l’Informatique et des Libertés
- Portal: https://www.cnil.fr/
Complete List: https://edpb.europa.eu/about-edpb/about-edpb/members_en
Data Subject Notification (GDPR Article 34)
When Notification is Required
Mandatory Notification if breach is “likely to result in high risk” to data subjects.
High-Risk Indicators:
- Identity theft or fraud likely
- Financial loss possible
- Reputational damage or social disadvantage
- Loss of confidentiality of data protected by professional secrecy
- Discrimination or other significant disadvantage
- Special category data exposed without encryption
- Large-scale breach (>10,000 individuals)
When Notification is NOT Required
Exemptions (Article 34(3)):
Protected Data
Encryption or Pseudonymization
Data was encrypted with state-of-the-art encryption and keys were NOT compromised.
Example: Encrypted database backup accessed, but attacker has no decryption key.
Subsequent Measures
Risk Eliminated
Measures taken after breach ensure high risk no longer materializes.
Example: Immediate password reset forced before attacker could exploit credentials.
Disproportionate Effort
Impracticable Notification
Notification would require disproportionate effort (e.g., individuals unknown).
Alternative: Public communication or similar measure.
Notification Content Requirements
What to Tell Data Subjects (Article 34(2)):
- Nature of breach: What happened, in clear and plain language
- Contact point: Name and contact details of DPO or privacy contact
- Likely consequences: What could happen to them (identity theft, fraud, etc.)
- Measures taken and recommended: What we’ve done and what they should do
What NOT to Include:
- Technical details that could aid further attacks
- Blame or accusations against individuals
- Legal disclaimers minimising our responsibility
- Overly technical jargon
Communication Method:
- Direct communication. Email to affected individuals (preferred)
- Public communication. Website notice, press release (if individual contact impracticable)
- Multiple channels. Consider combining for high-risk breaches
Timing: “Without undue delay” - typically within 72 hours of becoming aware of breach
Privacy Breach Register
Purpose
GDPR Article 33(5) Requirement:
The controller shall document any personal data breaches, comprising the facts relating to the personal data breach, its effects and the remedial action taken.
Why We Maintain It:
- Legal requirement for supervisory authority inspection
- Evidence of GDPR compliance
- Historical record for trend analysis
- Post-incident review resource
What to Record
Minimum Required Fields:
| Field | Description | Example |
|---|---|---|
| Breach ID | Unique identifier | BREACH-2025-001 |
| Detection Date | When we became aware | 2025-01-15 14:30 UTC |
| Breach Type | Confidentiality, integrity, availability | Confidentiality breach |
| Data Categories | Types of personal data affected | Email addresses, IP addresses |
| Data Subjects | Categories of individuals | Customers, team members |
| Number Affected | Count or estimate | ~1,200 individuals |
| Nature of Breach | What happened | Unauthorized access to analytics database via misconfigured API |
| Consequences | Impact on data subjects | Potential spam, low risk of identity theft |
| Measures Taken | Containment and remediation | API access revoked, logs reviewed, passwords rotated |
| Measures Proposed | Future prevention | Implement API authentication review process |
| Notification Status | Authority/subjects notified? | ICO notified (2025-01-17), subjects NOT notified (low risk) |
| Justification | Why notification decision made | Low-sensitivity data, no financial impact likely, quickly contained |
Storage Location: Privacy breach register (maintained internally; available to auditors and enterprise customers on request)
Retention: Indefinitely (for regulatory inspection)
Access: ISMS Owner, Security Lead, DPO (if appointed)
Notification Templates
Template 1: Supervisory Authority Notification
Use: Submit to ICO or other DPA within 72 hours
## PERSONAL DATA BREACH NOTIFICATION
**Submitted to**: [Supervisory Authority Name]
**Date**: [YYYY-MM-DD]
**Submitted by**: [Your Name, Role]
---
### 1. ORGANISATION DETAILS
**Organisation Name**: Maelstrom AI
**Registration Number**: [If applicable]
**Contact Person**: [ISMS Owner Name]
**Email**: security@maelstrom.au
**Phone**: [Contact number]
**Address**: [Registered address]
**Data Protection Officer** (if appointed):
- Name: [DPO Name or "Not appointed"]
- Email: [DPO Email]
---
### 2. BREACH DETECTION
**Date/Time Became Aware**: [YYYY-MM-DD HH:MM UTC]
**Detection Method**: [How we discovered breach - e.g., internal monitoring, external report]
**First Occurrence** (if known): [YYYY-MM-DD HH:MM UTC or "Under investigation"]
---
### 3. NATURE OF BREACH
**Breach Type**: [Confidentiality / Integrity / Availability breach]
**Description**:
[2-3 paragraphs describing what happened, including:
- Attack vector or cause
- Systems/services affected
- Type of security failure
- Current status (ongoing vs. contained)]
**Example**:
"On [date], we detected unauthorized access to our analytics database through a misconfigured API endpoint. An attacker exploited insufficient authentication controls to access customer interaction logs containing email addresses and IP addresses. The breach was contained within 4 hours of detection by disabling the affected API endpoint."
---
### 4. CATEGORIES OF DATA SUBJECTS AFFECTED
**Types of Individuals**:
- [ ] Customers/Users
- [ ] Employees/Team Members
- [ ] Contractors/Vendors
- [ ] Other: [Specify]
**Approximate Number**: [Count or range, e.g., "~1,200 individuals" or "500-1,000 individuals"]
---
### 5. CATEGORIES OF PERSONAL DATA AFFECTED
**Data Types**:
- [ ] Names
- [ ] Email addresses
- [ ] Phone numbers
- [ ] IP addresses
- [ ] Usernames
- [ ] Hashed passwords
- [ ] Other: [Specify]
**Special Category Data** (if applicable):
- [ ] None
- [ ] Health data
- [ ] Biometric data
- [ ] Other: [Specify]
---
### 6. LIKELY CONSEQUENCES
**Risk Assessment**:
- **Likelihood of harm**: [Low / Medium / High]
- **Severity of harm**: [Low / Medium / High]
- **Overall risk**: [Low / Medium / High]
**Potential Impact on Data Subjects**:
[Describe realistic consequences, e.g.:
- Increased spam/phishing risk
- Potential account takeover (if credentials exposed)
- Privacy violation
- Identity theft risk
- Financial loss potential]
**Example**:
"The breach poses LOW RISK to affected individuals. Exposed data (email addresses, IP addresses) is low-sensitivity and unlikely to result in identity theft or financial loss. Primary risk is increased spam or phishing attempts."
---
### 7. MEASURES TAKEN
**Containment** (immediate actions):
- [List actions taken to stop breach]
- [e.g., "Disabled compromised API endpoint"]
- [e.g., "Revoked unauthorized access credentials"]
**Remediation** (fixing root cause):
- [List fixes implemented]
- [e.g., "Implemented authentication on all API endpoints"]
- [e.g., "Conducted full security review of API access controls"]
**Mitigation** (reducing harm):
- [List actions to protect data subjects]
- [e.g., "Forced password reset for affected accounts"]
- [e.g., "Implemented enhanced monitoring for fraud"]
---
### 8. MEASURES PROPOSED
**Future Prevention**:
- [List process/technical improvements]
- [e.g., "Implement quarterly API security audits"]
- [e.g., "Add authentication review to code review checklist"]
- [e.g., "Deploy automated misconfiguration scanning"]
**Timeline**: [Implementation timeline for proposed measures]
---
### 9. DATA SUBJECT NOTIFICATION
**Status**:
- [ ] Data subjects have been notified (Date: [YYYY-MM-DD])
- [ ] Data subjects will be notified (Planned: [YYYY-MM-DD])
- [ ] Data subjects NOT notified - Exemption applies
**Exemption Justification** (if not notifying):
[Select applicable exemption under Article 34(3):
- [ ] Data protected by encryption/pseudonymization
- [ ] Subsequent measures eliminate high risk
- [ ] Disproportionate effort (public communication alternative: [describe])]
**Notification Method** (if notifying):
- [ ] Direct email to affected individuals
- [ ] Public website notice
- [ ] Press release
- [ ] Other: [Specify]
---
### 10. SUPPORTING DOCUMENTATION
**Attached**:
- [ ] Breach investigation report
- [ ] Timeline of events
- [ ] Evidence of containment
- [ ] Data subject notification (if sent)
- [ ] Other: [Specify]
---
### 11. ADDITIONAL INFORMATION
[Any other relevant information for the supervisory authority]
---
**Declaration**:
I confirm that the information provided in this notification is accurate and complete to the best of my knowledge.
**Name**: [ISMS Owner Name]
**Role**: Chief Technology Officer / ISMS Owner
**Date**: [YYYY-MM-DD]
**Signature**: [Digital signature if required]
---
**Submission Confirmation**:
**Method**: [Online portal / Email / Phone]
**Reference Number**: [If provided by authority]
**Receipt Confirmation**: [Copy of confirmation email/receipt attached]
Template 2: Data Subject Notification
Use: Notify affected individuals of high-risk breaches
Subject: Important Security Notice - Data Breach Affecting Your Account
Dear [Name / Provii User],
We are writing to inform you of a data security incident that may have affected your personal information. We take the protection of your data very seriously and want to provide you with full details of what happened and what we're doing about it.
---
## What Happened
[2-3 sentences in plain language explaining the breach]
**Example**:
"On [date], we discovered that an unauthorized party gained access to our analytics database through a misconfigured API endpoint. This database contained email addresses and IP addresses of users who interacted with our verification service. We immediately shut down the affected system and launched an investigation."
**Date of Incident**: [YYYY-MM-DD]
**Date Discovered**: [YYYY-MM-DD]
---
## What Information Was Affected
The following information related to your account may have been accessed:
- [List data types, e.g., "Your email address"]
- [e.g., "Your IP address"]
- [e.g., "Dates of service interaction"]
**Information NOT Affected**:
- [Reassure about sensitive data, e.g., "No passwords were exposed"]
- [e.g., "No financial information was involved"]
- [e.g., "No identity documents were accessed"]
---
## What We Are Doing
We have taken the following actions to protect your information and prevent future incidents:
**Immediate Actions**:
- [Containment step, e.g., "Disabled the compromised API endpoint immediately"]
- [Investigation step, e.g., "Conducted full forensic investigation"]
- [Notification step, e.g., "Reported the incident to the Information Commissioner's Office"]
**Preventative Measures**:
- [Fix, e.g., "Implemented additional authentication on all API endpoints"]
- [Process, e.g., "Enhanced security review process for API changes"]
- [Monitoring, e.g., "Deployed additional monitoring to detect similar issues"]
---
## What You Should Do
We recommend the following steps to protect yourself:
1. **Be vigilant for phishing**: You may receive increased spam or phishing emails. Be cautious of suspicious emails claiming to be from Provii or related services.
2. **Monitor your accounts**: Watch for unusual activity on accounts associated with [your email address].
3. [Additional recommendations based on data exposed]
**What you DO NOT need to do**:
- You do not need to change your password (passwords were not exposed)
- [Other reassurances based on breach scope]
---
## Contact Information
If you have questions or concerns about this incident, please contact us:
**Email**: security@maelstrom.au
**Response Time**: We aim to respond to inquiries within 48 hours
You also have the right to lodge a complaint with the Information Commissioner's Office (ICO), the UK supervisory authority for data protection:
- Website: https://ico.org.uk/make-a-complaint/
- Helpline: 0303 123 1113
---
## Our Commitment
We deeply regret this incident and sincerely apologise for any concern it may cause. The protection of personal data is a core responsibility, and we are working to maintain your trust.
We will continue to monitor the situation and will provide updates if we learn of any additional impact.
Thank you for your understanding.
Sincerely,
[ISMS Owner Name]
Chief Technology Officer
Maelstrom AI
security@maelstrom.au
---
**Date**: [YYYY-MM-DD]
**Reference**: BREACH-[ID]
Template 3: Internal Breach Report
Use: Document breach immediately upon detection (internal use)
# PRIVACY BREACH REPORT
**Breach ID**: BREACH-[YYYY]-[###]
**Report Date**: [YYYY-MM-DD HH:MM UTC]
**Reported By**: [Name, Role]
**Status**: [Investigating / Contained / Resolved]
---
## DETECTION
**Detection Date/Time**: [YYYY-MM-DD HH:MM UTC]
**Detection Method**: [How discovered]
**Detected By**: [Person/System]
**First Evidence of Breach**: [When breach actually occurred, if known]
---
## INITIAL ASSESSMENT
### Personal Data Involved?
- [ ] YES - Personal data affected (continue assessment)
- [ ] NO - General security incident only (follow standard IR procedures)
### Breach Type
- [ ] Confidentiality breach (unauthorized access/disclosure)
- [ ] Integrity breach (unauthorized alteration)
- [ ] Availability breach (destruction/loss)
### Systems Affected
- [List systems, services, databases involved]
### Data Categories
**Data Types**:
- [ ] Names
- [ ] Email addresses
- [ ] IP addresses
- [ ] Usernames
- [ ] Credentials (passwords, API keys)
- [ ] Other: [Specify]
**Special Category Data**:
- [ ] None
- [ ] Health data
- [ ] Biometric data
- [ ] Other: [Specify]
### Data Subjects
**Categories**:
- [ ] Customers
- [ ] Team members
- [ ] Contractors
- [ ] Other: [Specify]
**Estimated Number**: [Count or range]
---
## RISK ASSESSMENT
### Risk to Data Subjects
**Likelihood of Harm**: [ ] Low / [ ] Medium / [ ] High
**Severity of Harm**: [ ] Low / [ ] Medium / [ ] High
**Overall Risk Level**: [ ] Low / [ ] Medium / [ ] High
**Potential Consequences**:
- [List potential impacts on data subjects]
**Mitigating Factors**:
- [ ] Data encrypted
- [ ] Data pseudonymized
- [ ] Limited scope
- [ ] Quickly contained
- [ ] Other: [Specify]
---
## NOTIFICATION DECISION
### Supervisory Authority Notification Required?
- [ ] YES - Notify within 72 hours (start timeline)
- [ ] NO - Document in breach register only
- [ ] UNCERTAIN - Escalate to ISMS Owner + legal counsel
**Justification**: [Explain decision]
### Data Subject Notification Required?
- [ ] YES - High risk breach, notify without undue delay
- [ ] NO - Exemption applies (Article 34(3))
- [ ] UNCERTAIN - Assess after full investigation
**Justification**: [Explain decision]
---
## CONTAINMENT ACTIONS
**Time**: [HH:MM UTC]
**Actions Taken**:
- [List containment steps]
**Evidence Preserved**:
- [ ] System logs
- [ ] Access records
- [ ] Database snapshots
- [ ] Other: [Specify]
---
## RESPONSE TEAM
**ISMS Owner Notified**: [ ] YES - [Time] / [ ] NO
**Legal Counsel Involved**: [ ] YES / [ ] NO
**Response Team Members**:
- [Name, Role]
- [Name, Role]
---
## TIMELINE (72-HOUR TRACKER)
**Hour 0** (Detection): [YYYY-MM-DD HH:MM UTC]
**Hour 24 Deadline**: [YYYY-MM-DD HH:MM UTC]
**Hour 48 Deadline**: [YYYY-MM-DD HH:MM UTC]
**Hour 72 Deadline**: [YYYY-MM-DD HH:MM UTC]
**Status**:
- [ ] Hour 0-24: Detection, containment, initial assessment (IN PROGRESS / COMPLETE)
- [ ] Hour 24-48: Documentation, impact assessment, notification draft (PENDING / IN PROGRESS / COMPLETE)
- [ ] Hour 48-72: Final review, notification submission (PENDING / IN PROGRESS / COMPLETE)
---
## INVESTIGATION FINDINGS
[Update as investigation progresses]
**Root Cause**: [Technical explanation]
**Attack Vector**: [How breach occurred]
**Data Exfiltration**: [ ] YES / [ ] NO / [ ] UNKNOWN
**Evidence of Malicious Intent**: [ ] YES / [ ] NO / [ ] UNKNOWN
---
## REMEDIATION
**Immediate Fixes**:
- [List actions]
**Long-Term Improvements**:
- [List measures]
---
## DOCUMENTATION
**Attachments**:
- [ ] Forensic logs
- [ ] Timeline spreadsheet
- [ ] Notification drafts
- [ ] Evidence screenshots
- [ ] Other: [Specify]
**Filed In**: [Location in breach register]
---
## NOTES
[Additional information, updates, decisions]
---
**Last Updated**: [YYYY-MM-DD HH:MM UTC]
**Updated By**: [Name]
Template 4: Post-Breach Review
Use: Conduct lessons learned after breach resolution
# PRIVACY BREACH POST-INCIDENT REVIEW
**Breach ID**: BREACH-[YYYY]-[###]
**Review Date**: [YYYY-MM-DD]
**Attendees**: [Names and roles]
**Facilitator**: [Name]
---
## INCIDENT SUMMARY
**Breach Type**: [Confidentiality / Integrity / Availability]
**Detection Date**: [YYYY-MM-DD]
**Resolution Date**: [YYYY-MM-DD]
**Duration**: [X hours/days]
**Severity**: [Low / Medium / High risk]
**What Happened** (1 paragraph):
[Brief summary]
---
## TIMELINE REVIEW
### Key Events
| Time (UTC) | Event | Response Action |
|------------|-------|-----------------|
| [HH:MM] | Breach occurred (estimated) | - |
| [HH:MM] | Breach detected | [Action] |
| [HH:MM] | Containment initiated | [Action] |
| [HH:MM] | Supervisory authority notified | [Action] |
| [HH:MM] | Resolution complete | [Action] |
### Timeline Performance
**72-Hour Notification Deadline**:
- [ ] MET - Notified within 72 hours
- [ ] MISSED - Notified at [X] hours (reasons: [explain])
- [ ] N/A - Notification not required
**Data Subject Notification** (if applicable):
- [ ] MET - Notified without undue delay
- [ ] DELAYED - Reasons: [explain]
- [ ] N/A - Notification not required
---
## RESPONSE EVALUATION
### What Went Well
**Strengths**:
1. [Example: "Rapid detection through automated monitoring"]
2. [Example: "Effective containment within 2 hours"]
3. [Example: "Clear communication between response team"]
4. [Additional strengths]
### What Needs Improvement
**Gaps**:
1. [Example: "72-hour timeline almost missed due to weekend"]
2. [Example: "Initial risk assessment underestimated data sensitivity"]
3. [Example: "Template not readily available, delayed notification draft"]
4. [Additional gaps]
---
## ROOT CAUSE ANALYSIS
### Technical Root Cause
[What technical failure allowed breach to occur?]
**Example**: "API endpoint deployed without authentication due to misconfigured deployment pipeline"
### Process Root Cause
[What process failure allowed breach to occur?]
**Example**: "Security review checklist did not include API authentication verification"
### Contributing Factors
- [Factor 1]
- [Factor 2]
- [Factor 3]
---
## EFFECTIVENESS OF CONTROLS
### Controls That Worked
- [Control that detected breach]
- [Control that limited impact]
- [Control that enabled recovery]
### Controls That Failed
- [Control that should have prevented breach]
- [Control that should have detected earlier]
- [Control that was bypassed]
---
## NOTIFICATION PROCESS REVIEW
### Supervisory Authority Notification
**Authority**: [ICO / Other]
**Submission Method**: [Portal / Email]
**Submission Time**: [YYYY-MM-DD HH:MM UTC]
**Response Received**: [ ] YES / [ ] NO
**Authority Feedback**: [Summary of any feedback received]
**Process Assessment**:
- [ ] Template was helpful
- [ ] Template needs improvement: [specify]
- [ ] Required information was readily available
- [ ] Struggled to gather: [specify data]
- [ ] Submission process was smooth
- [ ] Encountered issues: [specify]
### Data Subject Notification (if applicable)
**Notification Method**: [Email / Website / Other]
**Notification Time**: [YYYY-MM-DD HH:MM UTC]
**Number Notified**: [Count]
**Responses Received**: [Count of inquiries/complaints]
**Process Assessment**:
- [ ] Template was appropriate for audience
- [ ] Template needs improvement: [specify]
- [ ] Tone was appropriate
- [ ] Received positive feedback
- [ ] Received complaints: [summarise]
---
## DATA SUBJECT IMPACT
### Actual Harm Observed
- [ ] No harm reported
- [ ] Spam/phishing reported
- [ ] Account compromise reported
- [ ] Identity theft reported
- [ ] Financial loss reported
- [ ] Other: [specify]
**Number of Complaints**: [Count]
**Nature of Complaints**: [Summary]
### Support Provided
- [Support measures offered to affected individuals]
- [Resources provided]
---
## REGULATORY OUTCOME
### Supervisory Authority Response
- [ ] No action taken (breach handled appropriately)
- [ ] Guidance provided: [summary]
- [ ] Investigation opened
- [ ] Enforcement action: [details]
- [ ] Pending response
### Compliance Assessment
**GDPR Compliance**:
- [ ] Fully compliant
- [ ] Partially compliant - Issues: [specify]
- [ ] Non-compliant - Issues: [specify]
**Lessons for Future Compliance**:
- [Lesson 1]
- [Lesson 2]
---
## ACTION ITEMS
### Immediate Actions (< 1 week)
| Action | Owner | Deadline | Status |
|--------|-------|----------|--------|
| [Fix critical gap] | [Role] | [Date] | [Open/Done] |
| [Deploy emergency patch] | [Role] | [Date] | [Open/Done] |
### Short-Term Actions (< 1 month)
| Action | Owner | Deadline | Status |
|--------|-------|----------|--------|
| [Implement control improvement] | [Role] | [Date] | [Open/Done] |
| [Update procedure] | [Role] | [Date] | [Open/Done] |
### Long-Term Actions (< 3 months)
| Action | Owner | Deadline | Status |
|--------|-------|----------|--------|
| [Strategic improvement] | [Role] | [Date] | [Open/Done] |
| [Training program] | [Role] | [Date] | [Open/Done] |
---
## DOCUMENTATION UPDATES
### Procedures Updated
- [ ] Incident Response Plan
- [ ] Privacy Breach Procedures
- [ ] Breach Register
- [ ] Other: [specify]
### Training Required
- [ ] Privacy breach response training for team
- [ ] Notification template training
- [ ] Tabletop exercise planned: [date]
### Risk Register Updates
**New Risks Identified**:
- [Risk 1]
- [Risk 2]
**Risk Treatments Updated**:
- [Treatment for existing risk]
---
## COST ANALYSIS
### Direct Costs
- Investigation time: [X hours at $Y/hour]
- External legal counsel: [$X]
- Notification costs: [$X]
- Remediation costs: [$X]
- **Total Direct**: [$X]
### Indirect Costs
- Service downtime: [X hours]
- Reputational impact: [Assessment]
- Customer churn: [X customers]
- **Estimated Total Indirect**: [$X]
### Prevention Value
**Estimated cost to prevent**: [$X]
**ROI of prevention**: [X%]
---
## CONCLUSIONS
### Summary
[2-4 paragraphs summarising key learnings and outcomes]
### Key Takeaways
1. [Takeaway 1]
2. [Takeaway 2]
3. [Takeaway 3]
### Recommendations
**For Maelstrom AI**:
- [Recommendation 1]
- [Recommendation 2]
**For Industry**:
- [If applicable, insights for broader community]
---
## SIGNATURES
**Review Completed By**:
- ISMS Owner: [Name] - [Date]
- Security Lead: [Name] - [Date]
- Legal Counsel (if involved): [Name] - [Date]
**Distribution**:
- [ ] Filed in breach register
- [ ] Shared with response team
- [ ] Escalated to board (if material)
- [ ] Included in annual ISMS review
---
**Document Classification**: Confidential - Internal Use Only
**Retention**: Indefinite (regulatory requirement)
Privacy Breach Response Checklist
Quick Reference for responding to privacy breaches:
Hour 0: Detection
- Confirm personal data involved
- Start 72-hour clock (document time UTC)
- Create Internal Breach Report (Template 3)
- Notify ISMS Owner immediately
- Assemble response team
Hour 0-4: Containment
- Stop ongoing breach (disable access, revoke credentials)
- Preserve evidence (logs, snapshots, access records)
- Document all containment actions
- Begin investigation (what data, how many affected)
Hour 4-24: Assessment
- Identify data categories and subjects affected
- Estimate number of individuals
- Assess risk to data subjects (Low/Medium/High)
- Determine notification requirements (authority and/or subjects)
- Notify legal counsel if high-risk
Hour 24-48: Documentation
- Complete detailed investigation
- Document all Article 33(3) required information
- Draft supervisory authority notification (Template 1)
- Draft data subject notification if high-risk (Template 2)
- Have legal counsel review
Hour 48-72: Notification
- ISMS Owner final approval
- Submit notification to supervisory authority
- Retain submission confirmation
- Update breach register
- Begin data subject notification process (if required)
Post-72 Hours: Follow-Up
- Complete remediation
- Respond to supervisory authority inquiries
- Monitor for data subject complaints
- Conduct post-breach review (Template 4)
- Update policies and procedures
- Implement preventative measures
Integration with Incident Response
Privacy breaches are a subset of security incidents. Follow this decision tree:
graph TD
A[Security Incident Detected] --> B{Personal Data Involved?}
B -->|No| C[Follow Standard Incident Response]
B -->|Yes| D[Privacy Breach Procedures ALSO Apply]
D --> E[Parallel Workflows]
E --> F[Security IR: Phases 1-6]
E --> G[Privacy: 72-Hour Timeline]
F --> H[Combined Post-Mortem]
G --> H
Key Integration Points:
- Detection. Same detection sources apply
- Assessment. Add privacy-specific risk assessment
- Containment. Same containment procedures
- Eradication. Same remediation approach
- Recovery. Add data subject notification
- Lessons Learned. Include privacy compliance review
Roles and Responsibilities (Privacy-Specific)
| Role | Privacy Breach Responsibilities |
|---|---|
| ISMS Owner | Approve supervisory authority notifications, authorise data subject communications, liaise with legal counsel |
| Privacy Officer | Lead privacy breach response, prepare notifications, maintain breach register, submit to authorities |
| Legal Counsel | Review high-risk breach notifications, advise on regulatory requirements, handle authority inquiries |
| Data Protection Officer (if appointed) | Primary contact for supervisory authority, oversee GDPR compliance, advise on notification requirements |
| All Team Members | Report potential privacy breaches immediately, preserve evidence, assist with investigation |
Training and Exercises
Annual Privacy Breach Tabletop Exercise:
Scenario Examples:
- GitHub repository exposure of customer email database
- Third-party analytics service breach affecting our users
- Insider threat: Team member exfiltrates customer data
- Ransomware attack encrypting customer-facing services
Exercise Objectives:
- Practice 72-hour timeline
- Test notification templates
- Verify supervisory authority contact information
- Practice data subject communication
- Identify procedure gaps
Next Scheduled Exercise: H1 2026 (alongside security incident response exercise)
Related Privacy Documents
- Privacy Policy - External privacy commitments
- Data Protection Impact Assessment - Privacy risk assessments
- Data Processing Records - Article 30 records
- Privacy by Design - Preventative measures
Special Procedures
Signing Key Compromise Response
This is our worst-case scenario - immediate P0 response required.
Immediate containment (< 15 min)
- Mark signing key status as Disabled in Cloudflare KV
- Update JWKS on CDN to remove compromised key
- Notify all relying parties immediately
- Disable provii-issuer Worker (if necessary)
Generate new keys (< 1 hour)
- Generate new RedJubjub key pair using secure tooling
- Store in Cloudflare KV with strict access controls
- Update JWKS on CDN
- Document key generation ceremony
Assess damage (< 4 hours)
- Determine what credentials were signed with compromised key
- Check audit logs for unauthorized issuances
- Coordinate with relying parties on credential invalidation
Communicate (< 24 hours)
- Public advisory about key rotation
- Guidance for relying parties (update JWKS)
- Transparency report on incident (sanitized)
Cloud Provider Outage
If Cloudflare experiences major outage:
- Confirm outage: Check status.cloudflare.com
- Update status: Communicate to customers (via non-Cloudflare channel)
- Monitor: Track Cloudflare status updates
- Document: Record duration and impact for Business Continuity review
- No action required: Wait for Cloudflare resolution (we accept this risk per Risk Register)
Roles and Responsibilities
| Role | Responsibilities |
|---|---|
| ISMS Owner | Approve incident response procedures, receive P0/P1 escalations, authorise emergency actions |
| Security Lead | Lead incident response, perform triage, coordinate response team, conduct post-mortems |
| Developer | Technical remediation, deploy fixes, assist with investigation |
| All Team Members | Report incidents immediately, follow Security Lead guidance, participate in lessons learned |
Testing and Exercises
Tabletop Exercises: Annually, walk through incident scenarios
Scenarios to Test:
- Signing key compromise
- Supply chain attack (malicious dependency)
- Account takeover
- Service outage
- Vulnerability disclosure
Objectives:
- Verify team knows procedures
- Test communication channels
- Identify procedure gaps
- Practice decision-making under pressure
Next Scheduled Exercise: H1 2026
Tools and Resources
Incident Response Kit:
- Cloudflare dashboard access (https://dash.cloudflare.com)
- GitHub admin access
- Incident response playbooks (this document)
- Contact list (in secure location, not public)
- Key rotation procedures
- Emergency change approval process
External Resources:
- Cloudflare Support (Enterprise support line)
- GitHub Support
- Security researcher coordination (HackerOne, if used)
Related Documents
- Information Security Policy - Overall security requirements
- Business Continuity Plan - Major disruption response
- Change Management - Emergency change procedures
- Risk Register - Identified risks and treatments
Document Information
- Version. 2.1
- Effective Date. 2025-01-13
- Last Updated. 2026-05-21
- Owner. ISMS Owner
- Approved By. ISMS Owner
- Review Frequency. Annually, after major incidents
- Next Review. 2026-11-21
- Classification. Public