
Aggrega metadati di sicurezza della supply chain software (SBOMs, attestations, vulnerabilities) in un database a grafo interrogabile per audit, policy e gestione del rischio.
Nota: GUAC è in fase di sviluppo attivo - se sei interessato a contribuire, consulta la guida per i contributori. GUAC è un progetto in incubazione di OpenSSF sotto il Supply Chain Integrity WG.
Graph for Understanding Artifact Composition (GUAC) aggrega metadati di sicurezza software in un database a grafo ad alta fedeltà—normalizzando le identità delle entità e mappando relazioni standard tra di esse. Interrogare questo grafo può guidare risultati organizzativi di livello superiore come audit, policy, gestione del rischio e persino assistenza agli sviluppatori.
Concettualmente, GUAC occupa il livello di "aggregazione e sintesi" del modello logico di trasparenza della supply chain software:

Alcuni esempi di domande a cui GUAC risponde includono:

La nostra documentazione è un buon punto di partenza.
Abbiamo vari casi d'uso demo che puoi consultare.
Avviare i servizi GUAC con il nostro avvio rapido docker compose.
Il repository include una configurazione .devcontainer che avvia l'intero stack GUAC (GraphQL, REST, collectsub, ingestor, NATS e i collettori deps_dev / osv / ClearlyDefined) localmente su Docker, supportato dall'immagine di release GUAC pubblicata. Apri il repository in VS Code con l'estensione Dev Containers e seleziona "Riapri nel contenitore" — il playground GraphQL viene inoltrato sulla porta 8080 e l'API REST sulla 8081. Funziona anche con JetBrains Gateway e DevPod.
Tutta la documentazione per GUAC è su docs.guac.sh, supportata dal seguente repository github docs.
Ecco una panoramica dell'architettura di GUAC:

Per una visione approfondita e spiegazione dei componenti della GUAC Beta, consulta come funziona GUAC.
Nota che GUAC utilizza standard di identificatori software per aiutare a collegare i metadati. Tuttavia, questi identificatori non sono sempre disponibili e devono essere utilizzate euristiche per collegarli. Pertanto, potrebbero esserci casi limite non gestiti ed errori che si verificano durante l'ingestione dei dati. Ti saremmo grati se potessi creare un problema di qualità dei dati se incontri errori o bug con l'ingestione.
GUAC supporta molteplici backend dietro un livello di astrazione software. L'API GraphQL è sempre la stessa e i clienti non dovrebbero essere influenzati dal backend in uso. I backend sono categorizzati in:
Supportati/Non supportati: I backend supportati sono quelli per i quali il progetto GUAC si impegna a mantenere attivamente. I backend non supportati non sono mantenuti attivamente ma accetteranno contributi della comunità.
Completi/Incompleti: I backend completi supportano tutte le API GraphQL obbligatorie. I backend incompleti supportano un sottoinsieme di tali API e potrebbero non essere completi dal punto di vista delle funzionalità.
Ottimizzati: Il backend ha subito un livello di ottimizzazione per aiutare a migliorare le prestazioni.
I due backend che sono Supportati, Completi e Ottimizzati sono:
keyvalue (supportato, completo, ottimizzato): un backend in-memory non persistente che non richiede infrastruttura aggiuntiva. Funge anche da backend di conformità per le implementazioni dell'API. Raccomandiamo di iniziare con questo se sei alle prime armi con GUAC!
ent (supportato, completo ottimizzato) con PostgreSQL: un backend persistente basato su Entity Framework for Go che può funzionare su vari backend SQL. GUAC supporta solo ent con PostgreSQL. Altri backend ent come MySQL e SQLite non sono supportati.
Gli altri backend sono:
arangoDB (non supportato, incompleto, ottimizzato): un backend persistente basato su ArangoDB
neo4j/openCypher (non supportato, incompleto): un backend persistente basato su neo4j e openCypher. Questo backend dovrebbe funzionare con qualsiasi database che supporti query openCypher.
keyvalue: Redis (sperimentale, completo): Il backend keyvalue predefinito, ma utilizzando Redis come storage.
keyvalue: TiKV (sperimentale, completo): Il backend keyvalue predefinito, ma utilizzando TiKV come storage.
Per maggiori informazioni su come partecipare alla comunità, mailing list e riunioni, consulta la nostra pagina della comunità.
Per problemi di sicurezza o violazioni del codice di condotta, invia un'email a [email protected].
Le informazioni sulla governance, inclusa la carta del progetto, si trovano nel repository guacsec/governance.