Lesson 2 of 5 · 25 min read

Incident Report Writing — For Every Audience

An incident report is the permanent record of what happened, what you found, what you did, and what to do next. It’s read by people who make budget decisions, people who file regulatory notifications, and people who build better defenses. Writing one well requires knowing which reader you’re writing for in each section.


Report Structure

Section 1: Executive Summary (1 paragraph)

Audience: CISO, CEO, board, legal. Reads this section only.

What to include:

Template:

On [date], our security operations team identified [description of incident in plain language].
The incident [began / was first detected] at [time] and was [contained / is ongoing] as of [time].
[Number] [systems / user accounts / data records] were affected.
[Data type] was [confirmed / potentially] accessed.
The immediate threat has been [removed / is under investigation].
[Decision needed: whether to notify customers / regulators / insurance].

Example:

On August 14, 2024, our security team detected that a finance employee's email account
was taken over by an attacker using a sophisticated phishing technique that bypasses
multi-factor authentication. The attacker had access to the account for approximately
25 minutes between 09:21 and 09:46 AM EST. During that time, they read email content
and sent one fraudulent payment request to our finance team. The fraudulent wire transfer
was intercepted before processing. The employee's account has been secured. Legal and
compliance must determine if this constitutes a reportable incident under our cyber
insurance policy.

Section 2: Incident Timeline

Audience: IR team, auditors, legal, compliance.

Format: Chronological table with UTC timestamps and evidence citations.

| Timestamp (UTC)        | Actor    | Event                                      | Evidence Source       | Confidence |
|------------------------|----------|--------------------------------------------|-----------------------|------------|
| 2024-08-14 09:14:22    | Attacker | Phishing email delivered to jdoe@corp.com  | Exchange Msg Trace    | Confirmed  |
| 2024-08-14 09:21:03    | Victim   | jdoe opened phishing email, clicked link   | Exchange UAL ReadItems| Confirmed  |
| 2024-08-14 09:21:14    | System   | M365 sign-in: jdoe from corp VPN           | Entra SigninLogs      | Confirmed  |
| 2024-08-14 09:21:17    | Attacker | Session token replayed from 185.220.101.44 | Entra SigninLogs      | Confirmed  |
| 2024-08-14 09:22–09:47 | Attacker | MailItemsAccessed from 185.220.101.44      | M365 UAL              | Confirmed  |
| 2024-08-14 09:50:31    | Attacker | New-InboxRule created (delete finance mail)| M365 UAL              | Confirmed  |
| 2024-08-14 09:51:14    | Attacker | BEC email sent to ap-team@corp.com         | Exchange UAL Send     | Confirmed  |
| 2024-08-14 10:14:30    | SOC      | Incident detected via DLP alert            | SIEM Alert TKT-4421   | N/A        |
| 2024-08-14 10:15:00    | SOC      | Inbox rule removed                         | Analyst action log    | N/A        |
| 2024-08-14 10:17:00    | SOC      | All sessions revoked for jdoe              | Entra admin log       | N/A        |
| 2024-08-14 10:22:00    | SOC      | Finance team contacted — wire not processed| Call log + ticket     | N/A        |

Section 3: Technical Findings

Audience: Security engineers, IR team, detection team.

What to include:

IOC table:

INDICATORS OF COMPROMISE
  Type          Value                        Confidence  Status
  Domain        corp-finance.net             Confirmed   Blocked (gateway + DNS)
  Domain        secure-docs.corp-finance.net Confirmed   Blocked
  IP            185.220.101.44               Confirmed   Blocked (firewall)
  Email         mikes@corp-finance.net       Confirmed   Blocked
  Inbox Rule    "Delete if contains: finance alert" Confirmed  Removed

ATT&CK CHAIN
  T1566.002     Spearphishing Link — phishing email with link to AiTM proxy
  T1557         Adversary-in-the-Middle — proxy captured session token post-MFA
  T1528         Steal Application Access Token — session cookie theft
  T1114.002     Email Collection: Remote Email Collection — attacker read mailbox
  T1564.008     Hide Artifacts: Email Hiding Rules — inbox rule to delete alerts
  T1534         Internal Spearphishing — BEC email sent from victim's account

Section 4: Impact Assessment

Audience: Legal, compliance, executive team, possibly regulators.

AFFECTED SYSTEMS
  Primary: jdoe@corp.com mailbox — compromised for 25 minutes
  Secondary: Finance team received fraudulent BEC email (no wire processed)

DATA AT RISK
  Mailbox content visible to attacker: jdoe's inbox and sent items (approx. 3 months)
  Known sensitive items: Q3 invoice list (no SSNs, no financial account numbers)
  Unknown: attacker may have extracted attachments (no confirm — UAL shows read events
           but not attachment download events; this is a forensic limitation)

REGULATORY IMPLICATIONS
  GDPR: Employee personal data in email — notification to DPO required
  Cyber insurance: Policy clause 3.2 requires notification within 72h of discovery
  PCI-DSS: No cardholder data in jdoe's mailbox — PCI notification not triggered

BUSINESS IMPACT
  Financial: Wire transfer not processed — no direct financial loss from BEC
  Operational: jdoe's account unavailable for 4 hours during re-enrollment
  Reputational: No customer-facing impact

Section 5: Remediation & Recommendations

Audience: Security engineering, management, compliance.

Short-term (completed):

Long-term recommendations:

1. DMARC policy: upgrade corp.com from p=quarantine to p=reject
   Owner: email-security team | Priority: High | Deadline: 30 days

2. Detection rule: alert on MailItemsAccessed from new IP within 60 min of phishing delivery
   Owner: detection-engineering | Priority: High | Deadline: 14 days

3. MFA policy: pilot FIDO2/passkeys for finance team (AiTM defeats push/TOTP MFA)
   Owner: identity team | Priority: Medium | Deadline: Q4 planning

4. Security awareness: targeted AiTM simulation for finance team
   Owner: security-awareness | Priority: Medium | Deadline: 60 days