From threatmodel-skills
Creates, validates, converts Sigma detection rules for SIEM platforms including Splunk, Elastic, QRadar, Sentinel. Supports threat hunting, MITRE ATT&CK mapping, detection-as-code, and compliance monitoring.
npx claudepluginhub agentsecops/secopsagentkit --plugin offsec-skillsThis skill uses the workspace's default tool permissions.
Sigma is to log detection what Snort is to network traffic and YARA is to files - a universal signature format for describing security-relevant log events. This skill helps create, validate, and convert Sigma rules for deployment across multiple SIEM platforms, enabling detection-as-code workflows.
assets/compliance-rules/iso27001-logging.ymlassets/compliance-rules/nist-800-53-audit.ymlassets/compliance-rules/pci-dss-monitoring.ymlassets/rule-templates/credential-access.ymlassets/rule-templates/lateral-movement.ymlassets/rule-templates/persistence.ymlassets/rule-templates/privilege-escalation.ymlreferences/backend-support.mdreferences/compliance-mappings.mdreferences/field-modifiers.mdreferences/log-source-guide.mdreferences/mitre-attack-mapping.mdDesigns and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Designs, implements, and audits WCAG 2.2 AA accessible UIs for Web (ARIA/HTML5), iOS (SwiftUI traits), and Android (Compose semantics). Audits code for compliance gaps.
Sigma is to log detection what Snort is to network traffic and YARA is to files - a universal signature format for describing security-relevant log events. This skill helps create, validate, and convert Sigma rules for deployment across multiple SIEM platforms, enabling detection-as-code workflows.
Core capabilities:
pip install pysigma pysigma-backend-splunk pysigma-backend-elasticsearch pyyaml
title: Suspicious PowerShell Execution
id: 7d6d30b8-5b91-4b90-a71e-4f5a3f5a3c3f
status: experimental
description: Detects suspicious PowerShell execution with encoded commands
references:
- https://attack.mitre.org/techniques/T1059/001/
author: Your Name
date: YYYY/MM/DD
modified: YYYY/MM/DD
tags:
- attack.execution
- attack.t1059.001
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\powershell.exe'
CommandLine|contains:
- '-enc'
- '-EncodedCommand'
- 'FromBase64String'
condition: selection
falsepositives:
- Legitimate administrative scripts
level: medium
# Convert to Splunk
python scripts/sigma_convert.py rule.yml --backend splunk
# Convert to Elasticsearch
python scripts/sigma_convert.py rule.yml --backend elasticsearch
# Convert to Microsoft Sentinel
python scripts/sigma_convert.py rule.yml --backend sentinel
Progress:
[ ] 1. Identify detection requirement from threat intelligence or compliance
[ ] 2. Research log sources and field mappings for target environment
[ ] 3. Create Sigma rule using standard template
[ ] 4. Validate rule syntax: python scripts/sigma_validate.py rule.yml
[ ] 5. Test rule against sample logs or historical data
[ ] 6. Convert to target SIEM format
[ ] 7. Deploy and tune based on false positive rate
[ ] 8. Document rule metadata and MITRE ATT&CK mapping
Work through each step systematically. Check off completed items.
For proactive threat hunting based on TTPs:
Select MITRE ATT&CK Technique
Identify Log Sources
Define Detection Logic
Validate and Test
python scripts/sigma_validate.py hunting-rule.ymlDocument and Deploy
When migrating between SIEM platforms:
# Validate all rules first
python scripts/sigma_validate.py --directory rules/ --report validation-report.json
# Convert entire rule set
python scripts/sigma_convert.py --directory rules/ --backend splunk --output converted/
# Generate deployment report
python scripts/sigma_convert.py --directory rules/ --backend splunk --report conversion-report.md
Review conversion report for:
For implementing compliance monitoring (PCI-DSS, NIST, ISO 27001):
Map Requirements to Detections
Create Detection Rules
assets/compliance-rules/Validate Coverage
python scripts/compliance_coverage.py --framework pci-dssGenerate Compliance Report
title: Human-readable rule name
id: UUID (generate with: python -c "import uuid; print(uuid.uuid4())")
status: stable|test|experimental|deprecated
description: Detailed description of what this detects
author: Your Name
date: YYYY/MM/DD
modified: YYYY/MM/DD
logsource:
category: process_creation|network_connection|file_event|...
product: windows|linux|macos|azure|aws|...
detection:
selection:
FieldName: value
condition: selection
level: informational|low|medium|high|critical
references:
- https://attack.mitre.org/techniques/T1059/
tags:
- attack.execution
- attack.t1059.001
falsepositives:
- Legitimate use cases
fields:
- CommandLine
- User
- ParentImage
# Simple selection
detection:
selection:
Field: value
condition: selection
# Multiple conditions (AND)
detection:
selection:
Field1: value1
Field2: value2
condition: selection
# OR conditions
detection:
selection1:
Field: value1
selection2:
Field: value2
condition: selection1 or selection2
# NOT conditions
detection:
selection:
Field: suspicious_value
filter:
Field: legitimate_value
condition: selection and not filter
# Complex logic
detection:
selection:
EventID: 4688
suspicious_cmd:
CommandLine|contains:
- 'powershell'
- 'cmd.exe'
filter_legitimate:
ParentImage|endswith: '\explorer.exe'
condition: selection and suspicious_cmd and not filter_legitimate
Common modifiers for flexible matching:
|contains - Contains substring (case-insensitive)|endswith - Ends with string|startswith - Starts with string|re - Regular expression match|all - All values must match|base64 - Base64-encoded value matching|base64offset - Base64 with offset variationsExample:
detection:
selection:
CommandLine|contains|all:
- 'powershell'
- '-enc'
Image|endswith: '\powershell.exe'
Sensitive Data Handling: Sigma rules may reference sensitive field names or patterns. Store rules in version control with appropriate access controls. Avoid including actual sensitive data in example values.
Access Control: Detection rules reveal defensive capabilities to adversaries. Implement role-based access for rule repositories. Limit rule modification to authorized detection engineers.
Audit Logging: Log all rule deployments, modifications, and deletions. Track who deployed which rules to which systems. Maintain change history for compliance auditing.
Compliance: Sigma rules support compliance monitoring (PCI-DSS 10.2, NIST SP 800-53 AU family, ISO 27001 A.12.4). Document rule-to-control mappings for audit evidence.
Safe Defaults: Use conservative false positive filtering in production. Start rules at "experimental" status. Test thoroughly in test environment before production deployment.
scripts/sigma_convert.py - Convert Sigma rules to target SIEM backend formatsscripts/sigma_validate.py - Validate Sigma rule syntax and detect common errorsscripts/compliance_coverage.py - Analyze detection coverage for compliance frameworksscripts/generate_rule_template.py - Generate Sigma rule template with MITRE ATT&CK tagsreferences/mitre-attack-mapping.md - Common MITRE ATT&CK techniques and Sigma detection patternsreferences/log-source-guide.md - Log source categories, products, and field mappingsreferences/compliance-mappings.md - Compliance framework to detection rule mappingsreferences/backend-support.md - Supported SIEM backends and conversion capabilitiesreferences/field-modifiers.md - Comprehensive guide to Sigma field modifiers and regex patternsassets/rule-templates/ - Pre-built Sigma rule templates for common attack patterns
lateral-movement.yml - Lateral movement detection templateprivilege-escalation.yml - Privilege escalation detection templatepersistence.yml - Persistence mechanism detection templatecredential-access.yml - Credential dumping detection templateassets/compliance-rules/ - Compliance-focused rule templates
pci-dss-monitoring.yml - PCI-DSS monitoring requirementsnist-800-53-audit.yml - NIST 800-53 audit logging requirementsiso27001-logging.yml - ISO 27001 logging and monitoringDetect suspicious process creation with command-line analysis:
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith:
- '\powershell.exe'
- '\cmd.exe'
CommandLine|contains:
- 'Invoke-'
- 'IEX'
- 'FromBase64String'
Detect suspicious outbound connections:
logsource:
category: network_connection
product: windows
detection:
selection:
Initiated: 'true'
DestinationPort:
- 4444
- 5555
- 8080
filter:
DestinationIp|startswith:
- '10.'
- '172.16.'
- '192.168.'
condition: selection and not filter
Detect file creation in suspicious locations:
logsource:
category: file_event
product: windows
detection:
selection:
TargetFilename|contains:
- '\Windows\Temp\'
- '\AppData\Roaming\'
TargetFilename|endswith:
- '.exe'
- '.dll'
- '.ps1'
Build detection-as-code pipelines:
# .github/workflows/sigma-validation.yml
name: Sigma Rule Validation
on: [push, pull_request]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Validate Sigma Rules
run: |
pip install pysigma
python scripts/sigma_validate.py --directory rules/
- name: Convert to Production Format
run: |
python scripts/sigma_convert.py --directory rules/ --backend splunk --output converted/
Automated rule deployment:
splunk-sdk for savedsearchesSee references/backend-support.md for deployment examples.
Enrich rules with threat intel:
Solution: Check backend compatibility and field mappings. Some backends have limitations:
references/backend-support.md for known limitationssigma_convert.py --backend <backend> --debug for detailed error outputSolution: Refine detection logic with additional filters:
|endswith vs |contains)Solution: Verify log source availability and field mappings:
sigma_convert.py --show-fields to see mappingTag rules with ATT&CK tactics and techniques:
tags:
- attack.execution # Tactic
- attack.t1059.001 # Technique: PowerShell
- attack.defense_evasion # Additional tactic
- attack.t1027 # Technique: Obfuscated Files
Common tactic tags:
attack.initial_accessattack.executionattack.persistenceattack.privilege_escalationattack.defense_evasionattack.credential_accessattack.discoveryattack.lateral_movementattack.collectionattack.exfiltrationattack.command_and_controlattack.impactFor detailed technique mappings, see references/mitre-attack-mapping.md.