fbpx

Ранжування атак на програмні продукти. Класифікація DREAD.

При аналізі проблеми безпеки програмного продукту розшукуються варіанти атак [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.