Документация / Руководство пользователя / Автоматика разбора
Правила CVSS
Core хранит у уязвимости векторы CVSS версий 3.1 и 4.0 и считает по ним оценку. Вектор задают вручную в карточке уязвимости или правилами CVSS, которые проставляют векторы уязвимостям по условиям.
Где: вектор уязвимости - карточка уязвимости, блок CVSS; правила - раздел "CVSS".
Права и лицензия:
| Действие | Что нужно |
|---|---|
| Задать вектор уязвимости | "Уязвимости" - "Изменение" |
| Смотреть правила и настройки CVSS | платная лицензия, "Правила автоматизации" - "Просмотр" |
| Создавать и менять правила, включать CVSS | платная лицензия, "Правила автоматизации" - "Изменение" |
| Калькулятор оценки и справочник метрик в API | платная лицензия |
Вектор на уязвимости
- Откройте карточку уязвимости.
- В блоке CVSS откройте "CVSS вектор".
- Заполните "CVSS вектор v3.1", "CVSS вектор v4.0" или оба. Вектор должен начинаться с
CVSS:3.1илиCVSS:4.0, иначе - "Значение должно начинаться с "CVSS:3.1"" или "...с "CVSS:4.0"". - Сохраните.
Что происходит после сохранения:
- Core считает оценку по каждому вектору. Ошибка в векторе - "Не удалось рассчитать оценку".
- Критичность уязвимости берётся из оценки CVSS 4.0, если такой вектор задан и посчитан, иначе из CVSS 3.1.
- Приоритет задач Jira меняется по новой критичности, если включено "Включить сопоставление приоритета" (Jira).
- Обновляется описание задач Jira: в нём есть технический блок с CVSS.
Как оценка переводится в критичность:
| Оценка CVSS | Уровень CVSS | Критичность в Core |
|---|---|---|
| 0.0 | None | "Инфо" |
| 0.1-3.9 | Low | "Низкая" |
| 4.0-6.9 | Medium | "Средняя" |
| 7.0-8.9 | High | "Высокая" |
| 9.0-10.0 | Critical | "Критичная" |
Для CVSS 3.1 Core берёт итоговую оценку с учётом временных и средовых метрик. Если они не заданы, она равна базовой.
Примеры векторов:
| Вектор | Оценка |
|---|---|
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
9.8, "Критичная" |
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N |
5.4, "Средняя" |
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
9.3, "Критичная" |
Спецификации метрик: CVSS 3.1, CVSS 4.0.
Правила CVSS
Правила CVSS автоматически ставят векторы уязвимостям, которые подходят под условия правила. Пример: всем находкам DAST-сканеров класса SQL Injection во внешних продуктах - один и тот же вектор вместо ручной оценки каждой.
Как работает
- Обработчик правил CVSS - фоновый цикл: проход по уязвимостям, пауза "Частота запуска (в секундах)", снова проход.
- Цикл работает при включённом "Включить CVSS" и использует только правила с "Активно".
- Уязвимости, которым правило поставило вектор, отмечаются: фильтр "Затронуто правилом CVSS", в карточке в блоке "Затронуто" - "{N} правил CVSS".
Настройки
| Поле | Что задаёт | По умолчанию |
|---|---|---|
| "Включить CVSS" | Запуск фонового цикла | выключено |
| "Частота запуска (в секундах)" | Пауза между проходами, не меньше 40 | - |
Поля правила
| Поле | Что задаёт | По умолчанию |
|---|---|---|
| "Активно" | Правило участвует в проходах | выключено |
| "CVSS вектор v3.1" | Вектор, начинается с CVSS:3.1 |
пусто |
| "CVSS вектор v4.0" | Вектор, начинается с CVSS:4.0 |
пусто |
| Условия | Какие уязвимости получают вектор. Те же поля и операции, что у валидатора: Условия | - |
| Область действия | Продукты или ассеты: Область действия | - |
Задайте хотя бы один вектор. В списке правил видны "Вектор", "Оценка", "Активно" или "Выключено", "Охват".
Создание правила
- Откройте "CVSS" и нажмите "Создать правило".
- Заполните векторы.
- Добавьте условия и область действия.
- Проверьте предпросмотр "Уязвимости, которые будут затронуты ({N})".
- Включите "Активно" и сохраните.
- Если CVSS выключен, включите "Включить CVSS".
Пример правила:
| Поле | Значение |
|---|---|
| Условие 1 | "Тип сканера", "Содержит некоторые из типов сканеров" - DAST |
| Условие 2 | "Название", "Содержит значение" - SQL Injection |
| Область | "Продукты" с тегом internet-facing в глобальной области |
| "CVSS вектор v3.1" | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
Предпросмотр
В отличие от валидатора, предпросмотр правила CVSS учитывает уязвимости в любом статусе.
| Запрос | Что возвращает |
|---|---|
GET / |
Уязвимости под сохранённое правило |
GET / |
Уязвимости под черновик правила |
GET / |
Уязвимости, которые правило уже обработало |
Экспорт и импорт правил
"CVSS" → "Импорт правил" ("Импорт правил CVSS"). Выгрузка - GET /api/v1/cvss/rules/export/. Формат и ограничения те же, что у валидатора (Экспорт и импорт правил). Поля правила CVSS в файле: is_active, instructions, cvss_vector_3_1, cvss_vector_4_0, selection_scope.
Калькулятор и справочник метрик
Посчитать оценку по вектору:
curl -sS -X POST "https://core.example.ru/api/v1/cvss/score/" \
-H "Authorization: Token <токен>" \
-H "Content-Type: application/json" \
-d '{"version": "3.1", "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}'
{"vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "score": 9.8, "severity": 4}
severity - код критичности Core: 0 "Инфо" - 4 "Критичная". При ошибке в векторе score и severity равны null, причина - в поле detail.
Справочник метрик с сокращениями и значениями: GET /api/v1/cvss/categories/?version=3.1 или ?version=4.0.
API
| Метод и путь | Назначение |
|---|---|
POST /api/v1/findings/{id}/cvss/set/ |
Задать вектор уязвимости: [{"version": "3.1", "metrics": [{"abbreviation": "AV", "value": {"abbreviation": "N"}}]}] |
GET, POST /api/v1/settings/cvss/ |
Настройки: is_active, launch_frequency |
GET, POST /api/v1/cvss/rules/ |
Правила |
PATCH, DELETE /api/v1/cvss/rules/{id}/ |
Изменение и удаление правила |
POST /api/v1/cvss/rules/bulk/activate/, /bulk/deactivate/, /bulk/delete/ |
Массовые действия по фильтру ?id__in=1,2. Всегда передавайте фильтр: без него действие применяется ко всем правилам, которые вы можете менять |
GET /api/v1/cvss/rules/export/, POST /api/v1/cvss/rules/import/ |
Выгрузка и загрузка правил |
POST /api/v1/cvss/score/ |
Калькулятор оценки |
GET /api/v1/cvss/categories/?version= |
Справочник метрик |