Skip to main content
Version: 1.6

Инструменты безопасности

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

Доступные инструменты и их версии

В текущей версии системы поддерживаются следующие инструменты безопасности (см. таблицу ниже).

ИнструментВерсия
PT Application Inspector5.0
Kaspersky Container Security2.3
Solar AppScreener3.15.5
Aqua2022.4.759
CodeScoring2025.29.3
Grype0.106.0
KICS2.1.19
OWASP Dependency Track4.12.1
Trivy0.68
Semgrep1.146.0
ESLint9.39.2
PVS-Studio7.38
GitLab Advanced SAST3.0.0
AppSec.Sting2025.5
AppSec.Track3.19
Gitleaks8.30.0
SASTAV2.4.0
TruffleHog3.95.2
note

При создании проверки безопасности с помощью Solar AppScreener вы можете выбрать тип анализа (SAST, DAST или SCA).

Особенности работы с SASTAV

При работе с SASTAV учитывайте следующие моменты:

  1. При авторизации в рамках настройки интеграции с SASTAV необходимо использовать сервисную учетную запись SASTAV.
  2. При работе с SASTAV репозитории должны быть уникальными в рамках всех проектов системы. При создании проверок безопасности с идентичными источниками сканирования в разных проектах в SASTAV будет создан только один репозиторий.
  3. Результаты сканирования из общего репозитория SASTAV формируются в соответствующих проверках безопасности/проектах на этапе парсинга отчетов.
  4. При редактировании проверки безопасности доступен выбора типа репозитория:
    • Базовый — содержит ограничение по количеству строк кода до 15 000;
    • Расширенный — содержит ограничение по количеству строк кода до 1 млн. Это значение установлено по умолчанию.

Выбор типа репозитория

  1. По причине технических ограничений на количество SASTAV-репозиториев в TRON ASOC предусмотрена возможность указать максимальное число репозиториев. Для этого в настройках интеграции с SASTAV доступен параметр Максимальное количество репозиториев. При указании числового значения система контролирует количество активных репозиториев. Если значение параметра не задано, применяется максимальный лимит, доступный по лицензии SASTAV.

Выбор максимального количества репозиториев

  1. Также доступна очистка SASTAV-репозиториев, созданных TRON ASOC. Возможна как очистка репозиториев вручную, так и автоматическая очистка (например, при удалении проверки безопасности удаляется связанный SASTAV-репозиторий, если он больше не используется в проверках безопасности в TRON ASOC).

Очистка репозиториев

Подключение интеграции с инструментом безопасности

info

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

  • Просмотр инструментов;
  • Управление инструментами.

Чтобы добавить новую интеграцию с инструментом безопасности, выполните следующие шаги:

  1. Перейдите в раздел Интеграции → Инструменты безопасности.
  2. Нажмите кнопку Добавить инструмент безопасности.
  3. Выберите необходимый инструмент безопасности из списка интеграций.

Выбор инструмента безопасности

  1. Заполните обязательные поля Название и Описание.

  2. Выберите тип доступа к инструменту:

    • Глобальный — при выборе этого типа доступа интеграция будет доступна во всех проектах;
    • Проектный — при выборе этого типа доступа интеграция будет доступна только в выбранных проектах. После выбора этого типа доступа также выберите один или несколько проектов, в которых будет доступна эта интеграция.
    tip

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

    Выбор нескольких проектов для интеграции

  3. Заполните дополнительные поля:

    • Описание инструмента;
    • URL;
    • Язык результатов сканирования;
    • Метод аутентификации.
    info

    Набор дополнительных полей зависит от выбранного инструмента безопасности.

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

  4. Заполните поля в зависимости от выбранного метода аутентификации:

    • API-токен: поле API Токен
    • Логин/пароль: поля Логин и Пароль
    • Нет. Если выбран метод аутентификации Нет, то сканирование будет недоступно, но пользователь сможет импортировать результаты сканирования вручную.
    note

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

Выбор инструмента безопасности

  1. При необходимости проверьте соединение нажатием кнопки Проверить соединение.
caution

Проверка соединения доступна только для методов аутентификации API-токен и Логин/пароль.

Вы можете проверить соединение только если вы ранее корректно ввели данные для аутентификации в инструменте безопасности. Если данные указаны верно, проверка соединения будет успешной. Если соединение не установлено, проверьте корректность введенных данных и повторите попытку.

  1. Нажмите кнопку Создать

Подключение интеграции с пользовательским инструментом безопасности (кастомной интеграции)

Вы также можете подключить интеграцию с кастомным инструментом безопасности, с помощью которого вы можете запускать проверки безопасности в TRON.ASOC или в Kubernetes, а также импортировать результаты проверки безопасности, выполненной этим инструментом.

Чтобы подключить кастомнный инструмент безопасности, выполните следующие шаги:

  1. Перейдите в раздел Интеграции → Инструменты безопасности.

  2. Нажмите кнопку Добавить инструмент безопасности.

  3. Выберите вариант Добавить кастомный инструмент.

  4. Выберите назначение Запуск сканирований.

  5. В открывшемся окне укажите следующие параметры инструмента:

    • тип доступа (глобальный или проектный);
    • название инструмента;
    • версия инструмента;
    • описание инструмента;
    • URL инструмента;
    • таймаут — время, по истечение которого система прекратит попытки соединения с инструментом (например, 10 минут);
    • период запроса — время, в течение которого будет отправляться один запрос к инструменту (например, раз в 30 секунд).
    warning

    Установка большого таймаута (более 10 минут) может стать причиной таймаута при тестового сканирования с помощью созданной интеграции.

  6. Введите основную и конфиденциальную настройки конфигурации инструмента.

    info

    Примеры конфигураций инструмента представлены в разделе ниже.

  7. Нажмите кнопку Создать.

Создание кастомной интеграции

Примеры настроек конфигурации кастомной интеграции

При создании кастомной интеграции можно указать два типа настроек:

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

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

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

Ниже представлен пример настроек и описание их параметров:

Основная настройка:

{
"url": "https://10.128.0.22",
"scan_result_lang": "EN",
"auth_method": "Api Token",
"report_type": "Sarif",
"is_encrypted": false,
"timeout_minutes": 15,
"poll_interval_seconds": 10
}

Конфиденциальная настройка:

{
"api_token": "xxxxxxxxxxxxxxxxxxxxxxxx",
"client_secret": "xxxxxxxxxxxxxxxxxxxxxxxx",
"password": "xxxxxxxxxxxxxxxxxxxxxxxx"
}
ПараметрОписание параметра
urlАдрес инструмента
scan_result_langЯзык результатов сканирования
auth_methodМетод аутентификации
report_typeФормат отчета, формируемого инструментом
is_encryptedПризнак использования шифрования
timeout_minutesМаксимальное время ожидания завершения сканирования
poll_interval_secondsИнтервал опроса статуса сканирования
api_tokenТокен доступа к инструменту
client_secretСекретный ключ клиента
passwordПароль для доступа к инструменту

Тестовое сканирование с помощью кастомной интеграции

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

Чтобы запустить тестовое сканирование, выполните следующие шаги:

  1. Нажмите кнопку Открыть в блоке Тестовый запуск сканирования.

  2. В открывшемся окне укажите следующие данные:

    • источник, на котором будет выполнено тестовое сканирование;
    • ветка/тег этого источника;
    • дополнительные настройки инструмента.
    info

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

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

Окно запуска тестового сканирования

API-контракт кастомной интеграции в TRON.ASOC

Кастомные интеграции подключаются к TRON.ASOC через HTTP-контракт кастомной интеграции. Кастомная интеграция реализует фиксированный набор эндпоинтов, а TRON.ASOC обращается к ней по HTTP для управления полным жизненным циклом сканирования.

Схема адреса запроса

Система формирует адрес запроса по следующему шаблону:

POST {url}/{endpoint}
Content-Type: application/json

где url — значение одноименного поля из настроек кастомной интеграции:

{
"tool_settings": {},
"tool_secret_settings": {},
"is_encrypted": false,
"extra_settings": {},
"url": "https://external-service"
}

Порядок выполнения

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

  1. /validate — проверка и нормализация настроек кастомной интеграции.
  2. /test-connection — проверка доступности кастомной инртеграции и учетных данных.
  3. /join-settings — объединение настроек кастомной интеграции и настроек проверки в join_tool_settings.
  4. /run — запуск сканирования.
  5. /scan-status — опрос статуса, повторяется до получения финального статуса.
  6. При получении статуса uploaded, uploaded_minio или done выполняется эндпоинт /get-result.
  7. При отмене сканирования пользователем выполняется эндпоинт /stop.

Эндпоинты контракта

POST /validate

Назначение: проверка и нормализация настроек кастомной интеграции.

Запрос:

{
"tool_settings": { "project_id": "example" },
"tool_secret_settings": { "api_token": "secret" }
}

Ожидаемый ответ:

{
"tool_settings": { "project_id": "example" }
}

Дополнительно можно вернуть обновленные tool_secret_settings.

Поведение TRON.ASOC: сохраняет tool_settings из ответа как актуальные настройки интеграции.

POST /test-connection

Назначение: проверка доступности кастомной интеграции и учетных данных.

Запрос: tool_settings, tool_secret_settings.

Успешный ответ:

{ "status": "ok" }

Ответ с ошибкой:

{ "status": "error", "error_msg": "Invalid credentials" }

Поведение TRON.ASOC: при status: ok считает проверку подключения успешной; при status: error показывает пользователю текст из error_msg.

POST /join-settings

Назначение: объединение настроек кастомной интеграции и настроек проверки.

Запрос: tool_settings, tool_secret_settings, extra_settings.

Ожидаемый ответ:

{
"join_tool_settings": {
"project_id": "example",
"profile": "default",
"api_token": "secret"
}
}

Поведение TRON.ASOC: сохраняет join_tool_settings и передает их без дополнительной интерпретации в /run, /scan-status, /get-result, /stop.

POST /run

Назначение: запуск сканирования с помощью кастомной интеграции.

Запрос:

{
"scan_result": {
"id": "asoc-scan-result-id",
"task_uniq_name": "task-name",
"tool_internal_task_id": "",
"security_check_id": "check-id",
"source_type_id": 1,
"status": "in_queue",
"result_details": {}
},
"join_tool_settings": {},
"source_settings": {}
}

Ожидаемый ответ:

{
"scan_result": {
"id": "asoc-scan-result-id",
"tool_internal_task_id": "external-task-id",
"status": "in_progress"
}
}

Обязательное требование: интеграция должна вернуть собственный идентификатор задачи в scan_result.tool_internal_task_id.

Поведение TRON.ASOC: сохраняет tool_internal_task_id, переводит задачу в статус in_progress и начинает опрос /scan-status.

POST /scan-status

Назначение: получение текущего статуса сканирования.

Запрос: scan_result.id, scan_result.tool_internal_task_id, join_tool_settings, source_settings.

Ожидаемый ответ:

{
"scan_result": {
"id": "asoc-scan-result-id",
"tool_internal_task_id": "external-task-id",
"status": "in_progress"
}
}

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

СтатусДействие TRON.ASOC
in_queueПродолжает опрос
in_progressПродолжает опрос
uploadedВызывает /get-result
uploaded_minioВызывает /get-result
doneВызывает /get-result
failedЗавершает сканирование с ошибкой
cancelledЗавершает сканирование как отмененное
POST /get-result

Назначение: получение результата сканирования после его успешного завершения.

Запрос: аналогичен /scan-status.

Ожидаемый ответ:

{
"scan_result": {
"id": "asoc-scan-result-id",
"tool_internal_task_id": "external-task-id",
"result": { "version": "2.1.0", "runs": [] }
}
}

Требование: scan_result.result должен быть JSON-объектом в формате SARIF.

Поведение TRON.ASOC: сохраняет результат и запускает стандартный парсинг SARIF.

POST /stop

Назначение: остановить сканирование.

Запрос: аналогичен /scan-status.

Ожидаемый ответ:

{
"scan_result": {
"id": "asoc-scan-result-id",
"tool_internal_task_id": "external-task-id",
"status": "cancelled"
}
}

Поведение TRON.ASOC: останавливает локальный опрос и переводит результат сканирования в состояние «отменено».

Обработка ошибок

Ошибки обрабатываются следующим образом:

  • любой HTTP-ответ вне диапазона 2xx считается ошибкой кастомной интеграции;
  • ответ с кодом 2xx, содержащий в теле поле error (например, {"error": "Something went wrong"}), также считается ошибкой;
  • система берет текст ошибки из тела ответа без изменений.

Результат выполнения

После прохождения полного цикла (/validate/test-connection/join-settings/run/scan-status/get-result) система получает результат сканирования в формате SARIF и запускает его стандартный парсинг. При отмене сканирования пользователем цикл завершается вызовом /stop, а результат переводится в статус cancelled.

warning

Моменты, которые необходимо учесть:

  • названия полей и значений статусов должны совпадать с контрактом дословно;
  • поле url из настроек кастомной интеграции используется системой только для построения адреса запроса и не передается в интеграцию.

Редактирование интеграции с инструментом безопасности

Чтобы отредактируйте интеграцию с инструментом безопасности, выполните следующие шаги:

  1. Нажмите кнопку редактирования (Редактирование) в строке инструмента.
  2. В открывшейся форме измените необходимые параметры.
  3. Нажмите кнопку Сохранить

Удаление интеграции с инструментом безопасности

Чтобы удалить интеграцию с инструментом безопасности, выполните следующие шаги:

  1. Нажмите кнопку удаления Удаление в строке инструмента
  2. Подтвердите удаление инструмента в открывшемся модальном окне.

Подтверждение удаления одного инструмента безопасности

Чтобы удалить несколько интеграций с инструментом безопасности, выполните следующие шаги:

  1. Выберите инструменты с помощью чекбоксов (Чекбокс)
  2. Нажмите кнопку удаления (Удалить), расположенную над таблицей инструментов.
  3. Подтвердите удаление инструментов в открывшемся модальном окне.

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

Примеры интеграций с инструментами безопасности

Добавление интеграции с PT Application Inspector

Чтобы добавить интеграцию с инструментом в систему, выполните следующие шаги:

  1. Перейдите в раздел Интеграции → Инструменты безопасности.

  2. Нажмите кнопку Добавить инструмент безопасности.

  3. Выберите PT Application Inspector из списка инструментов.

  4. Заполните поля в открывшейся форме:

    • Название интеграции — название должно быть уникальным;
    • Описание.
  5. Настройте параметры подключения:

    info

    Вы можете указать метод аутентификации позже при добавлении проверки безопасности.

  6. Нажмите кнопку Проверить соединение.

caution

Вы можете проверить соединение только если вы ранее корректно ввели данные для аутентификации в инструменте безопасности. Если данные указаны верно, проверка соединения будет успешной. Если соединение не установлено, проверьте корректность введенных данных и повторите попытку.

  1. Нажмите кнопку Сохранить.

Добавление интеграции с Kaspersky Container Security (KCS)

Чтобы добавить интеграцию с инструментом в систему, выполните следующие шаги:

  1. Перейдите в раздел Интеграции → Инструменты безопасности.

  2. Нажмите кнопку Добавить инструмент безопасности.

  3. Выберите Kaspersky Container Security из списка инструментов.

  4. Заполните обязательные поля:

    • Название;
    • Описание.
  5. Настройте параметры подключения:

    • URL;
    • Язык результатов сканирования;
    • Метод аутентификации (API Token).
    info

    Вы можете указать метод аутентификации позже при добавлении проверки безопасности.

  6. Добавьте API-токен в поле Токен API

  7. Нажмите кнопку Проверить соединение.

caution

Вы можете проверить соединение только если вы ранее корректно ввели данные для аутентификации в инструменте безопасности. Если данные указаны верно, проверка соединения будет успешной. Если соединение не установлено, проверьте корректность введенных данных и повторите попытку.

  1. Нажмите кнопку Сохранить.