
Aggregiert Metadaten zur Sicherheit von Software-Lieferketten (SBOMs, Bestätigungen, Schwachstellen) in eine abfragbare Graphdatenbank für Audit, Richtlinien und Risikomanagement.
Hinweis: GUAC befindet sich in aktiver Entwicklung – wenn Sie Interesse an einem Beitrag haben, werfen Sie bitte einen Blick in den Leitfaden für Mitwirkende. GUAC ist ein OpenSSF-Inkubationsprojekt unter der Arbeitsgruppe für Lieferkettenintegrität.
Graph zum Verständnis der Artefakt-Zusammensetzung (GUAC) aggregiert Software-Sicherheitsmetadaten in einer hochauflösenden Graphdatenbank – normalisiert Entitätsidentitäten und bildet Standardbeziehungen zwischen ihnen ab. Die Abfrage dieses Graphen kann übergeordnete organisatorische Ergebnisse wie Prüfung, Richtlinien, Risikomanagement und sogar Entwicklerunterstützung vorantreiben.
Konzeptionell besetzt GUAC die Schicht „Aggregation und Synthese“ des logischen Modells für Transparenz in der Softwarelieferkette:

Einige Beispiele für Fragen, die von GUAC beantwortet werden, sind:

Unsere Dokumentation ist ein guter Ausgangspunkt.
Wir haben verschiedene Demo-Anwendungsfälle, die Sie sich ansehen können.
Starten der GUAC-Dienste mit unserem Docker Compose-Schnellstart.
Das Repository enthält eine .devcontainer-Konfiguration, die den vollständigen GUAC-Stack (GraphQL, REST, collectsub, ingestor, NATS und die deps_dev-/osv-/ClearlyDefined-Collectoren) lokal auf Docker startet, unterstützt durch das veröffentlichte GUAC-Release-Image. Öffnen Sie das Repository in VS Code mit der Dev Containers-Erweiterung und wählen Sie „Reopen in Container“ – die GraphQL-Playground wird an Port 8080 und die REST-API an 8081 weitergeleitet. Funktioniert auch mit JetBrains Gateway und DevPod.
Die gesamte Dokumentation für GUAC befindet sich auf docs.guac.sh, unterstützt durch das folgende Dokumentations-GitHub-Repository.
Hier ist ein Überblick über die Architektur von GUAC:

Für eine detaillierte Ansicht und Erklärung der Komponenten der GUAC-Beta finden Sie weitere Informationen unter Wie GUAC funktioniert.
Beachten Sie, dass GUAC Software-Identifikatorstandards verwendet, um Metadaten miteinander zu verknüpfen. Diese Identifikatoren sind jedoch nicht immer verfügbar und es müssen Heuristiken verwendet werden, um sie zu verknüpfen. Daher kann es bei der Erfassung von Daten zu nicht behandelten Randfällen und Fehlern kommen. Wir freuen uns, wenn Sie ein Problem zur Datenqualität erstellen, falls Sie Fehler oder Probleme bei der Erfassung feststellen.
GUAC unterstützt mehrere Backends hinter einer Software-Abstraktionsschicht. Die GraphQL-API ist immer gleich und Clients sollten nicht davon betroffen sein, welches Backend verwendet wird. Die Backends werden kategorisiert in:
Unterstützt/Nicht unterstützt: Unterstützte Backends sind solche, deren aktive Wartung sich das GUAC-Projekt verpflichtet hat. Nicht unterstützte Backends werden nicht aktiv gewartet, nehmen aber Community-Beiträge an.
Vollständig/Unvollständig: Vollständige Backends unterstützen alle obligatorischen GraphQL-APIs. Unvollständige Backends unterstützen einen Teil dieser APIs und sind möglicherweise nicht funktionsvollständig.
Optimiert: Das Backend wurde einer Optimierung unterzogen, um die Leistung zu verbessern.
Die beiden Backends, die unterstützt, vollständig und optimiert sind, sind:
keyvalue (unterstützt, vollständig, optimiert): ein nicht-persistentes In-Memory-Backend, das keine zusätzliche Infrastruktur erfordert. Dient auch als Konformitäts-Backend für API-Implementierungen. Wir empfehlen, damit zu beginnen, wenn Sie gerade mit GUAC anfangen!
ent (unterstützt, vollständig optimiert) mit PostgreSQL: ein persistentes Backend basierend auf Entity Framework für Go, das auf verschiedenen SQL-Backends laufen kann. GUAC unterstützt ent nur mit PostgreSQL. Andere ent-Backends wie MySQL und SQLite werden nicht unterstützt.
Die anderen Backends sind:
arangoDB (nicht unterstützt, unvollständig, optimiert): ein persistentes Backend basierend auf ArangoDB
neo4j/openCypher (nicht unterstützt, unvollständig): ein persistentes Backend basierend auf neo4j und openCypher. Dieses Backend sollte mit jeder Datenbank funktionieren, die openCypher-Abfragen unterstützt.
keyvalue: Redis (experimentell, vollständig): Das Standard-Keyvalue-Backend, jedoch mit Redis als Speicher.
keyvalue: TiKV (experimentell, vollständig): Das Standard-Keyvalue-Backend, jedoch mit TiKV als Speicher.
Für weitere Informationen, wie Sie sich in der Community engagieren können, zu Mailinglisten und Treffen, besuchen Sie bitte unsere Community-Seite
Bei Sicherheitsproblemen oder Bedenken bezüglich des Verhaltenskodex senden Sie bitte eine E-Mail an [email protected].
Informationen zur Governance, einschließlich der Projektcharta, finden Sie im guacsec/governance-Repository.