Skip to content

Security incident response plan

QR Branding API — GDPR Art. 33-34

FieldValue
ControllerQR Branding (Quartzon)
Date2026-03-08
Version1.0
Next review2026-09-08

1. Objective

To set out a structured procedure for detecting, responding to and notifying security breaches affecting personal data, in compliance with the requirements of GDPR Art. 33 (notification to the supervisory authority) and Art. 34 (communication to data subjects).


2. Definitions

TermDefinition
Personal data breachA breach of security leading to the accidental or unlawful destruction, loss or alteration of, or unauthorized disclosure of, personal data (Art. 4(12) GDPR)
Security incidentAny event that compromises the confidentiality, integrity or availability of the system, whether or not it involves personal data
Time zero (T0)The moment the incident is detected or becomes known

3. Incident classification

Level 1 — Critical (personal data breach)

  • Exposure of QR content containing personal data (vCards, emails, phone numbers)
  • Exposure of users' AI prompts
  • Leakage of API keys (RapidAPI, LLM providers)
  • Unauthorized access to Application Insights containing user data
  • Supply chain compromise (malicious NuGet dependency)

Level 2 — High (security incident with no confirmed personal data involved)

  • Successful exploitation of a vulnerability (SSRF, injection, etc.)
  • Sustained denial of service
  • Compromise of the CI/CD pipeline (GitHub Actions)
  • Unauthorized access to Azure App Settings or secrets
  • Anomalous LLM provider behavior (responses containing other users' data)

Level 3 — Medium (contained incident)

  • Attack attempts detected and blocked by rate limiting
  • Vulnerability scanning detected
  • Dependency with a published CVE (no confirmed exploitation)
  • Service degradation due to resource abuse

Level 4 — Low (informational event)

  • Failed authentication attempts
  • Normal rate limit triggers
  • Performance alerts (cold starts, timeouts)

4. Response procedure

Phase 1: Detection and triage (T0 → T0+1h)

StepActionOwner
1.1Identify the source of the alert (Application Insights, GitHub Security Advisories, user report, monitoring)Technical team
1.2Classify the incident by level (Section 3)Technical team
1.3Document what was detected, when, how, and the estimated scopeTechnical team
1.4If Level 1 or 2: escalate immediately to the person responsible for data protectionTechnical team

Phase 2: Containment (T0+1h → T0+4h)

StepAction
2.1Immediate containment, depending on the type of incident:
- Leaked API key → rotate it immediately in Azure App Settings and at the provider
- Exploited vulnerability → deploy a hotfix or disable the affected endpoint
- SSRF/injection → block the attack pattern in validation
- Compromised CI/CD → revoke GitHub tokens, audit recent commits
2.2Preserve evidence (Application Insights logs, configuration snapshots)
2.3Verify that containment is effective
2.4Assess whether personal data is affected → determine whether it is a GDPR breach

Phase 3: GDPR notification (where applicable)

Art. 33 — Notification to the supervisory authority (within 72h of T0)

Only required if the breach poses a risk to the rights and freedoms of individuals.

Content of the notification:

  1. Nature of the breach (which data, estimated number of data subjects)
  2. Controller's contact details
  3. Likely consequences of the breach
  4. Measures taken or proposed to address it

When notification is NOT required:

  • Availability incidents (DoS) with no data exposure
  • Attack attempts that were successfully blocked
  • Incidents affecting only non-personal data (configuration, code)

QR Branding context: Because the service is stateless and does not store personal data, most incidents do not constitute a personal data breach. The exceptions would be:

  • Exposure of Application Insights logs containing request metadata
  • Interception of traffic in transit (unlikely with TLS)
  • Anomalous LLM provider behavior exposing other users' prompts

Art. 34 — Communication to data subjects

Only required if the breach poses a high risk to rights and freedoms.

Not required if:

  • The data was encrypted or anonymized
  • Measures have been taken that ensure the risk is no longer likely to materialize
  • It would involve disproportionate effort (in which case a public communication is made)

Phase 4: Eradication and recovery (T0+4h → T0+48h)

StepAction
4.1Identify and remove the root cause
4.2Apply permanent patches or fixes
4.3Run regression tests
4.4Deploy to production via CI/CD (GitHub Actions → Azure)
4.5Verify that the fix is effective in production
4.6Monitor closely for 48-72h after the fix

Phase 5: Post-incident (T0+48h → T0+2 weeks)

StepAction
5.1Document the full incident (timeline, impact, response)
5.2Carry out a root cause analysis (RCA)
5.3Identify preventive improvements
5.4Update the DPIA if the incident reveals risks not previously considered
5.5Update this plan if gaps in the procedure are identified
5.6Share lessons learned (without sensitive data)

5. Incident log (Art. 33(5))

Every incident must be logged, whether or not it requires notification to the authority. The log must include:

FieldDescription
Incident IDUnique identifier (INC-YYYY-NNN)
Detection date/timeT0
Containment date/timeEnd of Phase 2
ClassificationLevel 1-4
DescriptionWhat happened
Data affectedCategories of personal data involved (if applicable)
Data subjects affectedEstimated number
Root causeOutcome of the RCA
Measures takenContainment and remediation actions
Notification to the authorityYes/No, date, reference
Communication to data subjectsYes/No, date, channel
ResolutionFinal status and closing date

6. Key contacts

RoleContact
Technical leadQR Branding team
Privacy/DPOsupport@qr-branding.com
RapidAPI PlatformRapidAPI support
Microsoft Azure SupportAzure portal

Supervisory authorities (reference)

CountryAuthorityWebsite
SpainAEPDaepd.es
EU (general)EDPBedpb.europa.eu

7. Drills

At least one incident response drill per year will be carried out to:

  • Verify that the procedure works
  • Measure response times
  • Identify gaps in capabilities or communication
  • Familiarize the team with the process

Document generated on 2026-03-08. Next scheduled review: 2026-09-08.