Анализируем риски, связанные с наличием уязвимостей в информационной системе

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

Системы оценки уязвимостей

Как правило, степень риска присваивается уязвимости производителем системы, в которой изъян был обнаружен, либо компанией, выпускающей средства защиты (сканеры уязвимостей, системы обнаружения атак и т. д.). В этом случае используется привычная по правилам дорожного движения схема: низкая степень риска (зеленый), средняя степень риска (желтый), высокая степень риска (красный). Иногда выделяется дополнительный, четвертый уровень риска — критические уязвимости.

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

Этот простой подход не всегда удовлетворяет требованиям администратора. Степень риска, связанная с уязвимостью, с течением времени может меняться. Одно дело — критическая уязвимость, о деталях эксплуатации которой известно только специалистам компании-разработчика, а другое — важная уязвимость, программа использования которой общедоступна.

Чтобы учесть факторы, связанные с вероятностью эксплуатации уязвимости, можно ввести в стандартную «светофорную» модель дополнительные условия. Например, SANS при анализе уязвимостей (SANS Critical Vulnerability Analysis) присваивает критический уровень тем уязвимостям, для которых существует общедоступная программа, использующая эти уязвимости, или использование которых не требует специальных навыков. В противном случае даже потенциально весьма опасная проблема будет иметь высокий, а не критический уровень риска. Кроме простоты эксплуатации при оценке уязвимости по методике SANS учитывается распространенность уязвимых систем.

Группа PSS компании Microsoft применяет методику оценки риска (см. табл. 2), связанного с вредоносным программным обеспечением (т. е., по сути, с атаками, использующими уязвимость), учитывающую наличие обновления, устраняющего ошибку, количество векторов, которые может применять атакующий, распространенность уязвимых систем.

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

Перечисленные методы дают трех- или четырехуровневую оценку, что затрудняет их применение при качественном или количественном анализе рисков. Методика, используемая US-CERT, предполагает присвоение уязвимости степени риска в виде весового значения от 0 до 180, в зависимости от приведенных ниже критериев.

  • Насколько доступна информация об уязвимости?
  • Зарегистрированы ли случаи использования уязвимости?
  • Подвержены ли опасности критичные для сети Internet-узлы?
  • Какое количество узлов сети уязвимо?
  • Каковы последствия использования уязвимости?
  • Насколько легко воспользоваться уязвимостью?
  • Каковы условия использования уязвимости?

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

Резюмируя сказанное, можно сформулировать требования к методике оценки уязвимости следующим образом:

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

Common Vulnerability Scoring System

Подобные соображения были заложены в основу общей системы оценки уязвимостей Common Vulnerability Scoring System (CVSS). Система CVSS предполагает разбиение характеристик уязвимости на три группы: базовые, временные и связанные со средой. Для каждой из групп определен четкий набор параметров, имеющих предопределенный набор возможных значений. В результате применения методики для каждой из групп получается число в диапазоне от нуля до десяти.

Расчет базовых характеристик

Базовые характеристики уязвимости включают параметры, не изменяющиеся с течением времени. Сюда входят такие параметры, как вектор эксплуатации (Access Vector), сложность использования (Access Complexity), требования к аутентификации (Authentication), последствия использования уязвимости с точки зрения целостности, доступности или конфиденциальности (CIA Impact) с учетом подверженности уязвимости различных свойств информации (Impact Bias).

При оценке вектора эксплуатации определяется, является ли данная уязвимость локальной (Local) или удаленной (Remote). Сложность доступа может быть высокой: (High) (например, требуется вмешательство пользователя) или низкой (Low). Параметр «аутентификация» может принимать два значения: для использования уязвимости требуется аутентификация (Required) либо не требуется (Not Required). В том случае если уязвимость может эксплуатироваться только локально, но не требует дополнительной аутентификации, значение данного критерия приравнивается к единице (аутентификации не требуется).

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

Параметр Impact Bias может принимать одно из трех значений:

Normal — уязвимость в равной степени распространяется на все свойства информационной системы;

Confidentiality — уязвимость в большей степени затрагивает конфиденциальность;

Integrity — уязвимость в большей степени затрагивает целостность;

Availability — уязвимость в большей степени затрагивает доступность.

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

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

AccessVector   = case AccessVector of
            local:      0.7 
            remote:      1.0
AccessComplexity = case AccessComplexity of
            high:       0.8
            low:       1.0
Authentication  = case Authentication of
            required:     0.6
            not-required:   1.0
ConfImpact    = case ConfidentialityImpact of
            none:       0
            partial:     0.7
            complete:     1.0
ConfImpactBias  = case ImpactBias of
            normal:      0.333
            confidentiality: 0.5
            integrity:    0.25
            availability:   0.25
IntegImpact   = case IntegrityImpact of
            none:       0
            partial:     0.7
            complete:     1.0
IntegImpactBias = case ImpactBias of
            normal:      0.333
            confidentiality: 0.25
            integrity:    0.5
            availability:   0.25
AvailImpact   = case AvailabilityImpact of
            none:       0
            partial:     0.7
            complete:     1.0
AvailImpactBias = case ImpactBias of
            normal:      0.333
            confidentiality: 0.25
            integrity:    0.25
            availability:   0.5

На основании этих данных происходит расчет базового значения по формуле:

BaseScore = round_to_1_decimal(10 * AccessVector
                * AccessComplexity
                * Authentication
                * ((ConfImpact * ConfImpactBias)
                + (IntegImpact * IntegImpactBias)
                + (AvailImpact *
 AvailImpactBias)))

Базовая оценка уязвимости представляет собой значение, сходное с возможными последствиями эксплуатации уязвимости (Single Loss Expectancy, SLE) в классической методике анализа рисков без учета ценности ресурса. Этот параметр может присваиваться уязвимости производителем системы при выпуске обновления.

Вероятность атаки

При оценке характеристик уязвимости, изменяющихся с течением времени, используются такие параметры, как возможность использования (Exploitability), наличие возможности устранения уязвимости (Remediation Level) и достоверность информации об уязвимости (Report Confidence).

Возможность эксплуатации оценивается по наличию информации об использовании уязвимости или соответствующих программ. Этот параметр может принимать следующие значения:

  • Unproven. Метод использования не описан или носит теоретический характер.
  • Proof of Concept. Существует код (или информация), доказывающий возможность использования уязвимости, но его нельзя задействовать для атак без модификаций.
  • Functional. Существует работоспособная программа, использующая уязвимость.
  • High. Существует червь либо полностью автоматическая программа, использующая уязвимость.

Возможность устранения уязвимости оценивается в зависимости от наличия официального (Official Fix) и временного (Temporary Fix) исправления, устраняющего уязвимость. При наличии рекомендаций по снижению степени риска данный параметр принимает значение Workaround.

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

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

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

Таким образом, значение TemporalScore отображает риски, связанные с уязвимостью в динамике ее жизненного цикла, и учитывает текущую вероятность использования уязвимости. С точки зрения классической модели анализа полученное число близко по смыслу к показателю Annual Loss Expectancy (ALE).

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

Применение к конкретной системе

Третья часть параметров позволяет учесть влияние уязвимости на конкретную информационную систему. Учитываются два параметра — потенциальный ущерб от использования уязвимости (Collateral Damage Potential) и количество уязвимых систем (Target Distribution).

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

None — потенциальные цели атаки отсутствуют или присутствуют только в непродуктивных системах;

Low — уязвимо до 15% всех систем;

Medium — уязвимо от 16 до 49%;

High — более 50% всех систем могут стать целью атаки.

Для учета полученных значений используются следующие весовые коэффициенты и формулы:

CollateralDamagePotential = case
 CollateralDamagePotential of
                 none:      0
                 low:       0.1
                 medium:     0.3
                 high:      0.5
TargetDistribution    = case TargetDistribution
 of
                 none:      0
                 low:       0.25
                 medium:     0.75
                 high:      1.00
EnvironmentalScore = round_to_1_decimal
((TemporalScore + ((10 — TemporalScore)
                    * CollateralDamagePotential))
                    * TargetDistribution)

Практическое использование

Рассмотрим использование CVSS на примере уязвимости CVE-2005-4560 (MS06-001), также известной как WMF Bug, для сети, в которой присутствует около 15% рабочих станций под управлением Windows XP. В общем доступе информация появилась 27 декабря 2005 года (сообщение в списке рассылки Bugtraq). Само сообщение содержало ссылку на программу, использующую уязвимость для установки вредоносного программного обеспечения. Поскольку не ясно, какие системы подвержены данной уязвимости, расчет характеристик для сети не проводился (см. экран 1).

Экран. Расчет по методике CVSS для оценки риска, связанного с уязвимостью, в формате WMF.

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

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

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

Перспективы использования

Лежащая в основе CVSS методика позволяет оценить информацию о существующих уязвимостях в информационных системах на основании различных критериев. Использование доступного математического аппарата дает возможность адаптировать методику под конкретные нужды.

Например, при анализе рисков, связанных с конкретной информационной системой (в процессе контроля защищенности или тестирования на проникновение), можно учитывать важность конкретного сервера с точки зрения бизнеса компании. Для этого значения важности потенциальных потерь (например, качественная оценка в диапазоне от 0 до 9), целостности, доступности и конфиденциальности вводятся в качестве весовых коэффициентов в формулу расчета базового значения.

В настоящий момент далеко не все производители используют CVSS для оценки риска уязвимостей в своих продуктах. Однако простота применения позволяет на основе общедоступной информации (например, уведомлений от производителя) рассчитать необходимые значения. На данный момент только база данных National Vulnerability Database содержит оценку уязвимости согласно CVSS. Однако присутствующие в ней значения зачастую далеки от реального положения дел, что компенсируется наличием калькулятора, позволяющего быстро провести расчет.

Помимо программы для расчета на nvd.nist.gov/, можно воспользоваться готовой таблицей в формате MS Excel (http://www.first.org/cvss/cvss-sample-1.0.zip) или Web-страницей http://www.patchadvisor.com/PatchAdvisor/ CVSSCalculator.aspx.

Сергей Гордейчик - Системный архитектор, преподаватель компании «Информзащита». Имеет сертификаты MCES, MCT, CISSP. gordey@infosec.ru


Дополнительные источники

  1. Microsoft Security Response Center Security Bulletin Severity Rating System, http://www.microsoft.com/technet/security/ bulletin/rating.mspx.
  2. SANS Critical Vulnerability Analysis Archive, http://www.sans.org/newsletters/cva/.
  3. Security Team - Security Alert Severity Matrix, http://www.microsoft.com/technet/security/ alerts/matrix.mspx.
  4. US-CERT Vulnerability Note Field Description, http://www.kb.cert.org/vuls/html/fieldhelp#metric
  5. Common Vulnerability Scoring System, http://www.first.org/cvss/.
  6. National Vulnerability Database, http://nvd.nist.gov/.