Концепции уязвимостей
- Объяснение
Изучите основные концепции и ключевые термины для
Vulnerabilities.
Как Dynatrace использует CVSS¶
Сторонние уязвимости
Dynatrace использует Common Vulnerability Scoring System (CVSS) для оценки и контекстуализации уязвимостей. CVSS предоставляет стандартизированную платформу для описания серьёзности, возможности эксплуатации и влияния уязвимостей с помощью структурированных векторных строк и числовых оценок. Эта система оценки лежит в основе Dynatrace Security Score (DSS), которая добавляет контекст среды для определения приоритетов при устранении.
Источник данных CVSS¶
Данные CVSS-вектора берутся из фида уязвимостей Snyk, который включает векторы CVSS v3 и CVSS v4 при наличии.
Логика оценки¶
Dynatrace поддерживает CVSS v3 и CVSS v4 для оценки уязвимостей. Данные CVSS-вектора берутся как из фида Snyk, так и из Национальной базы данных уязвимостей (NVD). Если векторы CVSS v4 доступны в фиде Snyk, они используются для расчёта Dynatrace Security Score (DSS). Если CVSS v4 недоступен, в качестве запасного варианта используются векторы CVSS v3.
CVSS v4 в настоящее время поддерживается только для уязвимостей из Snyk, но не из NVD.
Оценка основана на официальном калькуляторе CVSS v4, предоставленном FIRST.org.
Векторы CVSS¶
В
Vulnerabilities каждая уязвимость отображает два типа CVSS-векторов:
- Базовый вектор CVSS: Описывает присущие уязвимости характеристики, такие как вектор атаки, необходимые привилегии, взаимодействие с пользователем и влияние на конфиденциальность, целостность и доступность. Эти характеристики статичны и не меняются в зависимости от среды.
-
Модифицированный вектор CVSS: Корректирует базовые метрики с учётом вашей конкретной среды. Сюда входят такие факторы, как уязвимость активов и их доступность. Модифицированные векторы обеспечивают более точное отражение риска в вашем контексте.
-
Для CVSS v3 модифицированные метрики влияния обозначаются как
MC(конфиденциальность),MI(целостность) иMA(доступность). - Для CVSS v4 они обновлены до
MVC,MVIиMVA, где «V» обозначает метрики влияния на уязвимую систему, отражая влияние на саму уязвимую систему.
Оба вектора видны на странице Prioritization:
- В таблице уязвимостей (перейдите к настройкам столбца
и выберите CVSS Base Vector и CVSS Modified Vector).
- В деталях уязвимости (на боковой панели, которая открывается при выборе уязвимости, перейдите в Overview и найдите Dynatrace Security Score calculation).
Эта видимость помогает понять, как был получен CVSS-балл, и сравнить необработанный и контекстуализированный риск.
Dynatrace поддерживает фильтрацию по компонентам CVSS-вектора для расширенной сортировки. Практические примеры и варианты использования см. в разделе Фильтрация по CVSS-векторам.
Dynatrace Security Score¶
Dynatrace рассчитывает серьёзность уязвимости на основе Dynatrace Security Score (DSS), что позволяет сосредоточиться на устранении уязвимостей, актуальных для вашей среды, а не на тех, которые имеют лишь теоретическое влияние.
DSS : Усиленная оценка расчёта риска, основанная на отраслевом стандарте Common Vulnerability Scoring System (CVSS). Dynatrace Security Score разработан для более точной оценки риска с учётом дополнительных параметров, таких как воздействие через публичный интернет и доступность активов данных из уязвимой сущности.
Ориентация на риск: Практически все продукты безопасности используют базовый балл CVSS для определения серьёзности уязвимостей безопасности. CVSS был разработан с учётом риска, что означает: для любой данной уязвимости присвоенный балл предполагает наихудший сценарий. Спецификация CVSS допускает некоторые изменения на основе факторов окружающей среды, но обычно это не учитывается при расчёте показателя риска, что приводит к большому количеству высоких или критических оценок уязвимостей, с которыми необходимо работать.
Точность: Dynatrace Security Score не предполагает наихудшего сценария. Вместо этого он адаптирует характеристики уязвимости к вашей конкретной среде, принимая во внимание её структуру и топологию, и рекомендует, какие элементы подвержены риску и как решать проблемы безопасности. С помощью Dynatrace Security Score можно узнать, доступна ли уязвимая сущность из интернета и есть ли хранилища данных в зоне досягаемости уязвимой сущности.
Эффективность: Включая дополнительные параметры в анализ, Dynatrace Security Score использует данные для более точного расчёта показателя безопасности и прогнозирования потенциального риска уязвимости для вашей среды. Снижая оценку уязвимостей, которые считаются менее актуальными для вашей среды, вы экономите время и можете сосредоточиться на наиболее критических проблемах.
Расчёт оценки уязвимости¶
Сторонние уязвимости
Уязвимости на уровне кода
Dynatrace определяет Dynatrace Security Score для сторонних уязвимостей через сочетание данных CVSS и контекста среды:
- Сбор данных CVSS-вектора
Векторы берутся как из фида уязвимостей Snyk, так и из Национальной базы данных уязвимостей (NVD).
- CVSS v4 в настоящее время поддерживается только для уязвимостей из Snyk.
-
CVSS v2 устарел. Для уязвимостей, использующих эти данные, оценить Dynatrace Security Score невозможно. Поддерживаемые версии CVSS см. в разделе Как Dynatrace использует CVSS.
-
Определение применимой версии CVSS
Если доступны векторы CVSS v4, они используются для расчёта DSS. В противном случае Dynatrace переходит к CVSS v3.
- Включение контекста среды
DSS корректирует базовый балл CVSS с помощью модификаторов, отражающих вашу среду:
-
Для CVSS v3:
-
MC— Модифицированная конфиденциальность MI— Модифицированная целостность-
Для CVSS v4:
-
MVC— Модифицированная конфиденциальность уязвимой системы -
MVI— Модифицированная целостность уязвимой системыОни относятся к группе метрик влияния на уязвимую систему в CVSS v4.
-
Расчёт DSS для каждой затронутой сущности
DSS рассчитывается индивидуально для каждой затронутой сущности. Если затронуто несколько сущностей, используется наивысший балл DSS.
DSS никогда не превышает исходный базовый балл CVSS; факторы среды могут только снижать или сохранять оценку.
Оценка уязвимости на уровне кода всегда равна 10, а риск всегда Критический, поскольку она считается эксплуатируемой в любой момент.
Например, на странице входа, где пароль не был санирован перед отправкой в базу данных, что позволяет SQL-инъекцию, — это лишь вопрос времени, когда злоумышленник обнаружит и использует эту уязвимость.
Уровни риска Dynatrace¶
Шкала DSS варьируется от 0.1 (наименьший риск) до 10.0 (наибольший критический риск):
| Уровень риска Dynatrace | Диапазон оценки уязвимости |
|---|---|
| Низкий риск | Уязвимости в диапазоне от 0.1 до 3.9 |
| Средний риск | Уязвимости в диапазоне от 4.0 до 6.9 |
| Высокий риск | Уязвимости в диапазоне от 7.0 до 8.9 |
| Критический риск | Уязвимости в диапазоне от 9.0 до 10.0 |
Различия в расчёте¶
Расчёт Dynatrace Security Score (DSS) различается между
Vulnerabilities и
Third-Party Vulnerabilities.
| Приложение | Оценка DSS |
|---|---|
| Third Party Vulnerabilities Third-Party Vulnerabilities | DSS оценивается на основе агрегирования оценок затронутых сущностей в выбранной Management Zone. |
| Vulnerabilities Vulnerabilities | DSS оценивается на основе DSS затронутых сущностей в выбранном сегменте. |
Таким образом, DSS (оценка и уровень риска) для уязвимостей в
Vulnerabilities может быть ниже, чем в
Third-Party Vulnerabilities.
Пример¶
Уязвимость с серьёзностью Critical затрагивает два процесса: Process_1 и Process_2.
-
Оценка риска
-
Process_1открыт для публичного интернета, но не имеет доступных активов данных => DSS снижает серьёзность доHigh. -
Process_2не открыт для публичного интернета, но имеет доступные активы данных => DSS снижает серьёзность доHigh. -
Итоговая оценка
-
В
Third-Party Vulnerabilities, DSS агрегирует факторы риска затронутых сущностей (уязвимость открыта как в публичном интернете, так и имеет доступные активы данных), поэтому серьёзность остаётся Critical. - В
Vulnerabilities, оценка определяется затронутой сущностью с наивысшим баллом DSS. Если обе затронутые сущности имеют серьёзность High, серьёзность снижается с исходногоCriticalдоHigh.
Как использовать: Вы можете расставить приоритеты уязвимостей на основе DSS.
Покрытие¶
Покрытие означает степень, в которой процессы вашей среды отслеживаются системой Runtime Vulnerability Analytics (RVA). Информация на уровне процессов агрегируется до уровня хоста. Покрытие определяет, могут ли уязвимости быть обнаружены и зарегистрированы для отслеживаемых процессов и соответствующих хостов.
Покрытие:
- Выделяет пробелы в мониторинге, где уязвимости могут оставаться незамеченными.
- Определяет наиболее затронутые процессы с соответствующими хостами.
- Предоставляет тенденции по обнаружениям и сканированиям с течением времени.
Практические рекомендации по визуализации покрытия см. в разделе Оценка покрытия.
Security Advisor¶
Security Advisor рекомендует исправления, которые наиболее улучшат общую безопасность вашей среды.
Основа расчёта¶
Для расчёта рекомендуемых исправлений Security Advisor принимает во внимание все сторонние уязвимости, которые в настоящее время открыты и не заглушены; разрешённые или заглушенные уязвимости не учитываются. Исправления адаптированы к вашей среде и ранжированы по степени улучшения общей безопасности.
Группировка¶
Security Advisor группирует конкретные библиотеки, вызывающие уязвимости, для упрощения устранения. При расчёте рекомендаций Security Advisor игнорирует конкретную версию библиотеки. Все показанные библиотеки содержат известные уязвимости и должны быть обновлены до последней версии.
Ранжирование рекомендаций¶
Рекомендации ранжируются по серьёзности сторонних уязвимостей. Рекомендация по критической уязвимости, например, ранжируется выше, чем рекомендация по уязвимости с высокой серьёзностью.
Серьёзность уязвимости рассчитывается на основе Dynatrace Security Score (DSS), что позволяет сосредоточиться на устранении уязвимостей, актуальных для вашей среды.
Оценка Dynatrace¶
Понимание факторов риска и режимов оценки, учитываемых при оценке уязвимости.
- Воздействие через публичный интернет
- Доступные активы данных
- Уязвимые функции Сторонние уязвимости
- Публичный эксплойт Сторонние уязвимости
- Режим оценки
Воздействие через публичный интернет¶
Воздействие через публичный интернет : Один из факторов риска, учитываемых при определении Dynatrace Security Score. Если есть воздействие через публичный интернет, это означает, что уязвимости затрагивают как минимум один процесс, открытый в интернет.
Состояния¶
| Состояние | Описание |
|---|---|
| Публичная сеть | Существует воздействие через публичный интернет. |
| Не обнаружено | Воздействие через публичный интернет не найдено. |
| Недоступно | Данные недоступны, так как связанные хосты не работают в режиме Full-Stack Monitoring. Подробнее см. Режимы мониторинга. |
Как использовать: Вы можете фильтровать уязвимости по Dynatrace Assessment > Public internet exposure.
Дополнительно: Как определяется воздействие через публичный интернет?
Доступные активы данных¶
Доступные активы данных : Один из факторов риска, учитываемых при определении Dynatrace Security Score. Если есть затронутые доступные активы данных, это означает, что уязвимости затрагивают как минимум один процесс, имеющий доступ к базе данных (запускает службу базы данных).
Состояния¶
| Состояние | Описание |
|---|---|
| В зоне досягаемости | Есть затронутые доступные активы данных. |
| Нет в зоне досягаемости | Нет доступных активов данных в зоне досягаемости. |
| Недоступно | Данные недоступны, так как связанные хосты не работают в режиме Full-Stack Monitoring. Подробнее см. Режимы мониторинга. |
Как использовать: Вы можете фильтровать уязвимости по Dynatrace Assessment > Reachable data assets.
Уязвимые функции¶
Сторонние уязвимости
Уязвимая функция : Один из факторов риска при оценке уязвимости (хотя они не учитываются при расчёте DSS). Если есть используемые уязвимые функции, значит, как минимум один процесс использует уязвимую функцию (это может указывать на более высокий риск эксплуатации).
Класс : Класс, содержащий уязвимую функцию, связанную с уязвимостью.
* Пример: `org.apache.http.client.utils.URIUtils`
Использование функции : Показывает, используется ли уязвимая функция вашим приложением. На основе того, использует ли ваше приложение уязвимую функцию, можно оценить влияние на вашу среду. Использование уязвимой функции рассчитывается на уровне процесса и агрегируется до уровня группы процессов.
* Примеры: `In use`, `Not in use`, `Not available`
Состояния¶
| Состояние | Описание |
|---|---|
| Используется | Есть уязвимые функции в использовании. |
| Не используется | Используемых уязвимых функций не обнаружено. |
| Недоступно | Данные недоступны. Подробнее см. FAQ: Почему нет данных для уязвимой функции?. |
Как использовать: Вы можете
- Фильтровать уязвимости по Dynatrace Assessment >
Vulnerable functions in use - Расставить приоритеты уязвимостей на основе уязвимых функций
Дополнительно:
- Как определяются уязвимые функции?
- Почему нет информации об уязвимых функциях?
- Почему нет данных для уязвимых функций?
Публичный эксплойт¶
Сторонние уязвимости
Публичный эксплойт : Один из факторов риска при оценке уязвимости. Если опубликован публичный эксплойт, это означает, что вредоносный код для использования данной уязвимости доступен в интернете.
Состояния¶
| Состояние | Описание |
|---|---|
| Публичный эксплойт опубликован | Известный публичный эксплойт для данной уязвимости доступен. |
| Публичный эксплойт не опубликован | Известный публичный эксплойт для данной уязвимости недоступен. |
Как использовать: Вы можете фильтровать уязвимости по Dynatrace Assessment > Public exploit published.
Режим оценки¶
Режим оценки : Определяет, возможен ли детальный анализ на основе режима мониторинга.
Состояния¶
| Состояние | Описание |
|---|---|
| Полный | Все экземпляры группы процессов отслеживаются в режиме Full-stack monitoring. |
| Сокращённый | Детальная оценка невозможна, так как хотя бы один экземпляр группы процессов не отслеживается в режиме Full-stack monitoring. |
| Недоступно | Уязвимость устранена. |
Как использовать: Вы можете фильтровать уязвимости по Dynatrace Assessment > Assessment mode.
Как сниженная точность влияет на расчёт DSS¶
Контекст интернет-воздействия или доступных активов данных не может быть изучен из-за отсутствия информации, поэтому балл DSS не может быть снижен.
Затронутые и связанные сущности¶
Узнайте о сущностях, затронутых уязвимостями в вашей среде и связанных с ними.
Затронутые сущности¶
Затронутые сущности : Сущности (группы процессов, процессы и узлы Kubernetes), для которых была обнаружена уязвимость, и которые поэтому непосредственно затронуты уязвимостью.
Затронутый процесс : Процесс, содержащий уязвимую библиотеку или runtime.
Как использовать: Вы можете расставить приоритеты уязвимостей по затронутым сущностям.
Связанные сущности¶
Связанные сущности : Сущности, связанные с одной из затронутых сущностей и, следовательно, косвенно затронутые уязвимостью.
Связанное приложение : Приложение, связанное с затронутыми процессами.
Связанный сервис : Сервис, работающий непосредственно на уязвимом экземпляре группы процессов.
Связанный хост : Хост, на котором работает уязвимый процесс.
Связанная база данных : База данных, доступная уязвимому процессу или достижимая из него. Может быть достигнута через несколько переходов.
Связанная рабочая нагрузка/кластер Kubernetes : В средах Kubernetes — рабочая нагрузка или кластер, которому принадлежит уязвимый процесс.
Связанный образ контейнера : В средах Kubernetes — образ контейнера, используемый затронутыми процессами.
Как использовать: Вы можете расставить приоритеты уязвимостей по связанным сущностям.
Источник уязвимости¶
Углубитесь в источник уязвимостей для уязвимого компонента, точки входа и расположения в коде.
Уязвимый компонент¶
Сторонние уязвимости
Уязвимый компонент : Программный компонент (библиотека) или runtime-компонент (например, пакет Kubernetes), содержащий уязвимую функцию, вызывающую уязвимость:
* Для уязвимостей на основе Snyk — имя пакета (пример: `org.apache.tomcat:tomcat-coyote`)
* Для уязвимостей на основе NVD — runtime-технология (примеры: `Java runtime`, `Node.js runtime`)
Как использовать: Вы можете детально изучить уязвимые компоненты.
Дополнительно: Почему исправленная уязвимость всё ещё отображается как открытая?
Точка входа¶
Уязвимости на уровне кода
Точка входа : Точка в коде, через которую злоумышленник может проникнуть в приложение, например, передавая пользовательские входные поля в приложение (например, форму входа или строку поиска).
URL-путь : Путь, используемый в HTTP-запросе для достижения и потенциальной эксплуатации уязвимости.
* Пример: `/user/1218/bio`
Ненадёжный ввод : Ввод, передаваемый в уязвимую функцию.
Полезные нагрузки : Вводы, контролируемые пользователем, которые могут использоваться для эксплуатации уязвимости. Это может быть часть SQL-оператора (для SQL-инъекции), команда (для инъекции команд), имя поиска JNDI (для некорректной проверки ввода) или URL запроса (для SSRF). Контролируемый пользователем ввод выделен. Если полезная нагрузка имеет связанный ключ (например, имя HTTP-параметра или имя HTTP-заголовка), он отображается после двоеточия.
* Пример: `HTTP parameter value: bioText`
Как использовать: Вы можете детально изучить точки входа.
Расположение в коде¶
Уязвимости на уровне кода
Расположение в коде : Показывает, где именно находится уязвимость в коде (место, откуда вызывается уязвимая функция).
* Пример: `SQL injection at DatabaseManager.updateBio():82`
Как использовать: Вы можете детально изучить расположение в коде.
Статус уязвимости¶
Узнайте о статусе разрешения и отключения уязвимости или затронутой сущности.
Состояния уязвимостей¶
| Состояние | Описание |
|---|---|
| Открыта | Уязвимость активна. |
| Устранена | Уязвимость была закрыта автоматически, поскольку первопричина больше не присутствует. Подробнее см. Оценка уязвимостей: Устранение. |
| Заглушена (открыта) | Уязвимость активна, но все затронутые ею сущности были заглушены по запросу. |
Как использовать: На странице Prioritization вы можете фильтровать
- По Status для просмотра уязвимостей
OpenиResolved - По Mute: Status для просмотра уязвимостей
Muted (Open)
Устранённые уязвимости отображаются только один раз (в момент устранения). Расширьте временной интервал для получения большего количества результатов. Подробнее см. Фильтр временного интервала.
Состояния затронутых сущностей¶
| Состояние | Описание |
|---|---|
| Затронута | Сущность затронута уязвимостью. |
| Устранена | Сущность была закрыта автоматически, поскольку первопричина больше не присутствует. |
| Заглушена (затронута) | Сущность затронута уязвимостью, но была заглушена по запросу. |
| Заглушена (устранена) | Заглушенная уязвимость была закрыта автоматически, поскольку первопричина больше не присутствует. |
Заглушенная сущность, закрытая автоматически, не меняет свой статус на Resolved, а на Muted (Resolved).
Как использовать: На странице обзора затронутых групп процессов или узлов Kubernetes вы можете
-
Фильтровать
-
По Status для просмотра затронутых сущностей со статусом
AffectedилиResolved - По Mute > Mute: Status для просмотра затронутых сущностей со статусом
Muted (Affected)илиMuted (Resolved) - Форматировать таблицу затронутых сущностей по Status
- Изменить статус заглушения затронутых сущностей
Дополнительно: Может ли уязвимость быть устранена при наличии затронутых сущностей?
События сторонних библиотек¶
Сторонние библиотеки
Предварительное условие: Включите обнаружение уязвимостей сторонних компонентов.
Для мониторинга и анализа сторонних библиотек в ваших приложениях Dynatrace предоставляет детальные данные событий, отражающие оценку безопасности внешних библиотек.
Эти данные представлены через два типа событий безопасности:
-
VULNERABILITY_FINDING: Представляет одну уязвимость, идентифицированную в конкретном процессе в определённый момент времени. -
Подробнее см. Semantic Dictionary.
-
VULNERABILITY_SCAN: Представляет анализ обнаруженных пакетов в конкретном процессе в определённый момент времени. -
Подробнее см. Semantic Dictionary.
Оба типа хранятся в таблице security.events и могут запрашиваться с помощью DQL.
По мере анализа библиотек, используемых вашим приложением, Dynatrace непрерывно генерирует находки об уязвимостях. Эти необработанные события отражают те же базовые данные об уязвимостях, что отображаются в
Vulnerabilities, но в более детализированной форме.
В таблице ниже выделены основные различия между детализированными событиями находок и агрегированным представлением в приложении:
| Детализированное представление (DQL) | Агрегированное представление (Vulnerabilities) |
|---|---|
| Непрерывно генерируется Dynatrace в процессе анализа библиотек | Агрегировано из событий состояния сущностей |
Неагрегированные данные событий: VULNERABILITY_FINDING и VULNERABILITY_SCAN |
Представление на основе уязвимостей с исчерпывающими сводками |
| Не зависит от действий пользователя | Включает состояния (открыто/устранено) и контролируемые пользователем входные данные, такие как статусы заглушения и ссылки отслеживания |
| Запрашивается с помощью DQL | Доступно через интерфейс приложения или через DQL путём запроса событий состояния сущностей |
| Предлагает более глубокий контекст расследования для пользовательского анализа | Предназначено для общего обзора и управления уязвимостями |
Оба представления отражают одни и те же базовые данные и являются взаимодополняющими — используйте DQL для глубокого изучения и
Vulnerabilities для кратких обзоров и всестороннего анализа рисков.
Вот пример DQL-запроса для получения находок об уязвимостях и сканирований:
fetch security.events
| filter event.provider == "Dynatrace"
| filter event.type == "VULNERABILITY_FINDING" OR event.type == "VULNERABILITY_SCAN"
Загруженные находки об уязвимостях¶
Помимо находок, генерируемых Dynatrace через обнаружение уязвимостей сторонних библиотек и обнаружение уязвимостей на уровне кода, находки об уязвимостях также могут загружаться из внешних инструментов безопасности. Они поступают за пределами Dynatrace и передаются через загрузку событий безопасности. Подробнее см. Находки уязвимостей.
Загруженные находки представляют индивидуальные уязвимости, зарегистрированные сторонними продуктами. Они хранятся в таблице security.events и доступны в
Vulnerabilities на странице Findings, где вы можете фильтровать, сортировать, удалять дубликаты и анализировать их вместе с находками, созданными Dynatrace.
Сопоставление нормализации серьёзности¶
Для обеспечения согласованности между источниками серьёзность и показатели риска из внешних инструментов нормализуются в соответствии с унифицированной шкалой риска Dynatrace.
Нормализация серьёзности выполняется по следующему сопоставлению:
| Зарегистрированная серьёзность | Нормализованный балл |
|---|---|
| Критический | 10.0 |
| Высокий | 8.9 |
| Средний | 6.9 |
| Низкий | 3.9 |
| Другое/неизвестно | 0.0 |
Подробнее о принципах нормализации см. Нормализация серьёзности и оценки.