Skip to content

Incident Response Process

GitHub Issues are the system of record for all incident data. Slack is the coordination and post-mortem authoring surface. GCP Cloud Monitoring provides automated alerting via Slack notification channels.

When a GCP Cloud Monitoring alert policy fires:

  1. GCP Cloud Monitoring fires the alert — uptime check or custom metric condition evaluates to violated state.
  2. Notification channel posts to #incidents via Slack with alert details.
  3. Responder acknowledges in the #incidents Slack thread — starts the response clock.
  4. Responder follows the Incident Response Runbook for containment and recovery.
  5. Coordination happens in the #incidents Slack thread for the duration of the incident.
  6. Responder creates a GitHub Issue as the incident record and marks it resolved when done.
  7. Postmortem authored via Slack modal (SEV-1/2) — the incident-postmortem Edge Function posts a “Write Post-Mortem” button to the thread; submitted content is stored as a GitHub issue comment.
  8. Nightly evidence automation pulls incident data from GitHub Issues and GCP Cloud Monitoring API.

For incidents reported by users or observed outside monitoring coverage:

  1. Open a GitHub Issue using the Incident Response template with title [SEV-?] Brief description.
  2. Continue with the standard runbook from step 4 above.

SourceWhat It DetectsAlert Channel
GCP Cloud MonitoringUptime check failures, API degradation, alert policy violationsSlack #incidents notification channel
CrowdStrikeEndpoint malware, lateral movement, exploitsFalcon console + email
Google WorkspaceSuspicious sign-ins, admin audit anomalies, DLPAdmin alerts + nightly evidence
GitHubSecret exposure, vulnerable dependenciesRepository notifications
1PasswordCompromised credentials, unusual sign-in patternsEvents API (nightly evidence)

LevelDefinitionResponse SLA
SEV-1Confirmed data breach, complete production outage, active exploitation15 minutes
SEV-2Partial outage, confirmed compromise, unauthorized access1 hour
SEV-3Degraded service, minor security event, single-user compromise24 hours
SEV-4Suspicious but unconfirmed activity, low-severity alert72 hours

Escalation Routing (GCP Cloud Monitoring → Slack)

Section titled “Escalation Routing (GCP Cloud Monitoring → Slack)”
SeverityRouting
SEV-1/2Slack #incidents + CISO DM follow-up after 15 min without ack
SEV-3Slack #incidents
SEV-4CISO manual tracking only

Nightly automation collects incident evidence from GCP Cloud Monitoring API (alert policies, notification channels, uptime check state) and commits to evidence/logs/gcp-monitoring/YYYY/MM/. No manual collection is needed for routine compliance evidence.

For incident-specific artifacts (log exports, screenshots, containment actions) collected during response, store in evidence/incidents/YYYY/YYYY-MM-DD-incident-brief/.

To run an immediate evidence collection outside the nightly schedule:

doppler run -p m7-security -c prd -- python3 automation/scripts/runner.py --mode evidence --systems gcp-monitoring --output-dir evidence

After containment, verify no compliance regressions:

doppler run -p m7-security -c prd -- python3 automation/scripts/runner.py --mode verify

SEV-1 and SEV-2 require a postmortem within 5 business days.

Authoring flow: After resolution, the “Write Post-Mortem” button appears in the #incidents Slack thread. Clicking it opens a structured modal. The submitted content is stored as a GitHub incident issue comment and is picked up by nightly evidence automation.

For the full postmortem template and review process, see Incident Response Runbook §5.



Meridian Seven — Confidential