
Agrega metadados de segurança da cadeia de suprimentos de software (SBOMs, atestações, vulnerabilidades) em um banco de dados gráfico consultável para auditoria, política e gestão de riscos.
Nota: GUAC está em desenvolvimento ativo — se você tem interesse em contribuir, consulte o guia do colaborador. O GUAC é um projeto em incubação do OpenSSF sob o Supply Chain Integrity WG.
Gráfico para Compreensão da Composição de Artefatos (GUAC) agrega metadados de segurança de software em um banco de dados gráfico de alta fidelidade — normalizando identidades de entidades e mapeando relacionamentos padrão entre elas. Consultar esse gráfico pode gerar resultados organizacionais de alto nível, como auditoria, políticas, gestão de riscos e até assistência ao desenvolvedor.
Conceitualmente, o GUAC ocupa a camada de “agregação e síntese” do modelo lógico de transparência da cadeia de suprimentos de software:

Alguns exemplos de perguntas respondidas pelo GUAC incluem:

Nossa documentação é um bom ponto de partida.
Temos vários casos de uso de demonstração que você pode conferir.
Iniciando os serviços do GUAC com nosso início rápido com docker compose.
O repositório inclui uma configuração .devcontainer que monta a pilha completa do GUAC (GraphQL, REST, collectsub, ingestor, NATS e os coletores deps_dev / osv / ClearlyDefined) localmente no Docker, utilizando a imagem de release publicada do GUAC. Abra o repositório no VS Code com a extensão Dev Containers e selecione "Reabrir no Container" — o playground GraphQL será encaminhado para a porta 8080 e a API REST para a porta 8081. Também funciona com JetBrains Gateway e DevPod.
Toda a documentação do GUAC está em docs.guac.sh, mantida pelo seguinte repositório github de documentação.
Aqui está uma visão geral da arquitetura do GUAC:

Para uma visão aprofundada e explicação dos componentes do GUAC Beta, consulte como o GUAC funciona.
Observe que o GUAC utiliza padrões de identificadores de software para ajudar a vincular metadados entre si. No entanto, esses identificadores nem sempre estão disponíveis e heurísticas precisam ser usadas para vinculá-los. Portanto, podem ocorrer casos extremos não tratados e erros durante a ingestão de dados. Agradecemos se você puder criar um issue de qualidade de dados se encontrar erros ou bugs com a ingestão.
O GUAC suporta vários backends por trás de uma camada de abstração de software. A API GraphQL é sempre a mesma e os clientes não devem ser afetados pelo backend em uso. Os backends são categorizados em:
Suportado/Não suportado: Backends suportados são aqueles que o projeto GUAC se compromete a manter ativamente. Backends não suportados não são mantidos ativamente, mas aceitam contribuições da comunidade.
Completo/Incompleto: Backends completos suportam todas as APIs GraphQL obrigatórias. Backends incompletos suportam um subconjunto dessas APIs e podem não ter todos os recursos.
Otimizado: O backend passou por um nível de otimização para ajudar a melhorar o desempenho.
Os dois backends que são Suportados, Completos e Otimizados são:
keyvalue (suportado, completo, otimizado): um backend em memória não persistente que não requer infraestrutura adicional. Também atua como backend de conformidade para implementações de API. Recomendamos começar por ele se você está iniciando com o GUAC!
ent (suportado, completo, otimizado) com PostgreSQL: um backend persistente baseado no Entity Framework para Go que pode ser executado em vários backends SQL. O GUAC suporta apenas ent com PostgreSQL. Outros backends ent, como MySQL e SQLite, não são suportados.
Os outros backends são:
arangoDB (não suportado, incompleto, otimizado): um backend persistente baseado no ArangoDB
neo4j/openCypher (não suportado, incompleto): um backend persistente baseado no neo4j e openCypher. Este backend deve funcionar com qualquer banco de dados que suporte consultas openCypher.
keyvalue: Redis (experimental, completo): O backend keyvalue padrão, mas usando Redis como armazenamento.
keyvalue: TiKV (experimental, completo): O backend keyvalue padrão, mas usando TiKV como armazenamento.
Para mais informações sobre como participar da comunidade, listas de e-mail e reuniões, consulte nossa página da comunidade
Para questões de segurança ou preocupações com o código de conduta, um e-mail deve ser enviado para [email protected].
Informações sobre governança, incluindo o estatuto do projeto, podem ser encontradas no repositório guacsec/governance.