
ソフトウェアサプライチェーンセキュリティメタデータ(SBOM、証明書、脆弱性)を集約し、クエリ可能なグラフデータベースに統合することで、監査、ポリシー、リスク管理を実現します。
注: GUACは活発に開発中です - 貢献に関心がある方は、貢献ガイドをご覧ください。GUACはOpenSSFのインキュベーションプロジェクトであり、サプライチェーン整合性WGの一部です。
Graph for Understanding Artifact Composition (GUAC) は、ソフトウェアセキュリティメタデータを高忠実度のグラフデータベースに集約し、エンティティIDを正規化し、それらの間の標準的な関係をマッピングします。このグラフのクエリにより、監査、ポリシー、リスク管理、さらには開発者支援などの高レベルの組織的な成果を推進できます。
概念的には、GUACはソフトウェアサプライチェーン透明性の論理モデルの「集約と合成」層を占めています。

GUACが答える質問の例をいくつか示します:

始めるには、ドキュメントが最適な場所です。
さまざまなデモユースケースをご覧いただけます。
GUACサービスを開始するには、docker compose クイックスタートをご利用ください。
このリポジトリには.devcontainer設定が含まれており、これによりGUACフルスタック(GraphQL、REST、collectsub、ingestor、NATS、そしてdeps_dev / osv / ClearlyDefinedコレクター)がDocker上でローカルに起動し、公開されたGUACリリースイメージをバックエンドとして使用します。VS Codeでリポジトリを開き、Dev Containers拡張機能を使用して「Reopen in Container」を選択すると、GraphQLプレイグラウンドがポート8080に、REST APIがポート8081にフォワードされます。JetBrains GatewayやDevPodでも動作します。
GUACの全ドキュメントはdocs.guac.shにあり、以下のdocs GitHubリポジトリで管理されています。
以下はGUACのアーキテクチャの概要です。

GUAC Betaのコンポーネントの詳細については、GUACの仕組みを参照してください。
GUACはソフトウェア識別子の標準を使用してメタデータを相互にリンクさせます。ただし、これらの識別子が常に利用できるとは限らず、リンクにはヒューリスティックを使用する必要があります。そのため、データ取り込み時に未処理のエッジケースやエラーが発生する可能性があります。取り込みに関するエラーやバグに遭遇した場合は、データ品質に関する問題を作成していただけると幸いです。
GUACはソフトウェア抽象化レイヤーの背後で複数のバックエンドをサポートしています。GraphQL APIは常に同じであり、クライアントは使用中のバックエンドに影響を受けません。バックエンドは以下のカテゴリに分類されます。
サポート対象/非サポート: サポート対象のバックエンドは、GUACプロジェクトが積極的にメンテナンスすることを約束しているものです。非サポートのバックエンドは積極的にはメンテナンスされていませんが、コミュニティからの貢献は受け付けます。
完全/不完全: 完全なバックエンドはすべての必須GraphQL APIをサポートします。不完全なバックエンドはそれらのAPIのサブセットをサポートし、機能が完全ではない場合があります。
最適化済み: バックエンドはパフォーマンス向上のために最適化が行われています。
サポート対象、完全、最適化済みの2つのバックエンドは次のとおりです。
keyvalue (サポート対象、完全、最適化済み): 追加のインフラストラクチャを必要としない非永続的なインメモリバックエンド。API実装の適合性バックエンドとしても機能します。GUACを始めたばかりの場合は、こちらから始めることをお勧めします!
ent (サポート対象、完全、最適化済み) with PostgreSQL: Entity Framework for Goに基づく永続的なバックエンドで、さまざまなSQLバックエンド上で動作可能。GUACはentとPostgreSQLの組み合わせのみをサポートします。MySQLやSQLiteなどの他のentバックエンドはサポートされていません。
その他のバックエンドは次のとおりです。
arangoDB (非サポート、不完全、最適化済み): ArangoDBに基づく永続的なバックエンド
neo4j/openCypher (非サポート、不完全): neo4jとopenCypherに基づく永続的なバックエンド。このバックエンドは、openCypherクエリをサポートする任意のデータベースで動作するはずです。
keyvalue: Redis (実験的、完全): デフォルトのkeyvalueバックエンドですが、ストレージとしてRedisを使用します。
keyvalue: TiKV (実験的、完全): デフォルトのkeyvalueバックエンドですが、ストレージとしてTiKVを使用します。
コミュニティへの参加方法、メーリングリスト、会議の詳細については、コミュニティページを参照してください。
セキュリティ問題や行動規範に関する懸念については、[email protected] にメールを送信してください。
プロジェクト憲章を含むガバナンスに関する情報は、guacsec/governanceリポジトリにあります。