Quality Gates
Примечание
Для выполнения нижеописанных действий требуется роль Администратора.
AppSec.Hub позволяет создать и настроить для работы с приложением Quality Gates (QG) и, таким образом, определить критерии качества для приемки результатов сканирования. На основе критериев Quality Gate система решает, успешно ли завершилась работа Security Pipeline или нет. Если критерии QG оказались не выполнены, результат работы Security Pipeline получает статус «failed» («завершившийся неуспешно»). AppSec.Hub возвращает статус «failed» в инструмент CI/CD, например, Jenkins, и на этом выполнение пайплайна останавливается. Рекомендуется установить различные критерии QG для пайплайнов, предназначенных для целей разработки, тестирования и выпуска релизов, а также просто не устанавливать критерии QG для кода, находящегося в разработке и не включенного в релиз.
Создание профиля Quality Gate
Нажав иконку Administration , расположенную в правом верхнем углу пользовательского интерфейса AppSec.Hub, перейдите на страницу администрирования системы.
Выберите пункт меню QG Config и нажмите кнопку +Add new.
Укажите имя Quality Gate в поле Quality Gate Name и нажмите кнопку Create.
В правом нижнем углу пользовательского интерфейса появится подтверждающее сообщение, а на странице QG Config — карточка соответствующего конфигурационного профиля Quality Gate.
На карточке профиля Quality Gate отображаются следующие параметры:
- Наименование Quality Gate.
- Код Quality Gate, который генерируется автоматически при создании профиля и является уникальным в системе.
- Количество заданных условий (Conditions).
- Время, прошедшее с создания Quality Gate (Created).
- Время, прошедшее с последнего обновления Quality Gate (Updated).
Настройка профиля Quality Gate
Чтобы перейти к настройке профиля Quality Gate, нажмите иконку Show/edit details в правом нижнем углу его карточки. Более подробная информация о создании профиля Quality Gates приведена выше в разделе «Создание профиля Quality Gate».
На странице профиля Quality Gate имеется две вкладки:
-
Вкладка Conditions используется для определения условий критерия качества, задаваемого данным Quality Gate.
-
Вкладка Used in apps отображает перечень приложений, в которых используется данный Quality Gate.
Добавление условий Quality Gate
Для добавления в Quality Gate условий перейдите на страницу настройки профиля Quality Gate (см. раздел «Настройка профиля Quality Gate») и нажмите кнопку +Add new.
В появившемся диалогом окне в поле Issue type укажите практики AST, для которых определяются условия.
В поле Issue state укажите состояния проблем безопасности (доступные значения: NEW, REPEATED, ALL). Информация о настройках алгоритма изменения состояний проблем безопасности приведена в разделе «Настройка алгоритма изменения состояний проблем безопасности» Руководства пользователя.
В поле Issue severity укажите степень серьезности Security Issue (доступные значения: LOW, MEDIUM, HIGH, CRITICAL).
В поле Threshold укажите максимально допустимое количество соответствующих уязвимостей.
После выбора необходимых параметров нажмите кнопку Create и соответствующие условия будут добавлены в профиль Quality Gate.
Автоматическое добавление условий в Quality Gate
Учитывая широкий диапазон условий, которые могут определяться при создании Quality Gate, и заметные трудозатраты, связанные с добавлением этих условий, предусмотрена функция автоматического добавления критериев. Нажмите кнопку Actions расположенную в правом верхнем углу, и в появившемся раскрывающемся меню выберите пункт Build default. В Quality Gate будут добавлены все возможные условия и Инженеру ИБ останется только отредактировать пороговые значения для нужных условий и удалить ненужные.
Для редактирования параметров условия нажмите иконку Edit . Измените необходимые значения и нажмите кнопку Update, чтобы сохранить изменения.
Удаление условий Quality Gate
Для удаления условия нажмите иконку Remove , расположенную справа.
Сохранение настроек профиля Quality Gate
После определения необходимых условий нажмите кнопку Update, расположенную в правом верхнем углу, чтобы сохранить сделанные изменения, или — кнопку Cancel, чтобы отменить их.
Кроме этого, находясь на данной странице, можно отредактировать название Quality Gate или удалить его.
Чтобы отредактировать название Quality Gate, нажмите кнопку Actions , расположенную в правом верхнем углу пользовательского интерфейса, и в появившемся раскрывающемся меню выберите пункт Edit name.
В появившемся диалоговом окне укажите новое наименование Quality Gate и нажмите кнопку Update.
Удаление Quality Gate
Чтобы удалить профиль Quality Gate, перейдите на страницу QG Config, см. раздел «Создание профиля Quality Gate». В правом нижнем углу карточки Quality Gate нажмите иконку Delete Quality Gate .
Для подтверждения удаления Quality gate нажмите кнопку Confirm.
Кроме этого, профиль Quality Gate можно удалить, находясь на странице настройки его условий, см. раздел «Добавление условий Quality Gate».
Нажмите кнопку Actions , расположенную в правом верхнем углу пользовательского интерфейса, и в появившемся раскрывающемся меню выберите пункт Delete Quality Gate.
Для подтверждения удаления Quality gate нажмите кнопку Confirm.
После удаления Quality gate в правом нижнем углу пользовательского интерфейса отобразится соответствующее уведомление.
Примечание
Если предпринимается попытка удаления Quality Gate, который используется в каких-либо объектах системы – на уровне компании, подразделения организационной структуры, приложения или пайплайна, в правом нижнем углу пользовательского интерфейса отображается соответствующее предупреждение.
В таком случае необходимо предварительно отключить Quality Gate в соответствующем объекте или объектах и только после этого удалить его. Для пайплайнов удобнее всего это сделать следующим образом. Перейдите на страницу настройки профиля Quality Gate, см. раздел «Настройка профиля Quality Gate». Выберите вкладку Used in apps. На данной вкладке отображается перечень приложений, в которых используется данный Quality Gate. Нажав иконку , расположенную в колонке LINK, перейдите на страницу Pipelines и отключите Quality Gate в тех пайплайнах, где он используется — открывайте страницу необходимого пайплайна, переходите на вкладку Quality gate и нажимайте кнопку Unlink. После этого можно переходить к удалению профиля Quality Gate любым из описанных выше способов.
Дублирование Quality Gate
Чтобы создать дубликат профиля Quality Gate, в правом нижнем углу карточки Quality Gate нажмите иконку Duplicate .
Дублирование профиля Quality Gate может оказаться полезным, если необходимо создать новый профиль с аналогичным набором условий, но, например, с другими пороговыми значениями. В качестве примера можно привести ситуацию, когда аналогичные Quality Gates, но с разными количественными критериями используются для тестирования и релиза приложения.
Иерархия и наследование Quality Gates
В AppSec.Hub реализовано централизованное управление Quality Gates. Созданный в системе конфигурационный профиль Quality Gate (см. раздел «Создание профиля Quality Gate») может быть применен к различным объектам системы – на уровне компании, подразделения организационной структуры, приложения или пайплайна.
Quality Gate, созданный для объекта более высокого уровня, может быть унаследован объектами более низких уровней в иерархии объектов в следующем порядке:
Компания => Подразделения организационной структуры => Приложение => Пайплайн.
Для этого необходимо, чтобы в объектах более низких уровней было включено наследование с помощью выбора опции Inherit quality gate.
Объекты системы, у которых включено наследование Quality Gates, в пользовательском интерфейсе отмечены с помощью иконки наследования Quality Gates :
Иконка наследования Quality Gates на уровне пайплайнов:
Благодаря данному подходу, изменение профиля Quality Gate приводит к автоматическому и одновременному изменению критериев во всех объектах, в которых применяется данный Quality Gate.
Важно
Иерархия и наследование Quality Gates реализованы в системе начиная с релиза 2023.4.3. При переходе на этот релиз, для существующих в системе объектов, где не был установлен Quality Gate, будет включено наследование. Для объектов с установленным Quality Gate не будет вноситься никаких изменений. Все новые объекты будут создаваться с наследованием Quality Gate.
Примечание
Включение принудительного наследования Quality Gates у всех объектов вниз по дереву от вышестоящего объекта можно осуществить в Swagger с помощью вызова метода <hub-url>/hub/rest/swagger-ui/index.html#/quality-gate-rest/setChildQualityGate
с параметрами:
- objectType – тип объекта (
app
|orgUnit
|company
), от которого включается принудительного наследования Quality Gates вниз по дереву. - objectId - ID данного объекта в Системе (ID приложения, подразделения организационной структуры, ID для компании имеет значение
1
).
При этом у объекта, у которого было включено принудительное наследование Quality Gates, настройки не будут изменены.
В ближайших релизах планируется добавить соответствующую функциональность в пользовательский интерфейс.
Quality Gate на уровне компании
Чтобы создать Quality Gate на уровне компании, нажмите иконку профиля организации в правом верхнем углу, выберите пункт меню Profile и перейдите на вкладку Quality Gate, выберите существующий Quality Gate из выпадающего списка и нажмите кнопку Save.
Удалить Quality Gate на уровне компании можно при помощи кнопки Remove QG.
Созданный на уровне компании Quality Gate может быть унаследован на уровне подразделения организационной структуры, приложения или пайплайна.
Quality Gate на уровне подразделения организационной структуры
Чтобы создать Quality Gate на уровне одного из подразделений организационной структуры (Department, Center of Excellence, Team), нажмите иконку профиля организации в правом верхнем углу, выберите пункт меню Structure и найдите нужное подразделение в организационной структуре.
Hажмите на название подразделения и перейдите на вкладку Quality Gate.
Данная вкладка позволяет настроить Quality Gate для выбранного подразделения.
В случае, если опция Inherit quality gate отключена, Quality Gate можно выбрать из выпадающего списка. Удалить такой Quality Gate можно при помощи кнопки Remove QG.
В случае, если опция Inherit quality gate включена, наследуется Quality Gate, установленный для подразделения более высокого уровня в организационной структуре (того подразделения, которое указано в поле Parent на вкладке General для выбранного подразделения. Для подразделений, у которых поле Parent не заполнено, наследование осуществляется с уровня компании).
Созданный на уровне подразделения организационной структуры Quality Gate может быть унаследован на уровне приложения или пайплайна.
Подразделения в организационной структуре компании можно отфильтровать по Quality Gates, нажав кнопку фильтрации в правом верхнем углу и выбрав необходимые значения в поле by quality gate.
Quality Gate на уровне приложения
Настройка Quality Gate на уровне приложения описана в разделе «Quality Gate приложения» Руководства пользователя.
Quality Gate на уровне пайплайна
Настройка Quality Gate на уровне пайплайна описана в разделе «Добавление Quality Gate в Security pipeline» Руководства пользователя.