
Агрегирует метаданные безопасности цепочки поставок программного обеспечения (SBOM, аттестации, уязвимости) в доступную для запросов графовую базу данных для аудита, политик и управления рисками.
Примечание: GUAC находится в активной разработке — если вы заинтересованы во вкладе, пожалуйста, ознакомьтесь с руководством для участников. GUAC — это инкубационный проект OpenSSF под эгидой Рабочей группы по целостности цепочки поставок.
Граф для понимания состава артефактов (GUAC) агрегирует метаданные безопасности программного обеспечения в графовую базу данных высокого разрешения — нормализуя идентификаторы сущностей и отображая стандартные отношения между ними. Запросы к этому графу могут способствовать достижению организационных целей более высокого уровня, таких как аудит, политики, управление рисками и даже помощь разработчикам.
Концептуально GUAC занимает уровень «агрегации и синтеза» в логической модели прозрачности цепочки поставок программного обеспечения:

Несколько примеров вопросов, на которые может ответить GUAC:

Наша документация — хорошее место для начала.
У нас есть различные демонстрационные сценарии, с которыми вы можете ознакомиться.
Запуск сервисов GUAC с помощью нашего docker compose quickstart.
В репозитории поставляется
конфигурация .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, поддерживается следующим репозиторием документации на GitHub.
Вот обзор архитектуры GUAC:

Для подробного обзора и объяснения компонентов GUAC Beta, пожалуйста, обратитесь к разделу как работает GUAC.
Обратите внимание, что GUAC использует стандарты идентификаторов программного обеспечения для связывания метаданных друг с другом. Однако эти идентификаторы доступны не всегда, и для их связи необходимо использовать эвристики. Поэтому могут возникать необработанные крайние случаи и ошибки при обработке данных. Мы будем благодарны, если вы создадите проблему качества данных, если столкнетесь с какими-либо ошибками или проблемами при обработке.
GUAC поддерживает несколько бэкендов за слоем программной абстракции. API GraphQL всегда одинаков, и клиенты не должны быть затронуты используемым бэкендом. Бэкенды классифицируются по следующим категориям:
Поддерживаемые/Неподдерживаемые: Поддерживаемые бэкенды — это те, которые проект GUAC обязуется активно поддерживать. Неподдерживаемые бэкенды не поддерживаются активно, но принимают вклад сообщества.
Полные/Неполные: Полные бэкенды поддерживают все обязательные API GraphQL. Неполные бэкенды поддерживают подмножество этих API и могут быть не полностью функциональными.
Оптимизированные: Бэкенд прошел уровень оптимизации для улучшения производительности.
Два бэкенда, которые являются Поддерживаемыми, Полными и Оптимизированными:
keyvalue (поддерживаемый, полный, оптимизированный): непостоянный бэкенд в памяти, не требующий дополнительной инфраструктуры. Также служит эталонным бэкендом для реализации API. Мы рекомендуем начинать с него, если вы только начинаете работу с GUAC!
ent (поддерживаемый, полный, оптимизированный) с PostgreSQL: постоянный бэкенд на основе Entity Framework для Go, который может работать на различных SQL бэкендах. GUAC поддерживает только ent с PostgreSQL. Другие бэкенды ent, такие как MySQL и SQLite, не поддерживаются.
Другие бэкенды:
arangoDB (неподдерживаемый, неполный, оптимизированный): постоянный бэкенд на основе ArangoDB
neo4j/openCypher (неподдерживаемый, неполный): постоянный бэкенд на основе neo4j и openCypher. Этот бэкенд должен работать с любой базой данных, поддерживающей запросы openCypher.
keyvalue: Redis (экспериментальный, полный): Бэкенд keyvalue по умолчанию, но использующий Redis в качестве хранилища.
keyvalue: TiKV (экспериментальный, полный): Бэкенд keyvalue по умолчанию, но использующий TiKV в качестве хранилища.
Для получения дополнительной информации о том, как присоединиться к сообществу, спискам рассылки и встречам, пожалуйста, обратитесь к нашей странице сообщества
По вопросам безопасности или нарушениям кодекса поведения отправляйте электронное письмо на [email protected].
Информацию об управлении, включая устав проекта, можно найти в репозитории guacsec/governance.