Приложения¶
Выберите пункт Приложения в меню слева, чтобы посмотреть список входящих в систему команд разработки и их приложений.
Страница Приложения состоит из нескольких частей:
- В поле Команды и приложения расположен иерархический список, в котором представлены команды разработки и их приложения.
- Справа вверху приводятся сведения о выбранном в списке объекте.
- Также справа расположены вкладки для работы с выбранным объектом: Сканирования приложений, Исключения, Пользователи, Политики (в разработке) и Настройки (в разработке).
Добавление команды¶
Чтобы добавить команду через пользовательский интерфейс, выберите пункт Приложения в меню слева и нажмите кнопку Добавить .
В появившемся окне введите имя создаваемой команды и нажмите на кнопку Создать.
Удаление команды¶
Чтобы удалить команду, в поле Команды и приложения нажмите на расположенный справа от имени команды значок , в появившемся меню выберите пункт Удалить команду и подтвердите это действие в диалоговом окне.
Вместе с командой будут удалены все ее приложения.
Добавление приложения¶
Чтобы добавить приложение в команду через пользовательский интерфейс, нажмите на расположенный справа от имени команды значок и в появившемся меню выберите пункт Создать приложение.
В появившемся окне введите имя создаваемого приложения и нажмите на кнопку Создать.
Удаление приложения¶
Чтобы удалить приложение, в поле Команды и приложения нажмите на расположенный справа от имени приложения значок , в появившемся меню выберите пункт Удалить и подтвердите это действие в диалоговом окне.
Сканирования приложений¶
На первой вкладке страницы Приложения представлен лог сканирований, содержащий информацию обо всех произведенных сканированиях, относящихся к выбранному в поле Команды и приложения объекту.
Для каждого сканирования указаны приложение и его версия, среда сканирования, способ запуска (CLI – запуск из командной строки, UI – запуск из пользовательского интерфейса, AUTO – автоматический запуск, см. раздел «Непрерывное сканирование»), имя пользователя, запустившего сканирование, статус результата сканирования (заблокирован/не заблокирован), количество выполненных сканов данной версии приложения, дата и время последнего сканирования данной версии приложения. В колонке Действия расположен значок , нажав на который можно настроить мониторинг приложения, см. раздел «Непрерывное сканирование».
При нажатии на строку с информацией о версии приложения на экране появится детальная информация о каждом из проведенных сканирований этой версии, включая информацию о количестве найденных нарушений и о просканированном коммите приложения.
При нажатии на строку с информацией о сканировании версии приложения открывается страница с информацией о каждом просканированном компоненте.
Для каждого компонента указаны:
- PURL компонента.
- Репозиторий, где он расположен.
- Версия.
- CVSS v2 и v3 оценки критичности найденных в нем уязвимостей.
- Нарушения политик (количество и критичность).
- Наличие блокировок, вызванных найденными нарушениями.
- Исключения, относящиеся к данному компоненту в системе.
При нажатии на ссылку в поле Коммит в верхней части экрана произойдет переход на сборку приложения в соответствующем инструменте, например GitLab или TeamCity.
При нажатии на строку с информацией о компоненте в таблице Сканирования на экране появится страница, содержащая детальную информацию о нем (подробное описание см. в разделе «Страница информации о компоненте»).
Для скачивания отчета о результатах сканирования версии приложения в необходимом формате нажмите на кнопку Скачать отчет и выберите из выпадающего списка пункт Скачать HTML или Скачать JSON. Отчет содержит информацию о версии приложения, просканированных компонентах, количестве нарушений политик, заблокированных компонентах, исключениях, нарушенных правилах и найденных уязвимостях.
Существует возможность формирования содержания отчета о сканировании с помощью фильтров, расположенных на вкладке Сканирования компонентов рядом с кнопкой Скачать отчет. Если фильтры были установлены, отчет будет содержать информацию только о тех компонентах, которые отвечают заданным в фильтрах условиям. Информация о нарушениях и уязвимостях прочих компонентов не будет включена в отчет.
Примечание
Начиная с версии 3.11.0, формат экспорта отчета о сканировании в JSON совместим с DefectDojo, что позволяет настроить импорт результатов с использованием API или производить импорт в ручном режиме.
Примечание
Начиная с версии 3.12.0, доступ к отчетам о сканировании приложений зависит от значения переменной anonymousScaReport в конфигурационном файле application.yml. Если эта переменная отсутствует или имеет значение true, отчеты доступны для всех пользователей, а при установленном значении false отчеты будут доступны только тем пользователям, у которых есть права доступа VIEW_SCA_REPORT для данного приложения.
Прямые и транзитивные зависимости между компонентами приложения представлены на вкладке Компоненты, см. раздел «Дерево зависимостей между компонентами»).
Исключения¶
На вкладке Исключения страницы Приложения представлены все установленные на уровне команды и/или на уровне приложения исключения для компонентов, на которые не будут срабатывать политики.
Исключения можно отфильтровать, указав значения в полях Компонент, Автор исключения, Дата создания, Дата окончания, Политика.
С помощью флага Показать активные можно вывести на экран или только активные исключения, или все исключения для выбранной команды или приложения.
Для просмотра дополнительной информации об исключении нажмите на значок «» в правом верхнем углу поля исключения и выберите пункт Подробнее в появившемся меню.
Исключение можно откорректировать, нажав на значок «» в поле исключения и выбрав пункт Редактировать. В появившемся окне можно изменить дату окончания исключения и добавить комментарий. Чтобы сделать исключение бессрочным, оставьте поле Дата окончания пустым.
Исключение можно удалить, нажав на значок «» в правом верхнем углу поля исключения и выбрав пункт Удалить в появившемся меню.
Страница информации о компоненте¶
Страница информации о компоненте содержит детальную информацию о нем и его версиях, обо всех нарушениях установленных политик безопасности, обнаруженных во время проверки, а также об уязвимостях и всех распространяющихся на компонент исключениях и о запросах на его разблокировку.
Примечание
Начиная с версии 3.12.0, доступ к странице с детальной информации о компоненте зависит от значения переменной anonymousInfo в конфигурационном файле application.yml. Если эта переменная отсутствует или имеет значение true, страница доступна для вех пользователей, а при установленном значении false она будет доступна только тем пользователям, у которых есть права доступа VIEW_INFO для данного приложения.
Список версий содержит сведения о доступных версиях компонента. Выбранная версия подсвечивается, при этом дополнительные сведения о ней приводятся справа в поле Информация о версии, там же расположена кнопка Запрос разблокировки для создания нового запроса. В колонке Блокировка указывается, загрузка каких версий компонента блокируется существующими в системе политиками. В колонках Уязвимости, Свойства и Лицензия цветом, соответствующим в системе цвету уровня критичности нарушенной политики, выделяется причина блокировки. В колонке Запросы указывается количество запросов на разблокировку компонента.
Если существует версия компонента, не нарушающая установленных политик, она будет показана в поле Рекомендуемая версия, а также выделена зеленым цветом в Списке версий. В противном случае поле Рекомендуемая версия будет отсутствовать.
В нижней части страницы с информацией о компоненте находятся вкладки Политики, Уязвимости, Исключения и Запросы на разблокировку.
На вкладке Политики представлена информация о нарушениях политик безопасности для версии, выбранной в Списке версий, включая название каждой нарушенной политики и список нарушающих ее уязвимостей.
Для рекомендуемой версии вкладка Политики отсутствует, так как рекомендуемая версия не нарушает установленных политик.
Уровень критичности нарушенной политики выделяется соответствующим цветом слева в строке с названием политики в списке Нарушения политик. Также для каждого нарушения в списке указывается имя компонента, в котором найдено нарушение. Нажмите на значок в строке уязвимости в списке Нарушения политик, чтобы получить детальную информацию об уязвимости, с которой также можно ознакомиться с помощью пункта меню «Поиск уязвимостей», включая описание, обнаружение, объяснение, рекомендации по устранению и полезные ссылки.
На вкладке Уязвимости представлена информация обо всех обнаруженных уязвимостях в версии, выбранной в Списке версий, включая уязвимости, нарушающие политики.
Нажмите на значок в конце строки уязвимости в списке Уязвимости версии, чтобы получить детальную информацию об обнаруженной уязвимости, с которой также можно ознакомиться с помощью пункта меню «Поиск уязвимостей», включая описание, обнаружение, объяснение, рекомендации по устранению и полезные ссылки.
На вкладке Исключения представлена информация обо всех распространяющихся на компонент исключениях.
Исключение можно удалить, нажав на значок «» в правом верхнем углу поля исключения и выбрав пункт Удалить в появившемся меню.
На вкладке Запросы на разблокировку представлена информация обо всех запросах на разблокировку компонента. Запросы на вкладке можно отфильтровать по их статусу с помощью кнопок Все, Новые, Одобрены, Отклонены и Неактуальные.
Чтобы узнать больше о запросе, нажмите на значок «» в конце строки запроса и выберите пункт Подробнее в появившемся меню. На экране появится окно с детальной информацией о запросе.
Добавление исключения на странице информации о компоненте¶
Добавить исключения на странице информации о компоненте можно в Списке версий или на вкладке Политики. В Списке версий в исключения можно добавить все сработавшие политики и срабатывания для выбранной версии компонента. На вкладке Политики в исключения можно добавить политику или срабатывание на нарушающую эту политику уязвимость или значение.
Нажмите на значок в конце строки версии, политики или уязвимости, чтобы добавить исключение для этого элемента и в появившемся меню выберите пункт В исключения.
В появившемся окне необходимо задать параметры создаваемого исключения.
При создании исключения для версии компонента должны быть заданы следующие параметры:
- Уровень — Глобальный, Команды, Приложения.
- Список команд — указывается только для уровней Команды и Приложения.
- Список приложений — указывается только для уровня Приложения.
- Дата окончания — указывается для всех уровней (Глобальный, Команды, Приложения). Исключение можно сделать бессрочным, то есть не имеющим даты окончания его действия, если оставить поле Дата окончания пустым.
- Распространить на другие версии — в этом поле можно выбрать из списка версий компонента неограниченное количество версий, на которые будет распространяться создаваемое исключение. С помощью кнопки Выбрать все можно выбрать сразу все существующие версии компонента.
- Комментарий можно добавить в соответствующем поле.
После заполнения всех полей нажмите кнопку Применить. На странице информации о компоненте появится информация о вновь созданном исключении на вкладке Исключения.
При создании исключения для политики должен быть задан такой же набор параметров.
При создании исключения для срабатываний политик на уязвимости или значения дополнительно определяется параметр В исключения. Он может быть задан как Значение (в исключения добавляется только одно конкретное значение, попадающее под условия, заданные в политике) или как Правило (в исключения добавляется правило, то есть все значения, попадающие под условия, заданные в политике).
Непрерывное сканирование¶
Система позволяет настроить мониторинг приложения с помощью механизма непрерывного автоматического сканирования.
Выберите приложение на странице Приложения.
В списке сканирований приложения выберите версию, для которой будет осуществляться непрерывное автоматическое сканирование. В строке выбранной версии нажмите на значок в колонке Действия.
В появившемся окне Параметры мониторинга приложения задайте настройки непрерывного сканирования выбранной версии приложения:
- Флаг Непрерывное сканирование позволяет включить или выключить мониторинг версии приложения.
- Частота сканирований — значение параметра можно выбрать из выпадающего списка (Раз в час, Раз в сутки, Раз в неделю).
- Пользователи — в этом поле из выпадающего списка можно выбрать пользователей, которые будут получать уведомления о результатах непрерывного автоматического сканирования.
- Email — в этом поле можно указать дополнительные адреса электронной почты, на которые будут рассылаться уведомления о результатах непрерывного автоматического сканирования.
В случае необходимости, включите селектор Включить Webhook уведомления и настройте параметры рассылки webhook-уведомлений (см. раздел «Вебхуки»).
Нажмите на кнопку Сохранить.
У версии приложения с установленным непрерывным сканированием в колонке Способ запуска после завершения первого автоматического сканирования будет указано значение AUTO.
Результаты выполненного автоматического сканирования версии приложения будут отображаться в виде новой записи в списке сканирований в следующих случаях:
- При возрастании критичности нарушений политик относительно результатов предыдущего сканирования.
- При изменении действия нарушенной политики на блокирующее относительно результатов предыдущего сканирования.
- При увеличении количества нарушений политик относительно результатов предыдущего сканирования.
При создании новой записи о результатах автоматического сканирования производится рассылка уведомлений выбранным пользователям и на указанные дополнительные адреса электронной почты в соответствии с заданными параметрами мониторинга приложения.
Уведомление содержит информацию о приложении, о нарушениях политик, ссылку на подробный отчет о сканировании, а также дату и время создания отчета.
При необходимости непрерывное сканирование можно отключить с помощью флага Непрерывное сканирование или удалить, нажав на кнопку Удалить в окне Параметры мониторинга приложения.
Сканирование SBOM¶
В системе можно провести сканирование файла SBOM, представленного в формате CycloneDX.
Выберите пункт Приложения в меню слева и в поле Команды и приложения выберите приложение. В правом верхнем углу поля с информацией о выбранном приложении нажмите на значок и в выпадающем меню выберите пункт Проверить SBOM.
В появившемся окне выберите окружение и загрузите файл SBOM в соответствующих полях.
Для запуска сканирования нажмите кнопку Проверить.
После завершения сканирования в окне появится краткое сообщение о его результатах.
Нажмите на кнопку Смотреть отчет, чтобы ознакомиться с детальными результатами сканирования. На открывшейся странице можно найти результаты для каждого из компонентов, содержащихся в файле SBOM.
Если в системе были включены политики, блокирующие компоненты, перечисленные в файле SBOM, это будет отображено в кратком сообщении о результатах сканирования.
В этом случае на странице с детальными результатами сканирования можно определить количество нарушений политик для каждого из компонентов, а также посмотреть все блокировки.
Дерево зависимостей между компонентами¶
После завершения сканирования SBOM-файла приложения по нажатию кнопки Смотреть отчет система предоставит детальные результаты сканирования в виде отдельной строки на вкладке Сканирования компонентов для каждого из компонентов.
Компоненты сканируемого приложения в файле SBOM могут быть связаны между собой прямыми и транзитивными зависимостями. Вкладка Компоненты позволяет получить информацию о зависимостях между компонентами приложения.
С помощью флага Показать зависимости можно вывести на экран существующие прямые и транзитивные зависимости в виде дерева зависимостей.
Нажмите на название компонента в дереве зависимостей.
Обратите внимание, что с помощью флага Скрыть несвязанные, расположенного ниже названия компонента, можно убрать из дерева все компоненты, не связанные с выбранным компонентом.
Нажмите на кнопку Подробная информация, расположенную ниже флага Скрыть несвязанные. На экране появится окно с информацией о собственных нарушениях политик для выбранного компонента и о нарушениях политик, наследованных от связанных компонентов.
При нажатии на название компонента в поле Пакет приложения на экране появится страница, содержащая детальную информацию о компоненте (см. раздел «Страница информации о компоненте»).
Примечание
Для отображения многоуровневого дерева зависимостей в сканируемом SBOM-файле должен содержаться блок зависимостей dependencies. В случае его отсутствия, на вкладке Компоненты все компоненты будут отображаться на одном уровне LEVEL 0, а флаг Показать зависимости будет выключен и неактивен.
Сканирование SBOM с использованием CLI¶
Сканирование SBOM в системе можно запустить как с использованием пользовательского интерфейса, так и с помощью командной строки. В состав AppSec.Track входит утилита track-cli, работающая в различных операционных системах.
Параметры утилиты описаны в таблице ниже.
Примечание
Корректное завершение работы утилиты возможно, только если указаны все обязательные параметры.
Примечание
В следующем релизе в список обязательных параметров утилиты будет добавлен параметр авторизации, включающий в себя логин и пароль пользователя, запускающего сканирование.
Параметр | Обязательный параметр |
Описание | Пример |
---|---|---|---|
-a |
+ | Имя приложения | -a test_app |
-c |
+ | Хеш коммита | -c 7932314bd6d59f5s431d3e1f261dd639155004rg |
-u |
+ | Ссылка на коммит | -u https://location/to/7932314bd6d59f5s431d3e1f261dd639155004rg |
-t |
+ | Имя команды | -t app_team |
-e |
+ | Окружение, стенд (environment) | -e demo |
-v |
+ | Версия приложения | -v 1.3.9 |
-s |
+ | Адрес стенда | -s https://appsec.track.ru |
-f |
+ | Место расположения файла SBOM | -f ./sbom.json |
-h |
- | Справка | -h |
-V |
- | Печать информации о версии и выход | -V |
-n |
- | Подавление печати таблицы с результатами сканирования | -n |
В операционной системе Windows track-cli может быть запущен стандартными средствами Java. Пример запуска утилиты в ОС Windows:
java -jar track-cli-1.0.jar -a test_app -c 7932314bd6d59f5s431d3e1f261dd639155004rg -u https://location/to/7932314bd6d59f5s431d3e1f261dd639155004rg -t app_team -e demo -v 1.3.9 -s https://appsec.track.ru -f ./sbom.json
Примечание
Для успешного запуска утилиты в ОС Windows необходимо, чтобы в папке, откуда выполняется команда, находились файлы track-cli.jar и sbom.json.
Пример запуска утилиты в операционной системе Linux:
./track-cli-1.0.0.61 -a test_app -c 7932314bd6d59f5s431d3e1f261dd639155004rg -u https://location/to/7932314bd6d59f5s431d3e1f261dd639155004rg -t app_team -e demo -v 1.3.9 -s https://appsec.track.ru -f ./sbom.json
Примечание
Для успешного запуска утилиты в ОС Linux необходимо, чтобы в папке, откуда выполняется команда, находились файлы track-cli и sbom.json.
Если в системе были включены политики, блокирующие компоненты, перечисленные в файле SBOM, результатом запуска утилиты будут:
- Значение FAILED в строке: INFO: Status: FAILED. Application violates security policies.
- Ссылка на страницу с детальными результатами сканирования в строке INFO: Report link. По этой ссылке можно перейти в систему на страницу с полным отчетом о проведенном сканировании всех компонентов, содержащихся в файле SBOM.
-
Краткая сводка в командной строке в виде таблицы с результатами сканирования и информацией о сработавших политиках (ее печать может быть убрана с помощью параметра утилиты
-n
):
Если на компоненты файла SBOM не сработала ни одна блокирующая политика, результатом запуска утилиты будут:
- Значение OK в строке: INFO: Status: OK.
- Ссылка на страницу с детальными результатами сканирования в строке INFO: Report link. По этой ссылке можно перейти в систему на страницу с полным отчетом о проведенном сканировании всех компонентов, содержащихся в файле SBOM.
Примечание
Если в системе отсутствует команда и/или приложение, указанные как параметры при запуске утилиты track-cli, в случае корректного завершения сканирования (с результатом OK или FAILED и созданием отчета о сканировании) они будут добавлены в список Команды и приложения.
Если при запуске утилиты track-cli параметры имя команды (-t
), окружение (-e
) и версия приложения (-v
) были оставлены пустыми (в качестве значения каждого параметра был указан пробел в кавычках: -t " " - e " " -v " "
), в список Команды и приложения будет добавлена команда с названием Команда не указана с окружением Окружение не указано и версией приложения Версия не указана.
Все параметры, указанные в строке запуска утилиты track-cli, в случае расхождения их значений с аналогичными параметрами, указанными в файле SBOM, имеют более высокий приоритет. Это относится к следующим параметрам:
Параметр | Утилита track-cli | Файл SBOM |
---|---|---|
Имя приложения | -a |
component name |
Версия приложения | -v |
component version |
Хеш коммита | -c |
commits uid |
Имя команды | -t |
properties team_name |
Окружение, стенд (environment) | -e |
properties environment |
В приведенном ниже фрагменте файла SBOM эти параметры расположены в выделенных строках:
{
"bomFormat": "CycloneDX",
"specVersion": "1.2",
"serialNumber": "urn:uuid:1f860713-54b9-4253-ba5a-955485190455",
"version": 2,
"metadata": {
"timestamp": "2023-06-22T03:20:53.771Z",
"tools": [
{
"vendor": "CycloneDX",
"name": "Node.js module",
"version": "2.0.0"
}
],
"component": {
"type": "library",
"bom-ref": "",
"name": "NiceTasks",
"version": "1.0.10",
"pedigree": {
"commits": [
{
"uid": "7638417db6d59f3c431d3e1f261cc637155684ct",
"url": "https://location/to/7638417db6d59f3c431d3e1f261cc637155684ct"
}
]
}
},
"properties": [
{
"name": "team_name",
"value": "mobile"
},
{
"name": "environment",
"value": "stage"
}
]
},
"components": [
…
Уведомления приложения¶
Система позволяет настроить рассылку уведомлений о сработавших блокирующих политиках для приложения при сканировании файла SBOM.
Примечание
Данная настройка уведомлений не относится к мониторингу приложения с помощью механизма непрерывного автоматического сканирования, см. раздел «Непрерывное сканирование».
Выберите пункт Приложения в меню слева и в поле Команды и приложения выберите приложение. В правом верхнем углу поля с информацией о выбранном приложении нажмите на значок и в выпадающем меню выберите пункт Настроить уведомления.
В появившемся окне Уведомления задайте настройки для рассылки уведомлений.
- Флаг Включить уведомления позволяет включить или выключить уведомления для приложения.
- Получатели — в этом поле из выпадающего списка можно выбрать пользователей, которые будут получать уведомления.
- Роли — в этом поле из выпадающего списка можно выбрать существующие роли пользователей в системе. Пользователи, имеющие указанные роли, будут автоматически добавлены к списку получателей.
- Частота уведомлений — значение параметра можно выбрать из выпадающего списка (При срабатывании, 1 раз в час, 1 раз в день).
- Email — в этом поле можно указать дополнительные адреса электронной почты, на которые будут рассылаться уведомления.
В случае необходимости, включите селектор Включить Webhook уведомления и настройте параметры рассылки webhook-уведомлений (см. раздел «Вебхуки»).
Нажмите на кнопку Сохранить.
После завершения настройки уведомления будут рассылаться в соответствии с заданными параметрами.
При необходимости рассылку уведомлений можно отключить с помощью флага Включить уведомления в окне Уведомления.
Пользователи¶
На вкладке Пользователи можно при наличии прав доступа просмотреть список пользователей, имеющих доступ к выбранному объекту (команде или приложению), а также производить стандартные действия по добавлению, удалению пользователей и присваиванию им локальных ролей, относящихся к выбранному объекту (см. детали в разделе «Пользователи и роли»).
Так, для добавления пользователя необходимо нажать на кнопку Добавить пользователя, в появившемся окне Добавление пользователя выбрать пользователя из числа существующих в системе, присвоить ему необходимую роль или роли и нажать на кнопку Добавить.
Примечание
Возможна ситуация, когда пользователю для работы с конкретным объектом будут присвоена роль SUPER_ADMIN. Таким образом, пользователь получит не только все права в своем объекте, но и некоторые глобальные права доступа в рамках всей системы в целом, например, EDIT/DELETE/VIEW_UNBLOCK для работы с запросами на разблокировку, а также другие глобальные права доступа к настройкам системы, таким как CONFIG_LDAP, CONFIG_KASPERSKY, VIEW_USER_LOG, VIEW_REQUEST_LOG, EDIT/DELETE/VIEW_PROXY, EDIT/DELETE/VIEW_BACKEND.
Эта возможность будет устранена в следующем релизе системы.