Что нового
Версия продукта
1.7
Дата выпуска
31.08.2026
Краткое описание
Релиз TRON.ASOC v1.7 расширяет возможности интеграции платформы с CI/CD и внешними процессами: добавлено человекочитаемое API для управления иерархией Проект → Слой → Проверка, а также конструктор кастомных парсеров для подключения инструментов сканирования, не поддерживаемых системой. Помимо этого, в релиз включено управление жизненным циклом файлов в объектном хранилище (S3) и расширение API для политик, вебхуков, дашбордов и административных настроек.
Сводка
- Управление хранением файлов в S3
- Конструктор парсеров отчетов
- Запуск сканирования по вебхукам из систем контроля версий (VCS)
- Человекочитаемое API
- Метрики
CVSSиExploitabilityв контролях качества - JSON-парсер для Aqua
- Расширенный маппинг полей Jira
Что нового
| Новая возможность | Описание |
|---|---|
| Управление хранением файлов в S3 | Добавлена настройка автоматического удаления файлов по «времени жизни» (TTL) и удаление вручную Что изменилось для пользователя: можно задать срок хранения (TTL) сгенерированных отчетов и результатов сканирования в объектном хранилище с помощью переменной в файле docker-compose.yml. По истечении заданного срока файлы будут удаляться автоматически, при этом удаление файлов вручную при удалении связанной проверки, слоя или проекта по-прежнему работает |
| Конструктор парсеров отчетов | Добавлена возможность использования системных парсеров для отчетов из инструментов безопасности, поддерживаемых TRON.ASOC, а также возможность создания пользовательских парсеров отчетов на языке запросов и трансформации данных JSONata Что изменилось для пользователя: теперь можно использовать системные парсеры для обработки отчетов из поддерживаемых инструментов безопасности или создать пользовательский парсер для обработки отчетов из инструментов, которые не поддерживаются системой |
| Запуск сканирования по вебхукам из систем контроля версий (VCS) | Появилась возможность автоматически запускать проверки безопасности при push и merge/pull request событиях из GitLab, GitHub, Bitbucket и Gitea. Что изменилось для пользователя: можно настраивать автоматический запуск проверок при push и merge/pull request без необходимости запускать сканирование вручную или по расписанию |
| Человекочитаемое API | В API добавлены человекочитаемые URL, позволяющие адресовать слои и проверки по именам проекта и слоя (например, /project/{project}/layers/{layer_name}/checks/{check_name}).Что изменилось для пользователя: слои и проверки безопасности теперь можно адресовать в API по именам, а не только по числовым ID, что упрощает интеграцию с CI/CD и написание скриптов автоматизации |
| Метрики CVSS и Exploitability в контролях качества | Добавлены метрики CVSS (диапазон) и Exploitability (равно/не равно) для точной настройки контролей качества. Что изменилось для пользователя: при настройке контроля качества теперь можно задавать условия прохождение контроля качества по оценке CVSS (диапазон значений) и признаку Exploitability (наличие или отсутствие эксплуатируемости) |
| JSON-парсер для Aqua | Добавлена поддержка формата JSON для отчетов Aqua Что изменилось для пользователя: отчеты Aqua теперь загружаются в формате JSON, поддержка старого HTML-формата прекращена |
| Расширенный маппинг полей Jira | Добавлены поля Тип слоя, Слой, Ответственный, Дата последнего обнаружения в интеграцию с Jira. Что изменилось для пользователя: при создании задач в Jira теперь дополнительно передаются такие параметры проблемы безопасности, как Тип слоя, Слой, Ответственный и Дата последнего обнаружения, что дает больше контекста прямо в задаче, без перехода в TRON.ASOC |
Улучшения
- Внутренняя архитектура хранения файлов переведена с MinIO на S3-совместимое хранилище SeaweedFS
- Переработан интерфейс управления источниками сканирования: улучшены таблица, фильтры, форма создания интеграции и отображение источников
- Упрощено создание пользовательских источников сканирования: удален тип источника CLI tool custom source, добавлена возможность создавать свой источник сканирования в процессе создания проверки безопасности или при необходимости оставить источник пустым
- Теги проектов и групп задаются непосредственно при создании и редактировании проектов и групп. Опция Управление тегами больше не отображается в интерфейсе в настройках ролей
Изменения в REST API
Новые эндпоинты
GET /admin-settings— получение административных настроек платформыPUT /admin-settings— частичное обновление административных настроек платформыGET /assistant/runtime— получение текущего состояния ассистентаGET /assistant/session-token— получение токена сессии текущего пользователя для работы с ассистентомGET /assistant/whoami— получение текущего пользователя по идентификатору сессии ASOC (заголовокX-ASOC-Session)DELETE /custom-policy— массовое удаление пользовательских политикGET /custom-policy/events— получение списка доступных кодов событий для пользовательских политикGET /custom-policy/filters— получение агрегированных значений для фильтров в списке пользовательских политикPUT /custom-policy/orders— изменение порядка нескольких пользовательских политик за один запросPOST /custom-policy/validate— валидация синтаксиса пользовательской политики и используемых кодов событийPUT /custom-policy/{id}— обновление существующей пользовательских политикиPATCH /custom-policy/{id}/enabled— включение/отключение пользовательской политикиGET /dashboard-settings— получение списка настроек дашборда (с пагинацией и фильтром по коду проекта)GET /dashboard-settings/{project_code}— получение настроек дашборда по коду проектаPUT /dashboard-settings/{project_code}— сохранение настроек дашборда для проектаDELETE /dashboard-settings/{project_code}— удаление настроек дашбордаPOST /parser— создание парсераGET /parser/{id}— получение парсера по IDPUT /parser/{id}— обновление парсераPOST /parser/{id}/test— тестовый парсинг отчета без сохранения результатаGET /parsers— получение списка парсеров (с пагинацией, поиском по имени и фильтром «системный/пользовательский»)DELETE /parsers— удаление парсеровGET /project/{project_code}/layers/{layer_name}— получение слоя по коду проекта и имени слояPOST /project/{project_code}/layers/{layer_name}— создание слоя (или получение, если уже существует) по коду проекта и имени слояPUT /project/{project_code}/layers/{layer_name}— обновление слоя по коду проекта и имени слояGET /project/{project_code}/layers/{layer_name}/gates— получение контролей качества слоя по коду проекта и имени слояPOST /project/{project_code}/layers/{layer_name}/run— запуск слоя по коду проекта и имени слояGET /project/{project_code}/layers/{layer_name}/checks/{check_name}— получение проверки безопасности по коду проекта, имени слоя и имени проверкиPOST /project/{project_code}/layers/{layer_name}/checks/{check_name}— создание проверки безопасности (или получение, если уже существует) по имени проверкиPUT /project/{project_code}/layers/{layer_name}/checks/{check_name}— обновление проверки безопасности по имени проверкиGET /project/{project_code}/layers/{layer_name}/checks/{check_name}/gates— получение контролей качества проверки безопасности по имени проверкиPOST /project/{project_code}/layers/{layer_name}/checks/{check_name}/run— запуск проверки безопасности по имени проверкиPOST /project/{project_code}/layers/{layer_name}/checks/{check_name}/external— импорт результатов сканирования (JSON) в проверку безопасности по имени проверкиPOST /project/{project_code}/layers/{layer_name}/checks/{check_name}/upload-result— загрузка результата файлом (multipart) в проверку безопасности по имени проверкиPOST /project/{project_code}/layers/{layer_name}/check-groups/{group_name}/run— запуск группы проверок безопасности по коду проекта, имени слоя и имени группыGET /project/{project_code}/webhook-triggers— получение списка вебхук-триггеров проекта (с пагинацией)POST /project/{project_code}/webhook-triggers— создание вебхук-триггера для проектаGET /webhook-triggers/{id}— получение вебхук-триггера по IDPUT /webhook-triggers/{id}— обновление вебхук-триггераDELETE /webhook-triggers/{id}— удаление вебхук-триггераPOST /webhooks/vcs/{webhook_id}— прием входящего вебхука от системы управления исходным кодом (VCS) и запуск связанных с триггером проверок безопасностиGET /events-list— получение каталога всех событий системыGET /issues/trackers— получение уникального списка трекеров задач, в которых по указанным уязвимостям созданы задачиPOST /master-source/{id}/test— проверка аутентификации мастер-источникаDELETE /sources-list-with-masters— удаление источников и мастер-источников из объединенного списка (с опцией удаления дочерних источников)PUT /tracker/{id}/task/{task_key}— принудительное обновление задачи в трекере задач по ее ключуGET /trackers/labels— получение списка меток трекера задач (с поиском, пагинацией и сортировкой)POST /user/{id}/permissions/projects— получение прав пользователя по доступным ему проектам (заменил одноименный GET-эндпоинт (см. раздел Удаленные эндпоинты))
Измененные эндпоинты
| Измененный эндпоинт | Суть изменений |
|---|---|
POST /check | Изменена схема результата в ответе 200 : вместо параметра SecurityCheck возвращается параметр SecurityCheckWithResult, содержащий результат проверки |
GET /custom-policy | - Добавлен параметр filter[event_code] (фильтр по коду события или служебному значению trigger type: cron, scheduled_once)- Уточнены описания filter[project_code] (теперь поддерживает несколько кодов через запятую) и sort (добавлены новые поля сортировки) |
POST /custom-policy | Эндпоинт теперь только создает новую пользовательскую политику; обновление существующей политики вынесено в отдельный эндпоинт PUT /custom-policy/{id} |
GET /custom-policy/presets/actions | Схема результата в ответе 200 изменена с array<CustomPolicyPreset> на схему array<CustomPolicyPresetGroup>, возвращающую сгруппированные пресеты |
- GET /issues- GET /issues/count | Добавлен параметр filter[layer_type_id] для фильтрации по идентификаторам типов слоев (через запятую) |
GET /issues/filter | Добавлены параметры filter[layer_id] (фильтр по идентификаторам слоев, с автоматическим раскрытием до вложенных слоев) и filter[layer_type_id] |
- GET /security-rules- GET /security-rules/filter | Добавлены параметры filter[layer_id] и filter[layer_type_id] |
- GET /sources- GET /sources-list-with-masters- GET /sources/filter | Добавлен параметр filter[include_auto_created] для включения в результаты выдачи служебных источников, созданных автоматически |
GET /stats/tool-name-depreciated | Схема результата в ответе 200 изменена с ToolVulnerabilityStatResponse на схему ToolVulnerabilityDetailResponse, возвращающую более детализированную статистику |
GET /stats/tool-name-list-deprecated | Формат ошибок в ответах 400/401/403/500 унифицирован: теперь используется общая схема HTTPError вместо старой Error |
GET /trackers | - Добавлена пагинация: параметры limit (по умолчанию 50) и page (по умолчанию 1)- Ответ 200 теперь возвращает обертку TrackerListResponse вместо простого массива array<Tracker>- Уточнены описания параметров order, search, sort |
Удаленные эндпоинты
POST /check-groupGET /check-group/{group_id}PUT /checks-group/{group_id}GET /user/{id}/permissions/projects(заменен наPOST /user/{id}/permissions/projects)
Инструкции по обновлению
Обратная связь и поддержка
- Электронная почта техподдержки — support@tronasoc.ru
- Политика партнерской технической поддержки для пользователей ПО «TRON.ASOC»
Заключение
Релиз TRON.ASOC v1.7 усиливает систему сразу по нескольким направлениям: человекочитаемое API для управления проверками из внешних систем, гибкость подключения неподдерживаемых инструментов сканирования через конструктор парсеров, а также более надежное и предсказуемое хранение данных. Это обновление закладывает основу для дальнейшего расширения интеграционных сценариев платформы.