Репозитории¶
В системе представлены данные обо всех подключенных менеджерах репозиториев Nexus Repository Manager и JFrog Artifactory, в которых установлены плагины Track.Plugin.
Выберите пункт Репозитории в меню слева, чтобы посмотреть список входящих в систему менеджеров репозиториев и содержащихся в них репозиториев.
Страница Репозитории состоит из нескольких частей:
- Слева расположен иерархический список подключенных менеджеров репозиториев и содержащихся в них репозиториев.
- Справа вверху приводятся сведения о выбранном объекте.
- Также справа расположен ряд вкладок для работ с выбранным объектом: Компоненты, Нарушения политик, История запросов, Исключения, Пользователи и Настройки.
Существует возможность поиска и фильтрации объектов. Чтобы найти объект(ы), введите (полностью или частично) его имя в поле поиска. Чтобы просмотреть только активные объекты, нажмите на кнопку Активные, расположенную под полем поиска. Чтобы просмотреть неактивные объекты, нажмите на кнопку Неактивные.
Перевести менеджер репозиториев или репозиторий из состояния «активен» в состояние «неактивен» и обратно можно на странице его настроек (см. раздел «Настройки менеджеров репозиториев/репозиториев»).
Система работает только с активными репозиториями.
Отчеты о сканировании¶
Для скачивания отчета о результатах сканирования репозитория в необходимом формате на странице Репозитории нажмите на кнопку Скачать отчет и выберите из выпадающего списка пункт В формате HTML/PDF/JSON. Отчет содержит информацию о версии приложения, просканированных компонентах, количестве нарушений политик, заблокированных компонентах, исключениях, нарушенных правилах и найденных уязвимостях. Если сканирований репозитория еще не проводилось, кнопка Скачать отчет будет отсутствовать.
Существует возможность формирования содержания отчета о сканировании с помощью фильтров, расположенных на вкладке Компоненты. Если фильтры были установлены, отчет будет содержать информацию только о тех компонентах, которые отвечают заданным в фильтрах условиям. Информация о нарушениях и уязвимостях прочих компонентов не будет включена в отчет.
Примечание
В отчете будут представлены только компоненты, отсканированные после обновления до версии 3.15.0. Это обусловлено тем, что информация о деталях нарушений для компонентов в более ранних версиях не фиксировалась в достаточном объеме.
Примечание
Начиная с версии 3.11.0, формат экспорта отчета о сканировании в JSON совместим с DefectDojo, что позволяет настроить импорт результатов с использованием API или производить импорт в ручном режиме.
Удаление репозитория¶
Чтобы удалить менеджер репозиториев или репозиторий, нажмите на расположенный справа от его имени значок , в появившемся меню выберите пункт Удалить и подтвердите это действие в диалоговом окне.
Удалить менеджер репозиториев или репозиторий можно и другим способом. Нажмите на значок в правом верхнем углу поля с информацией о выбранном в списке объектов менеджере репозиториев или репозитории и подтвердите удаление в диалоговом окне.
Удалить можно как активный, так и неактивный менеджер репозиториев или репозиторий.
При удалении менеджера репозиториев или репозитория в системе пересчитываются все показатели, в которых он учитывался. Также из системы удаляется любая связанная с ним информация со вкладок Компоненты, Нарушения политик, История запросов, Исключения и Настройки. Эти данные после удаления не подлежат восстановлению.
При новом запросе на ранее удаленный репозиторий он снова появится в системе, но уже без удаленной истории.
При удалении менеджера репозиториев будет также удален и его токен. Поэтому при новом запросе на ранее удаленный менеджер репозиториев потребуется сгенерировать новый токен для подключения 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 компонента в строке запроса на экране появится страница, содержащая детальную информацию о нем, см. раздел «Информация о компоненте».
Примечание
На вкладке История запросов не отображаются запросы по компонентам, находившимся на момент запроса в черном списке репозитория или менеджера репозиториев, а также действия с неактивными репозиториями.
Пользователи¶
На вкладке Пользователи можно при наличии прав доступа просмотреть список пользователей, имеющих доступ к выбранному объекту (менеджеру репозиториев или репозиторию), а также производить стандартные действия по добавлению, удалению пользователей и присваиванию им локальных ролей, относящихся к выбранному объекту (см. детали в разделе «Пользователи и роли»).
Так, для добавления пользователя необходимо нажать на кнопку Добавить пользователя , в появившемся окне Добавление пользователя выбрать пользователя из числа существующих в системе, присвоить ему необходимые роль или роли и нажать на кнопку Добавить.
Примечание
Возможна ситуация, когда пользователю для работы с конкретным объектом будут присвоена роль SUPER_ADMIN. Таким образом, пользователь получит не только все права в своем объекте, но и некоторые глобальные права доступа в рамках всей системы в целом, например, EDIT/DELETE/VIEW_UNBLOCK для работы с запросами на разблокировку, а также другие глобальные права доступа к настройкам системы, таким как CONFIG_LDAP, CONFIG_KASPERSKY, VIEW_USER_LOG, VIEW_REQUEST_LOG, EDIT/DELETE/VIEW_PROXY, EDIT/DELETE/VIEW_BACKEND.
Эта возможность будет устранена в следующих релизах системы.
Настройки менеджеров репозиториев/репозиториев¶
-
Откройте вкладку Настройки на странице Репозитории.
Примечание
Вкладки Основные и Токен представлены только для менеджеров репозиториев. Для репозиториев указывать токен не требуется и все настройки размещены на одной вкладке.
-
В списке слева выберите менеджер репозиториев или репозиторий.
-
Укажите/измените параметры настройки.
Для репозитория:
- Название репозитория.
- Статус репозитория:
- Активен — запросы компонентов обрабатываются с учетом действующих политик, репозиторий добавляется в список как активный.
- Неактивен — запросы обрабатываются без учета действующих политик (доступ не ограничивается), репозиторий добавляется в список как неактивный. Действия с неактивными репозиториями не отображаются на вкладке История запросов и в логах действий пользователя.
- Заблокирован — запросы компонентов блокируются, репозиторий добавляется в список как неактивный. Действия с заблокированными репозиториями отображаются на вкладке История запросов и в логах действий пользователя.
- URL для доступа к docker — URL, используемый при работе с Docker-репозиторием. Система записывает в это поле значение по умолчанию из конфигурационного файла.
- Черный список файлов, расширений или частей path для сканирования позволяет исключить из сканирований репозитория указанные в черном списке файлы. В черном списке могут быть заданы файлы (по расширению, маске, пути), перечисленные через запятую без пробелов. В случае, если черный список определен и на уровне менеджера репозиториев, и на уровне репозитория, приоритет имеет черный список репозитория. Запросы по компонентам, находившимся на момент запроса в черном списке репозитория, не отображаются на вкладке История запросов.
- Настройка ответов — изменение ответов AppSec.Track при блокировке запрашиваемого компонента.
- Изменить код ответа — включение возможности изменения кода ответа AppSec.Track в случае блокировки компонента.
- Код ответа — код ответа AppSec.Track в случае блокировки компонента.
- Изменить сообщение кода ответа — включение возможности изменения ответов AppSec.Track.
- Текст ответа в http заголовке — ответ, передаваемый в HTTP-заголовке.
- Текст ответа для командной строки — ответ, передаваемый в командной строке.
-
Текст ответа для браузеров — ответ, отображаемый в браузере.
Для менеджера репозиториев:
- Название менеджера репозиториев.
- Переключатель Активен — состояние менеджера репозиториев:
- Включен — запросы компонентов обрабатываются.
- Выключен — запросы компонентов не обрабатываются.
-
Статус новых репозиториев — новые репозитории в данном менеджере репозиториев получают выбранный статус:
- Активен — запросы компонентов обрабатываются с учетом действующих политик, репозиторий добавляется в список как активный.
- Неактивен — запросы обрабатываются без учета действующих политик (доступ не ограничивается), репозиторий добавляется в список как неактивный.
-
Заблокирован — запросы компонентов блокируются, репозиторий добавляется в список как неактивный.
-
Черный список файлов, расширений или частей path для сканирования позволяет исключить из сканирований менеджера репозиториев указанные в черном списке файлы. В черном списке могут быть заданы файлы (по расширению, маске, пути), перечисленные через запятую без пробелов. В случае, если черный список определен и на уровне менеджера репозиториев, и на уровне репозитория, приоритет имеет черный список репозитория. Запросы по компонентам, находившимся на момент запроса в черном списке менеджера репозиториев, не отображаются на вкладке История запросов.
-
Настройка ответов — изменение ответов AppSec.Track при блокировке запрашиваемого компонента.
- Код ответа — код ответа AppSec.Track в случае блокировки компонента.
- Текст ответа в http заголовке — ответ, передаваемый в HTTP-заголовке.
- Текст ответа для командной строки — ответ, передаваемый в командной строке.
-
Текст ответа для браузеров — ответ, отображаемый в браузере.
-
На вкладке Токен указывается токен для подключения Track.Plugin (см. разделы «Установка Track.Plugin в Nexus Repository Manager» и «Установка Track.Plugin в Jfrog Artifactory»). Нажмите на кнопку
, чтобы скопировать существующий токен. Нажмите на кнопку Сгенерировать токен, чтобы создать новый токен.
-
Нажмите на кнопку Сохранить.
Сканирование 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-образов».