Поиск уязвимостей (aft-scanner)#

Инструмент aft-scanner проверяет Flatpak-приложения и среды выполнения на известные уязвимости (CVE). Он опирается на состав ПО сборки и базу определений OVAL и выдаёт сводку с найденными уязвимостями по уровням критичности, сохраняя историю проверок.

Сканировать можно установленные сборки, сборки из локального репозитория и сборки из удалённого репозитория, в том числе когда приложение и его среда выполнения лежат в разных местах.

Из чего состоит раздел#

Команды#

scan#

aft-scanner scan [флаги] цель ... - сканировать одну или несколько указанных целей. Флаг источника относится к следующей за ним цели (см. Цели и источники).

scan-all#

aft-scanner scan-all [флаги] - сканировать все сборки в выбранном источнике, без перечисления целей.

Справка и версия вызываются флагами --help (или -h, можно с темой scan или scan-all) и --version (-V).

Как это применяется#

Сканирование установленного приложения запускается по идентификатору:

aft-scanner scan org.gnome.Calculator

Все установленные сборки сканируются разом:

aft-scanner scan-all

Флаги#

  • --repo=<путь> - сборка из локального репозитория (для следующей цели).

  • --remote=<url> - сборка из удалённого репозитория (для следующей цели).

  • --no-runtime - не сканировать среду выполнения автоматически.

  • --runtime-remote=<url> - принудительно брать среду из указанного адреса.

  • --full-pull - при отсутствии готовых данных в удалённом репозитории выкачать сборку целиком.

  • --oval-dir=<путь> - каталог с базой определений (по умолчанию системный).

  • --severity=<уровни> - какие уровни проверять (по умолчанию все четыре).

  • --fail-on=<уровень> - порог, при котором код возврата становится 1 (по умолчанию critical).

  • --ignore-cve=<список> - исключить уязвимости (повторяемо, через запятую).

  • --ignore-package=<список> - исключить пакеты (повторяемо, через запятую).

  • --output-dir=<путь> - каталог отчётов (по умолчанию ./report).

  • --format=<форматы> - форматы сводки (по умолчанию json и text).

  • --verbose (-v), --quiet (-q) - подробность вывода.

Подробно флаги разобраны в блоках Цели и источники, Как формируется проверка и Отчёты и история.

Коды возврата#

  • 0 - не найдено уязвимостей уровня не ниже порога --fail-on.

  • 1 - найдены уязвимости уровня не ниже порога.

  • 2 - техническая ошибка (сборка не найдена, база не загрузилась, состав ПО недоступен и подобное).

  • 3 - некорректные аргументы.

Порог --fail-on (по умолчанию critical) позволяет встроить сканер в конвейер сборки и блокировать только нужный уровень уязвимостей.