Репозитории¶
В системе представлены данные обо всех подключенных менеджерах репозиториев Nexus Repository Manager и JFrog Artifactory, в которых установлены плагины Track.Plugin.
Выберите пункт Репозитории в меню слева, чтобы посмотреть список входящих в систему менеджеров репозиториев и содержащихся в них репозиториев.
Страница Репозитории состоит из нескольких частей:
- Слева расположен иерархический список подключенных менеджеров репозиториев и содержащихся в них репозиториев.
- Справа вверху приводятся сведения о выбранном объекте.
- Также справа расположен ряд вкладок для работ с выбранным объектом: Компоненты, Нарушения политик, История запросов, Исключения, Пользователи и Настройки.
Существует возможность поиска и фильтрации объектов. Чтобы найти объект(ы), введите (полностью или частично) его имя в поле поиска. Чтобы просмотреть только активные объекты, нажмите на кнопку Активные, расположенную под полем поиска. Чтобы просмотреть неактивные объекты, нажмите на кнопку Неактивные.
Перевести менеджер репозиториев или репозиторий из состояния «активен» в состояние «неактивен» и обратно можно на странице его настроек (см. раздел «Настройки менеджеров репозиториев/репозиториев»).
Для каждого менеджера репозиториев указаны его статус в системе (активен/неактивен) и имя. Система работает только с активными репозиториями.
Удаление репозитория¶
Чтобы удалить менеджер репозиториев или репозиторий, нажмите на расположенный справа от его имени значок , в появившемся меню выберите пункт Удалить и подтвердите это действие в диалоговом окне.
Удалить менеджер репозиториев или репозиторий можно и другим способом. Нажмите на значок в правом верхнем углу поля с информацией о выбранном в списке объектов менеджере репозиториев или репозитории, в появившемся меню выберите пункт Удалить и подтвердите это действие в диалоговом окне.
Удалить можно как активный, так и неактивный менеджер репозиториев или репозиторий.
При удалении менеджера репозиториев или репозитория в системе пересчитываются все показатели, в которых он учитывался. Также из системы удаляется любая связанная с ним информация со вкладок Компоненты, Нарушения политик, История запросов, Исключения и Настройки. Эти данные после удаления не подлежат восстановлению.
При новом запросе на ранее удаленный репозиторий он снова появится в системе, но уже без удаленной истории.
При удалении менеджера репозиториев будет удален в том числе и его токен. Поэтому при новом запросе на ранее удаленный менеджер репозиториев потребуется сгенерировать новый токен для подключения Track.Plugin и использовать его как параметр при подключении Nexus Repository Manager или Jfrog Artifactory (см. разделы «Установка Track.Plugin в Nexus Repository Manager» и «Установка Track.Plugin в Jfrog Artifactory»).
Добавление репозитория¶
Чтобы добавить менеджер репозиториев в систему через пользовательский интерфейс, выберите пункт Репозитории в меню слева и нажмите на кнопку Добавить .
В появившемся окне введите имя создаваемого менеджера репозиториев и нажмите кнопку Создать.
Для созданного менеджера репозиториев необходимо сгенерировать токен для подключения Track.Plugin (см. раздел «Настройки менеджеров репозиториев/репозиториев») и использовать его как параметр при подключении к системе через Track.Plugin (см. разделы «Установка Track.Plugin в Nexus Repository Manager» и «Установка Track.Plugin в Jfrog Artifactory»).
Примечание
При получении запроса через пользовательский интерфейс Nexus Repository Manager или JFrog Artifactory или при работе с использованием CLI, репозиторий автоматически добавляется в список объектов системы.
Компоненты¶
На вкладке Компоненты приводится список всех компонентов выбранного менеджера репозиториев или репозитория, которые когда-либо загружались и прошли через систему.
Компоненты в списке скомпонованы по группам. В конце списка приведены компоненты без группы.
Для каждого компонента приведена следующая информация:
- Имя компонента.
- Имя репозитория, в котором находится компонент.
- Версия компонента.
- CVSS v2 и CVSS v3 оценки критичности уязвимостей, найденных в компоненте.
- Нарушений – количество нарушений политик для данного компонента с разделением по уровням критичности нарушенных политик.
- Поле Блокировка графически показывает, была ли заблокирована загрузка данного компонента или нет. Если поле является пустым, компонент не заблокирован системой и его можно скачать.
- Исключение – наличие в системе исключений для данного компонента.
- Всего загрузок – количество загрузок компонента.
- Дата последнего сканирования (последней загрузки) компонента.
С помощью полей Группа, Компонент, Версия, CVSS v2, CVSS v3, Критичность, Период сканирования, Блокировка и Исключение можно отфильтровать список компонентов. Во всех полях, кроме поля Период сканирования, можно выбрать один или несколько элементов из выпадающих списков, а в поле Период сканирования можно задать даты начала и окончания периода сканирования.
При нажатии на строку компонента в списке компонентов на экране появится страница, содержащая детальную информацию о компоненте (подробное описание см. в разделе «Страница информации о компоненте»).
Нарушения политик¶
На вкладке Нарушения политик показаны все наследуемые, собственные и дочерние политики, нарушенные при попытках скачать компоненты выбранного менеджера репозиториев или репозитория.
Для каждой нарушенной политики показано количество нарушений, критичность нарушений, количество условий в политике и действие при нарушении политики.
С помощью полей Критичность и Действие при нарушении можно отфильтровать список политик. В поле Критичность можно выбрать один или несколько уровней критичности (Критичная, Высокая, Средняя, Низкая, Информативная), а в поле Действие при нарушении — одно или несколько возможных действий при нарушении политики (Действий не требуется, Отправка нотификаций при нарушении, Блокировка загрузки компонента).
С помощью селектора Показать активные можно вывести на экран или только активные политики, или все политики для данного компонента. Неактивные политики выделяются в списке темным серым фоном.
Исключения¶
Для обеспечения гибкости при работе с политиками безопасности система предоставляет возможность создавать исключения для компонентов, политик или срабатываний на нарушающие эти политики уязвимости или значения в отдельных репозиториях, менеджерах репозиториев или на глобальном уровне. Это позволяет загружать данные компоненты даже в том случае, если они нарушают установленные в системе политики безопасности.
Выберите репозиторий или менеджер репозиториев и перейдите на вкладку Исключения, чтобы посмотреть список существующих исключений для данного объекта.
Для каждого исключения указаны:
- Компонент, на который не срабатывают политики.
- Срабатывание (значение или правило, исключенное из проверок).
- Уровень, на котором добавлено исключение (Глобальный, Менеджер репозиториев, Репозиторий).
- Автор и дата создания исключения.
- Дата окончания действия исключения. Исключение является бессрочным, то есть не имеющим даты окончания его действия, если дата окончания действия исключения не указана.
- Список версий, для которых добавлено исключение.
Примечание
В предыдущих версиях системы исключение могло разрешать или запрещать загрузку компонента. Исключение, действие которого было определено как «Запрещен», запрещало загрузку компонента, даже если он не имел известных проблем безопасности. Исключение, действие которого было определено как «Разрешен», разрешало загрузку компонента, даже если он имел известные проблемы безопасности. В данной версии системы исключение является только разрешающим загрузку механизмом, а не блокирующим. Блокировать загрузки можно с помощью политик.
Исключения можно отфильтровать, указав значения в полях Компонент, Автор исключения, Дата создания, Дата окончания, Политика.
С помощью селектора Показать активные можно вывести на экран или только активные исключения, или все исключения для выбранного объекта.
Для просмотра дополнительной информации об исключении нажмите на значок «» в правом верхнем углу поля исключения и выберите пункт Подробнее в появившемся меню.
Исключение можно откорректировать, нажав на значок «» в поле исключения и выбрав пункт Редактировать. В появившемся окне можно изменить дату окончания исключения и добавить комментарий. Чтобы сделать исключение бессрочным, оставьте поле Дата окончания пустым.
Исключение можно удалить, нажав на значок «» в правом верхнем углу поля исключения и выбрав пункт Удалить в появившемся меню.
Если для компонента в системе действует исключение, при его загрузке в лог запросов будет добавлена соответствующая запись о том, что компонент разрешен к использованию (см. детали в разделе «История запросов»).
Добавление в систему исключения может быть произведено на странице информации о компоненте, см. описание в соответствующем разделе «Добавление исключения на странице информации о компоненте».
История запросов¶
На вкладке История запросов представлен лог запросов, содержащий информацию обо всех произведенных пользователями менеджеров репозиториев запросах на скачивание компонентов, относящихся к выбранному репозиторию или менеджеру репозиториев.
Для каждого запроса указаны дата и время запроса, его тип ( — компонент разрешен к скачиванию/ — компонент заблокирован, скачивание не было произведено из-за блокирующей политики безопасности/ — во время скачивания произошла ошибка), PURL запрошенного на скачивание компонента, описание результата запроса и имя репозитория.
Если политика безопасности не является блокирующей, компонент может быть успешно скачан даже при наличии в описании результата запроса найденных уязвимостей или нарушений установленной политики безопасности. Для компонентов, добавленных в исключения, в описании результата запроса приводится информация «Компонент разрешен к использованию».
В логе запросов реализована фильтрация по информации в колонках Время события, PURL и Описание. Чтобы отфильтровать необходимые запросы, введите требуемую информацию в окне Поиск.
При нажатии на PURL компонента в строке запроса на экране появится страница, содержащая детальную информацию о компоненте (подробное описание см. в разделе «Страница информации о компоненте»).
Примечание
На вкладке История запросов не отображаются запросы по компонентам, находившимся на момент запроса в блеклисте репозитория или менеджера репозиториев, а также действия с неактивными репозиториями.
Страница информации о компоненте¶
Страница информации о компоненте содержит детальную информацию о компоненте и его версиях, а также обо всех нарушениях установленных политик безопасности, обнаруженных во время проверки компонента уязвимостях и обо всех распространяющихся на компонент исключениях и о запросах на его разблокировку.
Список версий содержит сведения о доступных версиях компонента. Выбранная версия подсвечивается, при этом дополнительные сведения о ней приводятся справа в поле Информация о версии, там же расположена кнопка Запрос разблокировки для создания нового запроса. В колонке Блокировка указывается, загрузка каких версий компонента блокируется существующими в системе политиками. В колонках Уязвимости, Свойства и Лицензия цветом, соответствующим в системе цвету уровня критичности нарушенной политики, выделяется причина блокировки. В колонке Запросы указывается количество запросов на разблокировку компонента.
В случае, если существует версия компонента, не нарушающая установленных политик, она будет показана в поле Рекомендуемая версия, а также выделена зеленым цветом в Списке версий. В противном случае поле Рекомендуемая версия будет отсутствовать. Нажмите на строку с рекомендуемой версией в Списке версий, чтобы получить детальную информацию о ней.
В нижней части страницы с информацией о компоненте находятся вкладки Политики, Уязвимости, Исключения и Запросы на разблокировку.
На вкладке Политики представлена информация о нарушениях политик безопасности для версии, выбранной в Списке версий, включая название каждой нарушенной политики и список нарушающих ее уязвимостей.
Для рекомендуемой версии вкладка Политики отсутствует, так как рекомендуемая версия не нарушает установленных политик.
Уровень критичности нарушенной политики выделяется соответствующим цветом слева в строке с названием политики в списке Нарушения политик. Также для каждого нарушения в списке указывается имя компонента, в котором найдено нарушение. Нажмите на значок в строке уязвимости в списке Нарушения политик, чтобы получить детальную информацию об уязвимости, с которой также можно ознакомиться с помощью пункта меню «Поиск уязвимостей», включая описание, обнаружение, объяснение, рекомендации по устранению и полезные ссылки.
На вкладке Уязвимости представлена информация обо всех обнаруженных уязвимостях в версии, выбранной в Списке версий, включая уязвимости, нарушающие политики.
Нажмите на значок в конце строки уязвимости в списке Уязвимости версии, чтобы получить детальную информацию об обнаруженной уязвимости, с которой также можно ознакомиться с помощью пункта меню «Поиск уязвимостей», включая описание, обнаружение, объяснение, рекомендации по устранению и полезные ссылки.
На вкладке Исключения представлена информация обо всех распространяющихся на компонент исключениях.
Исключение можно удалить, нажав на значок «» в правом верхнем углу поля исключения и выбрав пункт Удалить в появившемся меню.
На вкладке Запросы на разблокировку представлена информация обо всех запросах на разблокировку компонента. Запросы на вкладке можно отфильтровать по их статусу с помощью кнопок Все, Новые, Одобрены, Отклонены и Неактуальные.
Чтобы узнать больше о запросе, нажмите на значок «» в конце строки запроса и выберите пункт Подробнее в появившемся меню. На экране появится окно с детальной информацией о запросе.
Добавление исключения на странице информации о компоненте¶
Добавить исключения на странице информации о компоненте можно в Списке версий или на вкладке Политики. В Списке версий в исключения можно добавить версию компонента. На вкладке Политики в исключения можно добавить политику или срабатывание на нарушающую эту политику уязвимость или значение.
Нажмите на значок в конце строки версии, политики или уязвимости, чтобы добавить исключение для этого элемента и в появившемся окне выберите пункт В исключения.
В появившемся окне необходимо задать параметры создаваемого исключения.
При создании исключения для версии компонента должны быть заданы следующие параметры:
- Уровень – Глобальный, Менеджер репозиториев, Репозиторий.
- Список менеджеров репозиториев – указывается только для уровней Менеджер репозиториев и Репозиторий.
- Список репозиториев – указывается только для уровня Репозиторий.
- Дата окончания – указывается для всех уровней (Глобальный, Менеджер репозиториев, Репозиторий). Исключение можно сделать бессрочным, то есть не имеющим даты окончания его действия, если оставить поле Дата окончания пустым.
- Распространить исключение на другие версии – в этом поле можно выбрать из списка версий компонента неограниченное количество версий, на которые будет распространяться создаваемое исключение. С помощью кнопки Выбрать все можно выбрать сразу все существующие версии компонента.
- Комментарий можно добавить в соответствующем поле.
После заполнения всех полей нажмите кнопку Применить. На странице информации о компоненте появится информация о вновь созданном исключении на вкладке Исключения.
Также информация о вновь созданном исключении для данного компонента появится на вкладке Исключения на странице Репозитории.
При создании исключения для политики должен быть задан такой же набор параметров.
При создании исключения для срабатываний политик на уязвимости или значения дополнительно определяется параметр В исключения. Он может быть задан как Значение (в исключения добавляется только одно конкретное значение, попадающее под условия, заданные в политике) или как Правило (в исключения добавляется правило, то есть все значения, попадающие под условия, заданные в политике).
Настройки менеджеров репозиториев/репозиториев¶
-
Откройте вкладку Настройки на странице Репозитории.
-
В списке слева выберите менеджер репозиториев или репозиторий.
-
Укажите/измените параметры настройки.
Для репозитория:
- Статус — статус репозитория:
- Активен — запросы компонентов обрабатываются с учетом действующих политик, репозиторий добавляется в список как активный.
- Заблокирован — запросы компонентов блокируются, репозиторий добавляется в список как неактивный. Действия с заблокированными репозиториями отображаются на вкладке История запросов и в логах действий пользователя.
- Неактивен — запросы обрабатываются без учета действующих политик (доступ не ограничивается), репозиторий добавляется в список как неактивный. Действия с неактивными репозиториями не отображаются на вкладке История запросов и в логах действий пользователя.
- URL для доступа к docker — URL, используемый при работе с Docker-репозиторием. Система записывает в это поле значение по умолчанию из конфигурационного файла.
- Блеклист расширений файлов для сканирования позволяет исключить из сканирований репозитория указанные в блеклисте файлы. В блеклисте могут быть заданы файлы (по расширению, маске, пути), перечисленные через запятую без пробелов. В случае, если блеклист определен и на уровне менеджера репозиториев, и на уровне репозитория, приоритет имеет блеклист репозитория. Запросы по компонентам, находившимся на момент запроса в блеклисте репозитория, не отображаются на вкладке История запросов.
- Изменить код ответа — включение возможности изменения кода ответа AppSec.Track в случае блокировки компонента.
- Код ответа — код ответа AppSec.Track в случае блокировки компонента.
- Изменить сообщение кода ответа — включение возможности изменения ответов AppSec.Track.
- Текст ответа в http заголовке — ответ, передаваемый в http-заголовке.
- Текст ответа для командной строки — ответ, передаваемый в командной строке.
- Текст ответа для браузеров — ответ, отображаемый в браузере.
Для менеджера репозиториев:
- Название — название менеджера репозиториев.
- Активен — состояние менеджера репозиториев:
- Активен — запросы компонентов обрабатываются.
- Неактивен — запросы компонентов не обрабатываются.
-
Статус новых репозиториев — новые репозитории в данном менеджере репозиториев получают выбранный статус:
- Активен — запросы компонентов обрабатываются с учетом действующих политик, репозиторий добавляется в список как активный.
- Заблокирован — запросы компонентов блокируются, репозиторий добавляется в список как неактивный.
-
Неактивен — запросы обрабатываются без учета действующих политик (доступ не ограничивается), репозиторий добавляется в список как неактивный.
Примечание
Если для новых репозиториев выбран статус Заблокирован или Неактивен, можно настроить их автоматическую активацию по регулярному выражению или по формату запрашиваемого компонента, указав данные параметры в соответствующих полях открывшегося раздела Автоматическая активация.
-
Токен — токен для подключения Track.Plugin (см. разделы «Установка Track.Plugin в Nexus Repository Manager» и «Установка Track.Plugin в Jfrog Artifactory»). Нажмите кнопку Сгенерировать токен и скопируйте его, нажав кнопку Скопировать.
- Блеклист расширений файлов для сканирования позволяет исключить из сканирований менеджера репозиториев указанные в блеклисте файлы. В блеклисте могут быть заданы файлы (по расширению, маске, пути), перечисленные через запятую без пробелов. В случае, если блеклист определен и на уровне менеджера репозиториев, и на уровне репозитория, приоритет имеет блеклист репозитория. Запросы по компонентам, находившимся на момент запроса в блеклисте менеджера репозиториев, не отображаются на вкладке История запросов.
- Настройки ответов — изменение ответов AppSec.Track при блокировке запрашиваемого компонента.
- Код ответа — код ответа AppSec.Track в случае блокировки компонента.
- Текст ответа в http заголовке — ответ, передаваемый в http-заголовке.
- Текст ответа для командной строки — ответ, передаваемый в командной строке.
-
Текст ответа для браузеров — ответ, отображаемый в браузере.
Примечание
Чтобы вставить в текст ответа значение переменной, нажмите иконку «+» в правом верхнем углу соответствующего поля.
- Статус — статус репозитория:
-
Нажмите кнопку Сохранить.
Сканирование Docker-образов¶
Система позволяет проводить сканирование компонентов в составе Docker-образов в соответствии с настроенными в системе политиками.
Для Docker-образа система составляет SBOM-файл, далее сканирование производится по компонентам этого SBOM-файла. Политики будут срабатывать на любой компонент в составе Docker-образа, который проверяется при этом как SBOM.
Для корректного сканирования Docker-образов необходимо, чтобы они были получены непосредственно с помощью Nexus Repository Manager. Для этого в конфигурации Docker следует:
-
В файле настроек Docker .docker/daemon.json указать адрес и порт Nexus Repository Manager, в котором находятся сканируемые Docker-образы, например:
“insecure-registers”:[“nexus-docker.<your_company>.ru:80”], “registry-mirrors”:[“http://nexus-docker.<your_company>.ru:80”]
-
Отключить зеркала Docker Hub, чтобы из них не был скачан заблокированный политиками образ. Для этого в файл hosts необходимо добавить следующие строки:
127.0.0.1 docker.io 127.0.0.1 registry-1.docker.io 127.0.0.1 index.docker.io
Проверка Docker-образа в соответствии с настроенными политиками проводится либо при выполнении в CLI команды docker pull, либо при попытке скачать Docker-образ из пользовательского интерфейса Nexus Repository Manager.
В случае нарушения политик при выполнении в CLI команды docker pull попытка скачивания Docker-образа закончится блокировкой, а в CLI будет выведено сообщение об этом, содержащее дополнительную информацию после фразы “Error response from daemon:”.
В случае нарушения политик при попытке скачать Docker-образ из пользовательского интерфейса Nexus Repository Manager (см. раздел «Работа в менеджере репозиториев»), система заблокирует его загрузку и выдаст детальную информацию об этом на странице блокировки, включая сведения о том, какие политики были нарушены тем или иным компонентом, входящим в состав Docker-образа. Страница блокировки для Docker-образа не содержит рекомендаций по выбору безопасной версии компонента.
Кроме того, как при работе через CLI, так через пользовательский интерфейс Nexus Repository Manager, на вкладке История запросов для соответствующего Docker-репозитория будет добавлена запись с информацией о результатах выполненного запроса. При нажатии на PURL компонента в строке запроса на экране появится страница, содержащая детальную информацию о компоненте, на которой в списке версий будет отображаться запрошенная на скачивание версия Docker-образа.
Для корректной работы исключений по Docker-образу при создании исключения необходимо выставлять флаг Все версии. При этом в исключения попадут все версии образа, на данный момент исключения можно настроить только таким образом. Возможность выбора версии для добавления в исключения Docker-образа будет добавлена в следующих релизах.
Сканирование нескольких Docker-образов¶
Система позволяет подключать, проводить сканирование и скачивать компоненты из нескольких Docker-репозиториев. Это могут быть как Docker-репозитории, относящиеся к одному менеджеру репозиториев Nexus Repository Manager, так и к разным Nexus Repository Manager.
Для этого необходимо для каждого репозитория на вкладке Настройки задать значение в поле URL для доступа к docker. Система записывает в это поле значение по умолчанию из конфигурационного файла, которое в случае необходимости можно скорректировать в соответствии с актуальным значением.
Также для корректного сканирования Docker-образов необходимо настроить конфигурацию Docker так, как это описано в разделе «Сканирование Docker-образов».
Пример файла настроек Docker .docker/daemon.json для двух разных менеджеров репозиториев Nexus Repository Manager приведен ниже:
{"insecure-registries": ["nexus-test-docker.track.yourcompany.ru:80", "nexus-dev-docker.track.yourcompany.ru:80"],
"registry-mirrors": ["http://nexus-test-docker.track.yourcompany.ru:80", "http://nexus-dev-docker.track.yourcompany.ru:80"],
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false
}
Сканирование подключенных Docker-образов, результаты сканирования, блокировка компонента и другие детали описаны в разделе «Сканирование Docker-образов».
Пользователи¶
На вкладке Пользователи можно при наличии прав доступа просмотреть список пользователей, имеющих доступ к выбранному объекту (менеджеру репозиториев или репозиторию), а также производить стандартные действия по добавлению, удалению пользователей и присваиванию им локальных ролей, относящихся к выбранному объекту (см. детали в разделе «Пользователи и роли»).
Так, для добавления пользователя необходимо нажать на кнопку Добавить пользователя, в появившемся окне Добавление пользователя выбрать пользователя из числа существующих в системе, присвоить ему необходимую роль или роли и нажать на кнопку Добавить.
Примечание
Возможна ситуация, когда пользователю для работы с конкретным объектом будут присвоена роль SUPER_ADMIN. Таким образом, пользователь получит не только все права в своем объекте, но и некоторые глобальные права доступа в рамках всей системы в целом, например, EDIT/DELETE/VIEW_UNBLOCK для работы с запросами на разблокировку, а также другие глобальные права доступа к настройкам системы, таким как CONFIG_LDAP, CONFIG_KASPERSKY, VIEW_USER_LOG, VIEW_REQUEST_LOG, EDIT/DELETE/VIEW_PROXY, EDIT/DELETE/VIEW_BACKEND.
Эта возможность будет устранена в следующем релизе системы.