Подпись, состав ПО и экспорт среды выполнения#

Готовую среду подписывают, формируют для неё состав ПО, при необходимости проверяют на уязвимости и экспортируют в репозиторий. Эти шаги настраиваются флагами команд create и import и секциями build и export манифеста (см. Манифест среды выполнения).

Состав ПО (SBOM)#

Для среды можно сформировать состав ПО в формате CycloneDX со всеми установленными пакетами; он встраивается в среду.

  • --sbom (или -b) - включить генерацию.

В манифесте этим управляет поле build.sbom. Подробнее про состав ПО - в разделе Состав ПО (aft-sbom).

Подпись репозитория ключом GPG#

Подпись OSTree-репозитория ключом GPG подтверждает подлинность среды.

  • --gpg-sign <keyid> (или -g) - подписать экспортированную среду указанным ключом.

В манифесте подпись репозитория задаётся секцией build.signing (поля enabled и key).

Подпись ELF по ГОСТ (bsign)#

Подпись бинарников среды по ГОСТ (bsign, ЗПС Astra Linux) подтверждает их целостность и происхождение на целевой системе. Она настраивается в манифесте, секция build.bsign: включение, ключ, файл с паролем для пакетной подписи, встраиваемые или отсоединённые подписи. При подписи публичные ключи выкладываются в среду, чтобы подпись можно было проверить. Полный перечень полей - в блоке Манифест среды выполнения.

Поиск уязвимостей при сборке#

После экспорта готовую среду можно прогнать через поиск уязвимостей.

  • --scan-vulnerabilities и --no-scan-vulnerabilities - включить или отключить проверку.

  • --scan-fail-on <уровень> - уровень, начиная с которого сборка считается неуспешной.

  • --scan-strict и --no-scan-strict - строгий режим.

  • --scan-oval-dir <путь> - каталог с базой определений.

  • --scan-severity <уровни> - какие уровни проверять (через запятую).

  • --scan-ignore-cve <список> и --scan-ignore-package <список> - что исключить.

В манифесте этому соответствует секция build.scan. Подробнее про сам поиск уязвимостей - в разделе Поиск уязвимостей (aft-scanner).

Экспорт в репозиторий#

Среда (и SDK, если он собран) экспортируется в репозиторий OSTree, по умолчанию ./repo (флаг --output). В манифесте секция export управляет идентификатором набора репозитория (collection-id), генерацией статических дельт для экономии трафика при обновлении (generate-static-deltas) и очисткой старых объектов (prune).