[New Rule] Potential PowerShell Obfuscation via Character Array Reconstruction
Issues
Part of https://github.com/elastic/ia-trade-team/issues/533
Summary
Identifies PowerShell scripts that use character arrays and runtime string reconstruction as a form of obfuscation. This technique breaks strings into individual characters, often using constructs like char[] with index-based access or joining logic. These methods are designed to evade static analysis and bypass security protections such as the Antimalware Scan Interface (AMSI).
0 hits last 90d on telemetry
Additional information
From my testing, the | KEEP condition doesn’t need to specify any fields other than the metadata ones (_id and _index), as the engine appears to populate the alert using them. However, I’m keeping it as-is because it significantly improves performance in Discovery and makes the results more understandable if someone uses the query for hunting.
Sample Match
Rule: Tuning - Guidelines
These guidelines serve as a reminder set of considerations when tuning an existing rule.
Documentation and Context
- [ ] Detailed description of the suggested changes.
- [ ] Provide example JSON data or screenshots.
- [ ] Provide evidence of reducing benign events mistakenly identified as threats (False Positives).
- [ ] Provide evidence of enhancing detection of true threats that were previously missed (False Negatives).
- [ ] Provide evidence of optimizing resource consumption and execution time of detection rules (Performance).
- [ ] Provide evidence of specific environment factors influencing customized rule tuning (Contextual Tuning).
- [ ] Provide evidence of improvements made by modifying sensitivity by changing alert triggering thresholds (Threshold Adjustments).
- [ ] Provide evidence of refining rules to better detect deviations from typical behavior (Behavioral Tuning).
- [ ] Provide evidence of improvements of adjusting rules based on time-based patterns (Temporal Tuning).
- [ ] Provide reasoning of adjusting priority or severity levels of alerts (Severity Tuning).
- [ ] Provide evidence of improving quality integrity of our data used by detection rules (Data Quality).
- [ ] Ensure the tuning includes necessary updates to the release documentation and versioning.
Rule Metadata Checks
- [ ]
updated_datematches the date of tuning PR merged. - [ ]
min_stack_versionshould support the widest stack versions. - [ ]
nameanddescriptionshould be descriptive and not include typos. - [ ]
queryshould be inclusive, not overly exclusive. Review to ensure the original intent of the rule is maintained.
Testing and Validation
- [ ] Validate that the tuned rule's performance is satisfactory and does not negatively impact the stack.
- [ ] Ensure that the tuned rule has a low false positive rate.
⛔️ Test failed
Results
- ❌ Potential PowerShell Obfuscation via Character Array Reconstruction (esql)
- coverage_issue: no_rta
- stack_validation_failed: no_rta
⛔️ Test failed
Results
- ❌ Potential PowerShell Obfuscation via Character Array Reconstruction (esql)
- coverage_issue: no_rta
- stack_validation_failed: no_rta
⛔️ Test failed
Results
- ❌ Potential PowerShell Obfuscation via Character Array Reconstruction (esql)
- coverage_issue: no_rta
- stack_validation_failed: no_rta