Документация / Общая информация
Функциональные характеристики
Перечень функций SecurityFlow по группам. Функции, которые требуют платной лицензии или лицензии Radar, отмечены в разделе Лицензирование.
Оркестрация сканирования (Radar)
- Запускает сканеры в изолированных контейнерах Docker по последовательности джоб.
- Выполняет джобы пайплайна строго по порядку, пайплайны разных ассетов - параллельно по числу процессов исполнителя.
- Клонирует репозиторий технической джобой Code Downloader по SSH-ключу с выбором ветки.
- Передаёт код и артефакты между джобами через общий том пайплайна.
- Различает джобы-сканеры, которые отправляют отчёт в Core, и технические джобы, которые только готовят данные.
- Принимает для джобы образ, команду запуска, переменные окружения, таймаут, признак "Разрешить падение" и копирование артефактов.
- Маскирует значения скрытых переменных в логах джоб.
- Проверяет наличие обязательных переменных перед запуском джобы.
- Подставляет значение одной переменной в другую по ссылке
$ИМЯ. - Скачивает образы из приватных реестров по сохранённым учётным данным.
- Ограничивает время джобы и пайплайна таймаутами в минутах.
- Останавливает отдельную джобу, пайплайн или все пайплайны сразу.
- Показывает живой лог выполняющейся джобы и хранит логи завершённых.
- Ищет пайплайны по статусу, джобе, аудиту и тексту логов.
- Выгружает артефакты джобы архивом tar.
- Оценивает ожидаемую длительность джоб и пайплайнов по статистике прошлых запусков.
- Показывает число воркеров и потоков и их загрузку.
- Очищает тома и записи пайплайнов ежедневно по заданному сроку хранения.
- Удаляет скачанные образы джоб по команде.
- Импортирует описания джоб из файла JSON.
- Поставляется с каталогом джоб для SAST, SCA, поиска секретов, проверки IaC, DAST и разведки периметра. Какие джобы каталога готовы к запуску из Radar с разбором в Core - в разделе Справочник сканеров.
- Подключает свой или коммерческий сканер джобой со своим образом. См. Свой и коммерческий сканер.
- Запускает пайплайн напрямую из интерфейса или API Radar с заданными переменными.
Запуск сканирования из Core
- Запускает аудит по выбранным продуктам или ассетам с указанием ветки и последовательности джоб.
- Запускает аудит по расписанию в формате cron для заданной области продуктов и ассетов. Порядок полей: минута, час, день недели, день месяца, месяц.
- Запускает аудит репозитория при push по вебхуку GitLab, GitHub, Bitbucket и Azure Repos (Azure DevOps Services).
- Отслеживает новые теги образов в реестре контейнеров GitLab и запускает их сканирование по вебхуку или по расписанию.
- Хранит последовательности джоб и выбирает последовательность: из запроса, привязанную к ассету или последовательность по умолчанию.
- Передаёт в Radar SSH-ключ для клонирования и учётные данные реестра образов скрытыми переменными.
- Проверяет связь с Radar и подлинность токена доступа.
- Проксирует API Radar через API Core: джобы и пайплайны Radar доступны с токеном Core.
Импорт результатов
- Принимает отчёты сканеров из интерфейса Core и через API
POST /api/v1/scan/import/. - Принимает отчёты от Radar автоматически после каждой джобы-сканера.
- Разбирает отчёты встроенными импортёрами сканеров из справочника. См. Справочник сканеров.
- Разбирает отчёты собственного JSON-формата по схеме, заданной в мастере разбора, с предпросмотром результата.
- Сопоставляет текстовую критичность из отчёта с уровнями Core по таблице сопоставления сканера. Таблицы заполнены для сканеров из поставки.
- Создаёт продукт и ассеты из метаданных импорта, если их ещё нет.
- Относит отчёт без продукта, но с новым ассетом к продукту по умолчанию.
- Создаёт запись аудита на каждый импорт с ассетом.
- Обрабатывает отчёты асинхронно и сразу отвечает на запрос импорта.
- Переносит описания своих сканеров и импортёров между установками.
Продукты и ассеты
- Ведёт продукты с типом, тегами, критичностью для бизнеса и своими настройками Jira.
- Ведёт ассеты пяти типов: репозиторий, Docker-образ, домен, хост, облачный аккаунт.
- Ограничивает ассет одним продуктом в режиме уникальных ассетов и показывает дубликаты ассетов.
- Переносит ассет в другой продукт вместе с его уязвимостями.
- Импортирует репозитории из системы контроля версий в продукт ассетами.
- Строит ссылку на строку кода в репозитории по шаблону.
- Выполняет массовые операции над продуктами и ассетами: удаление и запуск аудита; над ассетами также теги и смена продукта.
Управление уязвимостями
- Хранит уязвимость с критичностью, статусом, путём к файлу и строкой, уязвимым URL, зависимостью, веткой, тегом образа, CWE и вектором CVSS.
- Ведёт статусы разбора: "Не обработано", "В работе", "Назначено", "Отклонено", "Временно принят риск", "Постоянно принят риск", "Решено".
- Принимает риск временно на заданное число дней и показывает остаток срока.
- Меняет статус, критичность, теги, группы и CWE массово по фильтру.
- Фильтрует уязвимости по продуктам, ассетам, сканерам, статусам, критичности, SLA, аудиту и признакам автоматики.
- Показывает, каким правилом или аудитом затронута уязвимость.
- Хранит комментарии и изображения к уязвимости.
- Объединяет уязвимости в группы и создаёт для группы эпик в Jira.
- Рассчитывает оценку CVSS 3.1 и 4.0 по вектору и задаёт критичность по оценке.
- Ведёт справочник CWE версии 4.14 и статистику уязвимостей по CWE.
- Хранит историю аудитов с хешем, автором коммита, веткой и числом добавленных и решённых уязвимостей по сканерам.
- Выгружает списки в CSV.
Автоматизация разбора
- Отсеивает дубликаты при импорте по настраиваемым критериям в пределах продукта, типа продукта или всей установки.
- Возвращает решённую уязвимость в "Не обработано", если сканер нашёл её снова.
- Запускает базовую дедупликацию по сохранённым уязвимостям вручную, в том числе пробным прогоном.
- Находит и удаляет дубликаты среди сохранённых уязвимостей по правилам с условиями для оригинала и дубликата.
- Меняет статус уязвимостей, добавляет теги и группы по правилам валидатора с условиями по полям и регулярными выражениями.
- Применяет правила валидатора при импорте.
- Проставляет векторы CVSS по правилам.
- Ограничивает действие правил областью: глобально, продуктами, ассетами, типами ассетов или тегами.
- Решает или удаляет уязвимости, которых нет в новом отчёте сканера, при включённом автозакрытии.
- Выгружает и загружает правила валидатора, дедупликатора и CVSS в JSON.
Контроль в CI/CD
- Проверяет коммит в конвейере GitLab CI джобой Security checker: запускает аудит, ждёт импорт и выносит вердикт.
- Завершает джобу CI с ошибкой, если проверка нашла новые уязвимости заданных уровней (режим
new) или в ветке есть неразобранные уязвимости этих уровней (режимopen). Какой режим сочетать с проверкой конкретного коммита - в разделе Security checker. - Пишет результат проверки в отчёт JUnit и возвращает код выхода 0, 1 или 2.
- Оставляет комментарий с найденными уязвимостями в merge request и pull request GitLab, GitHub и Bitbucket.
- Закрывает pull request при уязвимостях в текущей ветке.
- Выставляет статус коммита "Quality Gate" по порогу числа уязвимостей.
- Переносит уязвимости ветки-источника в целевую ветку при слиянии.
Интеграции
- Создаёт задачи в Jira вручную, массово и автоматически при верификации уязвимости.
- Ведёт задачи в двух пространствах Jira: команды безопасности и команды продукта.
- Сопоставляет статусы Jira статусам уязвимостей и переводит задачи при смене статуса в Core.
- Принимает события задач Jira по вебхуку.
- Сопоставляет критичность уязвимости приоритету задачи Jira.
- Дополняет или заменяет описание задачи Jira своим текстом для каждого сканера.
- Удаляет задачи отклонённых уязвимостей и закрывает задачу команды безопасности после решения задачи команды продукта - по настройке.
- Отправляет уведомления HTTP-запросом с JSON о смене статуса, импорте уязвимостей и завершении валидации - по продуктам из области действия интеграции.
- Отправляет уведомления по расписанию с выборкой уязвимостей по фильтру.
- Синхронизирует уязвимости с DefectDojo и подключает чат с LLM - по запросу, сервисы для них разворачивает команда SecurityFlow. См. DefectDojo и LLM.
Метрики и отчётность
- Считает SLA на верификацию, назначение и решение по уровням критичности и отмечает нарушения.
- Рассчитывает взвешенный риск продукта WRT с весами критичности и критичностью продукта для бизнеса.
- Сравнивает WRT с допустимым риском общим и по продукту.
- Показывает сводку по продуктам, ассетам, статусам и типам сканеров на дашборде и в таблице рисков.
- Формирует отчёт "Оценка безопасности" по выбранным продуктам и статусам для печати.
- Кэширует счётчики метрик и пересчитывает их по расписанию.
Управление доступом
- Разграничивает права ролями по восьми областям с уровнями "Нет", "Просмотр", "Изменение".
- Ограничивает доступ роли к продуктам по типам продуктов, списку включённых или исключённых продуктов.
- Выполняет вход по логину и паролю с токенами в cookie.
- Выполняет вход через SSO по OAuth 2.0 и OpenID Connect: GitLab, GitHub, универсальный провайдер OIDC.
- Назначает роли пользователю SSO по сопоставлению внешних групп и ограничивает вход списком email-доменов.
- Создаёт роли с доступом к продуктам по проектам репозиториев пользователя GitLab и GitHub.
- Выдаёт и ротирует персональный API-токен пользователя.
- Переключает метод входа пользователя между паролем и SSO.
Администрирование
- Активирует и заменяет ключ лицензии без переустановки.
- Сверяет лицензию с сервером лицензий по расписанию и при работе пользователей.
- Показывает активные фоновые задачи с прогрессом.
- Настраивает внутренний и внешний адреса Core для Radar, уведомлений и комментариев.
- Предоставляет администрирование Django для суперпользователей.
- Поддерживает интерфейс на русском, английском и узбекском языках, русский - по умолчанию.
API
- Предоставляет REST API Core
/api/v1/с аутентификацией по токенуAuthorization: Token. - Публикует спецификацию OpenAPI с интерфейсами Swagger UI и ReDoc.
- Предоставляет API Radar со спецификацией OpenAPI и аутентификацией по токену доступа.
- Отдаёт результаты постранично и счётчики по статусам, критичности и SLA.
Сервер лицензий
- Выпускает ключи лицензий по тарифам с указанием компании.
- Формирует документ лицензии в PDF.
- Отзывает, возвращает и удаляет лицензии.
- Отвечает на запросы активации и сверки статуса ключа.
- Ограничивает доступ к кабинету и API белым списком IP-адресов и сетей.