Цели и источники#
Цель сканирования - это конкретная сборка (приложение или среда выполнения). Источник определяет, где её искать: среди установленных, в локальном репозитории или в удалённом.
Как задаётся цель#
Цель задаётся либо полным ref вида <тип>/<id>/<арх>/<ветка> (тип - app или
runtime), либо коротким идентификатором, который сканер разрешает сам: приоритет
у приложения перед средой выполнения, берётся родная архитектура и ветка
stable. Например, org.gnome.Calculator разрешается в установленное
приложение этого имени для текущей архитектуры.
Источники#
Тип источника выбирается флагом, и флаг относится к следующей за ним цели:
Установленные сборки - по умолчанию, без флага источника.
Локальный репозиторий -
--repo=<путь>.Удалённый репозиторий -
--remote=<url>; из него скачивается только необходимый минимум (состав ПО и манифест), а не полный образ.
aft-scanner scan --repo=./build/repo \
app/org.astra.Chromium/x86_64/stable
Поскольку флаг источника действует на конкретную цель, в одной команде можно смешивать источники - например, искать приложение в одном репозитории, а его среду выполнения в другом:
aft-scanner scan \
--remote=https://flathub.org/repo app/com.app/x86_64/stable \
--remote=https://astra/repo runtime/org.astra.Platform/x86_64/1.8
Среда выполнения#
При сканировании приложения его среда выполнения определяется автоматически из метаданных сборки и сканируется тоже, а её уязвимости попадают в общую картину. Управляют этим два флага:
--no-runtime- не сканировать среду выполнения автоматически.--runtime-remote=<url>- принудительно взять среду из указанного адреса. Это нужно, когда приложение лежит на одном сервере, а его среда на другом.
Расширения сами по себе состава ПО не содержат, поэтому при сканировании помечаются как пропущенные, а не как ошибка.