Что пишут в блогах

Подписаться

Что пишут в блогах (EN)

Разделы портала

Онлайн-тренинги

.
Ранжирование атак на программные продукты. Классификация DREAD.
30.09.2008 09:45

Автор: Полаженко Сергей

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

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

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

В общем случае атака характеризуется такой величиной, как риск. Под понятием риска в статье понимается — сочетание вероятности события (атаки на программный продукт) и его последствий [2]. Т.е. в общем случае риск реализации атаки может быть представлен формулой:

R = C * P.

Где R — риск реализации атаки.

C — ущерб от атаки. Ущерб может измеряться как в каких-то количественных единицах, например в денежных единицах — российских рублях, долларах США и т.д., а может измеряться качественно, например балами от 1 до 10, где 10 — максимальное значение для ущерба.

P — вероятность реализации атаки. Вероятность может измеряться, как количественно — рациональным числом из отрезка [0, 1], так и качественно, как и в случае с ущербом.

Такое определение риска, разделяет задачу оценки опасности атаки (риска) на две независимые подзадачи: оценки возможного ущерба и вероятности реализации атаки. Однако на практике, в виду того, что полученные величины также трудно оценить — разыскиваются методы, которые ещё более детально формализуют понятие риска. Как правило, такие методы определяют ряд критериев, которые тем или иным способом детализируют как составляющие ущерба, так и составляющие вероятности реализации атаки.

Примером такой классификации может послужить классификация DREAD, которая достаточно часто рассматривается в литературе, в которой обсуждается методология моделирования угроз компании Microsoft (Microsoft Threat Modeling Methodology) из [3].

Классификация DREAD состоит из пяти критериев, которые обычно оцениваются экспертным путём оценками от 0 (не имеет место) до 10 (максимальное значение). Само название классификации состоит из заглавных первых букв англоязычных вариантов названия критериев:

  • Damage potential (потенциальный ущерб) .
  • Reproducibility (повторяемость).
  • Exploitability (простота организации атаки).
  • Affected users (затронутые пользователи).
  • Discoverability (простота обнаружения).

Таблица 1. Пояснение для численных значений критериев классификации DREAD.

ОбозначениеКритерийВысокий бал (10-8)Средний бал (7-4)Низкий бал (3-1)
D1 Потенциальный ущерб Злоумышленник может получить практически неограниченный доступ к системе — права легального пользователя (администратора), как для управления, так и для получения доступа к информации в ней. Утечка ценной информации Утечка некритичной информации
R Повторяемость Атака может быть повторена без каких-либо ограничений. Атака имеет место в случае, если программный продукт установлен со значениями по умолчанию. Атака может быть повторена только по прошествии некоторого времени или при определённых условиях. Атаку очень сложно повторить, даже зная об уязвимости
E Лёгкость организации атаки Начинающий программист может произвести атаку в короткие сроки. Атака может быть произведена с любого компьютера сети Интернет. Атаку может произвести анонимный пользователь сети или пользователь с учётной записью «Гость» Опытный программист может произвести атаку Для проведения атаки требуются хорошо подготовленные и оснащённые специалисты
A Охваченные пользователи Все пользователи (например, в случае если уязвимость открывается при установке приложения с опциями по умолчанию), все ключевые заказчики и т.д. Некоторые пользователи, при определенных опциях установки и конфигурирования Очень малое число всех пользователей приложения, либо негативному эффекту подвергаются анонимные пользователи сети, но при этом они не являются конечными пользователями приложения
D2 Лёгкость обнаружения Информация об уязвимости известна широкому кругу лиц, уязвимость часто эксплуатируется. Это типичная ошибка. Ошибка имеет место в предыдущей версии приложения Информация об уязвимости доступна только ограниченному кругу лиц Уязвимость (ошибка) мало известна конечным пользователям продукта и мало вероятно, что она может быть найдена в их повседневной работе с продуктом.

Итоговой оценкой может быть среднее арифметическое всех значений критериев:

(D1 + R + E + A + D2) / 5                         (1)

Или как рекомендуется в ряде источников величина, которая вычисляется по формуле:

(2D1 + 2R + 2E + 2A + 2D2) / 1024                         (2)

Формула (2) отражает тот факт, что степень значимости оценок от 1 до 10 не растёт равномерно. Оценка 10 для одного из критериев должна иметь значительно большее значение, чем оценка 1 для другого критерия.

  Самой опасной считается атака с максимальной итоговой оценкой.

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

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

Список использованных источников:

  1. Полаженко С.В., Деревья атак и их применение при анализе проблемы безопасности и защищённости программных продуктов.
  2. ГОСТ Р 51897-2002 «Менеджмент риска. Термины и определения».
  3. Michael Howard, David LeBlanc. Writing Secure Code — 2nd ed. Microsoft Press 2002.