Поэтому я пытаюсь найти наилучший способ составить список оценок уязвимости CVSS (диапазон 0–10) для всех существующих уязвимостей на основе, скажем, сканирования «Application X» и превратить его в единую базовую оценку, представляющуюок.угроза этого приложения.Базовый алгоритм оценки, который используется для получения этих значений для каждой уязвимости, можно увидеть ниже:
(источник: https://www.first.org/cvss/v2/guide)
BaseScore = round_to_1_decimal(((0.6*Impact)+(0.4*Exploitability)-1.5)*f(Impact))
Impact = 10.41*(1-(1-ConfImpact)*(1-IntegImpact)*(1-AvailImpact))
Exploitability = 20* AccessVector*AccessComplexity*Authentication
f(impact)= 0 if Impact=0, 1.176 otherwise
AccessVector = case AccessVector of
requires local access: 0.395
adjacent network accessible: 0.646
network accessible: 1.0
AccessComplexity = case AccessComplexity of
high: 0.35
medium: 0.61
low: 0.71
Authentication = case Authentication of
requires multiple instances of authentication: 0.45
requires single instance of authentication: 0.56
requires no authentication: 0.704
ConfImpact = case ConfidentialityImpact of
none: 0.0
partial: 0.275
complete: 0.660
IntegImpact = case IntegrityImpact of
none: 0.0
partial: 0.275
complete: 0.660
AvailImpact = case AvailabilityImpact of
none: 0.0
partial: 0.275
complete: 0.660
Я понимаю, что могу просто усреднить список оценок CVSSно я не уверен, что это лучший способ для представления этих данных. Кто-нибудь может указать мне правильное направление и / или дать мне объяснение, почему эта идея лучше, чем в среднем? Статистика никогда не была моей сильной сторонойно я готов чему-нибудь научиться.