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

Политики безопасности

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

  • Глобально.
  • На уровне менеджера репозиториев или команды, разрабатывающей приложения.
  • На уровне репозитория или приложения.

Активные политики применяются к загружаемым компонентам в соответствии со сформированными в них условиями проверок.

Выберите пункт Политики в меню слева, чтобы посмотреть список существующих в системе политик безопасности.

Страница Политики состоит из нескольких частей:

  • Слева расположен список проверяемых системой объектов.
  • Справа вверху приводятся сведения об объекте, выбранном в списке проверяемых объектов.
  • Также справа расположена область для работы с политиками и исключениями, относящимися к выбранному объекту.

Список объектов

Список объектов в системе, к которым могут быть применены политики, является иерархическим деревом, состоящим из трех уровней:

  • Глобальные политики.
  • Менеджеры репозиториев/команды, разрабатывающие приложения.
  • Репозитории/приложения.

В системе менеджеры репозиториев и репозитории могут иметь статус «активен» или «неактивен». К активным объектам применяются все заданные для них в системе политики и исключения. После перевода объекта в статус «неактивен» заданные для него в системе политики и исключения применяться не будут.

Существует возможность поиска объектов. Чтобы найти объект(ы), введите (полностью или частично) его имя в поле поиска.

Перевести менеджер репозиториев или репозиторий из состояния «активен» в состояние «неактивен» и обратно можно на странице его настроек (см. раздел «Настройки менеджеров репозиториев/репозиториев»).

Сведения о выбранном объекте

В расположенном справа вверху поле с подробной информацией о выбранном объекте приводится следующая информация:

  • Количество выявленных нарушений политик по уровням критичности.
  • Дата последнего запроса.
  • Общее количество нарушений.

Политики выбранного объекта

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

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

  • Наследованные.
  • Собственные.
  • Дочерние.

Наследованными политиками для выбранного объекта являются политики, заданные для объектов, стоящих в иерархическом дереве объектов непосредственно выше него на один или на два уровня.

Собственными политиками для выбранного объекта являются политики, заданные для него на его уровне.

Дочерними политиками для выбранного объекта являются политики, заданные для его дочерних объектов ниже него на один или на два уровня.

Примечание

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

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

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

С помощью полей Критичность и Действие при нарушении можно отфильтровать список политик. В поле Критичность можно выбрать один или несколько уровней критичности (Критичная, Высокая, Средняя, Низкая, Информативная), а в поле Действие при нарушении — одно или несколько возможных действий при нарушении политики (Действий не требуется, Отправка нотификаций при нарушении, Блокировка загрузки компонента).

С помощью селектора Отображать только активные политики AppSec.Track можно вывести на экран или только активные политики, или все политики для данного компонента. Неактивные политики отображаются в списке серым цветом.

Для каждой политики указаны:

  • Имя политики.
  • Уровень, на котором задана политика (глобальный, менеджер репозиториев, команда, репозиторий, приложение).
  • Критичность политики (Критичная, Высокая, Средняя, Низкая, Информативная).
  • Количество условий, заданных в данной политике.
  • Действие при нарушении, заданное для данной политики.
  • Количество нарушений данной политики.
  • Статус политики в системе (Активная/Неактивная) указан в столбце Действия с помощью селектора AppSec.Track.

Собственную политику можно отредактировать, нажав в столбце Действия значок редактирования AppSec.Track.

Активную собственную политику можно отключить (сделать неактивной), переведя в столбце Действия селектор в положение AppSec.Track.

Неактивную собственную политику можно включить (сделать активной), переведя в столбце Действия селектор в положение AppSec.Track.

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

Если политика безопасности не является блокирующей, компонент, нарушающий эту политику, будет загружен, а запись о нарушении этой политики будет добавлена в лог запросов (см. детали в соответствующем разделе «История запросов»).

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

Удаление политики

Удалить можно только неактивную собственную политику.

Активную собственную политику перед удалением необходимо сделать неактивной, переведя в столбце Действия селектор в положение AppSec.Track.

Чтобы удалить неактивную политику, нажмите в столбце Действия значок удаления AppSec.Track.

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

Добавление политики

Чтобы создать новую политику в системе, выберите пункт Политики в меню слева, выберите необходимый объект и нажмите на кнопку Добавление политики AppSec.Track на вкладке Собственные.

В появившемся окне Добавление политики в разделе Основные параметры введите имя политики, выберите из выпадающего списка ее критичность (Критичная, Высокая, Средняя, Низкая, Информативная), определите действие при нарушении политики (Блокировка, Уведомление, Нет действия), выберите условие между проверками (И/ИЛИ) и задайте положение селектора Разрешить добавление в исключения.

В создаваемую политику необходимо добавить одну или несколько проверок. Для этого в соответствующих полях необходимо выбрать Тип поля (Компонент, Версия, Уязвимость, Причина уязвимости, Лицензия, Запрос, Хеш версии компонента), Поле, Условие из выпадающих списков и задать Значение.

Нажмите на кнопку «AppSec.Track». Добавленная проверка появится в списке проверок вновь создаваемой политики.

Политика в системе может содержать одну или несколько проверок. Если необходимо добавить одну или несколько дополнительных проверок, задайте набор параметров для проверки и нажмите на кнопку «AppSec.Track».

Например, во вновь создаваемую политику можно добавить проверку, по которой данное правило будет работать только для конкретного компонента — Log4j. Для этого задайте следующие значения.

Вторая добавленная проверка появится в списке проверок вновь создаваемого правила. Теперь данная политика состоит из двух условий — по дате публикации версии и по имени компонента. Политика будет срабатывать в том случае, когда одно этих условий будет выполнено, так как в условии между проверками выбрано значение ИЛИ.

AppSec.Track

Каждую из проверок в политике можно удалить, нажав на значок удаления AppSec.Track в конце строки проверки.

После добавления всех необходимых проверок политику можно сохранить, нажав на кнопку Сохранить, или продолжить настройку политики, нажав на кнопку Настройка уведомлений (детали см. в разделе «Уведомления политики»).

После нажатия на кнопку Сохранить вновь созданная политика появится на вкладке Собственные выбранного объекта. После этого новая политика безопасности будет применяться к загружаемым компонентам для данного объекта и всех его дочерних объектов.

Уведомления политики

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

Для настройки уведомлений существующей политики нажмите в столбце Действия значок редактирования AppSec.Track и в появившемся окне перейдите в раздел Настройка уведомлений о срабатывании политики, нажав на кнопку Настройка уведомлений.

AppSec.Track

Включите уведомления по электронной почте с помощью соответствующего селектора и настройте параметры рассылки:

  • Выберите получателей уведомлений из выпадающего списка пользователей в поле Получатели.
  • В поле Роли задайте роли пользователей, которым должны приходить уведомления. Все пользователи, имеющие в системе хотя бы одну из указанных ролей, будут получать уведомления.
  • В поле Частота отправки выберите необходимое значение (При срабатывании, 1 раз в час, 1 раз в день).
  • В поле Email укажите дополнительные адреса электронной почты, на которые будут рассылаться уведомления.

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

Примечание

Уведомления политики рассылаются только для практики OSA при запросах на скачивание компонента.

Настройка уведомлений для практики SCA описана в разделе «Уведомления приложения».

Настройка webhook-уведомлений описана в разделе «Вебхуки».

Вебхуки

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

Включите селектор Включить Webhook уведомления и настройте следующие параметры рассылки webhook-уведомлений:

  • В поле URL задайте адрес, на который будут приходить webhook-уведомления при перехвате запросов.

  • В поле Код ответа укажите код ответа, по которому срабатывает вебхук и отправляется уведомление на адрес, заданный в поле URL. Код ответа 200 означает, что уведомление будет отправляться при срабатывании политики.

Webhook-уведомление рассылается в виде JSON-файла и содержит информацию о компоненте, на который сработала политика, количестве срабатываний, ссылку на подробный отчет о нарушении политики, а также о самой политике, которая была нарушена.

Исключения выбранного объекта

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

Относящиеся к выбранному объекту политики, которые были добавлены в исключения, отображаются на вкладке Исключения в правой части пользовательского интерфейса.

С помощью полей Критичность и Действие при нарушении можно отфильтровать список исключений.

Исключение можно удалить, нажав значок AppSec.Track в конце строки исключения и подтвердив это действие в появившемся окне.

При удалении исключение будет перенесено обратно в политики и переместится из списка исключений на вкладке Исключения в список политик на вкладке Наследованные.

Если срок действия исключения прошел, оно будет автоматически перенесено системой из списка исключений на вкладке Исключения в список политик на вкладке Наследованные.

Добавление политики в исключения

Добавить в исключения можно только политики, у которых при создании или редактировании был установлен флажок Разрешить добавление в исключения.

Примечание

Добавлять в исключения для компонента можно только наследованные политики, то есть уровень добавляемой в исключения политики должен быть выше, чем уровень компонента, для которого формируется исключение.

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

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

Данная политика будет добавлена в исключения и переместится из списка политик на вкладке Наследованные в список исключений на вкладке Исключения.

Проверка лицензионной чистоты

Система позволяет осуществлять проверку лицензионной чистоты компонента с помощью относящихся к лицензиям политик, использующих проверки с типом поля Лицензия.

При добавлении в политику проверки лицензионной чистоты (см. детали в разделе «Добавление политики») после выбора типа поля Лицензия в поле Поле можно выбрать одно из следующих значений:

  • Лицензия.
  • Название лицензии.
  • Тип лицензии.

При выборе в Поле значения Лицензия в поле Условие можно выбрать значение из выпадающего списка (Пустой, Не пустой). Это позволяет проверять наличие или отсутствие лицензии у компонента.

При выборе в Поле значения Название лицензии в поле Условие можно выбрать значение из выпадающего списка (Равно, Не равно, Содержит, Не содержит, Пустой, Не пустой). Это позволяет проводить различные виды проверок, связанные с названием лицензии.

Примечание

Символы, вводимые в поле Значение, не чувствительны к регистру.

При выборе в Поле значения Тип лицензии в поле Условие можно выбрать значение из выпадающего списка (Равно, Не равно). При выборе значения Равно или Не равно в поле Значение можно выбрать одно из следующих значений: 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, Оценка уязвимости 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.

Проверка по алиасам уязвимостей

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

Примечание

Алиас уязвимости – это идентификатор AST-уязвимости из другого источника (CVE, BDU, NVD, OSV, GHA), на основе которого она была создана.

При добавлении в политику проверки по алиасам уязвимостей необходимо выбрать в Типе поля значение Уязвимость, в Поле – значение Алиас уязвимости, Условие проверки из выпадающего списка (Равно, Не равно, Содержит, Не содержит, Пустой, Не пустой) и задать требуемое Значение (см. детали в разделе «Добавление политики»).

Создание политики с проверкой по алиасам уязвимостей дает возможность, например, определить правило для конкретного CVE. Для этого необходимо в поле Условие выбрать значение Равно, а в поле Значение указать данный СVE.