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

Работа в менеджере репозиториев

Примечание

Для выполнения всех нижеописанных действий пользователю не требуется аутентифицироваться в системе AppSec.Track. Под пользователем в данном разделе понимается разработчик, работающий с менеджером репозиториев Nexus Repository Manager или JFrog Artifactory.

После установки AppSec.Track и подключения плагина Track.Plugin к Nexus Repository Manager или JFrog Artifactory работа пользователя в менеджере репозиториев будет проходить под контролем AppSec.Track.

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

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

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

Внизу страницы с сообщением о блокировке компонента расположены две кнопки: Полный отчет и Запрос разблокировки.

Полный отчет

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

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

Запрос разблокировки

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

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

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

В появившемся окне запроса на разблокировку компонента необходимо указать данные пользователя, создавшего запрос:

  • В поле ФИО – имя пользователя.
  • В поле Email – адрес электронной почты пользователя.
  • Поле Комментарий не является обязательным для заполнения.

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

На экране появится сообщение о том, что запрос направлен на рассмотрение.

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

Примечание

Для корректной работы уведомлений необходимо убедиться, что роли Инженер ИБ в системе присвоены права VIEW_WAVE, EDIT_WAVE и DELETE_WAVE (см. раздел «Создание, редактирование и удаление ролей»).

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

После регистрации запроса пользователю необходимо дождаться, пока в системе не будет разрешено скачивание запрошенного компонента или принято решение о запрете его использования, см. детали в разделе «Разблокировка».

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

Работа с использованием CLI

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

curl --location 'https://<адрес_вашего_nexus_репозитория>/service/rest/v1/search/assets/download?repository=npm-proxy&name=es5-ext&version=0.10.56' --header 'Content-Type: application/json'

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

В случае блокировки на экран будут выданы соответствующее сообщение вместе с информацией о нарушенных политиках безопасности с их разделением на блокирующие (Blocked policies) и неблокирующие (Policies), а также ссылки на полный отчет и запрос разблокировки.

Сканирование репозиториев по задаче в Nexus Repository Manager

Сканирование всех компонентов в выбранном репозитории можно запустить с помощью задачи в Nexus Repository Manager.

В Nexus Repository Manager перейдите в раздел администрирования и выберете в левом меню пункт System, а в нем – подпункт Tasks.

Для создания новой задачи на сканирование репозиториев нажмите на кнопку Create task.

В списке типов задач для создаваемой задачи выберите Track – Scan all components by Track.

Задайте следующие параметры задачи:

  • Task enabled – установите этот флажок для того, чтобы создаваемая задача была активной.
  • Task name – имя задачи.
  • Notification email – адрес электронной почты, на который будет отправлено электронное письмо, если будет выполнено условие, выбранное в поле Send notification on.
  • Send notification on – условие, при котором будет отправлено уведомление по электронной почте (Failure – только в случае неудачного завершения сканирования, Success or Failure – во всех случаях).
  • Repository – в этом поле можно выбрать либо отдельный репозиторий для сканирования, либо все репозитории (All Repositories). В каждом из указанных репозиториев будут просканированы все компоненты.
  • Parallel thread count – количество параллельных потоков при выполнении задачи (сколько компонентов будет параллельно отправляться на бэкенд), рекомендуемое значение – 128, максимальное – 512 (не рекомендуется использовать такое значение из-за большой нагрузки на бэкенд и увеличения времени обработки).
  • Task frequency – частота выполнения задачи. Manual - эта задача может быть запущена только вручную. Once - запуск этой задачи один раз в указанные дату и время. Daily - выполнять эту задачу каждый день в указанное время. Weekly - запускать задачу каждую неделю в указанный день в указанное время. Monthly - запуск задания каждый месяц в указанные день и время. Advanced - запускать задачу с использованием предоставленных настроек cron.

Нажмите на кнопку Create task, чтобы создать задачу.

В списке задач появится вновь созданная задача типа Track – Scan all components by Track, запуск которой будет осуществляться в соответствии с заданными параметрами. Так, задачу с ручным запуском можно запустить на странице задачи с помощью кнопки Run.

Результаты сканирования будут доступны:

  • В логах Nexus Repository Manager в пункте меню Support > _Logs в файле nexus.log. В логе отображается статус проверки каждого компонента в репозитории (PASS – если не было нарушений политик, BLOCK – если политики были нарушены).
  • В AppSec.Track выберите репозиторий и перейдите на вкладку История запросов с логом запросов и описанием результатов запроса для каждого компонента.