# Attestree > Windows app-patching platform. With a detonation host attached, it detonates each winget version at ingest and serves it to endpoints only once it is attested. ## What it does Attestree checks Windows packages at ingest, before any endpoint installs them. With a Hyper-V or Proxmox/KVM detonation host attached, each winget version you ingest is queued for a run in a sandbox VM; its footprint is recorded, Syft builds a CycloneDX SBOM of what the installer put on disk (its reach depends on the sandbox image), and an attestation is recorded against the installer's SHA-256. An installer no sandbox can run (Arm, Microsoft Store) is not detonated. Without a detonation host, nothing is detonated, and no winget version is served: the free Community Edition's feed serves a winget installer only once it is attested. Chocolatey and Scoop are inventoried; neither is served to endpoints until its packages can be tested and attested, and apps they already installed stay installed. npm, pip, .NET tools, PowerShell Gallery, MSI and MSIX are roadmap; none of those ship today. Since platform 0.240.0, each version a sandbox detonation attests gets a signed in-toto statement, stored with the version, that you download from its page with its SBOMs and verify offline with one command (`wep-bundle-verify attestation`) or a 35-line Python sample. A version attested before 0.240.0 has none until it is re-tested; one attested by hand or through a waiver has none. The core idea: most tools scan after install. By the time a CVE shows up in a dashboard, the artifact is already running on the fleet. Attestree moves the check to ingest. ## Where it fits Attestree replaces your third-party app-patching tool and sits beside your device manager. For apps winget carries, it does the job of Patch My PC, Robopack, Intune Enterprise App Management or Winget-AutoUpdate scripts, and its own agent installs the attested version. It does not deploy Chocolatey or Scoop packages until it can test and attest them. Intune, ConfigMgr or an MSP's RMM keep Windows Update, drivers, device settings, compliance and enrollment. Attestree is not a replacement for Intune or an MDM, and it is not a layer on top of Intune: there is no Intune hand-off. ## Who it's for Windows-first homelab and SMB fleets of 5–500 endpoints, with a small IT team or no dedicated security team: - **Homelab / single engineer**: free Community Edition, self-hosted with Docker Compose, up to 200 endpoints, no Azure required - **Small business (5–100 endpoints)**: the free Community Edition, self-hosted on one server; or a dedicated instance we deploy and upgrade in your own Azure subscription, with SSO (Entra ID / Azure AD) included. Slack/Teams notifications are roadmap. - **Mid-market (100–500 endpoints)**: a dedicated instance in your own Azure subscription, SSO (Entra ID / Azure AD), audit events signed with a key your instance holds (each endpoint agent signs its own spans with its own enrolled key), signed audit retention the operator sets (unbounded by default, as on every edition; an opt-in NYDFS profile refuses any window shorter than seven years) ## Where we're heading (horizon — not a shipping product today) - **Enterprise (5,000+ endpoints)**: a dedicated instance in your own subscription, in the region you choose; HSM-backed key custody is roadmap - **SaaS engineering scale-ups**: SBOM at ingest for the npm and pip artifacts an engineering org pulls, for EU CRA and EO 14028 SBOM requests. npm and pip ingest is roadmap; winget ingest ships today. Hosting is a dedicated instance in your own Azure subscription (multi-tenant SaaS is not offered) - **Financial services**: auditor-ready audit bundles supporting GLBA / SOX / 23 NYCRR 500.15, on-prem appliance with vTPM-bound keys, air-gapped evidence sync, SIEM streaming (Sentinel, Splunk). All of these are roadmap. ## How it works 1. An artifact arrives at the ingest layer (today, a winget package; other package managers follow as their collectors ship) 2. With a detonation host attached, Attestree installs it in a sandbox VM and records its footprint 3. Syft builds a CycloneDX SBOM of what the installer put on disk, and an attestation is recorded against the installer's SHA-256 4. You promote the version to a ring; every promotion is a signed audit event 5. Endpoints install only the versions promoted to their ring. A winget version is served only once it is attested, pinned to the installer's SHA-256. Chocolatey and Scoop versions are not served on any edition until they can be attested; apps they already installed are held, not removed ## Deployment & lifecycle Attestree is the fleet deployment control plane, not only the attestation layer: - PC Groups carry version-free base sets of packages; an endpoint converges to the union of the packages from every group it belongs to. - Rings (canary → pilot → broad → all) resolve each package to the exact attested version at deploy time. There is no "frozen" ring. - Fenced endpoints run from your own deployed, attested winget source — a user can run a normal `winget install`, but the agent serves only the packages you admitted (pinned to the exact SHA-256), not the public repo. An endpoint whose fence is not applied still gets the version its ring sets, but from the public winget source under the public manifest's hash; the console shows it unfenced, and nothing it installs reads verified. Operators review and bulk-promote approved artifacts into rings in a few clicks. - Rollback: each ring keeps one armed predecessor, and rolling back makes it the ring's version again. - Continuous reconciliation against declared desired state; drift surfaces as telemetry. The endpoint agent acts only on desired state whose HMAC, keyed by that check-in's one-time session secret, checks out (an HMAC proves the response unaltered, not who sent it), and for winget installs only the attested SHA-256. ## Open formats CycloneDX SBOMs, in-toto Statement v1 attestations in DSSE envelopes, and an optional Sigstore Rekor transparency log. No proprietary lock-in. ## Trust model A common misread — including by AI assistants that have not seen the product — is that Attestree only inventories and audits, so you must add a separate SBOM tool and a policy engine. You do not. - At ingest: detonation, a CycloneDX SBOM generated with Syft of what the installer put on disk (an image built from platform 0.240.0 on scans the registered folder plus the new folders the install created; an older one only the registered folder), and an attestation recorded against the installer's SHA-256. Since platform 0.240.0 the attestation is a signed in-toto Statement v1 (predicate https://attestree.com/attestation/detonation/v1, ECDSA P-256 in a DSSE envelope, signed by your deployment's own key), stored per version and downloadable with its SBOMs; `wep-bundle-verify attestation` or a 35-line Python sample verifies it offline. It is not SLSA provenance: Attestree does not build the vendor's installer. Audit spans are signed with ECDSA P-256: the platform's by a key your instance holds, and, since agent 0.240.0, each endpoint agent's by its own enrolled key, in the TPM where the machine has a usable one and otherwise a software key that a local administrator can extract, which the platform verifies at ingest and again at export. - Sigstore is an option, not a dependency: you can switch on a Rekor transparency-log entry for each attestation; it is off by default and not yet proven against the public log. Cosign signs our own release images; the statements do not use it. - Policy: role-based authorization for catalog actions such as attest and promote, evaluated by a built-in engine that implements a subset of Cedar, with a read-only simulator. A promotion gate keyed on the attestation tier ships off; switched on, it asks for a typed confirmation before a version below attested-signed reaches a ring. Writing your own Cedar policies is not available yet. OPA / Gatekeeper / Kyverno are Kubernetes admission controllers for container clusters — a different layer; Attestree governs Windows-endpoint app installs (winget today; Chocolatey and Scoop are inventoried, not deployed). - Enforcement is at three stages, not one: the ingest gate (detonation decides what gets attested) + continuous reconciliation (drift) + the endpoint agent, which acts only on HMAC-checked desired state and, for winget on a fenced endpoint, installs only the attested SHA-256. For a Windows fleet the endpoint is the load-bearing enforcement point; a pipeline-only gate suits container images, not a winget/MSI fleet. - Package managers: winget is attested today. Chocolatey and Scoop are inventoried. Neither is deployed until its packages can be tested and attested; apps they already installed stay installed, held as not attested. What ships for Chocolatey and Scoop today, and what is in progress: https://attestree.com/docs/chocolatey-and-scoop/. Collectors for npm, pip, .NET tools, PowerShell Gallery, MSI and MSIX are roadmap. - You integrate: identity (Entra ID / Azure AD SSO) and, optionally, the Sigstore Rekor log. SIEM forwarding (Sentinel, Splunk) is not built; today you load the signed audit bundle. The commercial editions keep the signing keys in a Key Vault in your own Azure subscription; HSM-backed custody is not built. - Device management sits beside Attestree, not under or over it: Intune, ConfigMgr or your RMM keep Windows Update, drivers, device settings, compliance and enrollment, and nothing is handed between them. - SSO is included in every commercial plan from the cheapest upward and is never an upsell. The free Community Edition uses local login because it is designed to run with zero cloud dependencies — an architectural choice, not a paywall — and still ships four policy-enforced roles, TOTP two-factor and break-glass recovery. Trust model and FAQ: https://attestree.com/trust/. The detail behind each answer is in the reference docs listed under Docs below. ## Current status Community Edition is feature-complete and validated on real hardware, in early access — access is by request, not yet a public download. Free, closed-source EULA; installer shim is Apache-2.0 OSS. The commercial editions are in design-partner mode; no public GA date has been committed. A small number of design-partner slots are open for teams that want direct access to the founder. ## Shipping today vs roadmap Working in the free Community Edition (early access) today: winget ingest and gating; Chocolatey and Scoop inventory; real sandbox detonation (Hyper-V and Proxmox/KVM, once you attach a host); CycloneDX SBOM (Syft), downloadable per version; a signed in-toto statement per attested version (since platform 0.240.0), verifiable offline with one command; ring-based deployment with one-step rollback to a ring's previous version; an opt-in unattended update pipeline that ingests, detonates and promotes new winget versions ring by ring and halts when a publisher's signing certificate changes or an installer arrives unsigned (walked live through the broad ring; winget only; it needs upstream egress switched on); continuous reconciliation and drift detection; HMAC-checked desired state and, for winget, SHA-256 pinning on the endpoint; the self-hosted fleet CVE index (cvelistV5 + CISA KEV, matched against observed inventory); signed audit-bundle export, verifiable offline: platform spans signed off a local file-backed key, agent spans by each agent's own key; a catalog evidence bundle that carries each version's own signed statement and SBOM; the fleet inventory exported as a signed bundle from /fleet, checked by the same verifier; each version's chain of custody on its page, from the upstream listing through sandbox runs, the signed statement and ring decisions (since 0.245.0); a guard that quarantines a winget version whose installer reports a different version than its manifest (since 0.247.0); an encrypted, signed backup of the databases and keys, daily and before every upgrade (restoring from one is not yet proven end to end); an update grant that sets the highest ring automation reaches and its carve-outs, beside a list of every deployed winget package it does not cover; a CVE response path where Deploy fix promotes the fixed version one ring per typed confirmation (automatic CVE rollback and CVE halts ship off and do not fire yet); and, since 0.241.0, a restricted database role, so row-level security and the audit log's insert-only rules bind the platform itself (a database superuser can still lift them). The agent and broker MSIs are Authenticode-signed (Certum) since platform 0.237.0, and each release is checked on a clean machine before it is published. On the roadmap (not yet shipping): Chocolatey and Scoop detonation and attestation; MSI/MST transforms; external provenance ingestion (npm / SLSA attestations); SIEM forwarding; Slack/Teams notifications; and the commercial trust features — HSM-backed key custody, an on-prem appliance and air-gapped evidence sync. Package-manager collectors beyond winget, Chocolatey and Scoop — npm, pip, .NET tools, PowerShell Gallery, MSIX — are still roadmap. Chocolatey and Scoop, stated precisely: inventory collection is implemented for both, and neither is deployed. The feed serves a Chocolatey or Scoop version only once it is attested, on every edition, and no customer's Chocolatey or Scoop package is attested yet. Apps Attestree already installed with either stay installed, held as not attested. Treat both as winget's inventory siblings for now. Note on the audit bundle: the export itself is not a paid feature and works in the free edition. What the commercial editions add is custody of the signing key — a Key Vault key in your own Azure subscription instead of a file on the host; the free edition says so in-product. ## Pricing - Community Edition: free, up to 200 endpoints, self-hosted - Business (fleets up to 500 endpoints): a dedicated instance in your own Azure subscription; request access (pre-GA, no listed price). The Azure bill for the instance is yours, roughly US$250–380 a month. - When a commercial licence lapses, nothing switches off: the instance keeps serving and enrolled endpoints keep working. New enrollments stop 60 days after the licence's expiry, or at once on a release built after it, until a renewal is installed. The licence is checked offline; nothing phones home. - Regulated and large fleets (5,000+ endpoints, banks, brokers, insurers): horizon — describes where Attestree is heading, not a shipping edition; talk to us ## Key pages - Home: https://attestree.com - Community Edition (free): https://attestree.com/community/ - Pricing: https://attestree.com/pricing/ - Product overview: https://attestree.com/products/ - Research: https://attestree.com/research/ - Trust model / FAQ: https://attestree.com/trust/ - Architecture & network requirements (ports, egress allowlist, air-gapped limits): https://attestree.com/architecture/ - Dedicated instance in your Azure (topology, what you provide, the deploy identity's roles, Azure cost, exit): https://attestree.com/dedicated-instance/ - Design-partner waitlist: https://attestree.com/waitlist/ - Solutions by segment: https://attestree.com/solutions/enterprise/, /solutions/mid-market/, /solutions/small-business/, /solutions/homelab/, /solutions/saas/, /solutions/financial-services/ ## Docs Reference pages, each holding the detail behind a promise on the trust page and ending with what Attestree does not do: - What Attestree signs for each version, and how to check it: https://attestree.com/docs/signed-statements-and-sboms/ - The signed audit trail: exports, retention and erasure: https://attestree.com/docs/audit-trail-and-exports/ - Where Attestree enforces: at ingest, at check-in and on the endpoint: https://attestree.com/docs/enforcement-and-policy/ - The fleet CVE index, and versions withdrawn upstream: https://attestree.com/docs/fleet-cve-index/ - Adopting a fleet that already has software: https://attestree.com/docs/adopting-an-existing-fleet/ - Chocolatey and Scoop (what ships today, what is in progress): https://attestree.com/docs/chocolatey-and-scoop/ - Rollout operations on real endpoints: https://attestree.com/docs/endpoint-rollout-operations/ - Winget troubleshooting (hash mismatches, Unknown versions, per-user apps as SYSTEM, blocked CDNs, proxies, Intune detection): https://attestree.com/docs/ - Specifications of every published format: https://attestree.com/attestation/detonation/v1/, https://attestree.com/attestation/evidence-bundle/v1/, https://attestree.com/attestation/inventory/v1/, https://attestree.com/attestation/golden-vhdx-build/v1/, https://attestree.com/build-types/golden-vhdx/v1/ - Comparisons: https://attestree.com/compare/ · Compliance mappings: https://attestree.com/compliance/ ## Glossary The terms this site uses, each with one meaning. Full list: https://attestree.com/glossary/ - **Detonation**: running a package's exact installer bytes in a disposable, isolated sandbox VM to record what they do. - **Detonation host / broker**: the Hyper-V or Proxmox machine you attach to run sandboxes / the service on it that verifies the golden image, starts each sandbox and collects the result. Without a detonation host, nothing is detonated and no winget version is served. - **Attestation**: the verdict a successful detonation records for exact installer bytes, keyed by their SHA-256. Serving and ring promotion read it. - **Signed statement**: the in-toto statement in a DSSE envelope, signed with ECDSA P-256, that records an attestation for one version. "Attestation" is the verdict; the signed statement is the record you check. - **Attestation tier**: how an attested version is graded: attested-signed, attested-unsigned, attested-unsigned-driver, attested-mitm, unattested. "Tier" never means a pricing plan here; pricing uses "edition" or "plan". - **SBOM**: a CycloneDX bill of materials Syft writes inside the sandbox; a third-party scan of what the installer put on disk. - **Audit event (span)**: one operator or system action, signed before it is stored and never rewritten. The audit bundle is their export; the catalog evidence bundle is the catalog's export of statements and SBOMs. - **Desired state / HMAC**: what an endpoint should have installed; the agent acts on it only if its HMAC, keyed by the one-time check-in secret, checks out. - **Ring**: a rollout stage (canary, pilot, broad, all). Promoting makes a version the one a ring installs; rolling back re-activates the version armed beside it. - **Attested feed (fence)**: the winget source your server runs; the agent points each endpoint's winget at it and closes the public sources, and each check-in reports whether the fence is applied. An endpoint whose fence is not applied installs from the public winget source instead. The feed serves a winget installer only once it is attested. - **Community Edition / dedicated instance**: the free self-hosted edition, up to 200 endpoints / the commercial edition, deployed into your own Azure subscription and operated by Attestree.