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

Обеспечение безопасности разработки ПО

Интеграция с AppSec.Hub

AppSec.Code предоставляет возможности по обеспечению защищенности разрабатываемого ПО, основанные на интеграции с платформой безопасной разработки программного обеспечения AppSec.Hub:

  • Сканирование приложений, кодовых баз и артефактов на наличие известных уязвимостей.
  • Сканирование с использованием различных практик проверки безопасности кода (SAST/SCA/DAST).
  • Формирование отчетности о результатах сканирования.

Возможности работы в AppSec.Hub определяются теми правами, которые есть у пользователя AppSec.Hub, использующего свой токен для интеграции.

Подключение на уровне экземпляра

  1. Зайдите в инструмент AppSec.Hub и авторизуйтесь с правами администратора.

  2. В AppSec.Hub нажмите на имя пользователя в правом верхнем углу и в выпадающем меню выберите пункт User Profile.

  3. В AppSec.Hub в левом меню User Profile выберите пункт Tokens, а затем нажмите на кнопку Add new в правом верхнем углу.

  4. В появившемся окне Create new access token введите название токена и дату истечения срока его действия (необязательное поле).

  5. Скопируйте созданный токен из появившегося окна, нажав на кнопку Got it.

  6. Вернитесь на главную страницу AppSec.Hub и в левом меню выберите пункт меню Applications.

  7. С помощью кнопки Add new, расположенной в правом верхнем углу, добавьте приложение, где будут определены шаблоны пайплайнов, которые будут использоваться при запросах сканирования с AppSec.Code.

  8. Авторизуйтесь в AppSec.Code с правами администратора.

  9. Перейдите в раздел администрирования Системы, в левой боковой панели выберите Настройки, а затем выберите Интеграции.

  10. На странице Управление интеграциями на уровне экземпляра в разделе Добавить интеграцию выберите строку с инструментом AppSec.Hub и нажмите на кнопку Настроить.

  11. В AppSec.Code в настройках подключения на вкладке Настройки введите параметры:

    • В разделе Параметры подключения:

      • В поле Включить интеграцию установите флажок Активно.
      • URL адрес AppSec.Hub.
      • API токен - токен доступа администратора AppSec.Hub, который был создан ранее.
    • В разделе Таск-менеджер:

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

Подключение на уровне проекта

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

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

Для подключения на уровне проекта:

  1. Перейдите в выбранный проект.

  2. Выберите Настройки, а затем выберите Интеграции.

  3. На странице Интеграции в разделе Добавить интеграцию выберите строку с инструментом AppSec.Hub и нажмите на кнопку Настроить.

  4. В AppSec.Code в настройках подключения на вкладке Настройки введите параметры:

    • В разделе Параметры подключения:

      • В поле Включить интеграцию установите флажок Активно.
      • URL адрес AppSec.Hub (может отличаться от значения этого параметра на уровне Системы).
      • API токен - токен доступа администратора AppSec.Hub, который был создан ранее (может отличаться от значения этого параметра на уровне Системы).
    • В разделе Таск-менеджер:

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

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

  • Использовать настройки по умолчанию - уровень экземпляра Системы.
  • Использовать пользовательские настройки - уровень проекта.

Настройка параметров сканирования в проекте

  1. В AppSec.Code перейдите в нужный проект. В меню выберите пункт Настройки и далее подпункт Настройки сканирования.

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

  3. При переподключении AppSec.Hub или изменении его настроек, обновить настройки сканирования можно по нажатию на кнопку Обновить список доступных практик.

Запуск сканирования кодовой базы

  1. После подключения AppSec.Hub в AppSec.Code на домашней странице проекта кнопка Запустить сканирование кодовой базы будет доступна для нажатия и проведения сканирования, если на странице Настройки сканирования установлен флажок практики SAST.

  2. Выберите ветку с исходным кодом, на которой будет проводиться сканирование.

  3. Нажмите на кнопку Запустить сканирование кодовой базы.

  4. На странице появится сообщение об успешном или неуспешном запущенном сканировании.

Работа с найденными уязвимостями

После завершения сканирования можно просмотреть найденные уязвимости.

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

На этой странице представлен список проведенных сканирований со следующей информацией:

  • Идентификатор сканирования в AppSec.Hub.
  • Дата и время сканирования.
  • Статус завершения сканирования.
  • Время выполнения сканирования.
  • Ветка, на которой проводилось сканирование.
  • Коммит, который сканировался.

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

На этой странице представлены статистика и список найденных уязвимостей со следующей информацией:

  • Статус уязвимости.
  • Критичность уязвимости.
  • Описание уязвимости. Нажмите на ссылку, чтобы посмотреть более подробную информацию об уязвимости.
  • Файл, в котором обнаружена уязвимость. Нажмите на ссылку, чтобы перейти в файл исходного кода.
  • CWE ID уязвимости со ссылкой на источник.
  • Данные об использованном для обнаружения уязвимости инструменте (который настроен в пайплайне AppSec.Hub).
  • Исполнитель (пользователь AppSec.Code).
  • Активность по данной уязвимости.

Интеграция с Обсуждениями

Примечание

Начиная с релиза 26.1.1, для Issues используется термин Обсуждения (в предыдущих версиях - Вопросы).

Начиная с релиза 25.2.3, появилась интеграция между Отчетом об уязвимостях и системой управления Обсуждениями (Issues). Это позволяет эффективнее управлять исправлением уязвимостей, назначая их на конкретных исполнителей и отслеживая прогресс через стандартные Обсуждения проекта.

Для этого настройте таск-менеджер по умолчанию:

  1. Перейдите в меню НастройкиПодключение к AppSec.Hub.
  2. В поле Таск-менеджер по умолчанию выберите Стандартные Issues.

Примечание

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

Уязвимости и Обсуждения

Как назначить уязвимости на исправление:

  1. Открыть пункт меню БезопасностьОтчёт об уязвимостях.
  2. Выбрать одну или несколько уязвимостей.
  3. Нажать Выберите исполнителя (из списка пользователей проекта).
  4. Нажать на кнопку В работу.

Примечание

Уязвимости со статусом В работе выбрать повторно нельзя.

Что происходит после этого:

  • Уязвимости получают статус В работе (колонка Активность).
  • В разделе Обсуждения для каждой из выбранных уязвимостей создаются новые задания:
    • Название и Описание берутся из уязвимости.
    • Источник — это CWE уязвимости.
    • Исполнитель (Ответственный) — выбранный в Отчёте об уязвимостях исполнитель (пользователь AppSec.Code).

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

  • Назначать подзадачи, связывать с целями (эпиками).
  • Создавать запросы на слияние для исправления.
  • Обсуждать в комментариях, добавлять метки.

Когда Обсуждение закрывается, в Отчёте об уязвимостях статус уязвимости в колонке Активность меняется на Устранено.

Пример рабочего процесса

  1. SAST находит уязвимость, она попадает в Отчёт об уязвимостях.
  2. Руководитель назначает её на разработчика через Обсуждения.
  3. Разработчик создает запрос на слияние, исправляет код, после запроса на слияние Обсуждение закрывается.
  4. Статус в Отчёте об уязвимостях автоматически меняется на Устранено.

Настройки сканирования SAST, SCA и DAST в редакторе пайплайна

Примечание

В версии 26.1.1 для Pipelines используется термин Конвейеры (в предыдущих версиях - Пайплайны).

  1. В левом меню выберите пункт Сборка и его подпункт Редактор конвейера.

  2. На открывшейся странице Редактор конвейера представлены кнопки с теми практиками, которые были выбраны в настройках сканирования этого проекта (SAST, SCA, DAST). После отключения отдельных практик в настройках сканирования проекта, при обновлении страницы Редактор конвейера кнопки, соответствующие отключенным практикам, больше не отображаются.

  3. При нажатии на кнопку с соответствующим названием происходит копирование в буфер обмена шаблона задания для данной практики. Далее пользователь AppSec.Code может вставить из буфера обмена шаблон задания в пайплайн и завершить редактирование актуальными данными.

  4. При запуске данного пайплайна, добавленные задания запускают на стороне AppSec.Hub процессы сканирования, соответствующие практике, настроенной в задании пайплайна.

SAST-сканирование с помощью semgrep

Начиная с релиза 25.4.1, добавлена возможность сканирования SAST с помощью утилиты semgrep для всех языков, которые semgrep поддерживает.

Для SAST-сканирования с помощью semgrep необходимо выполнить следующие шаги:

  1. В левом меню выберите пункт Сборка и его подпункт Редактор конвейера.

  2. На открывшейся странице Редактор конвейера в пайплайн необходимо добавить следующие строки:

    include:
      - template: Jobs/SAST.appsec_code-ci.yml
    
  3. При запуске данного пайплайна будет проведено SAST-сканирование с помощью утилиты semgrep. Результаты сканирования выводятся в лог пайплайна под заголовком Scan Status в стандартном для semgrep формате.

    SAST-сканирование с помощью semgrep не создаёт артефакты в заданиях пайплайна, а сохраняет их в артефактах проекта. Для их просмотра выберите в проекте пункт меню Сборка и его подпункт Артефакты. Результаты сканирования сохранены здесь в файле gl-sast-report.json.

Сканирование с помощью AppSec.Track

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

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

  1. В левом меню выберите пункт Сборка и его подпункт Редактор конвейера.

  2. На странице Редактор конвейера представлена кнопка AppSec.Track. Она копирует в буфер обмена шаблон для интеграции AppSec.Track CLI в пайплайн, см. документацию AppSec.Track. Содержимое шаблона можно вставить в конфигурационный файл пайплайна .appsec_code-ci.yml.

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

    • Объявить переменные DOCKER_AUTH и TRACK_ACCESS_TOKEN в настройках CI/CD проекта (пункт меню Настройки → подпункт CI/CD → раздел Переменные CI/CD).

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

    • Указать токен пользователя AppSec.Track в переменной TRACK_ACCESS_TOKEN, а переменную TRACK_TOKEN в разделе variables: скрипта определить следующим образом:

      TRACK_TOKEN: "$TRACK_ACCESS_TOKEN"
      
    • Добавить переменную DOCKER_CONF в раздел variables: скрипта, например:

      DOCKER_CONF: '{ "auths": { "docker.your_company.com": { "auth": "$DOCKER_AUTH" }}}'
      
    • В переменной SCANNER_IMAGE: указать образ с актуальной версией утилиты AppSec.Track CLI (не ниже 3.21.0).

    • В переменной SCANNER_APP: указать имя сканируемого приложения в AppSec.Track.
    • В переменной SCANNER_TEAM: указать имя команды приложения в AppSec.Track.
    • В переменной APP_VERSION: указать версию приложения в AppSec.Track.
    • В переменной APP_ENVIRONMENT: указать окружение (допустимые значения: dev, test, prod, stage, release).
    • В переменной TRACK_URL: указать экземпляр AppSec.Track, с помощью которого осуществляется сканирование.
    • В переменной SBOM_NAME: указать имя файла, в который будет сохранен полученный в результате SBOM-файл.
    • В переменной SCANNING_IMAGE: указать сканируемый образ, если сканируется Docker-образ.
    • Закомментировать один из разделов Scan Repo: или Scan Image: в зависимости от типа сканируемого объекта.
  3. При запуске пайплайна будет проведено сканирование с помощью инструмента AppSec.Track. Результаты сканирования выводятся в лог пайплайна в стандартном формате инструмента AppSec.Track.

  4. Чтобы сохранить результаты выполнения сканирования в артефактах проекта, в редакторе пайплайна необходимо добавить следующий раздел:

    artifacts:
        paths:
        - $SBOM_NAME
    

    В этом случае после завершения выполнения пайплайна для просмотра результатов сканирования можно выбрать в меню проекта пункт Сборка и его подпункт Артефакты. Результаты будут доступны в архиве artifacts.zip в SBOM-файле в формате JSON.

Интеграция с AppSec.Wave

Начиная с релиза 26.2.2, AppSec.Code поддерживает интеграцию с инструментом AppSec.Wave, реализующим практику SAST статического анализа исходного кода приложений.

Интеграция выполняется на уровне отдельного проекта: проект в AppSec.Code сопоставляется с проектом в AppSec.Wave.

Подключение интеграции

  1. Перейдите в нужный проект в AppSec.Code.
  2. Выберите Настройки > Интеграции.
  3. В списке интеграций выберите строку с инструментом AppSec.Wave и нажмите на кнопку Настроить.
  4. На странице настройки интеграции на вкладке Настройки задайте параметры:

    • В поле Включить интеграцию установите флажок Активно.
    • В поле Web URL укажите адрес экземпляра AppSec.Wave.
    • В полях Имя пользователя и Пароль введите учётные данные для подключения к AppSec.Wave.
    • В поле ID проекта в AppSec.Wave укажите идентификатор проекта в AppSec.Wave, с которым выполняется интеграция.

    Примечание

    Чтобы создать в AppSec.Wave проект, соответствующий проекту в AppSec.Code:

    1. В проекте в AppSec.Code на странице Код > Репозиторий нажмите на кнопку Код и скопируйте содержание поля Клонировать с помощью HTTPS, например, https://your.code.address/study-group/project-test.git.
    2. Зайдите в пользовательский интерфейс AppSec.Wave со своими учётными данными и там создайте новый проект, используя содержание поля Клонировать с помощью HTTPS как параметр.

    Чтобы определить идентификатор созданного проекта в AppSec.Wave:

    1. Откройте страницу проекта и скопируйте идентификатор из адресной строки веб-браузера. Например, для проекта с адресной строкой, приведенной ниже, ID проекта – 15:

      https://your.wave.address/project/15

  5. Нажмите Проверка соединения, чтобы убедиться в корректности параметров.

  6. Нажмите Сохранить изменения.

Запуск сканирования с помощью AppSec.Wave

После подключения интеграции в проекте на странице Код > Репозиторий в правом верхнем углу появляется кнопка Сканирование Wave и рядом справа от нее кнопка Действия сканирования Wave с дополнительным меню.

Чтобы запустить сканирование:

  1. Перейдите в Код > Репозиторий.
  2. Выберите ветку, для которой будет проведено сканирование.
  3. Нажмите на кнопку Сканирование Wave. Запустится сканирование исходного кода проекта с помощью AppSec.Wave.

В меню Действия сканирования Wave доступны следующие пункты:

  • Список сканирований — переход на страницу с результатами ранее проведённых сканирований.
  • Настройки интеграции — переход к параметрам подключения к AppSec.Wave.

Просмотр результатов сканирования

После завершения сканирования его результаты доступны на странице Сканирования Wave.

Чтобы перейти к результатам, в левом меню проекта выберите пункт Безопасность и его подпункт Сканирования Wave. На странице приведён список выполненных сканирований со следующей информацией:

  • — порядковый номер сканирования.
  • Дата сканирования — дата и время запуска.
  • Статус — итоговый статус сканирования.
  • Продолжительность сканирования — длительность выполнения.
  • Ветка — ветка проекта, для которой выполнялось сканирование.
  • Найденные уязвимости — количество обнаруженных уязвимостей с разбивкой по уровням серьезности.
  • Справа в конце строки расположена кнопка для скачивания отчета по результатам сканирования от инструмента AppSec.Wave. Нажмите на нее и выберите формат отчета из выпадающего меню (HTML, PDF, JSON, SARIF).

Анализ цикломатической сложности

Начиная с релиза 25.2.3, AppSec.Code предоставляет возможность проводить анализ цикломатической сложности исходного кода проекта с использованием инструмента Lizard. Это помогает контролировать качество кода:

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

Lizard анализирует исходный код и вычисляет следующие метрики:

  • NLOC — количество строк кода (без комментариев).
  • CCN (Cyclomatic Complexity Number) — цикломатическая сложность (количество линейно независимых путей выполнения в исходном коде). Чем выше значение CCN, тем сложнее код и тем меньше возможностей его поддерживать.
  • token — количество токенов (операторы, идентификаторы и т.д.).
  • PARAM — число параметров в функциях/методах.
  • length — длина кода (например, строк в функции).
  • location — путь к файлу и конкретному методу/классу.

Проблемные места в исходном коде помечаются предупреждениями (Warnings), если:

  • CCN > 15 — высокая цикломатическая сложность (слишком сложная логика).
  • length > 1 000 — слишком длинный код (например, функция).
  • NLOC > 1 000 000 — чрезмерно большой файл.
  • PARAM > 100 — слишком много параметров.

Использование в пайплайнах

  1. В меню проекта выберите пункт Сборка и его подпункт Редактор конвейера.

  2. На странице Редактор конвейера представлена кнопка CCN (Cyclomatic Complexity Number). Она копирует шаблон пайплайна Complexity Analyze в буфер обмена. Шаблон включает скрипт установки Lizard и вызов скрипта analyze.sh. Содержимое шаблона можно вставить в конфигурационный файл пайплайна .appsec_code-ci.yml.

  3. Результаты выполнения скрипта выводятся в лог пайплайна и сохраняются в форматах: CSV, XML, HTML, CheckStyle, StdOut.

  4. Созданные артефакты (отчёты) сохраняются в проекте в папку Артефакты/complexity-report.

    • Архив с отчётами в разных форматах.
    • Более подробная информация, чем в логе (например, имя метода и путь к исходнику) позволяет детально изучить проблемные места в исходном коде.

Аналитика строк кода

В меню проекта выберите пункт Аналитика и его подпункт Аналитика строк кода.

На странице представлены следующие метрики:

  • Количество строк кода (LOC).
  • Количество функций (Functions).
  • Цикломатическая сложность (CC).

Можно задать следующие параметры метрик:

  • Выбрать ветку или тег.
  • Задать даты внесения изменений в исходный код в полях От и До (опциональный параметр).

Если поля От и До заполнены, значения в полях Количество строк кода, Количество функций и Цикломатическая сложность рассчитываются относительно сканирований для указанных дат. Если поля От и До не заполнены, значения рассчитываются относительно предпоследнего и последнего сканирований.

Поиск дубликатов кода

Начиная с релиза 25.4.1, реализована функциональность поиска дубликатов кода при сканировании кодовой базы, помогающая контролировать качество кода и включающая в себя:

  • Поддержку различных языков программирования (JavaScript, TypeScript, Java, C#, Python, Ruby, PHP, Go, C++, Swift, Kotlin, Scala, Rust и другие).
  • Анализ кода на наличие повторяющихся фрагментов.
  • Результаты анализа содержат информацию о количестве дубликатов и проценте дублирования, количестве проанализированных файлов и строк кода с разбиением по языкам и другие метрики.

Для поиска дубликатов необходимо выполнить следующие шаги:

  1. В меню проекта выберите пункт Сборка и его подпункт Редактор конвейера.

  2. На странице Редактор конвейера представлена кнопка DuplicateCheck. Она копирует шаблон для поиска дубликатов кода в буфер обмена. Шаблон включает в себя фрагмент для поиска дубликатов кода code-duplication с вызовом скрипта analyze.sh. Содержимое шаблона можно вставить в конфигурационный файл пайплайна .appsec_code-ci.yml.

  3. Результаты выполнения скрипта выводятся в лог пайплайна и сохраняются в форматах HTML, JSON и CSV. Созданные отчёты сохраняются в артефактах выполненного задания в каталоге code-duplication-reports. Там же сохраняется лог анализа.

  4. В меню проекта выберите пункт Аналитика и его подпункт Аналитика дубликатов кода. На странице представлены метрики отчета по дубликатам.

    Можно задать следующие параметры метрик:

    • Выбрать ветку или тег.
    • Задать даты внесения изменений в исходный код в полях От и До (опциональный параметр).

    Раздел Срез заполняется при наличии нескольких отчетов и заполненных полях От и До.

Рейтинг разработчиков

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

Для получения рейтинга необходимо выполнить следующие шаги:

  1. В меню проекта выберите пункт Сборка и его подпункт Редактор конвейера.

  2. На странице Редактор конвейера представлена кнопка DeveloperRating. Она копирует шаблон для составления рейтинга в буфер обмена. Шаблон включает в себя фрагмент developer_rating с вызовом скрипта gitstats. Содержимое шаблона можно вставить в конфигурационный файл пайплайна .appsec_code-ci.yml.

  3. После завершения выполнения скрипта выберите в меню проекта пункт Сборка и его подпункт Артефакты. Результаты выполнения доступны в задании с именем developer_rating.

  4. Для просмотра результатов выполнения скрипта выберите в меню проекта пункт Аналитика и его подпункт Статистика по разработчикам.

    Страница Статистика по разработчикам содержит общую статистическую информацию о проекте, список авторов месяца, отсортированный по количеству коммитов, дату создания отчета, а также несколько вкладок:

    • На вкладке Активность представлена статистика по количеству коммитов в проекте. Можно выбрать один из видов отображения статистики (по часам, по дням недели, по месяцам, по годам).

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

    • На вкладке Теги представлен список тегов проекта. Для каждого тега приведены его имя, дата создания, количество вошедших в тег коммитов, а также список авторов коммитов для этого тега.

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

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

В левом меню проекта выберите пункт Безопасность и его подпункт Политики. На этой странице представлены все политики проекта.

Типы политик

В системе существует два типа политик безопасности:

  1. Политика одобрения запроса на слияние.

    • Предназначена для создания правил, проверяющих наличие уязвимостей безопасности и соответствие лицензии перед слиянием запроса на слияние.
    • Управляет процессом ревью запросов на слияние.
    • Может обеспечить обязательное ручное утверждение изменений независимо от наличия найденных уязвимостей.
    • Требует явного подтверждения от пользователя с заданной ролью или от указанных пользователей/групп.
    • Обеспечивает безопасность пуша в ветку по умолчанию/защищенные ветки (например, main).
  2. Политика выполнения конвейера.

    • Предназначена для принудительного запуска заданий сканирования (SAST/SCA/DAST) и других проверок безопасности в конвейерах проекта.
    • Гарантирует, что заданные задания выполняются на выбранных ветках независимо от содержимого .appseccode-ci.yml проекта.
    • Срабатывает при отправке коммитов (push) и при создании запросов на слияние.
    • Не блокирует запросы на слияние сама по себе. Результаты сканирований попадают в Отчёт об уязвимостях и могут использоваться правилами Политики одобрения запроса на слияние для блокировки слияния.

Примечание

До версии 26.1.1 функциональность Политики выполнения конвейера была представлена политикой AppSec.Hub — Управление уязвимостями.

В проекте можно создавать политики одного или обоих типов, при этом правила, определенные в этих политиках, будут применяться параллельно и сохраняться в YAML-файле в сопутствующем проекте Security Policy Project.

Создание политики

  1. В левом меню проекта выберите пункт Безопасность и его подпункт Политики.

  2. Нажмите на кнопку Новая политика.

  3. Выберите тип политики и нажмите на кнопку Выберите политику.

  4. В редакторе политики задайте ее параметры:

    • Для политики типа Политика одобрения запроса на слияние укажите Имя политики.
    • Укажите Описание политики (опционально).
    • Выберите Статус политики (Включено/Отключено).
    • Задайте Правила политики (Когда, Сканеры, Ветки, Исключения, Количество уязвимостей, Критичность).
    • Задайте Действия политики (Количество требуемых подтверждений, от кого - Роли/Пользователи/Группы).
  5. Нажмите на кнопку Настроить при помощи запроса на слияние. После этого происходит переход в сопутствующий проект Security Policy Project.

  6. В сопутствующем проекте нажмите на кнопку Слияние.

  7. Вернитесь в основной проект. После произведенного слияния политика начинает действовать.

Пример применения политик

  1. Разработчик создает запрос на слияние из feature-branch в main.

  2. AppSec.Code применяет политики:

    • Если включена Политика выполнения конвейера, в конвейере проекта автоматически запускаются заданные сканирования SAST/SCA/DAST, а их результаты попадают в Отчёт об уязвимостях.
    • Если включена Политика одобрения запроса на слияние, система требует подтверждения от указанных пользователей перед слиянием — в том числе при обнаружении уязвимостей заданного уровня.
  3. Утверждение запроса на слияние:

    • Пользователь из списка подтверждающих заходит в запрос на слияние и нажимает на кнопку Утвердить.
    • Только после этого запрос на слияние может быть смержен.