30.07.2008

Полное руководство по общему стандарту оценки уязвимостей версии 2,  Вычисление оценки

Ниже вы найдете рекомендации, которые помогут аналитикам при вычислении оценок уязвимостей.

3.1. Рекомендации

Ниже вы найдете рекомендации, которые помогут аналитикам при вычислении оценок уязвимостей.

3.1.1. Общие положение

Рекомендация #1: Оценка уязвимости не должна зависеть от влияния других уязвимостей. Это означает, что каждая уязвимость должна оцениваться независимо.

Рекомендация #2: При вычислении оценки уязвимости следует принимать во внимание только влияние на целевую систему. Например, при эксплуатации межсайтового выполнения сценариев влияние на систему пользователя может быть значительно больше, чем влияние на сервер, но это непрямое влияние. Уязвимости, связанные с межсайтовым выполнением сценариев, должны оцениваться так, как если они не связаны с конфиденциальностью и доступностью и имеют частичное влияние на целостность.

Рекомендация #3: Многие приложения, такие как web-серверы, могут быть запущены с различными привилегиями, и при вычислении оценки делается предположение об уровне привилегий, который используется. Поэтому уязвимости оцениваются относительно уровня привилегий, который применяется наиболее широко. Причем этот уровень привилегий может не отвечать рекомендациям безопасности, особенно для клиентских приложений, которые (обычно) запускаются с привилегиями администратора. Если аналитики не уверены, какой уровень привилегий является наиболее широко используемым, применяется стандартная конфигурация.

Рекомендация #4: При вычислении оценки уязвимости, которая имеет несколько способов эксплуатации (векторов атаки), аналитик должен выбрать тот метод эксплуатации, который имеет самые опасные последствия, а не метод, который используется чаще или эксплуатация которого легче. Например, если эксплойт существует для одной платформы и не может использоваться на другой платформе, то метрика Exploitability имеет значение "Functional". Если два отдельных варианта продукта разрабатываются параллельно (например, PHP 4.x и PHP 5.x), и исправление существует только для одного из этих вариантов, то метрика Remediation Level имеет значение "Unavailable".

3.1.2. Базовая метрика

3.1.2.1. Вектор доступа

Рекомендация #5: Когда уязвимость может эксплуатироваться и локально, и через сеть, выбирается значение "Network". Когда уязвимость может эксплуатироваться локально и из смежных сетей, но не из удаленных сетей, выбирается значение "Adjacent Network". Когда уязвимость может эксплуатироваться из смежных и удаленных сетей, то выбирается значение "Network".

Рекомендация #6: Многие клиентские приложения и утилиты имеют локальные уязвимости, которые может эксплуатироваться при активном участии пользователя или автоматически. Например, утилиты распаковки архивов и сканеры вирусов автоматически сканируют входящие сообщения электронной почты. Кроме того, вспомогательные приложения (офисные приложения, приложения для просмотра сообщений, медиа-проигрыватели и др.) содержат уязвимости, которые могут эксплуатироваться при пересылке по электронной почте или загрузке с web-сайтов специально сформированных файлов. Поэтому аналитики должны оценивать Access Vector для таких уязвимостей как "Network".

3.1.2.2. Аутентификация

Рекомендация #7: Если уязвимость существует в схеме аутентификации (например, PAM, Kerberos) или в анонимном сервисе (например, общедоступный FTP-сервер), метрика выбирается как "None", так как злоумышленник может эксплуатировать уязвимость, если  не предоставит действительные учетные данные. Существование стандартной учетной записи описывается как "Single" или "Multiple" Authentication (в зависимости от ситуации), но Exploitability может быть "High", если учетные данные разглашены.

3.1.2.3. Влияние на конфиденциальность, целостность, доступность

Рекомендация #9: Уязвимости, которые ведет к доступу к системе с уровнем привилегий администратора, должны оцениваться как полная потеря конфиденциальности, целостности и доступности, а уязвимости, которые предоставляют доступ с пользовательским уровнем привилегий, оцениваются как частичная потеря конфиденциальности, целостности и уязвимости. Например, нарушение целостности, которое позволяет злоумышленнику изменять файл паролей операционной системы, должно оцениваться как полное нарушение конфиденциальности, целостности и доступности.

Рекомендация #10: Уязвимости с частичной или полной потерей целостности также могут влиять на доступность. Например, злоумышленник, имеющий возможность изменять записи, также возможно может удалять их.

3.2. Формулы

Формулы и алгоритмы для вычисления базовых, временных и контекстных групп метрик описаны ниже. Подробности о составлении и тестировании этих формул можно найти на www.first.org/cvss.

3.2.1. Базовая формула

Базовая формула – это основа вычисления CVSS. Базовая формула имеет следующий вид  (версия 2.10):

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

3.2.2. Временная формула

При использовании временной формулы временные метрики объединяются с базовыми, чтобы вывести временную оценку в интервале от 0 до 10. Временная оценка не превышает базовую и не более чем на 33% меньше ее. Временная формула имеет следующий вид:

TemporalScore = round_to_1_decimal(BaseScore*Exploitability
                *RemediationLevel*ReportConfidence)
Exploitability   = case Exploitability of
                        unproven:             0.85
                        proof-of-concept:     0.9
                        functional:           0.95
                        high:                 1.00
                       not defined:          1.00
                        
RemediationLevel = case RemediationLevel of
                        official-fix:         0.87
                        temporary-fix:        0.90
                        workaround:           0.95
                        unavailable:          1.00
                        not defined:          1.00
                        
ReportConfidence = case ReportConfidence of
                        unconfirmed:          0.90
                        uncorroborated:       0.95      
                        confirmed:            1.00
                        not defined:          1.00

3.2.3. Контекстная формула

При использовании контекстных формул контекстные метрики объединяются с временными метриками, чтобы получить оценку окружения в интервале от 0 до 10. Значение контекстной метрики, полученное из этой формулы, не должно превышать временную оценку. Контекстная формула имеет следующий вид:

EnvironmentalScore = round_to_1_decimal((AdjustedTemporal+
(10-AdjustedTemporal)*CollateralDamagePotential)*TargetDistribution)
AdjustedTemporal = TemporalScore recomputed with the BaseScore’s 
Impact sub-equation replaced with the AdjustedImpact equation
AdjustedImpact = min(10,10.41*(1-(1-ConfImpact*ConfReq)*(1-IntegImpact*IntegReq)
                 *(1-AvailImpact*AvailReq)))
CollateralDamagePotential = case CollateralDamagePotential of
                                 none:            0
                                 low:             0.1
                                 low-medium:      0.3
                                 medium-high:     0.4   
                                 high:            0.5
                                 not defined:     0
                                 
TargetDistribution        = case TargetDistribution of
                                 none:            0
                                 low:             0.25
                                 medium:          0.75
                                 high:            1.00
                                 not defined:     1.00
ConfReq                 = case ConfReq of
                        low:              0.5
                        medium:           1.0
                        high:             1.51
                        not defined:      1.0
IntegReq         = case IntegReq of
                        low:              0.5
                        medium:           1.0
                        high:             1.51
                        not defined:      1.0
AvailReq         = case AvailReq of
                        low:              0.5
                        medium:           1.0
                        high:             1.51
                        not defined:      1.0

3.3. Примеры

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

3.3.1. CVE-2002-0392

Рассмотрим CVE-2002-0392: Ошибка при работе с памятью (частичное кодирование) в Apache. Уязвимость была обнаружена в июне 2002 г. в механизме обработки Apache web-сервером запросов, которые закодированы по частям. Apache Foundation сообщает, что успешная эксплуатация этой уязвимости может в некоторых случаях привести к отказу в обслуживании, а в других случаях – позволить выполнить произвольный код с привилегиями web-сервера.

Если уязвимость можно эксплуатировать удаленно, то Access Vector принимает значение "Network". Access Complexity имеет значение "Low", потому что для успешной эксплуатации не нужны никакие дополнительные условия, злоумышленник только должен подготовить сообщение процессу Apache web listener. Для эксплуатации данной уязвимости аутентификация не требуется (любой пользователь Интернет может подключиться к web-серверу), поэтому метрика Authentication равна "None".

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

Если уязвимость позволяет выполнить произвольный код с привилегиями web-сервера, изменить web-контент и просматривать информацию локальных пользователей и конфигурационную информацию, то Confidentiality и Integrity Impact имеют значение "Partial". Эти метрики вместе дают базовую оценку 6.4. 

Если эксплуатация уязвимости вызывает отказ в обслуживании, то Availability Impact имеет значение "Complete". Эти метрики вместе дают базовую оценку 7.8. Так как это самая высокая возможная базовая оценка для разных вариантов эксплуатации уязвимости, то именно она используется как базовая оценка данной уязвимости.

Базовый вектор этой уязвимости такой: AV:N/AC:L/Au:N/C:N/I:N/A:C.

Известно, что эксплойт существует, поэтому Exploitability имеет значение "Functional". Apache Foundation выпустил исправление для этой уязвимости (доступно для версий 1.3 и 2.0), поэтому Remediation Level равен "Official-Fix". Действительно, Report Confidence имеет значение "Confirmed". С учетом этих метрик и базовой оценки получаем временную оценку 6.4.

Если принять, что доступность более важна, чем обычно для целевых систем, и зависит от значения Collateral Damage Potential и Target Distribution, то контекстная оценка изменяется от 0.0 ("None", "None") до 9.2 ("High", "High"). Все результаты указаны ниже.

        ----------------------------------------------------
        Базовая метрика             Оценка          Значение
        ----------------------------------------------------
        Access Vector               [Network]         (1.00)
        Access Complexity           [Low]             (0.71)
        Authentication              [None]            (0.704)
        Confidentiality Impact      [None]            (0.00)
        Integrity Impact            [None]            (0.00)
        Availability Impact         [Complete]        (0.66)
        ----------------------------------------------------
        Базовая формула                       Базовая оценка
        ----------------------------------------------------
        Impact = 10.41*(1-(1)*(1)*(0.34)) == 6.9
        Exploitability = 20*0.71*0.704*1 == 10.0
        f(Impact) = 1.176
        BaseScore = (0.6*6.9 + 0.4*10.0 – 1.5)*1.176 
                                                    == (7.8)
        ----------------------------------------------------
        
        ----------------------------------------------------
        Временная метрика           Оценка          Значение
        ----------------------------------------------------
        Exploitability              [Functional]      (0.95)
        Remediation Level           [Official-Fix]    (0.87)
        Report Confidence           [Confirmed]       (1.00)
        ----------------------------------------------------
        Временная формула                   Временная оценка
        ----------------------------------------------------
        round(7.8 * 0.95 * 0.87 * 1.00)             == (6.4)
        ----------------------------------------------------
        ----------------------------------------------------
        Контекстная метрика           Оценка        Значение
        ----------------------------------------------------
        Collateral Damage Potential [None - High]  {0 - 0.5}
        Target Distribution         [None - High]  {0 - 1.0}
        Confidentiality Req.        [Medium]           (1.0)
        Integrity Req.              [Medium]           (1.0)
        Availability Req.           [High]             (1.51)
        ----------------------------------------------------
        Контекстная формула               Контекстная оценка           
        ----------------------------------------------------
        AdjustedImpact = min(10,10.41*(1-(1-0*1)*(1-0*1)
                 *(1-0.66*1.51))                   == (10.0)
        AdjustedBase =((0.6*10)+(0.4*10.0)–1.5)*1.176
                                                   == (10.0)
        AdjustedTemporal == (10*0.95*0.87*1.0)      == (8.3)
        EnvScore = round((8.3+(10-8.3)*{0-0.5})*{0-1})  
                                             == (0.00 - 9.2)
        ----------------------------------------------------

3.3.2. CVE-2003-0818

Рассмотри уязвимость CVE-2003-0818: уязвимость при обработке целочисленных значений в библиотеке Microsoft Windows ASN.1. Уязвимость была обнаружена в сентябре 2003 года и касается библиотек ASN.1 во всех операционных системах Microsoft. Удачная эксплуатация этой уязвимости приводит к переполнению буфера, что позволяет злоумышленнику выполнить произвольный код с привилегиями администратора.

Эта уязвимость эксплуатируется удаленно и не требует аутентификации, поэтому Access Vector равен "Network" и "Authentication" равен "None". Access Complexity имеет значение "Low", потому что дополнительный доступ или специальные условия не требуются для эксплуатации этой уязвимости. Каждая из метрик Impact имеет значение "Complete", потому что существует возможность полной компрометации системы. Эти метрики вместе дают максимальное значение базовой оценки 10.0.

Базовый вектор данной уязвимости: AV:N/AC:L/Au:N/C:C/I:C/A:C.

Для этой уязвимости существуют эксплойты, поэтому Exploitability имеет значение "Functional".  Microsoft выпустила исправление MS04-007 в феврале 2004 года, поэтому Remediation Level имеет значение "Official-Fix" и Report Confidence имеет значение "Confirmed". Эти метрики позволяют скорректировать базовую оценку и получить временную оценку 8.3.

Приняв, что доступность менее важна, чем обычно для целевых систем, и опираясь на значения Collateral Damage Potential и Target Distribution, оценка окружения изменяется в пределах от 0.0 ("None", "None") до 9.0 ("High", "High"). Все результаты указаны ниже:

        ----------------------------------------------------
        Базовая метрика             Значение          Оценка
        ----------------------------------------------------
        Access Vector               [Network]         (1.00)
        Access Complexity           [Low]             (0.71)
        Authentication              [None]            (0.704)
        Confidentiality Impact      [Complete]        (0.66)
        Integrity Impact            [Complete]        (0.66)
        Availability Impact         [Complete]        (0.66)
        ----------------------------------------------------
        Формула                               Базовая оценка
        ----------------------------------------------------
        Impact = 10.41*(1-(0.34*0.34*0.34)) == 10.0
        Exploitability = 20*0.71*0.704*1 == 10.0
        f(Impact) = 1.176
        BaseScore =((0.6*10.0)+(0.4*10.0)–1.5)*1.176
                                                   == (10.0)
        ----------------------------------------------------
        
        ----------------------------------------------------
        Временная метрика           Значение          Оценка
        ----------------------------------------------------
        Exploitability              [Functional]      (0.95)
        Remediation Level           [Official-Fix]    (0.87)
        Report Confidence           [Confirmed]       (1.00)
        ----------------------------------------------------
        Формула                             Временная оценка
        ----------------------------------------------------
        round(10.0 * 0.95 * 0.87 * 1.00) ==            (8.3)
        ----------------------------------------------------
        ----------------------------------------------------
        Контекстная оценка           Значение         Оценка
        ----------------------------------------------------
        Collateral Damage Potential [None - High]  {0 - 0.5}
        Target Distribution         [None - High]  {0 - 1.0}
        Confidentiality Req.        [Medium]           (1.0)
        Integrity Req.              [Medium]           (1.0)
        Availability Req.           [Low]              (0.5)
        ----------------------------------------------------
        Формула                           Контекстная оценка
        ----------------------------------------------------
        AdjustedImpact = 10.41*(1-(1-0.66*1)*(1-0.66*1)
                 *(1-0.66*0.5)) == 9.6
        AdjustedBase =((0.6*9.6)+(0.4*10.0)–1.5)*1.176
                                                    == (9.7)
        AdjustedTemporal == (9.7*0.95*0.87*1.0)     == (8.0)
        EnvScore = round((8.0+(10-8.0)*{0-0.5})*{0-1})  
                         ==                     (0.00 - 9.0)
        ----------------------------------------------------

3.3.3. CVE-2003-0062

Рассмотрим уязвимость CVE-2003-0062: переполнение буфера в NOD32 Antivirus. NOD32 – это антивирусное приложение, которые разработано компанией Eset. Уязвимость, связанная с переполнение буфера, была обнаружена в феврале 2003 года в Linux и Unix-версиях младше 1.013. Она может позволить локальным пользователям выполнить произвольный код с привилегиями пользователя, запустившего NOD32. Чтобы вызвать переполнение буфера злоумышленник должен дождаться (или спровоцировать), пока другой пользователь (возможно, администратор) начнет сканировать каталог, у которого путь слишком длинный.

Т.к. уязвимость эксплуатируется только пользователем, который зарегистрирован в системе, значение Access Vector равно "Local". Access Complexity имеет значение "High", потому что эта уязвимость не может эксплуатироваться только по желанию злоумышленника. Существует дополнительный уровень сложности, потому что злоумышленник должен ожидать, пока другой пользователь запустит сканирующее приложение. Authentication равен "None", потому что злоумышленнику не нужно аутентифицироваться в какой-либо дополнительной системе. Если администратор запустит сканирование на вирусы и тем самым вызовет переполнение буфера, то возможна полная компрометация системы. Т.к. необходимо рассматривать самый опасный случай, то каждая из метрик Impact имеет значение "Complete". Эти метрики вместе дают значение базовой оценки 6.2.

Базовый вектор этой уязвимости: AV:L/AC:H/Au:N/C:C/I:C/A:C.

Эксплойт частично известен, поэтому метрика Exploitability имеет значение "Proof-Of-Concept". Компания Eset выпустила обновление, поэтому Remediation Level равен "Official-Fix" и Report Confidence - "Confirmed". Эти три метрики позволяют скорректировать базовую оценку и получить временную оценку 4.9.

Принимая во внимание, что конфиденциальность, целостность и доступность примерно одинаково важны для целевых систем и влияют на значения Collateral Damage Potential и Target Distribution, контекстная оценка может меняться от 0.0 ("None", "None") до 7.5 ("High", "High"). Все результаты указаны ниже:

        ----------------------------------------------------
        Базовая метрика             Значение          Оценка 
        ----------------------------------------------------
        Access Vector               [Local]           (0.395)
        Access Complexity           [High]            (0.35)
        Authentication              [None]            (0.704)
        Confidentiality Impact      [Complete]        (0.66)
        Integrity Impact            [Complete]        (0.66)
        Availability Impact         [Complete]        (0.66)
        ----------------------------------------------------
        Формула                               Базовая оценка
        ----------------------------------------------------
        Impact = 10.41*(1-(0.34*0.34*0.34)) == 10.0
        Exploitability = 20*0.35*0.704*0.395 == 1.9
        f(Impact) = 1.176
        BaseScore =((0.6*10)+(0.4*1.9)–1.5)*1.176
                                                  ==   (6.2)
        ----------------------------------------------------
        
        ----------------------------------------------------
        Временная метрика            Значение         Оценка
        ----------------------------------------------------
        Exploitability              [Proof-Of-Concept](0.90)
        Remediation Level           [Official-Fix]    (0.87)
        Report Confidence           [Confirmed]       (1.00)
        ----------------------------------------------------
        Формула                             Временная оценка
        ----------------------------------------------------
        round(6.2 * 0.90 * 0.87 * 1.00) ==             (4.9)
        ----------------------------------------------------
        ----------------------------------------------------
        Контекстная метрика         Значение          Оценка
        ----------------------------------------------------
        Collateral Damage Potential [None - High]  {0 - 0.5}
        Target Distribution         [None - High]  {0 - 1.0}
        Confidentiality Req.        [Medium]           (1.0)
        Integrity Req.              [Medium]           (1.0)
        Availability Req.           [Medium]           (1.0)
        ----------------------------------------------------
        Формула                           Контекстная оценка
        ----------------------------------------------------
        AdjustedTemporal == 4.9
        EnvScore = round((4.9+(10-4.9)*{0-0.5})*{0-1})  
                                            ==  (0.00 - 7.5)
        ----------------------------------------------------

4. Дополнительные ресурсы

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

Бюллетени уязвимостей:

  • Национальный институт стандартов и технологий (National Institute of Standards and Technology - NIST) поддерживает базу данных уязвимостей National Vulnerability Database (NVD), web-сайт бюллетеней уязвимостей, которые включают базовую оценку CVSS. NIST предоставляет информацию бесплатно в виде web-страниц или в формате XML: http://nvd.nist.gov/nvd.cfm и http://nvd.nist.gov/download.cfm#XML соответственно.
  • IBM Internet Security Systems (ISS) публикует бюллетени уязвимостей X-Force и предоставляет их бесплатно. Эти бюллетени включают базовую и временную оценку CVSS: http://xforce.iss.net/xforce/alerts.
  • Qualys публикует ссылки на уязвимости, которые включают базовую и временную оценки CVSS: http://www.qualys.com/research/alerts/.
  •     Бюллетени уязвимостей Cisco включают базовую и временную оценки CVSS: http://tools.cisco.com/MySDN/Intelligence/home.x. (Замечание: для доступа к информации нужна учетная запись Cisco Connection Online).
  • Tenable Network Security публикует плагины для сканера безопасности Nessus. Эти плагины включают базовую оценку CVSS: http://www.nessus.org/plugins/.
  •   Positive Technologies использует CVSS отчетах сканера XSpider и системы мониторинга информационной безопасности Maxpatrol: http://www.ptsecurity.ru/.  

Калькуляторы CVSS

5. Заключение

Авторы признают, что в CVSS можно включить и многие другие метрики. Мы также понимаем, что ни одна система оценки не может идеально подходить для любых целей. Метрики, используемые в CVSS, были выбраны как компромиссное решение между полнотой и точностью оценки и простотой использования. Эти метрики отражают опыт, накопленный участниками группы CVSS Special Interest Group, а также всестороннее исследование реальных уязвимостей в средах конечных пользователей. По мере развития CVSS количество этих метрик может увеличиться, а сами метрики – подстроиться, чтобы оценки были более точными, гибкими и лучше отображали современные уязвимости и риски, которые они вызывают.

6. Ссылки

[1]. Mike Schiffman, Gerhard Eschelbeck, David Ahmad, Andrew Wright, Sasha Romanosky, "CVSS: A Common Vulnerability Scoring System", National Infrastructure Advisory Council (NIAC), 2004.

[2]. Microsoft Corporation. Microsoft Security Response Center Security Bulletin Severity Rating System. November 2002 [cited 16 March 2007]. Available from URL: http://www.microsoft.com/technet/security/bulletin/rating.mspx.

[3]. United States Computer Emergency Readiness Team (US-CERT). US-CERT Vulnerability Note Field Descriptions. 2006 [cited 16 March 2007]. Available from URL: http://www.kb.cert.org/vuls/html/fieldhelp.

[4]. SANS Institute. SANS Critical Vulnerability Analysis Archive. Undated [cited 16 March 2007]. Available from URL: http://www.sans.org/newsletters/cva/.

или введите имя

CAPTCHA
12-03-2009 23:43:22
Отличное продолжение первой статьи.
0 |