Windows Package Ecosystem — Coverage Deep Dive

Competitor snapshot

Proposed StellaOps roadmap

In-depth design detail lives in ../../modules/scanner/design/windows-analyzer.md.

  1. MSI/WinSxS collector
    • Traverse Windows/WinSxS/Manifests and Windows/Installer to harvest component manifests, linking to installed products via the installer database.
    • Parse MSI tables (Product, Component, File) to emit authoritative component records with product codes, upgrade codes, and install context.
  2. Chocolatey/NuGet-based packages
    • Inspect ProgramData/Chocolatey/lib and ProgramData/Chocolatey/packages.config for package metadata, including embedded nuspec files and checksums.
    • Resolve package sources and cache feed metadata to support offline replay.
  3. Registry-backed inventory
    • Query HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall and equivalent Wow6432Node path to capture legacy installers (EXE/PDB) with version/signature hints.
    • Record install source, publisher, and install location for cross-reference with filesystem collectors.
  4. Capability signals
    • Detect installed services (System32/config/SYSTEM registry hive), scheduled tasks, and driver packages to feed Policy Engine capability predicates.
    • Capture Authenticode signatures and catalog (.cat) references to support trust enforcement.
  5. Offline parity
    • Package MSI schema definitions, Chocolatey feed snapshots, and Windows update catalog indexes into Offline Kit bundles.
    • Provide hashing guidance for large binaries to avoid excessive Offline Kit growth (use external CAS references where possible).

Detection technique comparison

TechniqueArtifactsMerge strategyNotes
MSI database parsingWindows/Installer/*.msi database tables (Product, Component, File)Emit component records keyed by ProductCode/ComponentCode; merge with WinSxS manifests using file hashes.Requires custom MSI reader (Jet/COM-free) compatible with offline bundles.
WinSxS manifest enumerationWindows/WinSxS/Manifests/*.manifestMap assemblies to catalog signatures and MSP patches; merge with MSI output for provenance.Provides side-by-side assembly version info and language resources.
Chocolatey package inspectionProgramData/Chocolatey/lib/*/tools & nuspec metadataProduce package records with source feed URL, checksum, install scripts.Feed metadata snapshot required to resolve dependencies offline.
Registry uninstall keysHKLM/HKCU ... /Uninstall/*Fill gaps for legacy installers (non-MSI); merge by install path and display name with file system evidence.Use hive exports during scan to avoid registry API dependencies.
Service/driver mappingSystem32/config/SYSTEM hive, System32/DriverStore/FileRepositoryGenerate capability overlays (services, drivers) for Policy Engine gating.Helps differentiate drivers requiring elevated scrutiny (e.g., kernel-mode).
Competitor baselineNo competitor tool offers deterministic Windows package coverage with offline support.Opportunity to differentiate once demand justifies scope.

Backlog / coordination

Open design questions

TopicQuestionOwner
MSI parsing libraryBuild custom reader or embed open-source MSI parser? Must be BUSL-1.1-compatible and offline-ready.Scanner Guild
Driver risk classificationShould Policy Engine treat kernel-mode drivers differently by default?Policy Guild
Authenticodes & catalogsWhere do we verify signature/certificate revocation (scanner vs policy)?Security Guild
Registry accessWill scanner access registry hives directly or require pre-extracted exports?Scanner + Ops Guild