В конце года принято подводить итоги и делать предсказания. Давайте совместим оба ритуала и посмотрим, насколько лучше эксперты СайберОК могли бы контролировать поверхность атак, если бы слепо верили в магию EPSS. Спойлер: контролировали бы не очень. И вот почему.

Что мы сделали

Мы взяли все CVE, которые CISA добавила в KEV за 2025 год (то есть «уже ломают так, что заметили федералы»).

Всего KEV-уязвимостей: 245.

EPSS «на дату добавления в KEV» удалось получить только для 203 (≈83%). То есть, в 17% случаев EPSS как сигнал «на момент решения» просто отсутствовал.

Напоминалка: что такое EPSS и почему там 2 числа
  1. epss — вероятность (0…1), что уязвимость будут эксплуатировать в ближайшие 30 дней.

    0.01 = 1%

  2. percentile — «место в очереди« (0…1). Например, 0.94 означает: уязвимость «горячее», чем 94% CVE в этот день (то есть, она вТОП-6% по «эксплуатируемости»)

Теперь практика: «сколько KEV вы поймаете порогами EPSS»

Если патчить только то, что выше порога, то среди реально эксплуатируемых (KEV) вы поймаете:

  • 0.1% (EPSS ≥ 0.001): 132 из 203 (65%)

  • 1% (EPSS ≥ 0.01): 78 из 203 (38%)

  • 10% (EPSS ≥ 0.1): 55 из 203 (27%)

Но! Если EPSS используется в реальном процессе, отсутствие EPSS — это тоже означает «не поймал». Тогда фактический recall на полном наборе KEV ещё ниже:

  • EPSS ≥ 0.001: 132 / 245 = 53.9%

  • EPSS ≥ 0.01: 78 / 245 = 31.8%

  • EPSS ≥ 0.1: 55 / 245 = 22.4%

Иными словами, даже там, где EPSS был, пороги ≥1% и ≥10% ловят лишь 38% и 27%.

А на полном наборе KEV — 31.8% и 22.4%. Грусть-тоска-печаль.

Перевод на человеческий (для тех, кто, как и я, прогуливал матан в школе)

Если вы используете EPSS как «проходной балл» и берёте только ≥1% — вы пропускаете примерно 68.2% того, что уже реально эксплуатируют. Так что EPSS — отличный «ускоритель сортировки», но плохой «турникет на входе».

Что это значит на практике

Плохой пример (или почему «низкий EPSS» не спасает): «кровоточащая Монга»

CVE-2025-14847 / MongoBleed

  • EPSS на дату добавления в KEV: 0.00041 (то есть 0.041%).

  • Percentile: 0.122 (примерно «где-то внизу списка»).

  • И при этом — KEV. То есть, эксплуатация подтверждена.

Вы же уже пропатчились? Пропатчились, верно?

Потому что вот вам главный урок: низкий EPSS не означает «не эксплуатируют».

Он может означать:

  • эксплуатируют точечно;

  • нишево;

  • по internet-facing инсталляциям;

  • с нетипичным шумом;

  • без красивой массовой телеметрии, которую любит статистика.

Хороший пример (EPSS действительно помогает поднять приоритет): React2Shell

CVE-2025-55182 (React Server Components RCE)

  • EPSS на дату добавления в KEV: 0.13814 (13.8%).

  • К 2025-12-29 вырос до 0.48714.

Вот здесь EPSS работает как задумано: «Оно горячее, оно рядом, оно будет стрелять».

Самый коварный класс: «сначала тихо, потом пожар»

Есть кейсы, где EPSS на дату добавления был почти ноль (<0.1%), а потом стал огромным:

  • CVE-2025-0108: 0.00043 → 0.94007

  • CVE-2025-30066 (tj-actions): 0.00036 → 0.87601

То есть, если вы в моменте смотрите и говорите: «0.04%? Ну, расслабились» — статистика может догнать уже после того, как рынок горит и пахнет жареным.

А ещё хуже становится, когда мы выходим за пределы CVE вообще, и особенно когда смотрим на российские системы.

Например, уязвимости в TrueConf Server:
• BDU:2025-10116
• BDU:2025-10115
• BDU:2025-10114

А также пачки багов, найденные экспертами СайберОК:
• BDU:2025-13736
• BDU:2025-13737
• BDU:2025-13738

У них нет CVE → нет EPSS → нет магии. Видишь взломы? А они есть.

EPSS и патч-менеджмент: сколько реально придётся патчить (и сколько пальцев стереть об клавиатуру)

Окей, с KEV разобрались. Но давайте зададим более приземлённый вопрос: если поставить порог EPSS — сколько вообще придётся патчить ВСЕГО, а не только KEV? CISO живёт не в мире процентов, а в мире людей, часов и «когда мы это всё успеем».

Мы взяли все CVE-2025 и EPSS-снэпшот на 29 декабря 2025.

Всего уязвимостей: 37 907.

Порог EPSS ≥ 0.1% (0.001)

  • В патч-лист попадает: 8 663 уязвимости.

  • Это 22.85% всех CVE-2025.

Трудозатраты:

  • 15 минут на уязвимость → 2 166 часов (≈ 54 человеко-недели).

  • 30 минут → 4 332 часа (≈ 108 человеко-недель).

  • 60 минут → 8 663 часа (≈ 217 человеко-недель).

Получается уже не «спринт», а ксеноморфная многорукая форма жизни.

Порог EPSS ≥ 1% (0.01)

  • В патч-лист попадает: 1 078 уязвимостей.

  • Это 2.84% всех CVE-2025.

Трудозатраты:

  • 15 минут → 270 часов (≈ 6.7 человеко-недель).

  • 30 минут → 539 часов (≈ 13.5 человеко-недель).

  • 60 минут → 1 078 часов (≈ 27 человеко-недель).

Вот это уже похоже на реалистичную нагрузку для команды и именно поэтому этот порог так любят.

Порог EPSS ≥ 10% (0.1)

  • В патч-лист попадает: 360 уязвимостей.

  • Это всего 0.95% всех CVE-2025.

Трудозатраты:

  • 15 минут → 90 часов (≈ 2.2 человеко-недели).

  • 30 минут → 180 часов (≈ 4.5 человеко-недели).

  • 60 минут → 360 часов (≈ 9 человеко-недель)

Очень комфортно, очень красиво в отчётах, но при этом вы пропускаете половину KEV. Как раз ту, которую «уже эксплуатируют».

Перевод на человеческий язык

  • 0.1% EPSS — вы почти не пропускаете KEV, но платите за это сотнями человеко-недель.

  • 1% EPSS — разумный компромисс по нагрузке, но вы сознательно принимаете риск пропустить часть реально эксплуатируемого.

  • 10% EPSS — дешево, быстро, красиво… и крайне опасно, если использовать как единственный фильтр.

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

И вот тут вспоминаем MongoBleed: CVE-2025-14847 / MongoBleed

EPSS = 0.00041:

  • Не проходит ни один из этих порогов.

  • Не попадает в «разумную» очередь.

  • Зато прекрасно попадает под реальную эксплуатацию.

Финальный вывод

EPSS — это полезный сигнал для того, чтобы упорядочить хаос, когда патчить нужно много. Но верить только EPSS нельзя.

  • KEV и сигналы от СайберОК — нужно безусловно чинить.

  • EPSS — сортировать и фокусироваться.

  • Порог EPSS = это всегда обмен риска на трудозатраты.

  • А каждый дополнительный «процент EPSS» — это стертые об клавиатуру пальцы.

Магия заканчивается там, где начинается планирование ресурсов. К гадалке не ходи (а в нашу телегу заходи).

Для самых дотошных — репа с расчетами: https://github.com/scadastrangelove/kev_vs_epss.