Detection rules › Sigma
Security Software Discovery Via Powershell Script
Detects calls to "get-process" where the output is piped to a "where-object" filter to search for security solution processes. Adversaries may attempt to get a listing of security software, configurations, defensive tools, and sensors that are installed on a system or in a cloud environment. This may include things such as firewall rules and anti-virus
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Discovery | T1518.001 Software Discovery: Security Software Discovery |
Event coverage
| Provider | Event ID | Title |
|---|---|---|
| PowerShell | 4104 | Creating Scriptblock text (MessageNumber of MessageTotal). |
Stages and Predicates
Stage 1: all of selection_cmdlet
or:
ScriptBlockText|contains: 'get-process | \?'
ScriptBlockText|contains: 'get-process | where'
ScriptBlockText|contains: 'gps | \?'
ScriptBlockText|contains: 'gps | where'
Stage 2: all of selection_field
or:
ScriptBlockText|contains: 'Company -like'
ScriptBlockText|contains: 'Description -like'
ScriptBlockText|contains: 'Name -like'
ScriptBlockText|contains: 'Path -like'
ScriptBlockText|contains: 'Product -like'
Stage 3: all of selection_keywords
or:
ScriptBlockText|contains: '\*avira\*'
ScriptBlockText|contains: '\*carbonblack\*'
ScriptBlockText|contains: '\*cylance\*'
ScriptBlockText|contains: '\*defender\*'
ScriptBlockText|contains: '\*kaspersky\*'
ScriptBlockText|contains: '\*malware\*'
ScriptBlockText|contains: '\*sentinel\*'
ScriptBlockText|contains: '\*symantec\*'
ScriptBlockText|contains: '\*virus\*'
Indicators
Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.
| Field | Kind | Values |
|---|---|---|
ScriptBlockText | match |
|
Neighbors
Broader alternatives (more inclusive than this rule)
These rules match a superset of what this rule catches. They cover the same events plus more. Use them if you want wider coverage and can absorb more false positives.
- Potential PowerShell Obfuscation via Invalid Escape Sequences (drops 1 filter this rule applies)
- Potential PowerShell Obfuscation via Backtick-Escaped Variable Expansion (drops 1 filter this rule applies)
- Potential PowerShell Obfuscation via Character Array Reconstruction (drops 1 filter this rule applies)
- Potential PowerShell Obfuscation via Concatenated Dynamic Command Invocation (drops 1 filter this rule applies)
- Potential PowerShell Obfuscation via High Numeric Character Proportion (drops 1 filter this rule applies)
- Potential Dynamic IEX Reconstruction via Environment Variables (drops 1 filter this rule applies)
- Dynamic IEX Reconstruction via Method String Access (drops 1 filter this rule applies)
- PowerShell Obfuscation via Negative Index String Reversal (drops 1 filter this rule applies)
- Potential PowerShell Obfuscation via Reverse Keywords (drops 1 filter this rule applies)
- Potential PowerShell Obfuscation via String Concatenation (drops 1 filter this rule applies)
- Potential PowerShell Obfuscation via String Reordering (drops 1 filter this rule applies)
- Potential PowerShell Obfuscation via Special Character Overuse (drops 1 filter this rule applies)