Skip to content

fix(windows): normalize native fields and preserve authentication correlation - #2621

Closed
rvald26 wants to merge 3 commits into
utmstack:v11from
rvald26:codex/v11-windows-contracts
Closed

rvald26 wants to merge 3 commits into
utmstack:v11from
rvald26:codex/v11-windows-contracts

Conversation

@rvald26

@rvald26 rvald26 commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Windows authentication events can legitimately omit an IP or use a placeholder. This draft validates the original vendor IP before promotion and updates seven correlation rules to use a scoped IP, workstation or domain-qualified account identity. Historical searches count the same suspicious candidates as the trigger, preventing benign same-code events from filling the threshold.

It also fixes numeric-zero NTLM status being misclassified as failure and promotes verified native computer, timestamp, Workstation, remote port, process path and domain fields into the SDK standard. Existing vendor aliases needed by rules are retained. ThreatWinds go-sdk v1.1.31 is the schema/runtime authority.

The IP guard also excludes expanded/compressed IPv6 zero and IPv4-mapped zero using CIDR checks, preserving the original vendor value. These spellings are covered by synthetic fallback and nonzero controls, not new live incidence claims.

Validation: 60 synthetic raw JSON cases, 50 positive predicate/history cases, all 38 Windows predicates, strict SDK decoding/CEL, and actual SDK history requests against a local OpenSearch mock. Checks cover thresholds, expired history, identity/domain/collector separation, benign-history exclusion and the missing-placeholder-before-OR regression. The shared normalization/contract runner also passes.

A bounded read-only sample of 28 distinct records across three instances confirmed missing standard promotions and IP-less local/NTLM events. The relevant deployed filter configuration was compared. Recent sampled Kerberos populations did not show placeholder IPs; that scenario is a synthetic regression, not a claimed live observation. Customer data is not included.

The raw parser/normalizer is an offline model; closed EventProcessor execution, actual alert creation and before/after alert volume remain staging checks. Filter and rules must roll out together; the new history fields need their normal windows to warm up. Indexed lastEvent grouping depends on #2590, which has a separate rollout review.

Draft only, targeting official utmstack/UTMStack v11. No customer configuration changed; nothing merged or deployed. Details: filters/audits/windows.md.

@rvald26 rvald26 changed the title fix(filters): Windows normalization and rule contracts fix(windows): normalize native fields and preserve authentication correlation Sep 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant