Интеграция результатов анализа PVS-Studio в TRON.ASOC
TRON.ASOC — платформа для автоматизации безопасной разработки. Помогает обнаруживать, анализировать и устранять уязвимости на этапах разработки и эксплуатации.
Рассмотрим пример интеграции отчёта анализатора PVS-Studio в TRON.ASOC.
Предварительная настройка
Для начала нужно добавить проект в разделе Проекты, заполнив обязательные поля.

После этого необходимо выбрать инструмент безопасности. Для этого переходим в раздел Интеграции > Инструменты безопасности и нажимаем кнопку Добавить инструмент безопасности. В поле Инструмент выбираем PVS-Studio.


Далее перейдём в раздел Источники сканирования. Здесь нужно выбрать источник проекта. Важно: в поле Источник нужно выбрать CLI Tool Custom Source.

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

Перейдём к загрузке отчёта проекта. Для этого необходимо сконвертировать отчёт в формат .sarif при помощи утилиты plog-converter.
plog-converter report.json -t sarif
Подробнее про утилиту plog-converter описано в документации.
После конвертации отчёта необходимо на платформе перейти в раздел Проекты и выбрать нужный проект. После этого выбрать раздел Обзор > Слои проекта.

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

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

Чтобы запустить сканирование, добавим проверку безопасности. В открывшейся форме указываем созданный инструмент и источник сканирования.
Теперь можно нажать кнопку Начать новое сканирование. Для загрузки отчёта рассмотрим два варианта.
Загрузка отчёта
Ручной вариант загрузки отчёта
Нужно нажать на три точки рядом с проверкой безопасности и в появившемся меню выбрать пункт Импортировать результаты.

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

Загрузка отчёта с помощью API
Вернёмся в раздел Слои проекта. Выберем в меню Редактировать проверку безопасности. Здесь рассмотрим подробнее пункт Конечная точка API проверки безопасности. Для загрузки отчёта с помощью API нужно использовать эту команду:
curl --location 'http://you_host'
--header 'x-api-token: '
--header 'content-type: application/json'
--data @"path_to_sarif"
Она приведена в примере для подключения конечной точки API. Также ниже указана ссылка для создания API-токена.


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

Работа с результатами анализа
Результаты анализа содержат поля Статус и Ответственный. В поле Статус можно выбрать, к какому состоянию принадлежит срабатывание, например установить In progress.

В поле ответственный можно выбрать, кому назначить работу над этим срабатыванием. Подробнее про возможности обработки результатов анализа можно узнать в документации платформы TRON.ASOC.
Оповещение пользователей
Для начала создаем инструмент уведомления. Необходимо перейти в раздел Интеграции > Инструменты уведомлений. Для добавления нового инструмента нужно заполнить данные на форме. А также можно проверить подключение, нажав на соответствующую кнопку.

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

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

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

