Skip to main content
Zurück zu Projekte

Attestree

Supply-Chain-Provenance für Windows-Flotten — SBOM beim Ingest

.NETwingetSBOM / CycloneDXSigstoreSLSAWDACDockerAstro

Privates Repository

Problem

Die meisten Windows-Umgebungen installieren Pakete direkt aus der öffentlichen Quelle und entdecken Probleme erst, wenn Tage später ein Scanner über einen Endpunkt läuft. Bis dahin ist das Artefakt auf tausenden Maschinen, SBOMs sind ein nachträglicher Gedanke, Attestierungen fehlen, und die Supply-Chain-Story lautet „wir vertrauen dem CDN von Microsoft". Tanium, Defender for Cloud, Snyk und vergleichbare Werkzeuge scannen ausgerollte Binaries im Nachhinein — niemand prüft die Katalog- und Distributionsschicht, bevor deployt wird.

Ansatz

Attestree dreht die Reihenfolge um: Provenance wird beim Ingest geprüft, nicht nach der Installation. Jedes aus einer Quelle geladene Paket wird gegen die Richtlinie verifiziert — Provenance, SBOM, SLSA-Level, CVE-Schweregrad, Lizenz — bevor es einen Flottenknoten erreicht. Abgelehnte Artefakte schaffen es nie bis Canary; aufgenommene Artefakte tragen signierte Receipts, die ein Auditor mit einem öffentlichen Schlüssel verifizieren kann. Aufgesetzt darauf: ring-basiertes Deployment mit Auto-Rollback und ein einheitliches attestiertes Inventar über alle Paketmanager hinweg.

Package Sources winget · MSI/MST · npm · pip · drivers · firmware INGEST GATE — POLICY EVALUATION Provenance · SBOM · SLSA level CVE severity · License allow-list Rejected admit SIGNED ATTESTATION Verifiable receipt · provenance record RING PROMOTION Canary → Pilot → Broad → All · auto-rollback WINDOWS FLEET ENDPOINTS Agent + installer shim (OSS, Apache-2.0) ATTESTED INVENTORY Cross-package- manager rollup CVE matrix vs NVD / OSV / MSRC Signed export for auditors CONTROL PLANE .NET · PostgreSQL Community Edition (Docker) Marketing site (Astro · CF Pages)

Architektur

Das System hat zwei Oberflächen — eine Control Plane mit Agent für Ingest Gate, Attestierung und Deployment, und eine öffentliche Eingangstür aus Marketing-Website und Open-Core Community Edition.

Ingest Gate

Pakete durchlaufen ein Policy Gate: Fetch, Provenance-Prüfung gegen vertrauenswürdige Roots, SBOM-Verifikation (CycloneDX), Policy-Evaluierung (Mindest-SLSA-Level, CVE-Obergrenze, Lizenz-Allow-List) und schliesslich die Aufnahme-/Ablehnungsentscheidung.

Ring-basiertes Deployment

Aufgenommene Artefakte rollen über Promotion-Rings aus — Canary, Pilot, Broad, All — statt flottenweit auf einmal, mit operator-editierbaren Soak-Floors und Auto-Rollback bei Fehlersignal. Der Blast-Radius eines fehlerhaften Pakets bleibt klein.

Control-Plane-Stack

  • .NET / Windows — AOT-kompilierter Agent und Installer-Shim; Server auf Windows Server 2025
  • PostgreSQL — operativer Store mit Per-Tenant-Scope als erstklassiger Invariante
  • OCI-Registries — Distributionsschicht für Artefakte

Technische Schlüsselentscheidungen

SBOM beim Ingest statt Post-Install-Scan

Der strukturelle Wedge: Attestree besitzt die Katalog-/Distributionsschicht und prüft vor dem Deploy. Ohne Pre-Deploy-Attestierung ist „wir inventarisieren es" nur ein schöneres winget list.

Signierte, verifizierbare Receipts

Jede Aufnahme erzeugt Evidenz: ein Receipt mit verifizierter Provenance, angehängter SBOM und SLSA-Level, das gegen einen öffentlichen Schlüssel verifiziert. So lässt sich Monate später beantworten, wer ein Artefakt auf welcher Grundlage freigegeben hat. Heute verwaltete Signaturschlüssel, Sigstore-verankerte Verifikation auf der Roadmap.

Paketmanager-übergreifendes Inventar

Ein einheitliches, attestiertes Inventar statt der Abstimmung einzelner Tool-Ausgaben, gekeyt nach kanonischer Artefakt-Identität, mit einer CVE-Matrix gegen NVD / OSV / MSRC und einem signierten Export, den der Auditor unabhängig liest.

Open-Core mit erzwungener Lizenzgrenze

Der Installer-Shim und sein IPC-Vertrag sind Apache-2.0; die Plattform ist Closed-Source. Die Lizenzgrenze wird mechanisch im Build durchgesetzt — Closed-Source-Code kann nicht versehentlich umlizenziert werden. Eine cosign-signierte Community-Edition als Docker-Image dient dem Self-Hosting.

Öffentliche Website

Die Marketing-Website unter attestree.com ist eine separate, vollständig öffentliche Oberfläche: statischer Astro-Build mit Tailwind + MDX, deployt auf Cloudflare Pages mit Preview-Deploy pro PR. Die Warteliste läuft als Same-Origin Cloudflare Pages Function mit D1 in einer EU-Jurisdiktion und Turnstile-Bot-Abwehr. Die Build-Security-Baseline umfasst SHA-gepinnte Actions, least-privilege Token, committetes Lockfile, Dependabot und ein npm audit CI-Gate.