Security Incident Reporting
Source: https://github.com/dirnbauer/webconsulting-skills
Comprehensive framework for documenting and analyzing security incidents, drawing from NIST SP 800-61 and SANS methodologies.
When to Use
- After a security incident (DDoS, breach, vulnerability exploitation)
- Creating post-mortem documentation
- Communicating with stakeholders (C-level, legal, security teams)
- Correlating attack patterns with known CVEs
- Establishing incident response metrics (MTTR, dwell time)
Related Skills
1. Incident Response Framework
NIST SP 800-61 / SANS Harmonization
| Phase |
NIST |
SANS |
Documentation Focus |
| 1 |
Preparation |
Preparation |
Runbooks, contacts, tools |
| 2 |
Detection & Analysis |
Identification |
Initial detection, triage |
| 3 |
Containment |
Containment |
Isolation actions, timeline |
| 4 |
Eradication |
Eradication |
Root cause removal |
| 5 |
Recovery |
Recovery |
Service restoration |
| 6 |
Post-Incident |
Lessons Learned |
Post-mortem, improvements |
Documentation Principle
Logbuch-Prinzip: Document in real-time during the incident, then consolidate into the post-mortem report. Never create reports retrospectively from memory.
2. Severity Rating Systems
NCISS (National Cyber Incident Scoring System)
| Level |
Score |
Description |
| Emergency (1) |
100 |
Nation-state attack, critical infrastructure |
| Severe (2) |
80-99 |
Significant impact, data exfiltration |
| High (3) |
60-79 |
Service disruption, potential data loss |
| Medium (4) |
40-59 |
Limited impact, contained breach |
| Low (5) |
20-39 |
Minor incident, no data loss |
| Baseline (6) |
0-19 |
Informational, false positive |
DDoS Resiliency Score (DRS)
| Level |
Description |
Typical Bandwidth |
| 1-2 |
Simple Floods |
< 1 Gbps |
| 3-4 |
Sophisticated Multi-Vector |
1-5 Gbps |
| 5-6 |
Advanced (State-Actor Level) |
5-100 Gbps |
| 7 |
Extreme (Hyper-Volumetric) |
> 100 Gbps |
CVSS Integration
For vulnerability-based incidents, include CVSS 4.0 base score (v3.1 accepted for legacy reports) from the security-audit skill.
3. Incident Report Template
Module A: Metadata & Executive Summary
# Security Incident Report
## Metadata
| Field | Value |
|-------|-------|
| Incident ID | SIR-2026-001 |
| Classification | Confidential |
| Status | Closed / Active / Under Investigation |
| Detection Time | 2026-01-21 14:32 UTC |
| Resolution Time | 2026-01-21 15:17 UTC |
| MTTR | 45 minutes |
| Severity | High (NCISS: 65) |
| Lead Analyst | Jane Doe |
| Affected Systems | web-cluster-01, cdn-edge-eu |
## Executive Summary (max 200 words)
On [DATE], our monitoring systems detected [INCIDENT TYPE] targeting [SYSTEMS].
The attack [IMPACT DESCRIPTION]. Through [RESPONSE ACTIONS], normal operations
were restored within [TIMEFRAME]. [DATA IMPACT STATEMENT].
### Business Impact
- Service Availability: [Degraded/Offline for X minutes]
- Data Impact: [None/Potential exposure of X records]
- Financial Impact: [Estimated cost]
- Reputation Impact: [Public/Internal]
Module B: Timeline (Chronological Analysis)
## Incident Timeline
| Time (UTC) | Event | Source | Action Taken |
|------------|-------|--------|--------------|
| 14:32 | Traffic spike detected | Cloudflare Alert | On-call notified |
| 14:35 | 5x baseline traffic confirmed | Grafana | Incident declared |
| 14:38 | Geo-blocking activated | Cloudflare | EU/US traffic filtered |
| 14:42 | Attack vector identified: UDP amplification | DPI Analysis | Null-route for UDP/427 |
| 14:55 | Traffic normalized | Monitoring | Mitigation confirmed |
| 15:17 | All systems stable | Status page | Incident closed |
### Dwell Time Analysis
- Time to Detection (TTD): 0 minutes (automated)
- Time to Containment (TTC): 10 minutes
- Time to Eradication (TTE): 23 minutes
- Time to Recovery (TTR): 45 minutes
Module C: Technical Analysis & IoCs
## Technical Analysis
### Attack Vectors (MITRE ATT&CK)
- T1498: Network Denial of Service
- T1498.001: Direct Network Flood
- T1498.002: Reflection Amplification
### Indicators of Compromise (IoCs)
#### Network Artifacts
| Type | Value | Context |
|------|-------|---------|
| IP Range | 192.0.2.0/24 | Source (spoofed) |
| ASN | AS12345 | Amplification source |
| Port | UDP/427 | SLP Amplification |
| Signature | \x00\x00\x00\x00SLP | Payload pattern |
#### System Artifacts
| Type | Value | Hash (SHA256) |
|------|-------|---------------|
| Modified File | /var/www/shell.php | a1b2c3... |
| New User | backdoor_admin | N/A |
| Cron Job | /tmp/.hidden/beacon | d4e5f6... |
### Root Cause Analysis (5-Whys)
1. Why did the attack succeed? → Amplification ports were exposed
2. Why were ports exposed? → Firewall rules not updated after migration
3. Why weren't rules updated? → No automated validation in deployment
4. Why no automation? → Security review not in CI/CD pipeline
5. Why not in pipeline? → Technical debt, prioritized features
**Root Cause**: Missing security validation in deployment pipeline
4. DDoS Post-Mortem Analysis
Metrics Table
| Metric |
Value |
Threshold |
Status |
| Peak Bandwidth |
45 Gbps |
10 Gbps |
Exceeded |
| Peak Packets/sec |
12M PPS |
5M PPS |
Exceeded |
| Peak Requests/sec |
850K RPS |
100K RPS |
Exceeded |
| Unique Source IPs |
145,000 |
N/A |
Amplification |
| Attack Duration |
45 min |
N/A |
- |
| Geographic Spread |
89 countries |
N/A |
Global botnet |
Attack Vector Classification
| Vector |
% of Traffic |
Type |
Mitigation |
| UDP Flood |
60% |
Volumetric |
Null-route |
| SYN Flood |
25% |
Protocol |
SYN cookies |
| HTTP Flood |
15% |
Application |
Rate limiting |
Multi-Vector Detection
Was this a smoke-screen attack?
├── Volumetric attack started: 14:32
├── Application-layer probing detected: 14:38
├── Login brute-force attempts: 14:40-14:45
└── Conclusion: Coordinated multi-vector attack
5. CVE Correlation for DDoS
Map attack signatures to known vulnerabilities for threat intelligence.
Amplification Vector CVE Table
| Attack Type |
Port |
Amplification Factor |
CVE |
Description |
| NTP Monlist |
UDP/123 |
556x |
CVE-2013-5211 |
NTP mode 7 monlist |
| Memcached |
UDP/11211 |
51,000x |
CVE-2018-1000115 |
UDP reflection |
| CLDAP |
UDP/389 |
70x |
Various |
LDAP reflection |
| SLP |
UDP/427 |
2,200x |
CVE-2023-29552 |
Service Location Protocol |
| DNS |
UDP/53 |
54x |
Various |
Open resolver abuse |
| SSDP |
UDP/1900 |
30x |
Various |
UPnP reflection |
| Chargen |
UDP/19 |
358x |
CVE-1999-0103 |
Character generator |
Analysis Example
## CVE Correlation Analysis
Traffic analysis shows 40% of UDP flood originated from port 427.
Deep Packet Inspection confirmed payloads typical for CVE-2023-29552.
**Conclusion**: Botnet leveraging unpatched VMware ESXi instances as
SLP reflectors. Recommend:
1. Verify our infrastructure is not acting as reflector
2. Block UDP/427 at edge
3. Report to upstream provider
6. Impact Assessment Matrix
Operational Impact
| Category |
Level |
Description |
| Availability |
Critical |
Complete outage for 15 minutes |
| Performance |
High |
50% degradation for 30 minutes |
| Collateral |
Medium |
API gateway affected |
Financial Impact
| Category |
Estimated Cost |
| Lost Revenue |
$15,000 |
| Scrubbing Overage |
$2,500 |
| Incident Response |
$5,000 (8 person-hours) |
| Total |
$22,500 |
Reputation Impact
| Channel |
Severity |
Action Required |
| Social Media |
Medium |
Prepared statement |
| B2B Partners |
Low |
Direct notification |
| Press |
None |
No external coverage |
7. Blameless Post-Mortem
Principles
- Focus on systems, not individuals: "Why did the process allow X?" not "Who did X?"
- Assume good intentions: Everyone acted with the best information available
- Learn, don't punish: Goal is improvement, not blame
- Share openly: Publish internally for organizational learning
Post-Mortem Template
## Post-Mortem: [Incident Title]
### What Happened
[Factual description of the incident]
### What Went Well
- Detection was automated (0 min TTD)
- On-call responded within SLA
- Communication was clear
### What Went Wrong
- Firewall rules were outdated
- No alerting for UDP traffic spikes
- Runbook was incomplete
### Action Items
| ID | Action | Owner | Due Date | Status |
|----|--------|-------|----------|--------|
| 1 | Add security validation to CI/CD | @devops | 2026-02-01 | Open |
| 2 | Update runbook with DDoS procedures | @security | 2026-01-28 | Open |
| 3 | Implement UDP traffic alerting | @sre | 2026-02-05 | Open |
### Lessons Learned
- Automated security gates prevent configuration drift
- Regular runbook reviews are essential
- Multi-vector attacks require layered defense
8. Report Distribution
Classification Levels
| Level |
Audience |
Content |
| Executive |
C-Level, Board |
Summary, business impact, remediation status |
| Technical |
Security Team, SOC |
Full IoCs, TTPs, forensic details |
| Legal |
Legal, Compliance |
Data impact, regulatory implications |
| Public |
Customers, Press |
Sanitized summary, no technical details |
Retention Requirements
| Document Type |
Retention |
Storage |
| Full Incident Report |
7 years |
Encrypted archive |
| IoC Data |
2 years |
Threat Intelligence Platform |
| Logs & Evidence |
1 year |
Immutable storage |
9. Checklists
Pre-Incident Preparation
During Incident
Post-Incident
References
Credits & Attribution
This skill draws from the "Handbuch für Advanced Security Incident Reporting" methodology,
incorporating elements of NIST SP 800-61, SANS frameworks, and industry best practices.
Developed by webconsulting.at for the Claude skill collection.
Source: https://github.com/dirnbauer/webconsulting-skills
1---2name: security-incident-reporting3description: Builds security incident reports, DDoS post-mortems, timelines, IoC sections, CVE correlation, severity scoring, and blameless root cause analysis. Use when the user needs an incident report, post-mortem, forensics summary, security timeline, DDoS analysis, SIR, root cause analysis, or communication for a security event.4license: MIT / CC-BY-SA-4.05---6# Security Incident Reporting78> Source: https://github.com/dirnbauer/webconsulting-skills910Comprehensive framework for documenting and analyzing security incidents, drawing from NIST SP 800-61 and SANS methodologies.1112## When to Use1314- After a security incident (DDoS, breach, vulnerability exploitation)15- Creating post-mortem documentation16- Communicating with stakeholders (C-level, legal, security teams)17- Correlating attack patterns with known CVEs18- Establishing incident response metrics (MTTR, dwell time)1920## Related Skills2122- [security-audit](../security-audit/SKILL.md) - Pre-incident vulnerability assessment23- [typo3-security](../typo3-security/SKILL.md) - TYPO3 hardening24- [SKILL-TYPO3.md](./SKILL-TYPO3.md) - TYPO3-specific incident reporting2526---2728## 1. Incident Response Framework2930### NIST SP 800-61 / SANS Harmonization3132| Phase | NIST | SANS | Documentation Focus |33|-------|------|------|---------------------|34| 1 | Preparation | Preparation | Runbooks, contacts, tools |35| 2 | Detection & Analysis | Identification | Initial detection, triage |36| 3 | Containment | Containment | Isolation actions, timeline |37| 4 | Eradication | Eradication | Root cause removal |38| 5 | Recovery | Recovery | Service restoration |39| 6 | Post-Incident | Lessons Learned | Post-mortem, improvements |4041### Documentation Principle4243> **Logbuch-Prinzip**: Document in real-time during the incident, then consolidate into the post-mortem report. Never create reports retrospectively from memory.4445---4647## 2. Severity Rating Systems4849### NCISS (National Cyber Incident Scoring System)5051| Level | Score | Description |52|-------|-------|-------------|53| Emergency (1) | 100 | Nation-state attack, critical infrastructure |54| Severe (2) | 80-99 | Significant impact, data exfiltration |55| High (3) | 60-79 | Service disruption, potential data loss |56| Medium (4) | 40-59 | Limited impact, contained breach |57| Low (5) | 20-39 | Minor incident, no data loss |58| Baseline (6) | 0-19 | Informational, false positive |5960### DDoS Resiliency Score (DRS)6162| Level | Description | Typical Bandwidth |63|-------|-------------|-------------------|64| 1-2 | Simple Floods | < 1 Gbps |65| 3-4 | Sophisticated Multi-Vector | 1-5 Gbps |66| 5-6 | Advanced (State-Actor Level) | 5-100 Gbps |67| 7 | Extreme (Hyper-Volumetric) | > 100 Gbps |6869### CVSS Integration7071For vulnerability-based incidents, include CVSS 4.0 base score (v3.1 accepted for legacy reports) from the [security-audit](../security-audit/SKILL.md) skill.7273---7475## 3. Incident Report Template7677### Module A: Metadata & Executive Summary7879```markdown80# Security Incident Report8182## Metadata83| Field | Value |84|-------|-------|85| Incident ID | SIR-2026-001 |86| Classification | Confidential |87| Status | Closed / Active / Under Investigation |88| Detection Time | 2026-01-21 14:32 UTC |89| Resolution Time | 2026-01-21 15:17 UTC |90| MTTR | 45 minutes |91| Severity | High (NCISS: 65) |92| Lead Analyst | Jane Doe |93| Affected Systems | web-cluster-01, cdn-edge-eu |9495## Executive Summary (max 200 words)9697On [DATE], our monitoring systems detected [INCIDENT TYPE] targeting [SYSTEMS].98The attack [IMPACT DESCRIPTION]. Through [RESPONSE ACTIONS], normal operations99were restored within [TIMEFRAME]. [DATA IMPACT STATEMENT].100101### Business Impact102- Service Availability: [Degraded/Offline for X minutes]103- Data Impact: [None/Potential exposure of X records]104- Financial Impact: [Estimated cost]105- Reputation Impact: [Public/Internal]106```107108### Module B: Timeline (Chronological Analysis)109110```markdown111## Incident Timeline112113| Time (UTC) | Event | Source | Action Taken |114|------------|-------|--------|--------------|115| 14:32 | Traffic spike detected | Cloudflare Alert | On-call notified |116| 14:35 | 5x baseline traffic confirmed | Grafana | Incident declared |117| 14:38 | Geo-blocking activated | Cloudflare | EU/US traffic filtered |118| 14:42 | Attack vector identified: UDP amplification | DPI Analysis | Null-route for UDP/427 |119| 14:55 | Traffic normalized | Monitoring | Mitigation confirmed |120| 15:17 | All systems stable | Status page | Incident closed |121122### Dwell Time Analysis123- Time to Detection (TTD): 0 minutes (automated)124- Time to Containment (TTC): 10 minutes125- Time to Eradication (TTE): 23 minutes126- Time to Recovery (TTR): 45 minutes127```128129### Module C: Technical Analysis & IoCs130131```markdown132## Technical Analysis133134### Attack Vectors (MITRE ATT&CK)135- T1498: Network Denial of Service136- T1498.001: Direct Network Flood137- T1498.002: Reflection Amplification138139### Indicators of Compromise (IoCs)140141#### Network Artifacts142| Type | Value | Context |143|------|-------|---------|144| IP Range | 192.0.2.0/24 | Source (spoofed) |145| ASN | AS12345 | Amplification source |146| Port | UDP/427 | SLP Amplification |147| Signature | \x00\x00\x00\x00SLP | Payload pattern |148149#### System Artifacts150| Type | Value | Hash (SHA256) |151|------|-------|---------------|152| Modified File | /var/www/shell.php | a1b2c3... |153| New User | backdoor_admin | N/A |154| Cron Job | /tmp/.hidden/beacon | d4e5f6... |155156### Root Cause Analysis (5-Whys)1571. Why did the attack succeed? → Amplification ports were exposed1582. Why were ports exposed? → Firewall rules not updated after migration1593. Why weren't rules updated? → No automated validation in deployment1604. Why no automation? → Security review not in CI/CD pipeline1615. Why not in pipeline? → Technical debt, prioritized features162163**Root Cause**: Missing security validation in deployment pipeline164```165166---167168## 4. DDoS Post-Mortem Analysis169170### Metrics Table171172| Metric | Value | Threshold | Status |173|--------|-------|-----------|--------|174| Peak Bandwidth | 45 Gbps | 10 Gbps | Exceeded |175| Peak Packets/sec | 12M PPS | 5M PPS | Exceeded |176| Peak Requests/sec | 850K RPS | 100K RPS | Exceeded |177| Unique Source IPs | 145,000 | N/A | Amplification |178| Attack Duration | 45 min | N/A | - |179| Geographic Spread | 89 countries | N/A | Global botnet |180181### Attack Vector Classification182183| Vector | % of Traffic | Type | Mitigation |184|--------|--------------|------|------------|185| UDP Flood | 60% | Volumetric | Null-route |186| SYN Flood | 25% | Protocol | SYN cookies |187| HTTP Flood | 15% | Application | Rate limiting |188189### Multi-Vector Detection190191```192Was this a smoke-screen attack?193├── Volumetric attack started: 14:32194├── Application-layer probing detected: 14:38195├── Login brute-force attempts: 14:40-14:45196└── Conclusion: Coordinated multi-vector attack197```198199---200201## 5. CVE Correlation for DDoS202203Map attack signatures to known vulnerabilities for threat intelligence.204205### Amplification Vector CVE Table206207| Attack Type | Port | Amplification Factor | CVE | Description |208|-------------|------|---------------------|-----|-------------|209| NTP Monlist | UDP/123 | 556x | CVE-2013-5211 | NTP mode 7 monlist |210| Memcached | UDP/11211 | 51,000x | CVE-2018-1000115 | UDP reflection |211| CLDAP | UDP/389 | 70x | Various | LDAP reflection |212| SLP | UDP/427 | 2,200x | CVE-2023-29552 | Service Location Protocol |213| DNS | UDP/53 | 54x | Various | Open resolver abuse |214| SSDP | UDP/1900 | 30x | Various | UPnP reflection |215| Chargen | UDP/19 | 358x | CVE-1999-0103 | Character generator |216217### Analysis Example218219```markdown220## CVE Correlation Analysis221222Traffic analysis shows 40% of UDP flood originated from port 427.223Deep Packet Inspection confirmed payloads typical for CVE-2023-29552.224225**Conclusion**: Botnet leveraging unpatched VMware ESXi instances as226SLP reflectors. Recommend:2271. Verify our infrastructure is not acting as reflector2282. Block UDP/427 at edge2293. Report to upstream provider230```231232---233234## 6. Impact Assessment Matrix235236### Operational Impact237238| Category | Level | Description |239|----------|-------|-------------|240| Availability | Critical | Complete outage for 15 minutes |241| Performance | High | 50% degradation for 30 minutes |242| Collateral | Medium | API gateway affected |243244### Financial Impact245246| Category | Estimated Cost |247|----------|----------------|248| Lost Revenue | $15,000 |249| Scrubbing Overage | $2,500 |250| Incident Response | $5,000 (8 person-hours) |251| **Total** | **$22,500** |252253### Reputation Impact254255| Channel | Severity | Action Required |256|---------|----------|-----------------|257| Social Media | Medium | Prepared statement |258| B2B Partners | Low | Direct notification |259| Press | None | No external coverage |260261---262263## 7. Blameless Post-Mortem264265### Principles2662671. **Focus on systems, not individuals**: "Why did the process allow X?" not "Who did X?"2682. **Assume good intentions**: Everyone acted with the best information available2693. **Learn, don't punish**: Goal is improvement, not blame2704. **Share openly**: Publish internally for organizational learning271272### Post-Mortem Template273274```markdown275## Post-Mortem: [Incident Title]276277### What Happened278[Factual description of the incident]279280### What Went Well281- Detection was automated (0 min TTD)282- On-call responded within SLA283- Communication was clear284285### What Went Wrong286- Firewall rules were outdated287- No alerting for UDP traffic spikes288- Runbook was incomplete289290### Action Items291| ID | Action | Owner | Due Date | Status |292|----|--------|-------|----------|--------|293| 1 | Add security validation to CI/CD | @devops | 2026-02-01 | Open |294| 2 | Update runbook with DDoS procedures | @security | 2026-01-28 | Open |295| 3 | Implement UDP traffic alerting | @sre | 2026-02-05 | Open |296297### Lessons Learned298- Automated security gates prevent configuration drift299- Regular runbook reviews are essential300- Multi-vector attacks require layered defense301```302303---304305## 8. Report Distribution306307### Classification Levels308309| Level | Audience | Content |310|-------|----------|---------|311| Executive | C-Level, Board | Summary, business impact, remediation status |312| Technical | Security Team, SOC | Full IoCs, TTPs, forensic details |313| Legal | Legal, Compliance | Data impact, regulatory implications |314| Public | Customers, Press | Sanitized summary, no technical details |315316### Retention Requirements317318| Document Type | Retention | Storage |319|---------------|-----------|---------|320| Full Incident Report | 7 years | Encrypted archive |321| IoC Data | 2 years | Threat Intelligence Platform |322| Logs & Evidence | 1 year | Immutable storage |323324---325326## 9. Checklists327328### Pre-Incident Preparation329330- [ ] Incident response runbooks documented331- [ ] On-call rotation established332- [ ] Communication templates prepared333- [ ] Evidence collection tools ready334- [ ] Stakeholder contact list updated335336### During Incident337338- [ ] Incident declared and logged339- [ ] Timeline documentation started340- [ ] Evidence preserved (logs, packets)341- [ ] Stakeholders notified342- [ ] Status page updated343344### Post-Incident345346- [ ] Full incident report completed347- [ ] Post-mortem meeting scheduled348- [ ] Action items assigned and tracked349- [ ] Lessons learned documented350- [ ] Controls validated/improved351352---353354## References355356- [NIST SP 800-61 Rev. 3](https://csrc.nist.gov/pubs/sp/800/61/r3/final) (April 2025, CSF 2.0-aligned; Rev. 2 withdrawn 2025-04-03)357- [SANS Incident Response](https://www.sans.org/white-papers/33901/)358- [MITRE ATT&CK](https://attack.mitre.org/)359- [DDoS Resiliency Score](https://www.ddosresiliencyscore.org/)360- [CISA NCISS](https://www.cisa.gov/sites/default/files/2023-01/cisa_national_cyber_incident_scoring_system_s508c.pdf)361362---363364## Credits & Attribution365366This skill draws from the "Handbuch für Advanced Security Incident Reporting" methodology,367incorporating elements of NIST SP 800-61, SANS frameworks, and industry best practices.368369Developed by webconsulting.at for the Claude skill collection.370371372Source: https://github.com/dirnbauer/webconsulting-skills