agentleFS
darkweb19darkweb19/skills/incident-response/SKILL.md

incident-response

Skill0 starsChanged 28 days agoApache-2.0View on GitHub

Use when a security incident has been detected or declared and needs classification, triage, escalation path determination, and forensic evidence collection. Covers SEV1-SEV4 classification, false positive filtering, incident taxonomy, and NIST SP 800-61 lifecycle.

81 other projects use a version of this, 1 of them edited.

Adopted by

Most recently taken up by

Used with

Projects with it also use dora-metrics, background-jobs and 8 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • jholhewresSkill

    dora-metrics

    Calculate DORA metrics from git + deploy logs

    Also in 3 projects that use this

  • YepAPISkill

    background-jobs

    Queue workers with BullMQ/Inngest/Trigger.dev, job retries, dead letter queues, concurrency.

    Also in 4 projects that use this

  • MicrosoftSkill

    data-modeling

    Use when the app needs to store or read data — records, a database, entities, CRUD, lists, "save/remember X", or per-user data with row-level security. This app's data layer is Rayfin's: you declare entities as TypeScript classes with decorators in rayfin/data/, register them in the schema, and read/write them through the typed rayfin-client. Covers: defining an @entity, field decorators, registering it, per-entity access with @role, owner-only row-level security, and the client query/mutation API. Triggers: data, database, model, entity, schema, table, record, CRUD, create, read, update, delete, list, store, save, persist, per-user, row-level security, RLS, access control, ownership.

    Also in 7 projects that use this

  • YepAPISkill

    data-pipelines

    ETL patterns, cron scheduling, queue-based processing, and batch jobs with Inngest/BullMQ.

    Also in 4 projects that use this

  • mmondoraSkill

    infrastructure-as-code

    Infrastructure as Code with Terraform and Pulumi. State management, modularity, drift detection, secrets handling. Use when provisioning cloud resources, writing Terraform/Pulumi modules, or managing infrastructure configuration.

    Also in 5 projects that use this

  • motao123Skill

    browser-verification

    Use when a change needs browser-level evidence such as UI flow checks, form interaction validation, console inspection, or end-to-end smoke verification. This skill focuses on observable behavior instead of code assumptions.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

2 rules. 0 are common, 2 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 64 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Every evidence item must be recorded with:

    line 186
  2. Distinctive:

    Operational rule: If scope is unclear at declaration, assume the most restrictive applicable deadline and confirm scope within the first …

    line 232

“Common” is measured: kept by at least 6 in 10 of the 64 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Incident Response

Incident response skill for the full lifecycle from initial triage through forensic collection, severity declaration, and escalation routing. This is NOT threat hunting (see threat-detection) or post-incident compliance mapping (see governance/compliance-mapping) — this is about classifying, triaging, and managing declared security incidents.


Table of Contents

  • Overview
  • Incident Triage Tool
  • Incident Classification
  • Severity Framework
  • False Positive Filtering
  • Forensic Evidence Collection
  • Escalation Paths
  • Regulatory Notification Obligations
  • Workflows
  • Anti-Patterns
  • Cross-References

Overview

What This Skill Does

This skill provides the methodology and tooling for incident triage and response — classifying security events into typed incidents, scoring severity, filtering false positives, determining escalation paths, and initiating forensic evidence collection under chain-of-custody controls.

Distinction from Other Security Skills

SkillFocusApproach
incident-response (this)Active incidentsReactive — classify, escalate, collect evidence
threat-detectionPre-incident huntingProactive — find threats before alerts fire
cloud-securityCloud posture assessmentPreventive — IAM, S3, network misconfiguration
red-teamOffensive simulationOffensive — test detection and response capability

Prerequisites

A security event must be ingested before triage. Events can come from SIEM alerts, EDR detections, threat intel feeds, or user reports. The triage tool accepts JSON event payloads; see the input schema below.


Incident Triage Tool

The incident_triage.py tool classifies events, checks false positives, scores severity, determines escalation, and performs forensic pre-analysis.

# Classify an event from JSON file
python3 scripts/incident_triage.py --input event.json --classify --json

# Classify with false positive filtering enabled
python3 scripts/incident_triage.py --input event.json --classify --false-positive-check --json

# Force a severity level for tabletop exercises
python3 scripts/incident_triage.py --input event.json --severity sev1 --json

# Read event from stdin
echo '{"event_type": "ransomware", "host": "prod-db-01", "raw_payload": {}}' | \
  python3 scripts/incident_triage.py --classify --false-positive-check --json

Input Event Schema

{
  "event_type": "ransomware",
  "host": "prod-db-01",
  "user": "svc_backup",
  "source_ip": "10.1.2.3",
  "timestamp": "2024-01-15T14:32:00Z",
  "raw_payload": {}
}

Exit Codes

CodeMeaningRequired Response
0SEV3/SEV4 or cleanStandard ticket-based handling
1SEV2 — elevated1-hour bridge call, async coordination
2SEV1 — criticalImmediate 15-minute war room, all-hands

Incident Classification

Security events are classified into 14 incident types. Classification drives default severity, MITRE technique mapping, and response SLA.

Incident Taxonomy

Incident TypeDefault SeverityMITRE TechniqueResponse SLA
ransomwareSEV1T148615 minutes
data_exfiltrationSEV1T104815 minutes
apt_intrusionSEV1T156615 minutes
supply_chain_compromiseSEV1T119515 minutes
domain_controller_breachSEV1T1078.00215 minutes
credential_compromiseSEV2T11101 hour
lateral_movementSEV2T10211 hour
malware_infectionSEV2T12041 hour
insider_threatSEV2T10781 hour
cloud_account_compromiseSEV2T1078.0041 hour
unauthorized_accessSEV3T11904 hours
policy_violationSEV3N/A4 hours
phishing_attemptSEV4T1566.00124 hours
security_alertSEV4N/A24 hours

SEV Escalation Triggers

Any of the following automatically re-declare a higher severity:

TriggerNew Severity
Ransomware note foundSEV1
Active exfiltration confirmedSEV1
CloudTrail or SIEM disabledSEV1
Domain controller access confirmedSEV1
Second system compromisedSEV1
Exfiltration volume exceeds 1 GBSEV2 minimum
C-suite account accessedSEV2 minimum

Severity Framework

SEV Level Matrix

LevelNameCriteriaSkills InvokedEscalation Path
SEV1CriticalConfirmed ransomware; active PII/PHI exfiltration (>10K records); domain controller breach; defense evasion (CloudTrail disabled); supply chain compromiseAll skills (parallel)SOC Lead → CISO → CEO → Board Chair
SEV2HighConfirmed unauthorized access to sensitive systems; credential compromise with elevated privileges; lateral movement confirmed; ransomware indicators without confirmed executiontriage + containment + forensicsSOC Lead → CISO
SEV3MediumSuspected unauthorized access (unconfirmed); malware detected and contained; single account compromise (no priv escalation)triage + containmentSOC Lead → Security Manager
SEV4LowSecurity alert with no confirmed impact; informational indicator; policy violation with no data risktriage onlyL3 Analyst queue

False Positive Filtering

The triage tool applies five filters before escalating to prevent false positive inflation.

False Positive Filter Types

FilterDescriptionExample Pattern
CI/CD agent activityKnown build/deploy agents flagged as anomaliesjenkins, github-actions, circleci, gitlab-runner
Test environment taggingAssets tagged as non-productiontest-, staging-, dev-, sandbox-
Scheduled job patternsExpected batch processes triggering alertscron, scheduled_task, batch_job, backup_
Whitelisted identitiesExplicitly approved service accountssvc_monitoring, svc_backup, datadog-agent
Scanner activityKnown security scanners and vulnerability toolsnessus, qualys, rapid7, aws_inspector

A confirmed false positive suppresses escalation and logs the suppression reason for audit purposes. Recurring false positives from the same source should be tuned out at the detection layer, not filtered repeatedly at triage.


Forensic Evidence Collection

Evidence collection follows the DFRWS six-phase framework and the principle of volatile-first acquisition.

DFRWS Six Phases

PhaseActivityPriority
IdentificationIdentify what evidence exists and whereImmediate
PreservationPrevent modification — write-block, snapshot, legal holdImmediate
CollectionAcquire evidence in order of volatilityImmediate
ExaminationTechnical analysis of collected evidenceWithin 2 hours
AnalysisInterpret findings in investigative contextWithin 4 hours
PresentationProduce findings report with chain of custodyBefore incident closure

Volatile Evidence — Collect First

  1. Live memory (RAM dump) — lost on reboot
  2. Running processes and open network connections (netstat, ps)
  3. Logged-in users and active sessions
  4. System uptime and current time (for timeline anchoring)
  5. Environment variables and loaded kernel modules

Chain of Custody Requirements

Every evidence item must be recorded with:

  • SHA-256 hash at acquisition time
  • Acquisition timestamp in UTC with timezone offset
  • Tool provenance (FTK Imager, Volatility, dd, AWS CloudTrail export)
  • Investigator identity
  • Transfer log (who had custody and when)

Escalation Paths

By Severity

SeverityImmediate ContactBridge CallExternal Notification
SEV1SOC Lead + CISO (15 min)Immediate war roomLegal + PR standby; regulatory notification per deadline table
SEV2SOC Lead (30 min async)1-hour bridgeLegal notification if PII involved
SEV3Security Manager (4 hours)Async onlyNone unless scope expands
SEV4L3 Analyst queue (24 hours)NoneNone

By Incident Type

Incident TypePrimary EscalationSecondary
Ransomware / APTCISO + CEOBoard if data at risk
PII/PHI breachLegal + CISORegulatory body (per deadline table)
Cloud account compromiseCloud security teamCISO
Insider threatHR + Legal + CISOLaw enforcement if criminal
Supply chainCISO + Vendor managementBoard

Regulatory Notification Obligations

The notification clock starts at incident declaration, not at investigation completion.

FrameworkIncident TypeDeadlinePenalty
GDPR (EU 2016/679)Personal data breach72 hours after discoveryUp to 4% global revenue
PCI-DSS v4.0Cardholder data breach24 hours to acquirerCard brand fines
HIPAA (45 CFR 164)PHI breach (>500 individuals)60 days after discoveryUp to $1.9M per violation category
NY DFS 23 NYCRR 500Cybersecurity event72 hours to DFSRegulatory sanctions
SEC Rule (17 CFR 229.106)Material cybersecurity incident4 business days after materiality determinationSEC enforcement
CCPA / CPRABreach of sensitive PIWithout unreasonable delayAG enforcement; private right of action
NIS2 (EU 2022/2555)Significant incident (essential services)24-hour early warning; 72-hour notificationNational authority sanctions

Operational rule: If scope is unclear at declaration, assume the most restrictive applicable deadline and confirm scope within the first response window.

Full deadline reference: references/regulatory-deadlines.md


Workflows

Workflow 1: Quick Triage (15 Minutes)

For single alert requiring classification before escalation decision:

# 1. Classify the event with false positive filtering
python3 scripts/incident_triage.py --input alert.json \
  --classify --false-positive-check --json

# 2. Review severity, escalation_path, and false_positive_flag in output
# 3. If severity = sev1 or sev2, page SOC Lead immediately
# 4. If false_positive_flag = true, document and close

Decision: Exit code 2 = SEV1 war room now. Exit code 1 = SEV2 bridge call within 30 minutes.

Workflow 2: Full Incident Response (SEV1)

T+0   Detection arrives (SIEM alert, EDR, user report)
T+5   Classify with incident_triage.py --classify --false-positive-check
T+10  If SEV1: page CISO, open war room, start regulatory clock
T+15  Initiate forensic collection (volatile evidence first)
T+15  Containment assessment (parallel with forensics)
T+30  Human approval gate for any containment action
T+45  Execute approved containment
T+60  Assess containment effectiveness, brief Legal if PII/PHI scope
T+4h  Final forensic evidence package, dwell time estimate
T+8h  Eradication and recovery plan
T+72h Regulatory notification submission (if GDPR/NIS2 triggered)
# Full classification with forensic context
python3 scripts/incident_triage.py --input incident.json \
  --classify --false-positive-check --severity sev1 --json > incident_triage_output.json

# Forensic pre-analysis
python3 scripts/incident_triage.py --input incident.json --json | \
  jq '.forensic_findings, .chain_of_custody_steps'

Workflow 3: Tabletop Exercise Simulation

Simulate incidents at specific severity levels without real events:

# Simulate SEV1 ransomware incident
echo '{"event_type": "ransomware", "host": "prod-db-01", "user": "svc_backup"}' | \
  python3 scripts/incident_triage.py --classify --severity sev1 --json

# Simulate SEV2 credential compromise
echo '{"event_type": "credential_compromise", "user": "admin_user", "source_ip": "203.0.113.5"}' | \
  python3 scripts/incident_triage.py --classify --false-positive-check --json

# Verify escalation paths for all 14 incident types
for type in ransomware data_exfiltration credential_compromise lateral_movement; do
  echo "{\"event_type\": \"$type\"}" | python3 scripts/incident_triage.py --classify --json
done

Anti-Patterns

  1. Starting the notification clock at investigation completion — Regulatory clocks (GDPR 72 hours, PCI 24 hours) start at discovery, not investigation completion. Declaring late exposes the organization to maximum penalties even if the incident itself was minor.
  2. Containing before collecting volatile evidence — Rebooting or isolating a system destroys RAM, running processes, and active connections. Forensic collection of volatile evidence must happen in parallel with containment, never after.
  3. Skipping false positive verification before escalation — Escalating every alert to SEV1 degrades SOC credibility and causes alert fatigue. Always run false positive filters before paging the CISO.
  4. Undocumented incident command decisions — Every decision made during a SEV1, including decisions made under uncertainty, must be logged in the evidence chain with timestamp and rationale. Undocumented decisions cannot be defended in regulatory investigations.
  5. Treating incident closure as investigation completion — Incidents are closed when eradication and recovery are complete, not when the investigation is done. The forensic report and regulatory submissions may continue after operational closure.
  6. Single-source classification — Classifying an incident from a single data source (one SIEM alert) without corroborating evidence frequently leads to misclassification. Collect at least two independent signals before declaring SEV1.
  7. Bypassing human approval gates for containment — Automated containment actions (network isolation, credential revocation) taken without human approval can cause production outages, destroy evidence, and create liability. Human approval is non-negotiable for all mutating containment actions.

Cross-References

SkillRelationship
threat-detectionConfirmed hunting findings escalate to incident-response for triage and classification
cloud-securityCloud posture findings (IAM compromise, S3 exposure) may trigger incident classification
red-teamRed team findings validate detection coverage; confirmed gaps become hunting hypotheses
security-pen-testingPen test vulnerabilities exploited in the wild escalate to incident-response for active incident handling

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.