Skip to content

feat(nist-ir): NIST IR contract and detection surface for AI analysis - #1052

Merged
scottbrumley merged 5 commits into
mainfrom
feat/identity-contract-ai-richness
Aug 18, 2026
Merged

feat(nist-ir): NIST IR contract and detection surface for AI analysis#1052
scottbrumley merged 5 commits into
mainfrom
feat/identity-contract-ai-richness

Conversation

@scottbrumley

Copy link
Copy Markdown
Contributor

Five commits of NIST IR contract work, all in soc-framework-nist-ir. Everything here is running on a dev tenant and gated green with upload.

What is in it

  • e83a43b enrich the identity contract for AI analysis
  • 075a979 use the existing Artifacts.Source.* targets
  • 26bb51e apply the shared detection surface to every band
  • ae9776e extend the endpoint detection surface
  • 65ca290 retarget the Abnormal + Defender scenario at deathstar

The normalize map grows substantially against main: endpoint 101 -> 141, email 59 -> 74, identity 55 -> 70, network 55 -> 70, cloud 47 -> 62, generic 40 -> 55. The endpoint additions include Endpoint.alert_source from case.incident_sources.[0] and Artifacts.Process.Name from actor_process_image_name.

The scenario commit swaps the two source envs from .env-brumxdr-* to .env-deathstar-*. Without it the manifest points at brumxdr and none of the AI analysis runs behind this work are reproducible.

Why it matters now

The AI Analysis prompts read almost entirely from the normalized surface — 37 of the 45 endpoint prompt bindings resolve from SOCFramework.*. Verdict quality is a direct function of how much of this map is populated, which is what four replays on deathstar this evening demonstrated.

main is currently 40 endpoint mappings behind what the tenant runs, so a Package Manager install from the released pack takes a tenant backwards.

Verification

check_contribution green with upload against deathstar, all stages: normalize, correlation_rule_preflight, playbook_condition_lint, pack_prep, fix_errors, check_contracts, validate_shadow_mode, prep_docs, upload. The list on the tenant is byte-identical to the committed file.

Labelled version:patch -> 1.8.2. Note #1051 carries the same label against the same pack; whichever merges second is the one that bumps.

scottbrumley and others added 5 commits August 15, 2026 14:10
XDR Analytics never populates the mitre*name/*id fields the canonical
rows read — it emits the fused mitreattck* form, present on every alert.
Adds the detector's own metadata (action, detection_module, alert_domain,
detection_details) and sources alert_source from the case, since
sourceBrand reads MAGNIFIER on every analytics alert.

Investigation.RiskScore/IssueCount/UserCount/HostCount/LinkedCount were
declared as analysis reads in SOCFrameworkPhaseContract_V3 but had no
writer; the case carries all of them.
Artifacts.Source.{Action,Module,AlertDomain} already exist in the
endpoint band and are what the prompts bind; the identity rows minted
duplicates under new names that nothing reads.
The case scope counts, the case/issue MITRE, and the detector's own
metadata carry the same meaning regardless of product category, but only
endpoint and identity had any of them. Adds the block to all six bands.

Artifacts.Source.Details replaces the category-flavoured
Identity.detection_details — Artifacts.Source.* is already the shared
detector namespace.
@scottbrumley scottbrumley added the version:patch Bug fix or hotfix → x.x.N label Aug 17, 2026
@scottbrumley
scottbrumley merged commit 113209d into main Aug 18, 2026
14 of 24 checks passed
@scottbrumley
scottbrumley deleted the feat/identity-contract-ai-richness branch August 18, 2026 00:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

version:patch Bug fix or hotfix → x.x.N

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants