Цели и источники

Цели и источники#

Цель сканирования - это конкретная сборка (приложение или среда выполнения). Источник определяет, где её искать: среди установленных, в локальном репозитории или в удалённом.

Как задаётся цель#

Цель задаётся либо полным 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> - принудительно взять среду из указанного адреса. Это нужно, когда приложение лежит на одном сервере, а его среда на другом.

Расширения сами по себе состава ПО не содержат, поэтому при сканировании помечаются как пропущенные, а не как ошибка.