Skip to content

[Rule Tuning] Unusual Parent-Child Relationship#6394

Open
Mikaayenson wants to merge 4 commits into
mainfrom
tuning/35df0dd8-092d-4a83-88c1-5151a804f31b
Open

[Rule Tuning] Unusual Parent-Child Relationship#6394
Mikaayenson wants to merge 4 commits into
mainfrom
tuning/35df0dd8-092d-4a83-88c1-5151a804f31b

Conversation

@Mikaayenson

Copy link
Copy Markdown
Contributor

Resolves elastic/ia-trade-team#991

Reduces noise from SID-as-parent data quality issues, legitimate Windows self-spawn pairs, headless conhost spawning cmd/powershell, and Computrace BIOS-level software (rpcnet/rpcnetp). Adds a top-level S-1-* parent name filter, expands allowed-parent lists for system processes to cover self-spawn scenarios (wmiprvse, dllhost, taskhostw, spoolsv, SearchIndexer, SearchProtocolHost, LogonUI, RuntimeBroker, TiWorker, wsmprovhost), adds rpcnet.exe and rpcnetp.exe as known-good parents for svchost, adds svchost.exe as an allowed parent for dwm.exe, and adds cmd.exe and powershell.exe to the conhost.exe allowed-children list.


Full telemetry triage, analytics links, and KQL verification: see linked ia-trade-team issue.

Copilot AI review requested due to automatic review settings July 6, 2026 22:05
@botelastic botelastic Bot added Domain: Endpoint OS: Windows windows related rules labels Jul 6, 2026
@tradebot-elastic

tradebot-elastic commented Jul 6, 2026

Copy link
Copy Markdown

⛔️ Test failed

Results
  • ❌ Unusual Parent-Child Relationship (eql)
    • stack_validation_failed: no_alerts - 0 alerts

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Tunes the existing Windows EQL rule “Unusual Parent-Child Relationship” to reduce alert noise caused by known benign parent/child patterns and data quality issues.

Changes:

  • Adds a top-level filter to suppress events where process.parent.name appears as a SID (S-1-*).
  • Expands multiple “expected parent” allow-lists for system processes and “expected child” allow-lists for conhost.exe.
  • Adds additional known-good parents for svchost.exe (Computrace/Absolute rpcnet*).

(process.name:"SearchIndexer.exe" and not process.parent.name:"services.exe") or
(process.name:"SearchProtocolHost.exe" and not process.parent.name:("SearchIndexer.exe", "dllhost.exe")) or
(process.name:"dllhost.exe" and not process.parent.name:("services.exe", "svchost.exe")) or
(process.name:("fontdrvhost.exe", "dwm.exe") and not process.parent.name:("wininit.exe", "winlogon.exe", "dwm.exe", "svchost.exe")) or

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Valid

(process.name:"SearchProtocolHost.exe" and not process.parent.name:("SearchIndexer.exe", "dllhost.exe")) or
(process.name:"dllhost.exe" and not process.parent.name:("services.exe", "svchost.exe")) or
(process.name:("fontdrvhost.exe", "dwm.exe") and not process.parent.name:("wininit.exe", "winlogon.exe", "dwm.exe", "svchost.exe")) or
(process.name:("consent.exe", "RuntimeBroker.exe", "TiWorker.exe") and not process.parent.name:("svchost.exe", "Workplace Container Helper.exe", "RuntimeBroker.exe", "TiWorker.exe")) or
(process.name:"taskhostw.exe" and not process.parent.name:("services.exe", "svchost.exe", "taskhostw.exe")) or
(process.name:"userinit.exe" and not process.parent.name:("dwm.exe", "winlogon.exe", "KUsrInit.exe")) or
(process.name:("wmiprvse.exe", "wsmprovhost.exe", "winrshost.exe") and not process.parent.name:"svchost.exe") or
(process.name:("wmiprvse.exe", "wsmprovhost.exe", "winrshost.exe") and not process.parent.name:("svchost.exe", "wmiprvse.exe", "wsmprovhost.exe")) or
@Mikaayenson Mikaayenson added Rule: Tuning tweaking or tuning an existing rule genai-tradecraft labels Jul 6, 2026
@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

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_date matches the date of tuning PR merged.
  • min_stack_version should support the widest stack versions.
  • name and description should be descriptive and not include typos.
  • query should 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.

@tradebot-elastic

tradebot-elastic commented Jul 6, 2026

Copy link
Copy Markdown

⛔️ Test failed

Results
  • ❌ Unusual Parent-Child Relationship (eql)
    • stack_validation_failed: no_alerts - 0 alerts

query = '''
process where host.os.type == "windows" and event.type == "start" and
process.parent.name != null and process.parent.executable like ("?:\\*", "\\Device\\*") and
not process.parent.name like "S-1-*" and

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Already addressed by process.parent.executable like ("?:\\*", "\\Device\\*")

(process.name:"SearchIndexer.exe" and not process.parent.name:"services.exe") or
(process.name:"SearchProtocolHost.exe" and not process.parent.name:("SearchIndexer.exe", "dllhost.exe")) or
(process.name:"dllhost.exe" and not process.parent.name:("services.exe", "svchost.exe")) or
(process.name:("fontdrvhost.exe", "dwm.exe") and not process.parent.name:("wininit.exe", "winlogon.exe", "dwm.exe", "svchost.exe")) or

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Valid

(process.parent.name:"wermgr.exe" and not process.name:("WerFaultSecure.exe", "wermgr.exe", "WerFault.exe") and
not (process.name:"rundll32.exe" and process.command_line : "*WerConCpl.dll*LaunchErcApp*")) or
(process.parent.name:"conhost.exe" and not process.name:("mscorsvw.exe", "wermgr.exe", "WerFault.exe", "WerFaultSecure.exe", "conhost.exe"))
(process.parent.name:"conhost.exe" and not process.name:("mscorsvw.exe", "wermgr.exe", "WerFault.exe", "WerFaultSecure.exe", "conhost.exe", "cmd.exe", "powershell.exe"))

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
(process.parent.name:"conhost.exe" and not process.name:("mscorsvw.exe", "wermgr.exe", "WerFault.exe", "WerFaultSecure.exe", "conhost.exe", "cmd.exe", "powershell.exe"))
(process.parent.name:"conhost.exe" and not process.name:("mscorsvw.exe", "wermgr.exe", "WerFault.exe", "WerFaultSecure.exe", "conhost.exe"))

Seems too broad

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport: auto Domain: Endpoint genai-tradecraft OS: Windows windows related rules Rule: Tuning tweaking or tuning an existing rule

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants