Some checks failed
		
		
	
	Docs CI / lint-and-preview (push) Has been cancelled
				
			- Added VulnTokenSigner for signing JWT tokens with specified algorithms and keys. - Introduced VulnTokenUtilities for resolving tenant and subject claims, and sanitizing context dictionaries. - Created VulnTokenVerificationUtilities for parsing tokens, verifying signatures, and deserializing payloads. - Developed VulnWorkflowAntiForgeryTokenIssuer for issuing anti-forgery tokens with configurable options. - Implemented VulnWorkflowAntiForgeryTokenVerifier for verifying anti-forgery tokens and validating payloads. - Added AuthorityVulnerabilityExplorerOptions to manage configuration for vulnerability explorer features. - Included tests for FilesystemPackRunDispatcher to ensure proper job handling under egress policy restrictions.
		
			
				
	
	
	
		
			5.9 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			5.9 KiB
		
	
	
	
	
	
	
	
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
- Prepare policy and security guidance ahead of Windows analyzer implementation (MSI, WinSxS, Chocolatey, registry).
 - Define evidence handling, predicates, waiver expectations, and offline prerequisites so engineering can align during spike execution.
 
2. Evidence pipeline snapshot (from design/windows-analyzer.md)
- 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).
 
 - Storage
- Results persisted as 
LayerComponentFragments plus capability overlays (ScanAnalysisKeys.capability.windows). - Provenance metadata includes signature thumbprint, catalog hash, feed URL, install context.
 
 - Results persisted as 
 - Downstream
- Policy Engine consumes component + capability evidence; Export Center bundles MSI manifests, nuspec metadata, catalog hashes.
 
 
3. Policy predicate requirements
| Predicate | Description | Initial 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:
- Map KB references (from WinSxS/MSP metadata) to vulnerability posture once Policy Engine supports patch layering.
 - Provide predicates to waive specific ProductCodes or AssemblyIdentities with expiration.
 
4. Waiver & governance model
- Waiver key: 
{productCode, version, signatureThumbprint}or for drivers{driverName, serviceName, signatureThumbprint}. - Required metadata: remediation ticket, justification, expiry date.
 - Automated re-evaluation when version or signature changes.
 - Tenants maintain allow lists for Chocolatey feeds and driver publishers via policy configuration.
 
5. Masking & privacy
- Findings should not include raw script contents; provide SHA256 hash and limited excerpt (first/last 8 chars).
 - Registry values (install paths, command lines) must be truncated if they contain secrets; rely on Surface.Secrets to manage environment variables referenced during install scripts.
 
6. Offline kit guidance
- Bundle:
- MSI parser binary + schema definitions.
 - Chocolatey feed snapshot(s) (nupkg files) with hash manifest.
 - Microsoft root/intermediate certificate bundles; optional CRL/OCSP cache instructions.
 
 - Operators must export registry hives (
SOFTWARE,SYSTEM) during image extraction; document PowerShell script and required access. - Provide checksum manifest to verify feed snapshot integrity.
 
7. Telemetry expectations
- Metrics:
scanner.windows.package_total{tenant,signed}— count packages per signature state.scanner.windows.driver_unsigned_total{tenant}.scanner.windows.choco_feed_total{tenant,feed}.
 - Logs:
- Include product code, version, signature thumbprint, feed ID (no file paths unless sanitized).
 
 - Traces:
- Annotate collector spans (
collector.windows.msi,collector.windows.winsxs, etc.) with component counts and parsing duration. 
 - Annotate collector spans (
 
8. Open questions
| Topic | Question | Owner | Target decision | 
|---|---|---|---|
| Signature verification locus | Scanner vs Policy: where to verify Authenticode signatures + revocation? | Security Guild | Sprint 133 | 
| Feed mirroring scope | Default set of Chocolatey feeds to mirror (official/community). | Product + Security Guild | Sprint 133 | 
| Legacy installers | Should we block unsigned EXE installers by default or allow warn-only posture? | Policy Guild | Sprint 134 | 
| Driver taxonomy | Define high-risk driver categories (kernel-mode, filter drivers) for policy severity. | Policy Guild | Sprint 134 | 
Decision tracker
| Decision | Owner(s) | Target date | Status | 
|---|---|---|---|
| Authenticode verification locus (Scanner vs Policy) | Security Guild | 2025-11-07 | Pending — blocker for FinSecure | 
| Chocolatey feed mirroring scope | Product + Security Guild | 2025-11-07 | Draft proposal circulating | 
| Legacy installer posture (warn vs fail) | Policy Guild | 2025-11-14 | Not started | 
| Driver risk taxonomy | Policy Guild | 2025-11-14 | Not started | 
9. Next steps
- Policy Guild drafts predicate specs + policy templates; align with DOCS-SCANNER-BENCH-62-016.
 - Security Guild evaluates signature verification approach and revocation handling (online vs offline CRL cache).
 - Offline Kit Guild scopes snapshot size and update cadence for Chocolatey feeds and certificate bundles.
 - Docs Guild prepares policy/user guidance updates once predicates are finalised.
 - Security Guild to report decision for FinSecure Corp (POLICY-READINESS-0002) by 2025-11-07; feed outcome into dashboards.
 
Coordination
- Sync demand signals via 
docs/benchmarks/scanner/windows-macos-demand.md. - Log policy readiness status in 
docs/api/scanner/windows-coverage.md. - Update Windows/macOS metrics dashboard when decisions change (
docs/api/scanner/windows-macos-summary.md).