Перейти к содержанию

Приложения

Выберите пункт Приложения в меню слева, чтобы посмотреть список входящих в систему команд разработки и их приложений.

Страница Приложения состоит из нескольких частей:

  • Слева расположен иерархический список, в котором представлены команды разработки и их приложения.
  • Справа вверху приводятся сведения о выбранном в списке объекте.
  • Также справа расположены вкладки для работы с выбранным объектом:
    • Для команды - Сканирования приложений, Исключения и Пользователи.
    • Для приложения - Сканирования приложения, Исключения, Пользователи, Авторы, Аудит репозитория и Настройки.

Добавление команды

Чтобы добавить команду через пользовательский интерфейс, выберите пункт Приложения в меню слева и нажмите кнопку Добавить .

В появившемся окне введите имя создаваемой команды и нажмите на кнопку Создать.

Удаление команды

Чтобы удалить команду, в списке команд и приложений нажмите на расположенный справа от имени команды значок AppSec.Track, в появившемся меню выберите пункт Удалить команду и подтвердите это действие в диалоговом окне.

Вместе с командой будут удалены все ее приложения.

Добавление приложения

Чтобы добавить приложение в команду через пользовательский интерфейс, нажмите на расположенный справа от имени команды значок AppSec.Track и в появившемся меню выберите пункт Создать приложение.

В появившемся окне введите имя создаваемого приложения и нажмите на кнопку Создать.

Удаление приложения

Чтобы удалить приложение, в списке команд и приложений нажмите на расположенный справа от имени приложения значок AppSec.Track, в появившемся меню выберите пункт Удалить и подтвердите это действие в диалоговом окне.

Сканирования приложений

На первой вкладке страницы Приложения представлен лог сканирований, содержащий информацию обо всех произведенных сканированиях, относящихся к выбранному в списке команд и приложений объекту.

Для выбранной команды в списке сканирований указаны:

  • Приложение - имя приложения.
  • Версия приложения.
  • Окружение - среда сканирования.
  • Способ запуска (CLI – запуск из командной строки, UI – запуск из пользовательского интерфейса, SCM – сканирование git-репозитория, AUTO – автоматический запуск, см. раздел «Непрерывное сканирование»).
  • Анализ достижимости - поле заполнено, если был проведен анализ достижимости уязвимых функций.
  • Статус результата сканирования (заблокирован/не заблокирован).
  • Дата сканирования - дата и время последнего сканирования данной версии приложения.

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

Для выбранного приложения в списке сканирований указаны:

  • Версия приложения.
  • Окружение - среда сканирования.
  • Способ запуска (CLI – запуск из командной строки, UI – запуск из пользовательского интерфейса, SCM – сканирование git-репозитория, AUTO – автоматический запуск, см. раздел «Непрерывное сканирование»).
  • Анализ достижимости - поле заполнено, если был проведен анализ достижимости уязвимых функций.
  • Пользователь - имя пользователя, запустившего сканирование.
  • Статус результата сканирования (заблокирован/не заблокирован).
  • Дата сканирования - дата и время последнего сканирования данной версии приложения.
  • Количество выполненных Сканов данной версии приложения.
  • В конце строки расположен значок , нажав на который можно настроить мониторинг приложения, см. раздел «Непрерывное сканирование».

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

При нажатии на строку с информацией о сканировании версии приложения открывается страница с информацией о результатах сканирования и о каждом просканированном компоненте.

На странице приведены общие данные о сканировании версии приложения:

  • Количество компонентов и результат их сканирования.
  • Количество репозиториев с разбиением по формату.
  • Окружение, в котором проводилось сканирование.
  • Способ запуска.
  • Дата сканирования.
  • Статус сканирования.
  • Коммит приложения. При нажатии на ссылку в поле Коммит произойдет переход на сборку приложения в соответствующем инструменте, например GitLab или TeamCity.
  • Хэш коммита.
  • Данные о выполнении анализа достижимости уязвимых функций.

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

  • Метка транзитивности, показывающая, входит ли данный компонент в число прямых зависимостей или в число транзитивных зависимостей .
  • PURL компонента.
  • Репозиторий, где он расположен.
  • Версия компонента.
  • CVSS v2, CVSS v3 и CVSS v4 оценки критичности найденных в нем уязвимостей.
  • EPSS и Percentile оценки критичности найденных уязвимостей.
  • Нарушения политик (количество и критичность).
  • Блок - наличие блокировок, вызванных найденными нарушениями.
  • Анализ достижимости - результат анализа достижимости уязвимых функций (Достижима/Недостижима).
  • Исключения, относящиеся к данному компоненту в системе.

При нажатии на строку с информацией о компоненте на экране появится страница, содержащая детальную информацию о нем, см. раздел «Информация о компоненте».

На вкладке Компоненты представлены прямые и транзитивные зависимости между компонентами приложения, см. раздел «Дерево зависимостей между компонентами».

На вкладке Уязвимости представлены все обнаруженные в версии приложения уязвимости. Если был проведен анализ достижимости, можно посмотреть, используется ли уязвимый функционал и детальную информацию об уязвимости, см. раздел «Анализ достижимости уязвимых функций».

На вкладке Исключения представлены все исключения, относящиеся к сканированию версии приложения, см. раздел «Исключения».

Отчеты о сканировании

Для скачивания отчета о результатах сканирования версии приложения в необходимом формате нажмите на кнопку Скачать отчет и выберите из выпадающего списка пункт В формате HTML/PDF/JSON. Отчет содержит информацию о приложении, просканированных компонентах и их лицензиях, количестве нарушений политик, заблокированных компонентах, исключениях, нарушенных правилах и найденных уязвимостях, включая описание уязвимостей.

Существует возможность формирования содержания отчета о сканировании с помощью фильтров, расположенных на вкладке Сканирования компонентов. Если фильтры были установлены, отчет будет содержать информацию только о тех компонентах, которые отвечают заданным в фильтрах условиям. Информация о нарушениях и уязвимостях прочих компонентов не будет включена в отчет.

Примечание

Начиная с версии 3.11.0, формат экспорта отчета о сканировании в JSON совместим с DefectDojo, что позволяет настроить импорт результатов с использованием API или производить импорт в ручном режиме.

Примечание

Начиная с версии 3.12.0, доступ к отчетам о сканировании приложений зависит от значения переменной anonymousScaReport в конфигурационном файле application.yml. Если эта переменная отсутствует или имеет значение true, отчеты доступны для всех пользователей, а при установленном значении false отчеты будут доступны только тем пользователям, у которых есть права доступа Просмотр отчета о сканировании для данного приложения.

Сравнение двух сканирований

На странице с информацией о сканированиях версии приложения можно провести сравнение двух сканирований этой версии.

Для этого выберите в левой колонке два сканирования и нажмите на кнопку Сравнение.

На появившейся странице Сравнение сканирований доступна детальная информация о каждом из двух сканирований, а также список компонентов, в котором:

  • Компоненты, появившиеся только в более позднем из сканирований, отмечены зеленым цветом.
  • Компоненты, присутствующие в обоих сканированиях, отмечены белым цветом.
  • Компоненты, присутствовавшие только в более раннем из сканирований, отмечены красным цветом.

В столбце Нарушения приводится количество нарушений политик для каждого компонента. В случае изменения количества нарушений в компоненте между двумя сканированиями, эта разница также отражается вместе с количеством нарушений, например, означает, что в более позднем сканировании появилось одно дополнительное нарушение.

При нажатии на строку компонента на странице Сравнение сканирований в правой ее части появляется дополнительная панель Нарушения по уровням с информацией о всех нарушениях политик в данном компоненте.

Исключения

На вкладке Исключения страницы Приложения представлены все установленные на уровне команды и/или на уровне приложения исключения для компонентов, на которые не будут срабатывать политики.

Исключения можно отфильтровать, указав значения в полях Компонент, Автор исключения, Дата создания, Дата окончания, Политика, Активность.

Для просмотра дополнительной информации об исключении нажмите на значок «» в конце строки исключения.

Исключение можно отредактировать, нажав на значок «» в строке исключения. В появившемся окне можно изменить дату окончания исключения и добавить комментарий. Чтобы сделать исключение бессрочным, оставьте поле Дата окончания пустым.

Исключение можно удалить, нажав на значок «» в строке исключения и подтвердив удаление в появившемся окне.

Добавление исключения может быть произведено на странице информации о компоненте, см. раздел «Добавление исключения на странице информации о компоненте».

Пользователи

На вкладке Пользователи можно при наличии прав доступа просмотреть список пользователей, имеющих доступ к выбранному объекту (команде или приложению), а также производить стандартные действия по добавлению, удалению пользователей и присваиванию им локальных ролей, относящихся к выбранному объекту (см. детали в разделе «Пользователи и роли»).

Так, для добавления пользователя необходимо нажать на кнопку Добавить пользователя, в появившемся окне Добавление пользователя выбрать пользователя из числа существующих в системе, присвоить ему необходимую роль или роли и нажать на кнопку Добавить.

Примечание

Возможна ситуация, когда пользователю для работы с конкретным объектом будут присвоена роль SUPER_ADMIN. Таким образом, пользователь получит не только все права в своем объекте, но и некоторые глобальные права доступа в рамках всей системы в целом, например, Редактирование или обработка запроса на разблокировку, Удаление запроса на разблокировку, Просмотр раздела с созданными запросами для работы с запросами на разблокировку, а также другие глобальные права доступа к настройкам системы, таким как Настройки LDAP соединения и распределение групп, Пользователь имеет право настраивать внешние feed-ы, Просмотр логов действий пользователей в системе, Просмотр логов запросов со стороны плагина, Редактирование прокси серверов, Удаление прокси сервера, Просмотр списка прокси, Редактирование списка облачных сервисов данных, Просмотр списка подключенных облачных сервисов данных.

Эта возможность будет устранена в следующих релизах системы.

Непрерывное сканирование

Система позволяет настроить мониторинг версии приложения с помощью механизма непрерывного автоматического сканирования.

Выберите приложение на странице Приложения.

В списке сканирований приложения выберите версию, для которой будет осуществляться непрерывное автоматическое сканирование. В конце строки выбранной версии нажмите на значок .

В появившемся окне Параметры мониторинга задайте настройки непрерывного сканирования выбранной версии приложения.

  • Флаг Непрерывное сканирование позволяет включить или выключить мониторинг версии приложения.
    • Частота сканирований — значение этого параметра можно выбрать из выпадающего списка (Раз в час, Раз в сутки, Раз в неделю).
  • Флаг Уведомления пользователей позволяет выбрать пользователей для рассылки уведомлений о результатах непрерывного автоматического сканирования.
    • Получатели уведомлений — в этом поле из выпадающего списка можно выбрать пользователей AppSec.Track, которые будут получать уведомления о результатах непрерывного автоматического сканирования.
    • Email — в этом поле можно указать дополнительные адреса электронной почты, на которые будут рассылаться уведомления о результатах непрерывного автоматического сканирования.
  • Флаг Уведомления webhook позволяет настроить параметры рассылки webhook-уведомлений (см. раздел «Вебхуки»).

После установки параметров нажмите на кнопку Применить.

У версии приложения с установленным непрерывным сканированием в колонке Способ запуска после завершения первого автоматического сканирования будет указано значение AUTO.

Результаты выполненного автоматического сканирования версии приложения будут отображаться в виде новой записи в списке сканирований в следующих случаях:

  • При возрастании критичности нарушений политик относительно результатов предыдущего сканирования.
  • При изменении действия нарушенной политики на блокирующее относительно результатов предыдущего сканирования.
  • При увеличении количества нарушений политик относительно результатов предыдущего сканирования.

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

Уведомление содержит информацию о приложении, о нарушениях политик, ссылку на подробный отчет о сканировании, а также дату и время создания отчета.

При необходимости непрерывное сканирование можно отключить с помощью флага Непрерывное сканирование или удалить, нажав на кнопку Очистить настройки в окне Параметры мониторинга.

Сканирование SBOM

В системе можно провести сканирование файла SBOM, представленного в формате CycloneDX.

Выберите пункт Приложения в меню слева и в списке команд и приложений выберите приложение, а затем нажмите на кнопку Проверить SBOM.

В появившемся окне Проверка SBOM выберите окружение и загрузите файл SBOM в соответствующих полях.

Для запуска сканирования нажмите кнопку Проверить.

После завершения сканирования в окне появится краткое сообщение о его результатах.

Нажмите на кнопку Посмотреть отчет, чтобы ознакомиться с детальными результатами сканирования. На открывшейся странице можно найти результаты для всех компонентов, содержащихся в файле SBOM.

Если для заданного окружения есть активные политики, блокирующие компоненты, перечисленные в файле SBOM, это будет отображено в кратком сообщении о результатах сканирования.

В этом случае на странице с детальными результатами сканирования можно определить количество нарушений политик для каждого из компонентов, а также посмотреть все блокировки.

Дерево зависимостей между компонентами

После завершения сканирования SBOM-файла приложения по нажатию кнопки Смотреть отчет система предоставит детальные результаты сканирования в виде отдельной строки на вкладке Сканирования компонентов для каждого из компонентов.

Компоненты сканируемого приложения в файле SBOM могут быть связаны между собой прямыми и транзитивными зависимостями. Вкладка Компоненты позволяет получить информацию о зависимостях между компонентами приложения.

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

Нажмите на название компонента в дереве зависимостей.

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

Нажмите на кнопку Подробная информация, расположенную ниже флага Скрыть несвязанные. На экране появится окно с информацией о собственных нарушениях политик для выбранного компонента и о нарушениях политик, наследованных от связанных компонентов.

При нажатии на название компонента в поле Пакет приложения на экране появится страница, содержащая детальную информацию о нем, см. раздел «Информация о компоненте».

Примечание

Для отображения многоуровневого дерева зависимостей в сканируемом SBOM-файле должен содержаться блок зависимостей dependencies. В случае его отсутствия, на вкладке Компоненты все компоненты будут отображаться на одном уровне LEVEL 0, а флаг Показать зависимости будет выключен и неактивен.

Сканирование файла манифеста

В системе можно провести сканирование файла манифеста приложения.

Выберите пункт Приложения в меню слева и в списке команд и приложений выберите приложение, а затем нажмите на кнопку Проверить файл манифеста.

В появившемся окне Проверка файла манифеста выберите окружение, укажите версию и загрузите файл манифеста в соответствующих полях.

Для запуска сканирования нажмите на кнопку Проверить.

После завершения сканирования его результаты будут добавлены в список на вкладке Сканирования приложения.

Сканирование репозитория

На странице Приложения можно провести сканирование подключенного git-репозитория.

Для этого необходимо выбрать приложение, перейти на вкладку Настройки, задать URL репозитория и Токен, используемый для работы с данным репозиторием в соответствующем инструменте, например, GitLab или GitHub, и нажать на кнопку Применить.

Подключенный репозиторий будет отображен в поле Репозиторий кода в верхней части страницы с информацией о выбранном приложении.

Примечание

В текущей версии системы при некорректно указанных значениях в полях URL репозитория и Токен или при отсутствии соединения с репозиторием, проблема с подключением будет выявлена только в ходе сканирования и приведет к завершению сканирования с сообщением об ошибке Некорректный SBOM файл.

После завершения настройки перейдите на вкладку Сканирования приложения, а затем нажмите на кнопку Сканирование репозитория.

В появившемся окне Сканирование репозитория:

  • Выберите Окружение.
  • Заполните одно из трех полей – Ветка, Коммит или Тег.

    Примечание

    В текущей версии системы некорректно указанное значение в полях Ветка, Коммит или Тег будет выявлено только в ходе сканирования и приведет к завершению сканирования с сообщением об ошибке Некорректный SBOM файл.

  • Укажите версию в соответствующем поле.

  • Установите флаг Анализ достижимости, если при сканировании необходимо провести анализ достижимости уязвимых функций.
  • Для запуска сканирования нажмите на кнопку Сканировать.

После завершения сканирования его результаты будут добавлены в список на вкладке Сканирования приложения.

Анализ достижимости уязвимых функций

Анализ достижимости уязвимых функций может быть включен при сканировании репозитория на странице Приложения, см. раздел «Сканирование репозитория».

Если анализ достижимости был выполнен, можно посмотреть, может ли быть проэксплуатирована конкретная уязвимость в коде, обнаруженная при сканировании.

На странице с информацией о сканировании версии приложения на вкладке Сканирования компонентов для каждого компонента в столбце Анализ достижимости указан результат анализа достижимости уязвимых функций (Достижима/Недостижима), см. раздел «Сканирования приложений».

Результатом анализа также являются сведения о названии файла, библиотеки и функции и номер конкретной уязвимой строки кода. Эти сведения можно посмотреть на странице с информацией о сканировании версии приложения на вкладке Уязвимости, см. раздел «Сканирования приложений»:

При проведении анализа достижимости необходимо учитывать следующее:

  1. Анализ достижимости поддерживается для кода, написанного на языках Java, JavaScript и Python.
  2. Анализ достижимости проводится по коду проекта, но не по транзитивным зависимостям.
  3. Результаты анализа достижимости не отображаются на странице с детальной информацией о компоненте и в отчетах о сканировании.
  4. Анализ достижимости не будет проводиться повторно при мониторинге версии приложения с помощью непрерывного автоматического сканирования.

Анализ авторов

На вкладке Авторы страницы Приложения представлен список всех авторов коммитов в репозитории, подключенном на вкладке Настройки (см. раздел «Сканирование репозитория»).

Для каждого автора указаны:

  • Имя автора в Git.
  • Email - адрес электронной почты.
  • Количество коммитов автора в подключенном репозитории.

Если репозиторий на вкладке Настройки не был подключен, список авторов на вкладке Авторы будет пустым.

Технический состав приложения отображается на странице информации о компоненте (Info), начиная с версии 3.19.

Аудит репозитория

На вкладке Аудит репозитория страницы Приложения доступна функциональность поиска секретов в репозитории, подключенном на вкладке Настройки (см. раздел «Сканирование репозитория»).

Нажмите на кнопку Начать аудит (В случае, если аудит уже был выполнен ранее, его можно запустить еще раз с помощью кнопки Перезапуск).

В появившемся окне укажите ветку (по умолчанию – main) и нажмите на кнопку Сканировать.

Важно: Выбранная ветка не сохраняется в истории сканирований.

Дождитесь завершения сканирования.

Результаты аудита отображаются на этой же странице на двух вкладках: Секреты и Конфигурации.

Секреты

На вкладке Секреты отображаются результаты поиска секретов в репозитории, подключенном на вкладке Настройки (см. раздел «Сканирование репозитория»).

  • Поиск секретов - это отдельная функция, не связанная с политиками и не влияющая на блокировки компонентов.
  • Для поиска секретов не требуется специальных прав в системе, он доступен для ролей, имеющих доступ к интеграциям с репозиториями и их сканированию.
  • Для поиска используются ключевые слова и регулярные выражения, которые нельзя кастомизировать со стороны пользователя.

Система ищет секреты в коде репозитория:

  • Токены доступа (GitHub, GitLab, AWS, Google Cloud и др.).
  • API-ключи (Twitter, Stripe, Twilio, Spotify и др.).
  • Учетные данные (пароли, client IDs, JWT-токены).

После выполнения сканирования на вкладке Секреты отображаются следующие результаты:

  • Приведены дата и время сканирования.

  • Ниже отображается сгруппированный по критичности список найденных секретов:

    • Критичность (критическая, высокая, средняя, низкая).
    • Путь к файлу.
    • ID правила (регулярного выражения), которое сработало.
    • Количество найденных секретов.
    • Номера строк, где обнаружены секреты.
    • Фрагмент кода с подсветкой проблемных участков.

Анализ мисконфигурации

На вкладке Конфигурации отображаются результаты сканирования мисконфигурации Docker-образов в случае их наличия в репозитории, подключенном на вкладке Настройки (см. раздел «Сканирование репозитория»).

  • Анализ мисконфигурации - это отдельная функция, не связанная с политиками и не влияющая на блокировки компонентов.
  • Для анализа мисконфигурации не требуется специальных прав в системе, он доступен для ролей, имеющих доступ к интеграциям с репозиториями и их сканированию.

После выполнения сканирования на вкладке Конфигурации отображаются следующие результаты:

  • Приведены дата и время сканирования.

  • Ниже отображается сгруппированный по критичности список найденных секретов:

    • Критичность (критическая, высокая, средняя, низкая).
    • AVDID (Application Vulnerability Detection ID) найденной мисконфигурации.
    • Название, описание, рекомендация к исправлению и ссылки на источник.
    • Также могут быть приведены номер строки, где обнаружена мисконфигурация, и фрагмент исходного кода.

Уведомления приложения

Система позволяет настроить рассылку уведомлений о сработавших блокирующих политиках для приложения при сканировании файла SBOM.

Примечание

Данная настройка уведомлений не относится к мониторингу приложения с помощью механизма непрерывного автоматического сканирования, см. раздел «Непрерывное сканирование».

Выберите пункт Приложения в меню слева и в списке команд и приложений выберите приложение, а затем нажмите на кнопку Настройка уведомлений.

В появившемся окне Параметры уведомлений задайте настройки для рассылки уведомлений.

  • Флаг Уведомления пользователей позволяет включить или выключить уведомления для приложения.
    • Частота уведомлений — значение параметра можно выбрать из выпадающего списка (При срабатывании, 1 раз в час, 1 раз в день).
    • Получатели уведомлений — в этом поле из выпадающего списка можно выбрать пользователей, которые будут получать уведомления.
    • Роль — в этом поле из выпадающего списка можно выбрать существующие роли пользователей в системе. Пользователи, имеющие указанные роли, будут автоматически добавлены к списку получателей.
    • Email — в этом поле можно указать дополнительные адреса электронной почты, на которые будут рассылаться уведомления.
  • Флаг Уведомления webhook позволяет настроить параметры рассылки webhook-уведомлений (см. раздел «Вебхуки»).

Нажмите на кнопку Сохранить.

После завершения настройки уведомления будут рассылаться в соответствии с заданными параметрами, а в списке Приложения и команды рядом с названием приложения появится значок .

При необходимости рассылку уведомлений можно отключить с помощью флага Включить уведомления в окне Уведомления.

Закрытый контур

В закрытом контуре сведения о новых компонентах в дампе базы данных обновляются один раз в месяц и нет возможности проверить версии онлайн.

Таким образом, может быть сделана попытка просканировать неизвестную версию компонента или неизвестный компонент, которых нет в дампе базы данных.

В случае проверки компонента, которого нет в дампе базы данных, даже если были установлены политики с проверками по дате, по лицензии и по хешу, этот компонент пройдет проверку.

Чтобы не пропустить такие компоненты без дополнительного анализа, в политики можно добавлять через условие ИЛИ еще одну проверку, где в поле Условие будет указано значение Пустой, например:

Для компонентов, которых нет в дампе базы данных, на странице информации о компоненте все поля на вкладке Информация о версии будут содержать прочерки.