Политики безопасности¶
Политики безопасности в системе можно задать на нескольких уровнях:
- Глобально.
- На уровне менеджера репозиториев или команды, разрабатывающей приложения.
- На уровне репозитория или приложения.
Активные политики применяются к загружаемым компонентам в соответствии со сформированными в них условиями проверок.
Выберите пункт Политики в меню слева, чтобы посмотреть список существующих в системе политик безопасности.
Страница Политики состоит из нескольких частей:
- В поле Объекты расположен список проверяемых системой объектов.
- Справа вверху приводятся сведения об объекте, выбранном в списке проверяемых объектов.
- Также справа расположена область для работы с политиками и исключениями, относящимися к выбранному объекту.
Список проверяемых объектов¶
Список проверяемых объектов содержит иерархическое дерево проверяемых системой объектов, состоящее из трех уровней:
- Глобальные политики.
- Менеджеры репозиториев/команды, разрабатывающие приложения.
- Репозитории/приложения.
В системе менеджеры репозиториев и репозитории могут иметь статус «активен» или «неактивен». К активным объектам применяются все заданные для них в системе политики и исключения. После перевода объекта в статус «неактивен» заданные для него в системе политики и исключения применяться не будут.
Существует возможность поиска и фильтрации объектов. Чтобы найти объект(ы), введите (полностью или частично) его имя в поле поиска. Чтобы просмотреть только активные объекты, нажмите на кнопку Активные, расположенную под полем поиска. Чтобы просмотреть только неактивные объекты, нажмите на кнопку Неактивные. Чтобы просмотреть все активные и неактивные объекты, нажмите на кнопку Все.
Перевести менеджер репозиториев или репозиторий из состояния «активен» в состояние «неактивен» и обратно можно на странице его настроек (см. раздел «Настройки менеджеров репозиториев/репозиториев»).
Сведения о выбранном объекте¶
Сведения о выбранном объекте отображаются как в самом списке, так и в расположенном справа вверху поле с дополнительной информацией.
В списке проверяемых объектов приведена следующая информация:
- Для глобальных политик счетчик красного цвета показывает количество активных блокирующих политик, синим цветом показано количество прочих активных политик.
- Для менеджеров репозиториев и команд счетчик красного цвета показывает количество собственных активных блокирующих политик, синим цветом показано количество прочих активных политик, серым цветом показано количество исключений. Справа от имени менеджера репозиториев в квадратных скобках указано количество относящихся к нему активных репозиториев и общее количество активных и неактивных репозиториев.
- Для репозиториев и приложений счетчик красного цвета показывает количество собственных активных блокирующих политик, синим цветом показано количество прочих активных политик, серым цветом показано количество исключений.
В поле с подробной информацией о выбранном объекте приводится следующая информация:
- Для глобальных политик — количество выявленных нарушений политик по уровням критичности, дата последнего запроса, общее количество проверяемых компонентов в системе.
- Для менеджеров репозиториев и команд — имя объекта, текущий статус в системе (слева от имени: зеленый — активен, красный — неактивен), количество выявленных нарушений политик, дата последнего запроса, количество компонентов, относящихся к данному менеджеру репозиториев или команде.
- Для репозиториев и приложений — имя объекта, текущий статус в системе (слева от имени: зеленый — активен, красный — неактивен), количество выявленных нарушений политик, дата последнего запроса, количество компонентов, относящихся к данному репозиторию или приложению.
Политики выбранного объекта¶
Политики, относящиеся к выбранному в списке объекту, отображаются на вкладке Политики в правой части пользовательского интерфейса.
Все политики в системе делятся на три категории:
- Наследуемые политики.
- Собственные политики.
- Дочерние политики.
Наследуемыми политиками для выбранного объекта являются политики, заданные для объектов, стоящих в иерархическом дереве объектов непосредственно выше него на один или на два уровня.
Собственными политиками для выбранного объекта являются политики, заданные для него на его уровне.
Дочерними политиками для выбранного объекта являются политики, заданные для его дочерних объектов ниже него на один или на два уровня.
Так, для глобальных политик как объекта все глобальные политики являются собственными, а политики менеджеров репозиториев, команд, и репозиториев и приложений являются дочерними.
Для менеджера репозиториев или команды все глобальные политики в системе будут наследуемыми, собственными будут определенные для них политики, а политики, заданные для репозиториев данного менеджера репозиториев или для приложений данной команды, будут дочерними.
Для репозитория или приложения все глобальные политики и политики его менеджера репозиториев или команды будут наследуемыми, а собственными будут политики, определенные для данного репозитория или приложения.
На вкладке Политики отображается список всех политик для компонента, выбранного слева на вкладке Объекты.
С помощью полей Критичность и Действие при нарушении можно отфильтровать список политик. В поле Критичность можно выбрать один или несколько уровней критичности (Критичная, Высокая, Средняя, Низкая, Информативная), а в поле Действие при нарушении — одно или несколько возможных действий при нарушении политики (Действий не требуется, Отправка нотификаций при нарушении, Блокировка загрузки компонента).
С помощью селектора Показать активные можно вывести на экран или только активные политики, или все политики для данного компонента. Неактивные политики выделяются в списке темным серым фоном.
Для каждой политики указаны:
- Имя политики.
- Статус в системе (активна/неактивна).
- Уровень, на котором задана политика (глобальный, менеджер репозиториев/команда, репозиторий/приложение).
- Количество нарушений данной политики.
- Критичность политики.
- Количество условий, заданных в данной политике.
- Действие при нарушении, заданное для данной политики.
Возможность добавления политики в исключения отображается графически в правом верхнем углу поля политики. Значок указывает на невозможность добавления политики в исключения. Если в правом верхнем углу находится значок меню , для добавления политики в исключения нажмите на него и в появившемся меню выберите пункт Добавить в исключения.
Примечание
Добавлять в исключения для компонента можно только наследуемые политики, то есть уровень добавляемой в исключения политики должен быть выше, чем уровень компонента, для которого формируется исключение.
Собственную политику можно отредактировать, нажав в правом верхнем углу значок меню и выбрав в появившемся меню пункт Редактировать.
Активную собственную политику можно отключить (сделать неактивной), нажав в правом верхнем углу значок меню и выбрав в появившемся меню пункт Отключить.
Неактивную собственную политику можно включить (сделать активной), нажав в правом верхнем углу значок меню и выбрав в появившемся меню пункт Включить.
Если политика безопасности является блокирующей, компонент, нарушающий эту политику, не будет загружен. Если политика безопасности не является блокирующей, компонент, нарушающий эту политику, будет загружен, а запись о нарушении этой политики будет добавлена в лог запросов (см. детали в соответствующем разделе «История запросов»).
В случае нарушения блокирующей политики безопасности разработчик, работающий с менеджером репозиториев, увидит ее имя в сообщении о блокировке компонента, а при работе с приложением будет остановлен соответствующий пайплайн.
Удаление политики¶
Удалить можно только неактивную собственную политику.
Активную политику перед удалением необходимо сделать неактивной, нажав в правом верхнем углу политики значок меню и выбрав в появившемся меню пункт Отключить.
Чтобы удалить неактивную политику, нажмите в правом верхнем углу значок меню и выберите в появившемся меню пункт Удалить.
При удалении политики в системе пересчитываются все показатели, в которых учитывалась удаленная политика. Также из системы удаляется любая связанная с ней информация со вкладок Компоненты, Нарушения политик, История запросов и все созданные для данной политики исключения, в том числе все связанные с этой политикой исключения для компонентов.
Добавление политики¶
Чтобы создать новую политику в системе, выберите пункт Политики в меню слева и нажмите кнопку Добавить политику на вкладке Политики справа вверху.
В появившемся окне на вкладке Общие введите имя политики, выберите из выпадающего списка ее критичность (Критичная, Высокая, Средняя, Низкая, Информативная), определите действие при нарушении политики (Действий не требуется, Отправка нотификаций при нарушении, Блокировка загрузки компонента), выберите условие между проверками (И/ИЛИ) и задайте положение селектора Разрешить добавление в исключения.
В создаваемую политику необходимо добавить одну или несколько проверок. Нажмите кнопку Добавить проверку. В появившемся окне необходимо задать тип поля (Компонент, Версия, Уязвимость, Причина уязвимости, Лицензия, Запрос), выбрать значение поля и условие из выпадающих списков и задать значение.
Нажмите кнопку Сохранить. Добавленная проверка появится в списке проверок вновь создаваемой политики.
Политика в системе может содержать одну или несколько проверок. Если необходимо добавить одну или несколько дополнительных проверок, нажмите кнопку Добавить проверку и в появившемся окне задайте параметры проверки и нажмите кнопку Сохранить.
Например, во вновь создаваемую политику можно добавить проверку, по которой данное правило будет работать только для конкретного компонента — Log4j. Для этого нажмите кнопку Добавить проверку и задайте следующие значения.
Вторая добавленная проверка появится в списке проверок вновь создаваемого правила. Теперь данная политика состоит из двух условий — по дате публикации версии и по имени компонента. Политика будет срабатывать в том случае, когда одно этих условий будет выполнено, так как в поле Условие между проверками выбрано значение ИЛИ.
Каждую из проверок в правиле можно отредактировать или удалить, нажав на значки редактирования и удаления соответственно. Добавьте в политику все необходимые проверки и нажмите кнопку Сохранить.
В окне Добавить политику откроется вкладка Уведомления. На этой вкладке можно настроить рассылку уведомлений для создаваемой политики (детали см. в разделе «Уведомления политики»).
Добавьте в политику рассылку необходимых уведомлений и нажмите кнопку Сохранить.
Вновь созданная политика появится в списке Собственные политики выбранного объекта. После этого заданная политика безопасности будет применяться к загружаемым компонентам для данного объекта и всех его дочерних объектов.
Уведомления политики¶
Для настройки уведомлений политики нажмите в правом верхнем углу существующей политики на значок меню «», выберите в появившемся меню пункт Редактировать и перейдите на вкладку Уведомления появившегося окна Редактировать политику.
Включите уведомления с помощью соответствующего селектора и настройте параметры рассылки:
- Выберите получателей уведомлений из выпадающего списка пользователей в поле Получатели.
- В поле Роли задайте роли пользователей, которым должны приходить уведомления. Все пользователи, имеющие в системе хотя бы одну из указанных ролей, будут получать уведомления.
- В поле Частота уведомлений выберите необходимое значение (При срабатывании, 1 раз в час, 1 раз в день).
- В поле Email укажите дополнительные адреса электронной почты, на которые будут рассылаться уведомления.
Уведомление содержит информацию о компоненте и о политике, которая была нарушена, ссылку на подробный отчет о нарушении политики, а также дату и время создания отчета.
Примечание
Уведомления политики рассылаются только для практики OSA при запросах на скачивание компонента.
Настройка уведомлений для практики SCA описана в разделе «Уведомления приложения».
Вебхуки¶
В нижней части вкладки Уведомления можно задать настройки для перехвата вебкухов.
Включите селектор Включить Webhook уведомления и настройте следующие параметры рассылки webhook-уведомлений:
-
В поле URL задайте адрес, на который будут приходить webhook-уведомления при перехвате запросов.
-
В поле Код ответа укажите код ответа, по которому срабатывает вебхук и отправляется уведомление на адрес, заданный в поле URL. Код ответа 200 означает, что уведомление будет отправляться при срабатывании политики.
Webhook-уведомление рассылается в виде JSON-файла и содержит информацию о компоненте, на который сработала политика, количестве срабатываний, ссылку на подробный отчет о нарушении политики, а также о самой политике, которая была нарушена.
Исключения выбранного объекта¶
При работе на странице Политики система предоставляет возможность добавить в исключения для отдельных репозиториев, менеджеров репозиториев, приложений или команд политику, разрешенную для добавления в исключения. Политика может быть как активной, так и неактивной. Добавлять в исключения можно только наследуемые политики, то есть уровень добавляемой в исключения политики должен быть выше, чем уровень компонента, для которого формируется исключение. Так, для менеджера репозиториев или команды в исключения можно добавить только глобальную политику, а для репозитория или приложения в исключения можно добавить глобальную политику или политику уровня менеджера репозиториев или команды, куда относится данный репозиторий или приложение. Собственные политики, применяющиеся к данному репозиторию или приложению, можно только включать или отключать.
Относящиеся к выбранному объекту политики, которые были добавлены в исключения, отображаются на вкладке Исключения в правой части пользовательского интерфейса.
С помощью полей Уровень и Дата окончания после можно отфильтровать список исключений. В поле Уровень можно выбрать компонент(ы), к которому относятся исключения, а в поле Дата окончания после можно выбрать срок действия исключения.
С помощью селектора Показать активные можно вывести на экран или только активные исключения, или все исключения для данного компонента. Неактивные исключения выделяются в списке значком и серым фоном.
Как активное, так и неактивное исключение можно отредактировать или удалить, нажав значок в правом верхнем углу поля исключения и выбрав соответствующий пункт в появившемся меню.
При удалении исключение будет перенесено обратно в политики и переместится из списка исключений на вкладке Исключения на вкладку Политики в список Наследуемые политики.
При выборе пункта Редактировать в появившемся окне Редактировать исключение можно изменить дату окончания действия исключения и добавить комментарии.
Если срок действия исключения прошел, оно будет автоматически перенесено системой из списка исключений на вкладке Исключения на вкладку Политики в список Наследуемые политики. Такое исключение будет выделено на вкладке Политики цветом рамки поля политики.
Добавление исключения¶
Чтобы добавить политику в исключения, выберите в правой части вкладку Политики и нажмите значок в правом верхнем углу необходимой политики. В появившемся меню выберите пункт Добавить в исключения.
В появившемся окне Добавить политику в исключения укажите дату, до которой данная политика будет являться исключением, добавьте необходимые комментарии и нажмите кнопку Сохранить. Исключение можно сделать бессрочным, то есть не имеющим даты окончания его действия, если оставить поле Дата окончания пустым.
Данная политика будет добавлена в исключения и переместится из списка Наследуемые политики на вкладке Политики на вкладку Исключения.
Проверка лицензионной чистоты¶
Система позволяет осуществлять проверку лицензионной чистоты компонента с помощью относящихся к лицензиям политик, использующих проверки с типом поля Лицензия.
При добавлении в политику проверки (см. детали в разделе «Добавление политики») после выбора типа поля Лицензия в поле Поле можно выбрать одно из следующих значений:
- Лицензия.
- Название лицензии.
- Тип лицензии.
При выборе в Поле значения Лицензия в поле Условие можно выбрать значение из выпадающего списка (Пустой, Не пустой). Это позволяет проверять наличие или отсутствие лицензии у компонента.
При выборе в Поле значения Название лицензии в поле Условие можно выбрать значение из выпадающего списка (Равно, Не равно, Содержит, Не содержит, Пустой, Не пустой). Это позволяет проводить различные виды проверок, связанные с названием лицензии.
Примечание
Символы, вводимые в поле Значение, не чувствительны к регистру.
При выборе в Поле значения Тип лицензии в поле Условие можно выбрать значение из выпадающего списка (Равно, Не равно, Пустой, Не пустой). При выборе значения Равно или Не равно в поле Значение можно выбрать одно из следующих значений: Commercial, Freeware, Shareware, Open source. Это позволяет использовать в проверках типы лицензий и, например, заблокировать использование определенного типа лицензий.
Примечание
Если компонент содержит лицензии двух типов и в политике проводятся проверки на оба типа лицензий через поле Тип лицензии, в поле Условие между проверками должно быть выбрано значение ИЛИ.
Проверка raw-репозиториев¶
Примечание
Для обеспечения возможности работы с raw-репозиториями необходимо обновить плагин Track.Plugin для Nexus Repository Manager/JFrog Artifactory до версии 3.11.0.
Начиная с версии 3.11.0, добавлена возможность осуществлять проверки raw-репозиториев.
Raw-репозитории могут ссылаться как на внешний ресурс, так и на локальный.
В Nexus Repository Manager raw-репозиторий имеет формат raw.
В JFrog Artifactory raw-репозиторий имеет формат generic.
В политиках для проверок raw-репозиториев Nexus Repository Manager необходимо выбрать формат репозитория raw, а для проверок raw-репозиториев JFrog Artifactory – формат generic.
При добавлении в политику проверки для raw-репозитория необходимо выбрать в Типе поля значение Запрос, в Поле – вид проверки, Условие проверки из выпадающего списка и задать требуемое Значение.
Страница информации о компоненте для raw-репозитория в списке версий содержит только одну версию с названием raw (см. раздел «Страница информации о компоненте»).
Проверка по CVSS v2 и CVSS v3¶
Начиная с версии 3.11.0, добавлена возможность осуществлять проверки уязвимостей по оценке CVSS v2 и CVSS v3, а также по компонентам векторов.
При добавлении в политику проверки необходимо выбрать в Типе поля значение Уязвимость, в Поле – значение Оценка уязвимости CVSS v2, Оценка уязвимости CVSS v3 или один из компонентов векторов CVSS v2 или v3, Условие проверки из выпадающего списка и задать требуемое Значение.
Проверка хешей компонентов¶
Начиная с версии 3.12.0, добавлена возможность для практики OSA осуществлять проверки компонентов по хешам, таким как SHA1, SHA256, SHA512.
Начиная с версии 3.13.0, добавлена возможность осуществлять такие же проверки компонентов и для практики SCA по хешам из SBOM-файла сканируемого приложения.
При добавлении в политику проверки необходимо выбрать в Типе поля значение Хэш версии компонента, в Поле – значение Объект сравнения контрольных сумм, Контрольная сумма или Компонент, найденный по hash, Условие проверки из выпадающего списка и задать требуемое Значение.
Для Контрольной суммы и Условия проверки Равно в поле Значение могут быть заданы три значения – EXACT, SIMILAR, UNKNOWN.
Значение EXACT означает, что при проверке запрашиваемого компонента совпадает PURL, а также:
- совпадают все хеши компонента;
- или часть хешей из запроса совпадает, а часть отсутствует в запросе;
- или часть хешей из запроса совпадает, а часть отсутствует в системе для проверки.
Значение SIMILAR означает, что при проверке запрашиваемого компонента не совпадает PURL, а также:
- в запросе нет хешей, а в системе для проверки есть хотя бы один хеш;
- или хотя бы один хеш из запроса не совпадает с хешем в системе.
Значение UNKNOWN используется, если в системе для проверки нет хешей и/или PURL для версии запрашиваемого компонента.
Проверка Компонент, найденный по hash используется для сравнения того, какой PURL был отправлен в запросе, и какой PURL система вернула в ответе по переданной хеш-сумме, например:
- Компонент, найденный по hash, не равен pkg:deb/snort@1.0.0.
- Компонент, найденный по hash, содержит 3.2.0.