mirror of
https://github.com/mukul975/Anthropic-Cybersecurity-Skills.git
synced 2026-08-28 04:09:40 +03:00
Initial commit - 611 cybersecurity skills across all subdomains
This commit is contained in:
@@ -0,0 +1,311 @@
|
||||
---
|
||||
name: building-malware-incident-communication-template
|
||||
description: Build structured communication templates for malware incidents including stakeholder notifications, executive briefings, technical advisories, and regulatory disclosures with severity-based escalation procedures.
|
||||
domain: cybersecurity
|
||||
subdomain: incident-response
|
||||
tags: [incident-communication, malware-response, stakeholder-notification, crisis-communication, executive-briefing, regulatory-disclosure]
|
||||
version: "1.0"
|
||||
author: mahipal
|
||||
license: MIT
|
||||
---
|
||||
|
||||
# Building Malware Incident Communication Template
|
||||
|
||||
## Overview
|
||||
|
||||
Effective communication during malware incidents is critical for coordinated response, stakeholder management, and regulatory compliance. A structured communication framework ensures the right people receive appropriate information at the right time, preventing panic while maintaining transparency. Communication templates should cover internal escalation, executive briefings, technical advisories for IT teams, customer notifications, regulatory disclosures, and media statements. The framework must account for different malware types (ransomware, wiper, trojan, worm) and severity levels that drive escalation speed and audience.
|
||||
|
||||
## Communication Framework
|
||||
|
||||
### Severity Classification
|
||||
|
||||
| Severity | Description | Notification Timeline | Audience |
|
||||
|----------|-------------|----------------------|----------|
|
||||
| P1 - Critical | Ransomware, wiper, or widespread infection affecting business operations | Within 15 minutes | CISO, CEO, Legal, Board (if applicable) |
|
||||
| P2 - High | Targeted malware on critical systems, data exfiltration suspected | Within 1 hour | CISO, IT Director, Legal |
|
||||
| P3 - Medium | Contained malware infection, limited spread | Within 4 hours | Security Manager, IT Director |
|
||||
| P4 - Low | Single endpoint infection, quickly contained | Within 24 hours | Security Team Lead |
|
||||
|
||||
### Communication Channels
|
||||
|
||||
| Channel | Use Case | Security Level |
|
||||
|---------|----------|---------------|
|
||||
| Out-of-band phone calls | Initial critical notifications | Highest |
|
||||
| Encrypted messaging (Signal) | Real-time IR team coordination | High |
|
||||
| Secure email (encrypted) | Formal notifications, documentation | High |
|
||||
| War room (physical/virtual) | Ongoing incident coordination | Medium |
|
||||
| Incident ticketing system | Status tracking and documentation | Medium |
|
||||
| Company intranet | Broad employee communication | Standard |
|
||||
|
||||
## Template 1: Initial Incident Notification (Internal)
|
||||
|
||||
```
|
||||
SUBJECT: [SEVERITY] Malware Incident - Initial Notification - [DATE/TIME UTC]
|
||||
|
||||
CLASSIFICATION: CONFIDENTIAL - IR TEAM ONLY
|
||||
|
||||
INCIDENT ID: IR-[YEAR]-[NUMBER]
|
||||
DETECTION TIME: [YYYY-MM-DD HH:MM UTC]
|
||||
NOTIFICATION TIME: [YYYY-MM-DD HH:MM UTC]
|
||||
SEVERITY: [P1/P2/P3/P4]
|
||||
|
||||
SUMMARY:
|
||||
A malware incident has been detected affecting [NUMBER] systems in
|
||||
[DEPARTMENT/LOCATION]. The malware has been identified as [TYPE] with
|
||||
[KNOWN/UNKNOWN] characteristics.
|
||||
|
||||
CURRENT IMPACT:
|
||||
- Systems affected: [COUNT and DESCRIPTION]
|
||||
- Business functions impacted: [LIST]
|
||||
- Data at risk: [DESCRIPTION]
|
||||
- Current spread status: [CONTAINED/SPREADING/UNKNOWN]
|
||||
|
||||
IMMEDIATE ACTIONS TAKEN:
|
||||
1. [ACTION - e.g., Affected endpoints isolated from network]
|
||||
2. [ACTION - e.g., EDR containment policies activated]
|
||||
3. [ACTION - e.g., Security team mobilized]
|
||||
|
||||
NEXT STEPS:
|
||||
1. [PLANNED ACTION with TIMELINE]
|
||||
2. [PLANNED ACTION with TIMELINE]
|
||||
|
||||
INCIDENT COMMANDER: [NAME]
|
||||
CONTACT: [PHONE/ENCRYPTED CHANNEL]
|
||||
|
||||
NEXT UPDATE: [TIME] or sooner if situation changes
|
||||
|
||||
---
|
||||
Do not forward this notification outside the IR team.
|
||||
```
|
||||
|
||||
## Template 2: Executive Briefing
|
||||
|
||||
```
|
||||
SUBJECT: Executive Briefing - Malware Incident IR-[YEAR]-[NUMBER]
|
||||
|
||||
FOR: [CEO / CISO / CIO / Board]
|
||||
FROM: [Incident Commander]
|
||||
DATE: [DATE]
|
||||
UPDATE: [#]
|
||||
|
||||
SITUATION SUMMARY:
|
||||
[2-3 sentences describing the incident in business terms]
|
||||
|
||||
BUSINESS IMPACT:
|
||||
- Revenue impact: [ESTIMATED/NONE/UNDER ASSESSMENT]
|
||||
- Operational impact: [DESCRIPTION]
|
||||
- Customer impact: [DESCRIPTION]
|
||||
- Regulatory implications: [DESCRIPTION]
|
||||
|
||||
CURRENT STATUS: [DETECTED / CONTAINED / ERADICATING / RECOVERING]
|
||||
|
||||
KEY DECISIONS NEEDED:
|
||||
1. [DECISION with context and recommendation]
|
||||
2. [DECISION with context and recommendation]
|
||||
|
||||
TIMELINE:
|
||||
- [TIME]: Incident detected
|
||||
- [TIME]: Containment initiated
|
||||
- [TIME]: [MILESTONE]
|
||||
- [TIME]: Estimated recovery (if known)
|
||||
|
||||
EXTERNAL COMMUNICATION STATUS:
|
||||
- Regulatory notification: [REQUIRED/SUBMITTED/NOT REQUIRED]
|
||||
- Customer notification: [REQUIRED/PLANNED/NOT REQUIRED]
|
||||
- Law enforcement: [ENGAGED/PLANNED/NOT APPLICABLE]
|
||||
|
||||
RESOURCE REQUIREMENTS:
|
||||
- [RESOURCE NEED - e.g., External IR firm engagement]
|
||||
- [RESOURCE NEED - e.g., Additional hardware for rebuild]
|
||||
|
||||
NEXT UPDATE: [TIME]
|
||||
```
|
||||
|
||||
## Template 3: Technical Advisory for IT Teams
|
||||
|
||||
```
|
||||
SUBJECT: TECHNICAL ADVISORY - [MALWARE NAME] - Immediate Action Required
|
||||
|
||||
SEVERITY: [CRITICAL/HIGH/MEDIUM]
|
||||
DATE: [DATE/TIME UTC]
|
||||
ADVISORY ID: TA-[YEAR]-[NUMBER]
|
||||
|
||||
THREAT DESCRIPTION:
|
||||
[Technical description of the malware, behavior, and indicators]
|
||||
|
||||
AFFECTED SYSTEMS:
|
||||
- Operating Systems: [LIST]
|
||||
- Applications: [LIST]
|
||||
- Network segments: [LIST]
|
||||
|
||||
INDICATORS OF COMPROMISE (IOCs):
|
||||
File Hashes:
|
||||
MD5: [HASH]
|
||||
SHA256: [HASH]
|
||||
|
||||
File Names:
|
||||
[FILENAME]
|
||||
|
||||
Network Indicators:
|
||||
C2 Domains: [DOMAIN]
|
||||
C2 IPs: [IP ADDRESS]
|
||||
User-Agent: [STRING]
|
||||
|
||||
Registry Keys:
|
||||
[REGISTRY PATH]
|
||||
|
||||
DETECTION METHODS:
|
||||
- EDR: [DETECTION RULE/SIGNATURE]
|
||||
- SIEM: [CORRELATION RULE]
|
||||
- Network: [IDS/IPS SIGNATURE]
|
||||
|
||||
REQUIRED ACTIONS:
|
||||
Priority 1 (Immediate):
|
||||
[ ] Block IOCs at firewall/proxy
|
||||
[ ] Push EDR containment rules
|
||||
[ ] Scan all endpoints for IOCs
|
||||
|
||||
Priority 2 (Within 4 hours):
|
||||
[ ] Apply patches [KB/CVE NUMBER]
|
||||
[ ] Update antivirus signatures
|
||||
[ ] Review logs for historical indicators
|
||||
|
||||
Priority 3 (Within 24 hours):
|
||||
[ ] Conduct enterprise-wide hunt
|
||||
[ ] Validate backup integrity
|
||||
[ ] Update detection rules
|
||||
|
||||
CONTACT: SOC - [PHONE] | Security Engineering - [PHONE]
|
||||
```
|
||||
|
||||
## Template 4: Regulatory Notification
|
||||
|
||||
```
|
||||
[ORGANIZATION LETTERHEAD]
|
||||
|
||||
[REGULATORY BODY]
|
||||
[ADDRESS]
|
||||
|
||||
Date: [DATE]
|
||||
|
||||
RE: Data Security Incident Notification - [REFERENCE NUMBER]
|
||||
|
||||
Dear [TITLE/NAME],
|
||||
|
||||
Pursuant to [REGULATION - e.g., GDPR Article 33, State Breach Notification Law],
|
||||
[ORGANIZATION] is providing notification of a data security incident.
|
||||
|
||||
INCIDENT SUMMARY:
|
||||
On [DATE], [ORGANIZATION] detected a malware incident affecting systems containing
|
||||
[TYPE OF DATA]. The incident was detected through [DETECTION METHOD].
|
||||
|
||||
DATA POTENTIALLY AFFECTED:
|
||||
- Types of data: [PERSONAL DATA, FINANCIAL, HEALTH, etc.]
|
||||
- Number of individuals: [COUNT or ESTIMATE]
|
||||
- Categories of individuals: [CUSTOMERS, EMPLOYEES, etc.]
|
||||
|
||||
TIMELINE:
|
||||
- [DATE]: Incident occurred (estimated)
|
||||
- [DATE]: Incident detected
|
||||
- [DATE]: Containment achieved
|
||||
- [DATE]: This notification
|
||||
|
||||
MEASURES TAKEN:
|
||||
1. [CONTAINMENT ACTION]
|
||||
2. [INVESTIGATION ACTION]
|
||||
3. [REMEDIATION ACTION]
|
||||
|
||||
MEASURES TO MITIGATE ADVERSE EFFECTS:
|
||||
1. [MITIGATION - e.g., Credit monitoring offered]
|
||||
2. [MITIGATION - e.g., Password resets enforced]
|
||||
|
||||
CONTACT INFORMATION:
|
||||
[DPO/PRIVACY OFFICER NAME]
|
||||
[TITLE]
|
||||
[EMAIL]
|
||||
[PHONE]
|
||||
|
||||
Respectfully,
|
||||
[SIGNATORY]
|
||||
[TITLE]
|
||||
```
|
||||
|
||||
## Template 5: Customer/Public Notification
|
||||
|
||||
```
|
||||
SUBJECT: Important Security Notice from [ORGANIZATION]
|
||||
|
||||
Dear [CUSTOMER/USER],
|
||||
|
||||
We are writing to inform you of a security incident that may have affected
|
||||
your information.
|
||||
|
||||
WHAT HAPPENED:
|
||||
On [DATE], we detected unauthorized activity on our systems involving
|
||||
malicious software. We immediately activated our incident response procedures
|
||||
and engaged leading cybersecurity experts to investigate.
|
||||
|
||||
WHAT INFORMATION WAS INVOLVED:
|
||||
Based on our investigation, the following types of information may have
|
||||
been affected: [LIST - e.g., names, email addresses, etc.]
|
||||
|
||||
WHAT WE ARE DOING:
|
||||
- We have contained the incident and removed the malicious software
|
||||
- We have engaged [FORENSIC FIRM] to conduct a thorough investigation
|
||||
- We have enhanced our security controls to prevent similar incidents
|
||||
- We have notified relevant regulatory authorities
|
||||
|
||||
WHAT YOU CAN DO:
|
||||
- Change your password for your [ORGANIZATION] account
|
||||
- Enable multi-factor authentication if not already active
|
||||
- Monitor your accounts for unusual activity
|
||||
- [Additional specific recommendations]
|
||||
|
||||
ADDITIONAL RESOURCES:
|
||||
- [DEDICATED SUPPORT LINE]
|
||||
- [FAQ PAGE URL]
|
||||
- [CREDIT MONITORING ENROLLMENT - if applicable]
|
||||
|
||||
We sincerely apologize for any concern this may cause and remain committed
|
||||
to protecting your information.
|
||||
|
||||
[SIGNATORY]
|
||||
[TITLE]
|
||||
```
|
||||
|
||||
## Communication Workflow
|
||||
|
||||
### Escalation Matrix
|
||||
```
|
||||
Malware Detected
|
||||
|
|
||||
v
|
||||
[Classify Severity: P1/P2/P3/P4]
|
||||
|
|
||||
|-- P1: Notify within 15 min
|
||||
| |-- Incident Commander
|
||||
| |-- CISO (phone call)
|
||||
| |-- CEO (phone call)
|
||||
| |-- Legal Counsel
|
||||
| |-- External IR firm
|
||||
| |-- Law enforcement (if applicable)
|
||||
|
|
||||
|-- P2: Notify within 1 hour
|
||||
| |-- CISO
|
||||
| |-- IT Director
|
||||
| |-- Legal Counsel
|
||||
|
|
||||
|-- P3: Notify within 4 hours
|
||||
| |-- Security Manager
|
||||
| |-- IT Director
|
||||
|
|
||||
|-- P4: Notify within 24 hours
|
||||
|-- Security Team Lead
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
- NIST SP 800-61 Rev 2: Incident Communication Guidelines
|
||||
- GDPR Article 33: Data Breach Notification Requirements
|
||||
- SANS Incident Handler's Handbook: Communication Best Practices
|
||||
- CISA Incident Reporting Guidelines
|
||||
@@ -0,0 +1,51 @@
|
||||
# Malware Incident Communication Tracking Template
|
||||
|
||||
## Case Information
|
||||
| Field | Details |
|
||||
|-------|---------|
|
||||
| Case ID | |
|
||||
| Severity | P1/P2/P3/P4 |
|
||||
| Malware Type | |
|
||||
| Communication Lead | |
|
||||
|
||||
## Notification Tracker
|
||||
| Stakeholder | Method | Time Sent | Acknowledged | By Whom |
|
||||
|------------|--------|-----------|--------------|---------|
|
||||
| CISO | Phone | | | |
|
||||
| CEO | Phone | | | |
|
||||
| Legal | Email | | | |
|
||||
| IT Director | Slack | | | |
|
||||
| Board | Email | | | |
|
||||
|
||||
## Update Log
|
||||
| Update # | Time (UTC) | Type | Recipients | Summary |
|
||||
|----------|------------|------|------------|---------|
|
||||
| 1 | | Initial | | |
|
||||
| 2 | | Status | | |
|
||||
|
||||
## Regulatory Notifications
|
||||
| Regulation | Required | Deadline | Sent | Confirmed |
|
||||
|-----------|----------|----------|------|-----------|
|
||||
| GDPR (DPA) | | 72 hours | | |
|
||||
| HIPAA (HHS) | | 60 days | | |
|
||||
| State Breach | | Varies | | |
|
||||
| SEC (8-K) | | 4 bus days | | |
|
||||
|
||||
## Customer Communication
|
||||
- [ ] Notification drafted
|
||||
- [ ] Legal review complete
|
||||
- [ ] Executive approval
|
||||
- [ ] Support resources ready
|
||||
- [ ] Notification sent
|
||||
- [ ] FAQ published
|
||||
|
||||
## Media Handling
|
||||
- [ ] Holding statement prepared
|
||||
- [ ] Spokesperson designated
|
||||
- [ ] Media inquiry response approved
|
||||
- [ ] Social media monitoring active
|
||||
|
||||
## Lessons Learned (Communication)
|
||||
- What worked well:
|
||||
- What needs improvement:
|
||||
- Template updates needed:
|
||||
@@ -0,0 +1,36 @@
|
||||
# Standards for Incident Communication
|
||||
|
||||
## NIST SP 800-61 Rev 2
|
||||
- Incident communication guidelines and templates
|
||||
- Stakeholder notification requirements
|
||||
- Media handling procedures
|
||||
|
||||
## GDPR Article 33 and 34
|
||||
- 72-hour notification to supervisory authority
|
||||
- Communication to affected data subjects
|
||||
- Required content for breach notifications
|
||||
|
||||
## HIPAA Breach Notification Rule
|
||||
- 60-day notification to HHS for breaches affecting 500+ individuals
|
||||
- Individual notification requirements
|
||||
- Media notification for large breaches
|
||||
|
||||
## PCI DSS Incident Response
|
||||
- Card brand notification requirements
|
||||
- Forensic investigation reporting
|
||||
- Merchant and service provider obligations
|
||||
|
||||
## SEC Cybersecurity Disclosure Rules (2024)
|
||||
- Material cybersecurity incident disclosure within 4 business days
|
||||
- Annual reporting on cybersecurity risk management
|
||||
- Board oversight disclosure requirements
|
||||
|
||||
## CISA Incident Reporting
|
||||
- CIRCIA mandatory reporting requirements
|
||||
- Federal agency notification procedures
|
||||
- Voluntary reporting guidelines
|
||||
|
||||
## ISO 27035 - Information Security Incident Management
|
||||
- Communication planning requirements
|
||||
- Stakeholder identification and notification
|
||||
- Post-incident communication review
|
||||
@@ -0,0 +1,104 @@
|
||||
# Malware Incident Communication Workflows
|
||||
|
||||
## Workflow 1: Initial Notification Chain
|
||||
|
||||
```
|
||||
START: Malware Incident Confirmed
|
||||
|
|
||||
v
|
||||
[Classify Severity]
|
||||
|-- P1: Critical (ransomware, wiper, widespread)
|
||||
|-- P2: High (targeted, data exfiltration)
|
||||
|-- P3: Medium (contained infection)
|
||||
|-- P4: Low (single endpoint, quickly resolved)
|
||||
|
|
||||
v
|
||||
[Send Initial Notification]
|
||||
|-- Use appropriate template for severity
|
||||
|-- Send via secure out-of-band channel for P1/P2
|
||||
|-- Include: What happened, current impact, actions taken
|
||||
|
|
||||
v
|
||||
[Establish Communication Cadence]
|
||||
|-- P1: Every 2 hours or on significant changes
|
||||
|-- P2: Every 4 hours
|
||||
|-- P3: Every 8 hours
|
||||
|-- P4: Daily summary
|
||||
|
|
||||
v
|
||||
[Track Notifications Sent]
|
||||
|-- Log all communications
|
||||
|-- Record recipients and timestamps
|
||||
|-- Document approval chain
|
||||
|
|
||||
v
|
||||
END: Communication Cadence Established
|
||||
```
|
||||
|
||||
## Workflow 2: Regulatory Notification Decision
|
||||
|
||||
```
|
||||
START: Incident Scope Determined
|
||||
|
|
||||
v
|
||||
[Personal Data Involved?]
|
||||
|-- No --> Document decision, continue monitoring
|
||||
|-- Yes --> Assess regulatory requirements
|
||||
|
|
||||
v
|
||||
[Determine Applicable Regulations]
|
||||
|-- GDPR: EU resident data?
|
||||
|-- HIPAA: Protected health information?
|
||||
|-- PCI DSS: Payment card data?
|
||||
|-- State laws: US state breach notification?
|
||||
|-- SEC: Material to publicly traded company?
|
||||
|
|
||||
v
|
||||
[Prepare Regulatory Notification]
|
||||
|-- Legal review of notification content
|
||||
|-- Determine notification timeline
|
||||
|-- Identify regulatory contact points
|
||||
|
|
||||
v
|
||||
[Submit Notification]
|
||||
|-- Send within required timeframe
|
||||
|-- Document submission confirmation
|
||||
|-- Track response from regulators
|
||||
|
|
||||
v
|
||||
END: Regulatory Obligations Met
|
||||
```
|
||||
|
||||
## Workflow 3: Customer Communication
|
||||
|
||||
```
|
||||
START: Customer Notification Required
|
||||
|
|
||||
v
|
||||
[Draft Customer Notification]
|
||||
|-- Use customer notification template
|
||||
|-- Include: What, when, impact, actions, resources
|
||||
|-- Avoid technical jargon
|
||||
|
|
||||
v
|
||||
[Legal and PR Review]
|
||||
|-- Legal counsel approval
|
||||
|-- PR/Communications review
|
||||
|-- Executive sign-off
|
||||
|
|
||||
v
|
||||
[Prepare Support Resources]
|
||||
|-- Set up dedicated hotline
|
||||
|-- Create FAQ page
|
||||
|-- Brief customer support team
|
||||
|-- Prepare credit monitoring (if applicable)
|
||||
|
|
||||
v
|
||||
[Send Notification]
|
||||
|-- Email to affected customers
|
||||
|-- Website notice
|
||||
|-- Media statement (if needed)
|
||||
|
|
||||
v
|
||||
END: Customer Notification Complete
|
||||
```
|
||||
@@ -0,0 +1,292 @@
|
||||
"""
|
||||
Malware Incident Communication Template Generator
|
||||
Generates severity-appropriate communication templates for malware incidents.
|
||||
"""
|
||||
|
||||
import json
|
||||
from datetime import datetime, timezone
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
class IncidentCommunicationGenerator:
|
||||
"""Generates incident communication templates based on severity and type."""
|
||||
|
||||
SEVERITY_LEVELS = {
|
||||
"P1": {"name": "Critical", "notify_minutes": 15, "update_hours": 2},
|
||||
"P2": {"name": "High", "notify_minutes": 60, "update_hours": 4},
|
||||
"P3": {"name": "Medium", "notify_minutes": 240, "update_hours": 8},
|
||||
"P4": {"name": "Low", "notify_minutes": 1440, "update_hours": 24},
|
||||
}
|
||||
|
||||
STAKEHOLDER_MATRIX = {
|
||||
"P1": ["incident_commander", "ciso", "ceo", "legal", "board", "external_ir", "law_enforcement"],
|
||||
"P2": ["incident_commander", "ciso", "it_director", "legal"],
|
||||
"P3": ["security_manager", "it_director"],
|
||||
"P4": ["security_team_lead"],
|
||||
}
|
||||
|
||||
def __init__(self, org_name="Organization", output_dir="communication_output"):
|
||||
self.org_name = org_name
|
||||
self.output_dir = Path(output_dir)
|
||||
self.output_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
def generate_initial_notification(self, case_id, severity, malware_type,
|
||||
affected_systems, impact_description):
|
||||
"""Generate initial incident notification."""
|
||||
now = datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M UTC")
|
||||
sev_info = self.SEVERITY_LEVELS.get(severity, self.SEVERITY_LEVELS["P2"])
|
||||
|
||||
notification = f"""SUBJECT: [{severity} - {sev_info['name']}] Malware Incident - Initial Notification - {now}
|
||||
|
||||
CLASSIFICATION: CONFIDENTIAL - IR TEAM ONLY
|
||||
|
||||
INCIDENT ID: {case_id}
|
||||
DETECTION TIME: {now}
|
||||
NOTIFICATION TIME: {now}
|
||||
SEVERITY: {severity} - {sev_info['name']}
|
||||
|
||||
SUMMARY:
|
||||
A malware incident has been detected affecting {len(affected_systems)} system(s).
|
||||
The malware has been identified as {malware_type}.
|
||||
|
||||
CURRENT IMPACT:
|
||||
- Systems affected: {', '.join(affected_systems)}
|
||||
- Business impact: {impact_description}
|
||||
- Current spread status: Under investigation
|
||||
|
||||
IMMEDIATE ACTIONS TAKEN:
|
||||
1. Affected endpoints have been isolated from the network
|
||||
2. EDR containment policies have been activated
|
||||
3. Security operations team has been mobilized
|
||||
4. Forensic evidence preservation has been initiated
|
||||
|
||||
NEXT STEPS:
|
||||
1. Complete scope assessment within the next 2 hours
|
||||
2. Deploy IOC-based hunting across enterprise
|
||||
3. Engage external IR support if needed
|
||||
|
||||
INCIDENT COMMANDER: [Assigned IC Name]
|
||||
CONTACT: [Secure Communication Channel]
|
||||
|
||||
NEXT UPDATE: {sev_info['update_hours']} hours or sooner if situation changes
|
||||
|
||||
---
|
||||
Do not forward this notification outside the IR team.
|
||||
"""
|
||||
output_file = self.output_dir / f"{case_id}_initial_notification.txt"
|
||||
with open(output_file, "w") as f:
|
||||
f.write(notification)
|
||||
|
||||
print(f"[+] Initial notification generated: {output_file}")
|
||||
return notification
|
||||
|
||||
def generate_executive_briefing(self, case_id, severity, incident_summary,
|
||||
business_impact, status, decisions_needed):
|
||||
"""Generate executive briefing document."""
|
||||
now = datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M UTC")
|
||||
|
||||
briefing = f"""SUBJECT: Executive Briefing - Malware Incident {case_id}
|
||||
|
||||
FOR: CISO / CEO / CIO
|
||||
FROM: Incident Commander
|
||||
DATE: {now}
|
||||
|
||||
SITUATION SUMMARY:
|
||||
{incident_summary}
|
||||
|
||||
BUSINESS IMPACT:
|
||||
{business_impact}
|
||||
|
||||
CURRENT STATUS: {status}
|
||||
|
||||
KEY DECISIONS NEEDED:
|
||||
"""
|
||||
for i, decision in enumerate(decisions_needed, 1):
|
||||
briefing += f"{i}. {decision}\n"
|
||||
|
||||
briefing += f"""
|
||||
EXTERNAL COMMUNICATION STATUS:
|
||||
- Regulatory notification: Under assessment by Legal
|
||||
- Customer notification: Under assessment
|
||||
- Law enforcement: Under assessment
|
||||
|
||||
NEXT UPDATE: As determined by severity level
|
||||
"""
|
||||
output_file = self.output_dir / f"{case_id}_executive_briefing.txt"
|
||||
with open(output_file, "w") as f:
|
||||
f.write(briefing)
|
||||
|
||||
print(f"[+] Executive briefing generated: {output_file}")
|
||||
return briefing
|
||||
|
||||
def generate_technical_advisory(self, case_id, malware_name, description,
|
||||
iocs, affected_systems, required_actions):
|
||||
"""Generate technical advisory for IT teams."""
|
||||
now = datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M UTC")
|
||||
|
||||
advisory = f"""SUBJECT: TECHNICAL ADVISORY - {malware_name} - Immediate Action Required
|
||||
|
||||
SEVERITY: CRITICAL
|
||||
DATE: {now}
|
||||
ADVISORY ID: TA-{case_id}
|
||||
|
||||
THREAT DESCRIPTION:
|
||||
{description}
|
||||
|
||||
AFFECTED SYSTEMS:
|
||||
"""
|
||||
for system in affected_systems:
|
||||
advisory += f"- {system}\n"
|
||||
|
||||
advisory += "\nINDICATORS OF COMPROMISE (IOCs):\n"
|
||||
|
||||
if "hashes" in iocs:
|
||||
advisory += "\nFile Hashes:\n"
|
||||
for h in iocs["hashes"]:
|
||||
advisory += f" {h['type']}: {h['value']}\n"
|
||||
|
||||
if "domains" in iocs:
|
||||
advisory += "\nC2 Domains:\n"
|
||||
for d in iocs["domains"]:
|
||||
advisory += f" {d}\n"
|
||||
|
||||
if "ips" in iocs:
|
||||
advisory += "\nC2 IP Addresses:\n"
|
||||
for ip in iocs["ips"]:
|
||||
advisory += f" {ip}\n"
|
||||
|
||||
if "filenames" in iocs:
|
||||
advisory += "\nFile Names:\n"
|
||||
for fn in iocs["filenames"]:
|
||||
advisory += f" {fn}\n"
|
||||
|
||||
advisory += "\nREQUIRED ACTIONS:\n"
|
||||
for i, action in enumerate(required_actions, 1):
|
||||
advisory += f"{i}. [{action.get('priority', 'MEDIUM')}] {action['description']}\n"
|
||||
|
||||
output_file = self.output_dir / f"{case_id}_technical_advisory.txt"
|
||||
with open(output_file, "w") as f:
|
||||
f.write(advisory)
|
||||
|
||||
print(f"[+] Technical advisory generated: {output_file}")
|
||||
return advisory
|
||||
|
||||
def generate_regulatory_notification(self, case_id, regulation, data_types,
|
||||
affected_count, timeline_events):
|
||||
"""Generate regulatory breach notification."""
|
||||
now = datetime.now(timezone.utc).strftime("%Y-%m-%d")
|
||||
|
||||
notification = f"""[ORGANIZATION LETTERHEAD]
|
||||
|
||||
Date: {now}
|
||||
RE: Data Security Incident Notification - {case_id}
|
||||
|
||||
Pursuant to {regulation}, {self.org_name} is providing notification
|
||||
of a data security incident.
|
||||
|
||||
INCIDENT SUMMARY:
|
||||
On {timeline_events.get('detected', now)}, {self.org_name} detected a malware incident
|
||||
affecting systems containing {', '.join(data_types)}.
|
||||
|
||||
DATA POTENTIALLY AFFECTED:
|
||||
- Types of data: {', '.join(data_types)}
|
||||
- Number of individuals: {affected_count}
|
||||
|
||||
TIMELINE:
|
||||
- Incident occurred (estimated): {timeline_events.get('occurred', 'Under investigation')}
|
||||
- Incident detected: {timeline_events.get('detected', now)}
|
||||
- Containment achieved: {timeline_events.get('contained', 'In progress')}
|
||||
- This notification: {now}
|
||||
|
||||
MEASURES TAKEN:
|
||||
1. Immediate containment of affected systems
|
||||
2. Engagement of external forensic investigators
|
||||
3. Enhanced monitoring and security controls
|
||||
4. Comprehensive review of security posture
|
||||
|
||||
CONTACT INFORMATION:
|
||||
[Data Protection Officer / Privacy Officer]
|
||||
{self.org_name}
|
||||
[Contact Details]
|
||||
"""
|
||||
output_file = self.output_dir / f"{case_id}_regulatory_notification.txt"
|
||||
with open(output_file, "w") as f:
|
||||
f.write(notification)
|
||||
|
||||
print(f"[+] Regulatory notification generated: {output_file}")
|
||||
return notification
|
||||
|
||||
def generate_full_communication_pack(self, case_id, severity, malware_type,
|
||||
malware_name, affected_systems, impact,
|
||||
iocs=None):
|
||||
"""Generate complete communication pack for an incident."""
|
||||
print(f"[*] Generating full communication pack for {case_id}")
|
||||
|
||||
self.generate_initial_notification(
|
||||
case_id, severity, malware_type, affected_systems, impact
|
||||
)
|
||||
|
||||
self.generate_executive_briefing(
|
||||
case_id, severity,
|
||||
f"A {malware_type} incident has been detected affecting {len(affected_systems)} systems.",
|
||||
impact, "CONTAINMENT IN PROGRESS",
|
||||
["Approve engagement of external IR firm",
|
||||
"Approve customer notification if data exposure confirmed"]
|
||||
)
|
||||
|
||||
self.generate_technical_advisory(
|
||||
case_id, malware_name or malware_type,
|
||||
f"{malware_type} detected on enterprise systems",
|
||||
iocs or {},
|
||||
affected_systems,
|
||||
[
|
||||
{"priority": "CRITICAL", "description": "Block all IOCs at perimeter"},
|
||||
{"priority": "HIGH", "description": "Scan all endpoints for indicators"},
|
||||
{"priority": "MEDIUM", "description": "Verify backup integrity"},
|
||||
]
|
||||
)
|
||||
|
||||
manifest = {
|
||||
"case_id": case_id,
|
||||
"severity": severity,
|
||||
"generated": datetime.now(timezone.utc).isoformat(),
|
||||
"documents": [
|
||||
f"{case_id}_initial_notification.txt",
|
||||
f"{case_id}_executive_briefing.txt",
|
||||
f"{case_id}_technical_advisory.txt",
|
||||
],
|
||||
"stakeholders": self.STAKEHOLDER_MATRIX.get(severity, []),
|
||||
}
|
||||
|
||||
manifest_file = self.output_dir / f"{case_id}_communication_manifest.json"
|
||||
with open(manifest_file, "w") as f:
|
||||
json.dump(manifest, f, indent=2)
|
||||
|
||||
print(f"[+] Full communication pack generated in {self.output_dir}/")
|
||||
return manifest
|
||||
|
||||
|
||||
def main():
|
||||
import argparse
|
||||
|
||||
parser = argparse.ArgumentParser(description="Malware Incident Communication Generator")
|
||||
parser.add_argument("--case-id", default="IR-2025-001")
|
||||
parser.add_argument("--severity", choices=["P1", "P2", "P3", "P4"], default="P1")
|
||||
parser.add_argument("--malware-type", default="ransomware")
|
||||
parser.add_argument("--malware-name", default="Unknown")
|
||||
parser.add_argument("--affected", nargs="+", default=["SRV-01", "WKS-042"])
|
||||
parser.add_argument("--impact", default="Business operations partially disrupted")
|
||||
parser.add_argument("--org", default="Organization")
|
||||
parser.add_argument("-o", "--output", default="communication_output")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
generator = IncidentCommunicationGenerator(org_name=args.org, output_dir=args.output)
|
||||
generator.generate_full_communication_pack(
|
||||
args.case_id, args.severity, args.malware_type,
|
||||
args.malware_name, args.affected, args.impact
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user