Инструмент CLI и библиотека Go для создания спецификации программного обеспечения (SBOM) из образов контейнеров и файловых систем. Исключительно подходит для обнаружения уязвимостей при использовании со сканером, таким как Grype.
Syft — это мощный и простой в использовании инструмент с открытым исходным кодом для создания спецификаций программного обеспечения (SBOM) для образов контейнеров и файловых систем. Он обеспечивает подробную информацию о пакетах и зависимостях вашего программного обеспечения, помогая вам управлять уязвимостями, соблюдением требований лицензии и безопасностью цепочки поставок программного обеспечения.
Разработка Syft спонсируется Anchore и распространяется под лицензией Apache-2.0. Чтобы узнать о вариантах коммерческой поддержки Syft или Grype, свяжитесь с Anchore.
Создает SBOM для образов контейнеров, файловых систем, архивов и т. д. для обнаружения пакетов и библиотек.
Поддерживает форматы изображений OCI, Docker и Singularity.
Идентификация дистрибутива Linux
Беспрепятственно работает с Grype (быстрым и современным сканером уязвимостей).
Возможность создания подписанных аттестаций SBOM с использованием спецификации in-toto.
Преобразование между форматами SBOM, такими как CycloneDX, SPDX и собственным форматом Syft.
Бинарные файлы Syft предоставляются для Linux, macOS и Windows.
завиток -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
Варианты установки скрипта:
-b
: указать каталог пользовательской установки (по умолчанию ./bin
).
-d
: более подробные уровни журналирования ( -d
для отладки, -dd
для трассировки).
-v
: проверить подпись загруженного артефакта перед установкой (требуется установка cosign
)
заварить установку syft
совок установить syft
Шоколадный дистрибутив Syft поддерживается сообществом, а не распространяется командой Anchore.
шоколадная установка syft -y
Примечание . Пакет Nix для Syft поддерживается сообществом. Syft доступен в стабильной версии начиная с NixOS 22.05
.
nix-env -i syft
... или просто попробуйте это в эфемерной оболочке nix:
nix-shell -p syft
Чтобы создать SBOM для образа контейнера:
syft <изображение>
Приведенный выше вывод включает только программное обеспечение, видимое в контейнере (т. е. сжатое представление изображения). Чтобы включить программное обеспечение из всех слоев образа в SBOM, независимо от его присутствия в конечном образе, укажите --scope all-layers
:
syft--scope all-layers
Формат вывода для Syft также можно настроить с помощью опции -o
(или --output
):
syft-o
Доступны следующие formats
:
syft-json
: используйте это, чтобы получить как можно больше информации от Syft!
syft-text
: вывод, ориентированный на строки, удобный для человека и машины.
cyclonedx-xml
: отчет XML, соответствующий спецификации CycloneDX 1.6.
[email protected]
: отчет XML, соответствующий спецификации CycloneDX 1.5.
cyclonedx-json
: отчет JSON, соответствующий спецификации CycloneDX 1.6.
[email protected]
: отчет JSON, соответствующий спецификации CycloneDX 1.5.
spdx-tag-value
: отчет в формате значения тега, соответствующий спецификации SPDX 2.3.
[email protected]
: отчет в формате значения тега, соответствующий спецификации SPDX 2.2.
spdx-json
: отчет JSON, соответствующий схеме JSON SPDX 2.3.
[email protected]
: отчет JSON, соответствующий схеме JSON SPDX 2.2.
github-json
: отчет JSON, соответствующий формату моментального снимка зависимостей GitHub.
syft-table
: сводная таблица в виде столбцов (по умолчанию).
template
: позволяет пользователю указать выходной формат. См. раздел «Использование шаблонов» ниже.
Обратите внимание, что флаги с символом @ можно использовать и для более ранних версий каждой спецификации.
Альпийский (apk)
С (Конан)
С++ (конан)
Дарт (пабы)
Дебиан (дпкг)
Дотнет (deps.json)
Objective-C (какаподы)
Эликсир (смесь)
Эрланг (арматура3)
Go (go.mod, двоичные файлы Go)
Haskell (кабал, стек)
Java (jar, Ear, War, Par, sar, nar, родной образ)
JavaScript (npm, пряжа)
Плагины Jenkins (jpi, hpi)
Архивы ядра Linux (vmlinz)
Модули ядра Linux (ко)
Nix (вывод в /nix/store)
PHP (композитор)
Python (колесо, яйцо, поэзия, требования.txt)
Красная шляпа (об/мин)
Рубин (драгоценный камень)
Ржавчина (cargo.lock)
Swift (cocoapods, менеджер пакетов Swift)
Плагины WordPress
Наша вики содержит дополнительную информацию по следующим темам:
Поддерживаемые источники
Выбор файла
Исключение путей к файлам
Выходные форматы
Выбор каталогизатора пакетов
Концепции
Примеры
Использование шаблонов
Несколько выходов
Аутентификация частного реестра
Локальные учетные данные Docker
Учетные данные Docker в Kubernetes
Аттестация (экспериментальная)
Бесключевая поддержка
Поддержка локального закрытого ключа
Добавление SBOM к изображению в качестве подтверждения с помощью Syft
Конфигурация
Ознакомьтесь с нашим руководством для участников и документацией для разработчиков.
Команда Syft регулярно проводит онлайн-встречи с сообществом. Приглашаем всех присоединиться и предложить темы для обсуждения.
Проверьте календарь на предмет даты следующей встречи.
Добавьте пункты в повестку дня (присоединитесь к этой группе, чтобы получить доступ к повестке дня для записи)
Увидимся там!