Windows Package Coverage — Policy & Security Readiness Brief

Audience: Policy Guild, Security Guild, Offline Kit Guild
Related engineering backlog (proposed): SCANNER-ENG-0024…0027
Docs linkage: DOCS-SCANNER-BENCH-62-016

1. Goal

2. Evidence pipeline snapshot (from design/windows-analyzer.md)

  1. Collection
    • MSI database parsing → component records keyed by ProductCode/ComponentCode.
    • WinSxS manifests → assembly identities, catalog signatures.
    • Chocolatey packages → nuspec metadata, feed provenance, script hashes.
    • Registry exports → uninstall/service entries, legacy installers.
    • Driver/service mapper → capability overlays (kernel-mode, auto-start).
  2. Storage
    • Results persisted as LayerComponentFragments plus capability overlays (ScanAnalysisKeys.capability.windows).
    • Provenance metadata includes signature thumbprint, catalog hash, feed URL, install context.
  3. Downstream
    • Policy Engine consumes component + capability evidence; Export Center bundles MSI manifests, nuspec metadata, catalog hashes.

3. Policy predicate requirements

PredicateDescriptionInitial default
windows.package.signed(thumbprint?)True when Authenticode signature/cert matches allowlist.Warn on missing signature, fail on mismatched thumbprint for kernel drivers.
windows.package.sourceAllowed(sourceId)Validates Chocolatey/nuget feed against tenant allowlist.Fail if feed not in tenant policy.
windows.driver.kernelMode()Flags kernel-mode drivers for extra scrutiny.Fail when unsigned; warn otherwise.
windows.driver.signedBy(publisher)Checks driver publisher matches allowlist.Warn on unknown publisher.
windows.service.autoStart(name)Identifies auto-start services.Warn if unsigned binary or service not in allowlist.
windows.package.legacyInstaller()Legacy EXE-only installers detected via registry.Warn by default; escalate if binary unsigned.

Additional considerations:

4. Waiver & governance model

5. Masking & privacy

6. Offline kit guidance

7. Telemetry expectations

8. Open questions

TopicQuestionOwnerTarget decision
Signature verification locusScanner vs Policy: where to verify Authenticode signatures + revocation?Security GuildSprint 133
Feed mirroring scopeDefault set of Chocolatey feeds to mirror (official/community).Product + Security GuildSprint 133
Legacy installersShould we block unsigned EXE installers by default or allow warn-only posture?Policy GuildSprint 134
Driver taxonomyDefine high-risk driver categories (kernel-mode, filter drivers) for policy severity.Policy GuildSprint 134

Decision tracker

DecisionOwner(s)Target dateStatus
Authenticode verification locus (Scanner vs Policy)Security Guild2025-11-07Pending — blocker for FinSecure
Chocolatey feed mirroring scopeProduct + Security Guild2025-11-07Draft proposal circulating
Legacy installer posture (warn vs fail)Policy Guild2025-11-14Not started
Driver risk taxonomyPolicy Guild2025-11-14Not started

9. Next steps

  1. Policy Guild drafts predicate specs + policy templates; align with DOCS-SCANNER-BENCH-62-016.
  2. Security Guild evaluates signature verification approach and revocation handling (online vs offline CRL cache).
  3. Offline Kit Guild scopes snapshot size and update cadence for Chocolatey feeds and certificate bundles.
  4. Docs Guild prepares policy/user guidance updates once predicates are finalised.
  5. Security Guild to report decision for FinSecure Corp (POLICY-READINESS-0002) by 2025-11-07; feed outcome into dashboards.

Coordination