Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Configure security information and event management (SIEM) systems for threat detection, log aggregation, and compliance. Use when implementing centralized security logging, writing detection rules, or meeting audit requirements across cloud and on-premise infrastructure.
.claude/skills/ancoleman-siem-logging/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-10 | ✗→✓ | ▲ Improved | 87% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 152% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 236% | 0% |
| case-21 | ✗→✓ | ▲ Improved | 158% | 0% |
| case-16 | ✓→✗ | ▼ Worse | 257% | 0% |
Configure comprehensive security logging infrastructure using SIEM platforms (Elastic SIEM, Microsoft Sentinel, Wazuh, Splunk) to detect threats, investigate incidents, and maintain compliance audit trails. This skill covers platform selection, log aggregation architecture, detection rule development (SIGMA format and platform-specific), alert tuning, and retention policies for regulatory compliance (GDPR, HIPAA, PCI DSS, SOC 2).
Use this skill when:
Choose SIEM platform based on:
Budget Considerations:
Infrastructure Context:
Data Volume:
Team Expertise:
| Platform | Cost | Deployment | Best For | |----------|------|------------|----------| | Elastic SIEM | $$$ | Cloud/Self-Hosted | Multi-cloud, customization needs, DevOps teams | | Microsoft Sentinel | $$$ | Cloud (Azure) | Azure-heavy orgs, built-in SOAR, cloud-first | | Wazuh | Free | Self-Hosted | Cost-conscious, SMBs, compliance requirements | | Splunk ES | $$$$$ | Cloud/On-Prem | Large enterprises, massive scale, unlimited budget |
For detailed feature comparison, see references/platform-comparison.md.
SIGMA provides a universal detection rule format that compiles to any SIEM query language (Elastic EQL, Splunk SPL, Microsoft KQL).
SIGMA Rule Structure:
yamltitle: Multiple Failed Login Attempts from Single Source id: 8a9e3c7f-4b2d-4e8a-9f1c-2d5e6f7a8b9c status: stable description: Detects potential brute force attacks (10+ failed logins in 10 minutes) author: Security Team date: 2025/12/03 references: - https://attack.mitre.org/techniques/T1110/ tags: - attack.credential_access - attack.t1110 logsource: category: authentication product: linux detection: selection: event.type: authentication event.outcome: failure timeframe: 10m condition: selection | count() by source.ip > 10 level: high
Compile SIGMA to Platform-Specific:
bash# Install SIGMA compiler pip install sigma-cli # Compile to Elastic EQL sigmac -t es-eql sigma_rule.yml # Compile to Splunk SPL sigmac -t splunk sigma_rule.yml # Compile to Microsoft KQL sigmac -t kusto sigma_rule.yml
Elastic EQL (Event Query Language):
eqlsequence by user.name with maxspan=5m [process where process.name == "powershell.exe" and process.args : ("Invoke-WebRequest", "iwr", "wget")] [process where process.parent.name == "powershell.exe"]
Microsoft Sentinel KQL:
kqlSigninLogs | where TimeGenerated > ago(1h) | where ResultType != 0 // Failed login | summarize FailedAttempts=count() by UserPrincipalName, IPAddress | where FailedAttempts >= 10
Splunk SPL:
splindex=web_logs sourcetype=access_combined | rex field=uri "(?<sql_keywords>union|select|insert|update|delete)" | where isnotnull(sql_keywords) | stats count by src_ip, uri | where count > 5
For comprehensive detection rule examples, see:
examples/sigma-rules/ - Universal SIGMA detection rulesexamples/elastic-eql/ - Elastic-specific queriesexamples/microsoft-kql/ - Microsoft Sentinel queriesexamples/splunk-spl/ - Splunk searchesreferences/detection-rules-guide.md - Complete guideSingle SIEM instance for all logs. Use when:
Architecture:
Application Servers → Log Shippers (Filebeat/Fluentd)
↓
Log Aggregator (Logstash/Fluentd)
↓
SIEM Platform (Elasticsearch/Splunk/Sentinel)
↓
Security Analysts (Dashboard/Alerts)Regional SIEM instances with global aggregation. Use when:
Architecture:
Global SIEM (Correlation, Threat Intelligence)
↓
Regional SIEM (US-East) | Regional SIEM (EU-West) | Regional SIEM (APAC)
↓ ↓ ↓
Local Logs Local Logs Local LogsLeverage managed cloud services. Use when:
AWS Example:
CloudTrail + VPC Flow Logs + GuardDuty
↓
AWS Security Lake (S3 Data Lake)
↓
OpenSearch (Analysis) | Athena (SQL Queries)For deployment examples, see:
examples/architectures/elk-stack-docker-compose.ymlexamples/architectures/fluentd-kubernetes-daemonset.yamlexamples/architectures/aws-security-lake-terraform/examples/architectures/wazuh-docker-compose.ymlreferences/cloud-native-logging.mdFluentd (Cloud-Native): CNCF project for Kubernetes and multi-cloud environments. Use for containerized applications.
Logstash (Elastic Stack): Native Elasticsearch integration. Use for advanced parsing (grok patterns) and data enrichment.
For complete configuration examples, see examples/logstash-pipelines/ and references/cloud-native-logging.md.
| Framework | Minimum Retention | Hot Storage | Warm Storage | Cold Storage | |-----------|------------------|-------------|--------------|--------------| | GDPR | 30-90 days | 7 days | 30 days | 60 days | | HIPAA | 6 years | 30 days | 180 days | 6 years | | PCI DSS | 1 year | 90 days | 180 days | 1 year | | SOC 2 | 1 year | 30 days | 90 days | 1 year |
Hot Tier (SSD, Real-Time):
Warm Tier (HDD, Recent):
Cold Tier (S3/Blob, Archive):
Example Cost Optimization:
500 GB/day log volume, 1-year retention
Hot (30 days): 15 TB @ $0.10/GB = $1,500/month
Warm (60 days): 30 TB @ $0.05/GB = $1,500/month
Cold (275 days): 137.5 TB @ $0.01/GB = $1,375/month
Total: $4,375/month = $52,500/year
vs. Hot-only: $18,250/month = $219,000/year
Savings: 76% ($166,500/year)For detailed retention policies and cost optimization, see:
references/log-retention-policies.mdreferences/cost-optimization.mdscripts/cost-calculator.pyCritical Events (MUST LOG):
Severity Levels: Failed auth (3+): HIGH alert | Privilege escalation: CRITICAL alert | Data export: HIGH alert | Config change: MEDIUM (no alert)
Whitelisting (Known-Safe Patterns):
yaml# Example: Allow scanner IPs - rule_id: brute_force_detection whitelist: - source_ip: "10.0.0.100" # Security scanner - user_agent: "Nagios" # Monitoring system
Threshold Tuning:
yaml# Before: Too sensitive (500 alerts/day, 5% true positive rate) - rule: failed_login_attempts threshold: 3 attempts in 5 minutes # After: Tuned (50 alerts/day, 40% true positive rate) - rule: failed_login_attempts threshold: 10 attempts in 10 minutes
Multi-Event Correlation:
yaml# Instead of: Single event alert - alert_on: "Failed authentication" # Use: Correlated pattern - alert_on: - "Failed authentication (5+ times)" - AND "From new IP address" - AND "Successful authentication follows" - WITHIN: 30 minutes
| Metric | Target | |--------|--------| | Total Alerts/Day | <100 | | True Positive Rate | >30% | | Mean Time to Investigate | <15 min | | False Positive Rate | <50% | | Critical Alerts/Day | <10 |
For comprehensive alert tuning strategies, see references/alert-tuning-strategies.md.
Deploy Wazuh: git clone https://github.com/wazuh/wazuh-docker.git && cd wazuh-docker/single-node && docker-compose up -d (see examples/architectures/wazuh-docker-compose.yml)
Create SIGMA Rule: See examples/sigma-rules/brute-force-detection.yml for SSH brute force detection template
Elastic Cloud: Sign up at cloud.elastic.co, create Security tier deployment, install Elastic Agent on endpoints
observability skill:
incident-management skill:
security-hardening skill:
building-ci-pipelines skill:
secret-management skill:
references/platform-comparison.md - Comprehensive SIEM platform feature comparisonreferences/detection-rules-guide.md - Detection rule formats (SIGMA, EQL, KQL, SPL)references/log-retention-policies.md - Compliance requirements and retention strategiesreferences/cloud-native-logging.md - AWS, Azure, GCP, Kubernetes logging setupreferences/alert-tuning-strategies.md - False positive reduction and alert optimizationreferences/cost-optimization.md - Storage tiering and cost managementexamples/sigma-rules/ - Universal SIGMA detection rules (10+ examples)examples/elastic-eql/ - Elastic Event Query Language queriesexamples/microsoft-kql/ - Microsoft Sentinel Kusto queriesexamples/splunk-spl/ - Splunk Search Processing Languageexamples/architectures/ - Complete deployment examples (Docker, Kubernetes, Terraform)examples/logstash-pipelines/ - Logstash pipeline configurationsscripts/sigma-to-elastic.sh - Convert SIGMA rules to Elastic EQLscripts/cost-calculator.py - Estimate SIEM costs based on volume and retention| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-06 | pass→pass | 4,779 | 3,562 | -25% | 1 | 1 | 0% | 792 | 4,192 | +429% | 0 | 0 | — |
case-01 | pass→pass | 13,575 | 11,478 | -15% | 1 | 1 | 0% | 2,171 | 5,447 | +151% | 0 | 0 | — |
case-02 | pass→pass | 6,449 | 5,303 | -18% | 1 | 1 | 0% | 1,025 | 4,457 | +335% | 0 | 0 | — |
case-03 | pass→pass | 12,427 | 6,085 | -51% | 1 | 1 | 0% | 1,831 | 4,540 | +148% | 0 | 0 | — |
case-04 | pass→pass | 10,248 | 14,010 | +37% | 1 | 1 | 0% | 1,669 | 5,866 | +251% | 0 | 0 | — |
case-05 | pass→pass | 6,246 | 4,488 | -28% | 1 | 1 | 0% | 966 | 4,330 | +348% | 0 | 0 | — |
case-11 | pass→pass | 11,310 | 2,992 | -74% | 1 | 1 | 0% | 1,742 | 3,988 | +129% | 0 | 0 | — |
case-07 | pass→pass | 7,917 | 4,306 | -46% | 1 | 1 | 0% | 1,220 | 4,245 | +248% | 0 | 0 | — |
case-08 | pass→pass | 9,839 | 4,785 | -51% | 1 | 1 | 0% | 1,598 | 4,360 | +173% | 0 | 0 | — |
case-09 | pass→pass | 13,012 | 5,004 | -62% | 1 | 1 | 0% | 2,093 | 4,323 | +107% | 0 | 0 | — |
case-10 | fail→pass | 15,302 | 8,428 | -45% | 1 | 1 | 0% | 2,687 | 5,030 | +87% | 0 | 0 | — |
case-12 | fail→pass | 10,312 | 3,930 | -62% | 1 | 1 | 0% | 1,643 | 4,144 | +152% | 0 | 0 | — |
case-13 | pass→pass | 8,532 | 3,397 | -60% | 1 | 1 | 0% | 1,467 | 4,049 | +176% | 0 | 0 | — |
case-14 | fail→pass | 8,918 | 7,275 | -18% | 1 | 1 | 0% | 1,392 | 4,672 | +236% | 0 | 0 | — |
case-15 | pass→pass | 7,640 | 6,685 | -13% | 1 | 1 | 0% | 1,184 | 4,695 | +297% | 0 | 0 | — |
case-16 | pass→fail | 7,828 | 7,955 | +2% | 1 | 1 | 0% | 1,400 | 5,002 | +257% | 0 | 0 | — |
case-17 | fail→fail | 12,708 | 14,172 | +12% | 1 | 1 | 0% | 2,373 | 6,224 | +162% | 0 | 0 | — |
case-18 | pass→pass | 10,655 | 11,430 | +7% | 1 | 1 | 0% | 1,872 | 5,193 | +177% | 0 | 0 | — |
case-19 | pass→pass | 10,077 | 6,511 | -35% | 1 | 1 | 0% | 1,618 | 4,705 | +191% | 0 | 0 | — |
case-20 | pass→pass | 16,432 | 12,358 | -25% | 1 | 1 | 0% | 2,525 | 5,392 | +114% | 0 | 0 | — |
case-21 | fail→pass | 14,869 | 13,032 | -12% | 1 | 1 | 0% | 2,273 | 5,859 | +158% | 0 | 0 | — |
case-22 | pass→pass | 3,209 | 2,830 | -12% | 1 | 1 | 0% | 564 | 3,944 | +599% | 0 | 0 | — |
case-23 | pass→pass | 20,067 | 22,629 | +13% | 1 | 1 | 0% | 3,403 | 7,715 | +127% | 0 | 0 | — |
case-24 | pass→pass | 6,275 | 5,277 | -16% | 1 | 1 | 0% | 1,223 | 4,681 | +283% | 0 | 0 | — |
case-25 | pass→pass | 10,182 | 8,838 | -13% | 1 | 1 | 0% | 1,481 | 4,784 | +223% | 0 | 0 | — |
case-26 | pass→pass | 15,062 | 14,141 | -6% | 1 | 1 | 0% | 2,958 | 6,474 | +119% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 26 cases were attempted. The headline lift of +12 percentage points is the difference between those two pass rates over the 26 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.