Добавил учёт EPSS в Vulristics. EPSS стал ещё одним источником данных, т.е. команда для анализа набора CVE будет выглядеть так:
$ python3 vulristics.py --report-type "cve_list" --cve-project-name "New Project" --cve-list-path "analyze_cve_list.txt" --cve-comments-path "analyze_cve_comments.txt" --cve-data-sources "ms,nvd,epss,vulners,attackerkb" --rewrite-flag "True"
Добавление нового источника задача несложная. Сделал по аналогии с NVD. Однако возник вопрос: какое именно значение EPSS использовать. Было 2 варианта:
1. Probability - вероятность наблюдения эксплуатации уязвимости в течение следующих 30 дней ("probability of observing exploitation activity in the next 30 days").
2. Percentile - значение показывающее насколько вероятность наблюдения эксплуатации данной CVE уязвимости больше чем для всех других CVE уязвимостей. Например, вероятность EPSS, равная всего 0,10 (10%), находится примерно на уровне 88-го процентиля, что означает, что 88% всех CVE имеют более низкую оценку ("For example, an EPSS probability of just 0.10 (10%) rests at about the 88th percentile — meaning that 88% of all CVEs are scored lower").
В итоге опытным путем пришел к тому, что Probability слишком малы, а также мало различаются, поэтому лучше использовать Percentile.
Я перегенерил отчет для апрельского MS Patch Tuesday.
1. Старый отчет без EPSS
2. Новый отчет с EPSS
Выглядит довольно неплохо, но со странностями. Так наиболее критичная Elevation of Privilege - Windows Common Log File System Driver (CVE-2023-28252), которая присутствует в CISA KEV почему-то имеет очень низкий EPSS. 🤷♂️ Поэтому результат нейронки это, конечно, хорошо, но здравый смысл терять не нужно. 😉