Формат и использование#
Обе команды формируют документ в формате CycloneDX, версия спецификации 1.5, сериализация в JSON. Другие форматы вывода не поддерживаются. Стандартный формат позволяет проверять состав как собственным поиском уязвимостей AFT, так и сторонними сканерами.
Что входит в документ#
Документ CycloneDX содержит метаданные сборки и список компонентов.
В метаданных - серийный номер, метка времени, сведения об инструменте и корневой компонент с именем и версией.
По каждому компоненту приводятся имя, версия, тип и идентификатор PURL, а где применимо - идентификатор CPE, описание, поставщик, лицензии, контрольные суммы, внешние ссылки (на загрузку и на систему контроля версий), применённые патчи и дополнительные свойства. Среди свойств - источник сведений о компоненте, его принадлежность приложению или среде выполнения, а также отметки об уязвимостях, которые следует игнорировать. В конце документа описаны зависимости между компонентами.
Использование сканерами#
Полученный состав пригоден как вход для сканеров уязвимостей. Его использует собственный поиск уязвимостей AFT (см. Поиск уязвимостей (aft-scanner)), а благодаря стандартному формату CycloneDX и идентификаторам PURL и CPE - и сторонние сканеры, включая Grype, Trivy и OSV-Scanner. Отметки об игнорируемых уязвимостях, перенесённые из сборочного манифеста, помогают исключить заведомо неприменимые срабатывания.
Где ещё формируется состав#
Состав ПО формируется не только этими командами. Инструменты сборки приложений (Создание приложений (aft-app)), сред выполнения (Создание сред выполнения (aft-runtime)) и расширений (Создание расширений (aft-extension)) создают его при сборке. Анализатор приложений показывает состав на карте приложения и в отчёте (см. Анализ приложений (aft-analyzer)).
Где лежит готовый файл#
Состав ПО вкладывается внутрь самой сборки, поэтому он едет вместе с ней и доступен на целевой машине. Точное место зависит от того, что собрано и чем.
Что собрано |
Путь внутри сборки |
|---|---|
Приложение (aft-app) |
|
Расширение (aft-extension) |
|
Среда выполнения (aft-runtime) |
|
Готовая rootfs (aft-sbom-generator) |
|
В имя файла приложения и расширения версия не входит, у среды выполнения и rootfs входит.
Посмотреть файл в установленной сборке можно изнутри её песочницы:
flatpak run --command=sh org.astra.MyApp
cat /app/share/sbom/org.astra.MyApp.cdx.json
Инструменты AFT ищут состав ПО среды выполнения сами и перебирают все принятые расположения, поэтому среда, собранная любой из команд, читается одинаково. Состав установленного приложения проще получить командой aft-flatpak-sbom (см. Состав установленного приложения): она соберёт его заново, даже если вложенного файла нет.