[New Rule] Potential PowerShell Obfuscation via Reverse Keywords
Issues
Part of https://github.com/elastic/ia-trade-team/issues/533
Summary
Identifies PowerShell scripts that use reversed strings as a form of obfuscation. These methods are designed to evade static analysis and bypass security protections such as the Antimalware Scan Interface (AMSI).
3 hits last 90d on telemetry, no FPs
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: New - Guidelines
These guidelines serve as a reminder set of considerations when proposing a new rule.
Documentation and Context
- [ ] Detailed description of the rule.
- [ ] List any new fields required in ECS/data sources.
- [ ] Link related issues or PRs.
- [ ] Include references.
Rule Metadata Checks
- [ ]
creation_datematches the date of creation PR initially merged. - [ ]
min_stack_versionshould support the widest stack versions. - [ ]
nameanddescriptionshould be descriptive and not include typos. - [ ]
queryshould be inclusive, not overly exclusive, considering performance for diverse environments. Non ecs fields should be added tonon-ecs-schema.jsonif not available in an integration. - [ ]
min_stack_commentsandmin_stack_versionshould be included if the rule is only compatible starting from a specific stack version. - [ ]
indexpattern should be neither too specific nor too vague, ensuring it accurately matches the relevant data stream (e.g., use logs-endpoint.process-* for process data). - [ ]
integrationshould align with theindex. If the integration is newly introduced, ensure the manifest, schemas, andnew_rule.yamltemplate are updated. - [ ]
setupshould include the necessary steps to configure the integration. - [ ]
noteshould include any additional information (e.g. Triage and analysis investigation guides, timeline templates). - [ ]
tagsshould be relevant to the threat and align/added to theEXPECTED_RULE_TAGSin the definitions.py file. - [ ]
threat,techniques, andsubtechniquesshould map to ATT&CK always if possible.
New BBR Rules
- [ ]
building_block_typeshould be included if the rule is a building block and the rule should be located in therules_building_blockfolder. - [ ]
bypass_bbr_timingshould be included if adding custom lookback timing to the rule.
Testing and Validation
- [ ] Provide evidence of testing and detecting the expected threat.
- [ ] Check for existence of coverage to prevent duplication.
⛔️ Test failed
Results
- ❌ Potential PowerShell Obfuscation via Reverse Keywords (esql)
- coverage_issue: no_rta
- stack_validation_failed: no_rta
⛔️ Test failed
Results
- ❌ Potential PowerShell Obfuscation via Reverse Keywords (esql)
- coverage_issue: no_rta
- stack_validation_failed: no_rta
⛔️ Test failed
Results
- ❌ Potential PowerShell Obfuscation via Reverse Keywords (esql)
- coverage_issue: no_rta
- stack_validation_failed: no_rta
⛔️ Test failed
Results
- ❌ Potential PowerShell Obfuscation via Reverse Keywords (esql)
- coverage_issue: no_rta
- stack_validation_failed: no_rta