Без кодового управления уязвимостью EPS в Budibase

Без кодового управления уязвимостью EPS в Budibase

13 августа 2025 г.

Одной из основных проблем в управлении уязвимыми является огромное количество уязвимостей в сочетании с ограниченными ресурсами. Не все уязвимости одинаково опасны, и не каждому требуется срочное исправление. Например, уязвимость с высоким показателем CVSS может представлять небольшой риск реального мира, если вероятность эксплуатации чрезвычайно низкая. Именно здесь система оценки прогнозирования эксплуатации (EPS) становится важной метрикой для приоритетов.

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

Принимая приоритету на основе EPS, вы можете значительно повысить эффективность своей стратегии восстановления, сосредоточив внимание на уязвимости, которые действительно имеют значение. Из моего исследования я обнаружил, что многие решения по управлению уязвимыми по -прежнему не полностью включают EPS, несмотря на его доступность для общественности.

Хорошей новостью является то, что вам не нужны дорогие платформы для реализации приоритетов на основе EPS.

Что такое EPSS и почему это полезно?

Система оценки прогнозирования эксплойтов (EPSS) представляет вероятность того, что конкретная уязвимость будет использоваться в течение следующих 30 дней, выраженных в процентах.

Текущая версия модели - версия 4, которая была выпущена 17 марта 2025 года.First.orgПоддерживает проект, и данные обновляются ежедневно и доступны для загрузки в формате .csv.

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

Этот подход повышает эффективность, направляя ресурсы - такие как время и усилия - уязвимости TOWARD, которые представляют более значительный риск, позволяя решать менее критические уязвимости позже, когда они становятся более рискованными, либо когда доступны дополнительные ресурсы.

Например, рассмотрим две уязвимости: одна с оценкой CVSS 7,0 и EPS 0,01 (указывая на вероятность эксплуатации 1%), а другой с баллом CVSS 6,5 и EPS 0,91 (обозначает вероятность эксплуатации 91%). В этом случае первая уязвимость представляет меньше реального риска, чем второе.

EPS всегда следует использовать CVSS. В то время как CVSS указывает на теоретическую серьезность, EPSS дает представление о вероятности использования уязвимости, обеспечивая ценный контекст в отношении потенциальных угроз в реальном мире.

CVSS vs EPSS comparison

Как показано на изображении выше, при применении метода EPS с порогом более 10%:

  • Усилия уменьшаются до 2,7%, что значительно ниже, чем усилия, необходимые с порогом CVSS 7 или выше.
  • Покрытие достигает 63,2%, немного ниже, чем подход CVSS, что полезно для предотвращения чрезмерного приоритета менее актуальных уязвимостей.
  • Эффективность составляет 65,2%, что значительно выше, чем достигается с помощью метода CVSS 7+.

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

Например, если уязвимость имеет оценку EPSS 0,10 (10%) и процентиль 88, это означает, что 88% всех других уязвимостей имеют более низкий показатель EPSS. Другими словами, эта уязвимость входит в топ -12%, скорее всего, будет эксплуатироваться и должна рассматриваться как высокий приоритет.

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

https://www.first.org/epss/articles/prob_percentile_bins?embedable=true

Важно помнить, что оценка EPSS является прогнозом, а не гарантией эксплуатации. Для получения дополнительной информации о том, как работает модель, посетите официальную страницу:https://www.first.org/epss/model.

Как я внедрил EPS в своей системе, используя Budibase

Для реализации фильтрации на основе значения EPSS я впервые загрузил архив с официальногоFirst.orgВеб -сайт, который содержит последние оценки вероятности эксплуатации для уязвимостей. Вот пример контента из файла CSV в архиве:

#model_version:v2025.03.14,score_date:2025-08-02T12:55:00Z
cve,epss,percentile
CVE-1999-0001,0.0142,0.79836
CVE-1999-0002,0.14818,0.94265
CVE-1999-0003,0.90339,0.99584
...

Затем я обновил сценарий Python, который я использую для экспорта уязвимостей из решения виртуальной машины. Я добавил следующие улучшения:

  • Анализ EPS и процентильные значения

  • Преобразование этих значений в проценты путем умножения на 100

  • Округление их до целых чисел

Не все CVE присутствуют в наборе данных EPSS; Для тех, кто не включен, я назначаю значение 99.

После импорта данных в базу данных я реализовал следующие функции в Budibase:

  • Форма фильтрации для порогов EPSS, таких как>10%
  • Механизм для автоматического обновления мониторинга на основе выбранного порога
  • Две кнопки управления:
    • Один для просмотра списка уязвимостей во всплывающем окне
    • Другой для экспорта результатов в файл .csv для дальнейшего анализа или отчетности.

EPSS filtering form

После этого я обновил запросы SQL в Budibase, добавив условия для фильтрации по значению EPS и процентилю. Это позволило гибкому управлению дисплеем уязвимостей на основе выбранных порогов.

Пример блока условия:

... (
 CASE
 WHEN {{epssthr}}::text IS NULL THEN TRUE
 ELSE epssScore >= {{epssthr}}
 END ) AND (
 CASE
 WHEN {{epssrating}}::text IS NULL THEN TRUE
 ELSE epsspercentile >= {{epssrating}}
 END )
 ...

Вот пример SQL -запроса для приборной панели, который отображает верхние уязвимые сервисы:

SELECT
COUNT(hostname) AS total, VulnerableEntity || ' ' || VulnerableEntityVersion AS VulnerableObject
FROM mat_allassets
WHERE osname ILIKE '%windows 20%' AND VulnerableEntity IS NOT NULL AND status = 'new' AND VulnerabilityIssueTime < CURRENT_DATE - {{days}}::interval AND ( 
 CASE
 WHEN {{ sev }}::text IS NULL THEN TRUE
 ELSE severity = {{ sev }}::text
 END )  AND ( 
 CASE
 WHEN {{expltbl}}::bool IS NULL THEN TRUE
 ELSE metrics ILIKE 'Exploitable: {{expltbl}}%'::text
 END ) AND ( 
 CASE
 WHEN {{expltbl}}::bool IS NULL THEN TRUE
 ELSE metrics ILIKE 'Exploitable: {{expltbl}}%'::text
 END ) AND ( 
 CASE
 WHEN {{netvector}}::bool IS NULL THEN TRUE
 ELSE metrics ILIKE '%HasNetworkAttackVector: {{netvector}}%'::text
 END ) AND ( 
 CASE
 WHEN {{remedy}}::bool IS NULL THEN TRUE
 ELSE metrics ILIKE '%HasFix: {{remedy}}%'::text
 END ) AND ( 
 CASE
 WHEN {{vulntrend}}::bool IS NULL THEN TRUE
 ELSE VulnerIsTrend = '{{vulntrend}}'::text
 END ) AND ( 
 CASE
 WHEN {{hostimport}}::text IS NULL THEN TRUE
 ELSE HostImportance = '{{hostimport}}'::text
 END ) AND (
 CASE
 WHEN {{epssthr}}::text IS NULL THEN TRUE
 ELSE epssScore >= {{epssthr}}
 END ) AND (
 CASE
 WHEN {{epssrating}}::text IS NULL THEN TRUE
 ELSE epsspercentile >= {{epssrating}}
 END )
GROUP BY VulnerableObject
ORDER BY total DESC
LIMIT 10;

После этого я включил переменные привязки из пользовательского интерфейса в запрос SQL. Я обсуждал это в своем предыдущемСтатья о приоритете уязвимостиПолем

variable bindings

В конце концов, я разработал простое и удобное приложение, которое позволяет мне устанавливать фильтры приоритетов, включая порог для системы оценки прогнозирования эксплуат (EPS). На скриншоте ниже я установил порог EPSS на 10 или выше, выбранные трендовые уязвимости старше 14 дней, и требовал наличия эксплойта. В результате тысячи неактуальных уязвимостей были немедленно отфильтрованы.

EPSS in action

Сначала команда может сначала расставить приоритеты наиболее значимой уязвимости. Используя пороговое значение EPSS (система прогнозирующей оценки), составляющее 10%, мы можем покрыть 63,2%эксплуатируемых уязвимостей, достигнув эффективности восстановления 65,2%, используя меньше ресурсов.

To disable EPSS filtering, I simply set the threshold value to 0; the filter will then no longer be applied.

Кроме того, если я устанавливаю фильтр серьезности выше среднего, результаты обычно выделяют уязвимости, такие как выполнение удаленного кода (RCE), выполнения команд или инъекции SQL. Это те виды уязвимостей, которые представляют наибольшую угрозу для бизнеса.

Сосредоточиться на том, где это важно

EPSS - это мощный инструмент, который значительно повышает эффективность приоритетов уязвимости. Вместо того, чтобы «выпускать пожары слепо», мы теперь работаем с намерением, сначала сосредотачиваясь на самых важных вопросах.

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

Я хотел бы услышать ваши мысли в комментариях:Вы используете EPS в своей работе?


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE