Назад
221
задається у виді перерахування сигнатур вірусів або у ви ді набор у ознак
деякого класу вірусів. У ході роботи ці засоби перевіряють істинність
характеристичної функції для досліджуваної програми шукають у ній
сигнатуру або перев іряють сукупність ознак. Схема поділу методів аналізу
представлена на рис. 15.
Рис. 15. Систематизація методів аналізу безпеки ПЗ
Контрольно-іспитові методи вирішують задачу ан ал із у в просто р і
відносин. Єдиний спосіб рішення задач і в цьому випадку це проведення
іспитів з метою одержання робочого простору програми і перевірка
легітимності відносин, що належать цій м ножині. Однак, при цьому виникають
проблеми, позначені раніше нерозвязність множини нелегітимних відносин
L
p
і неможливіс ть од ер ж а ти в сі е ле м ен ти м н о ж и н и А
р
.
Методи аналізу безпеки програм
Логіко-аналітичні
Контрольно-іспитові
Визначення розвязної
підмножини РПЗ.
Визначення
характеристичної функції.
Обчислення значення
характеристичної функції
для досліджуваної програми.
Аппроксимація множини
нелигітимних відносин.
Встановлення критеріїв безпеки.
Побудова програми іспитів.
Контроль за
сстаном ОС
Застосування засобів контролю.
Визначення значень
контролюємих параметрів.
Перевірка критеріїв безпеки
програми.
222
У цьому випадку проблему розвязності множини нелегітимних відносин
можна подолати шляхом установлення жорстких обмежень на робочий простір
відносин досліджуваної програми у вигляді вимог безпеки, що обмежують
робочу область програми відносинами, легітимність яких для даної програми і
операційної системи очевидна тобто множина нелегітимних відносин L
p
апроксимується оточуючо ю його розвязною множиною заборонених відносин
А
рс
, тобто L
p
А
рс
(Рис. 16.).
Ця апроксимація здійснюється, виходячи з призначення конкретної
програми в конкретній обчислювальній системі. Проблема породження
робочого простору програми може бути вирішена за допомогою методів, що
застосовуються для визначення повної множини іспитів при тестуванні
правильності програм [54].
Рис. 16. Нелегітимний, несанкціонований доступ і заборонений доступ
Позначення:
S
p
L
p
A
pc
A
p
223
А
р
повна множина відносин доступу до обєктів обчислювальної
системи;
S
p
несанкціонований доступ;
L
p
нелегітимний доступ;
А
рс
заборонений доступ.
При цьому критерієм безпеки програми служить факт реєстрації в ході
тестування порушення вимог по безп еці, що предявляються у системі
передбачуваного застосування досліджуваної програми.
Тестування може пр ово дитися за допомогою тестових запусків, виконання
у віртуальному програмному середовищі, за допомогою символічного
виконання програми, її інтерпретації й інших способів. Залежно від
використовуваних засобів контролю за виконанням (інтерпретацією) програми
контрольно-іспитові методи поділяються на ті, у як и х контролюється п р о це с
виконання програми і ті, у яких відслідковуються зміни у обчислю вальних
системах, до яких призводить тестовий запуск.
Розглянемо формальну постановку задачі аналізу безпеки ПЗ для рішення
її за допомогою ко н тр о л ьн о-іс пи т ов и х м ет од ів .
Нехай задана програма р і об чи сл ю в а ль н а система
Σ
, у якій во н а буде
функціонувати. Нехай обчислювальна система
Σ
містить множину обєктів С
Σ
,
критичних для її безпеки. Тоді ви моги по безпеці, яким повинна задоволь н яти
програма, можуть бути задані у виді множини заборонених відносин р з
обєктами С
Σ
А
рs
. Елементи цієї множ и н и повинні бути задані або в я в но м у
виді за допомогою перерахування, або у виді набору правил, що дозволяє
визначити приналежність відносини до цієї множини. Множина С
Σ
містить у
собі обєкти всіх типів ресурси, дані і програми С
Σ
=R
ss
D
ss
P
ss
. Слід
відзначити, що склад цих м ножин залежить від використовуваного у
операційній системі апаратного і програмного забезпечення (у пе рш у чергу від
самої операційн ої системи), розвязуваних у ній задач, призначення
досліджуваної програми і визначається шляхом експертних оцінок.
224
Відповідно до запропонованої раніше об'єктно-концептуальної моделі
РПЗ, множина А
рs
складається з трьо х підмножин: А
ps
=U
ps
R
ps
W
ps
E
ps
, де
U
ps
={u
p
(x)|хR
ss
} обмеження на доступ до ресурсів. Елементи цієї множини
виражають заборону на використання даною програмою ресурсів апаратури й
операційної системи, наприклад, оперативної памяті, процесорного часу,
ресурсів ОС, можливостей інтерфейсу й ін. R
ps
={r
p
(x)|хD
ss
}, W
ps
={w
p
(x)|хD
ss
}
обмеження на доступ до обєктів, що містять дані (інформацію). Ці множини
забороняють доступ програм і до певних областей памяті, файлів, баз даних і
т.д. E
ps
={e
p
(x)|хP
ss
} обмеження на запуск програм. Ці обмеження в
основному мають сенс для багатозадачних, многопоточных, а також
розподілених систем і приймають форму заборон на породження процесів,
установлення сеансів звязку і т.д.
Оскільки множина заборонених відносин А
рs
містить у собі множину
нелегітимних відносин L
p
, для доказу тог о , щ о д о сл ідж у в а на п р о гр ам а
задовольняє вимогам по безпеці, запропонов аним на передбачуваному обєкті
експлуатації, досить довести, що програма при роботів цій системі не
встановлює жодну з відносин, що входять до множини А
рs
.
Тоді задача аналізу безпеки формалізується в такий спосіб: для того щоб
довести, що програма р є безпечною для застосування у обчислювальній
системі Σ досить довести, що робочий простір п рограми р у обчислювальній
системі
Σ
не містить заборонених відносин, тобто А
р
А
рs
=.
Очевидно, що набір відносин, який установлюється програмою з обєктами
обчислювальної системи, залежить від вхідних даної програми, вихідного стану
обчислювальної системи і інтерактивної взаємодії програми з к ористувачем.
Для розвязку цієї проблеми залучаються методи функціонального тестування,
які традиційно використовуються при верифікації (аналізі правильності)
програм [54]. За їх доп ом ог ою м ож на с тво рит и пр едс та вни цьк ий н абір т ест ів,
що дозволяє одержати робочий простір програми за допомогою обмеженого
числа тестів. Однак, з урахуванням обмеженого обсягу іспитів, контрольно-
іспитові методи, крім тестових запусків, включають механізми екстраполяції
225
результатів іспитів, методи символічного тестування й інші засоби, запозичені з
теорії верифікації програм. Проведен ня іспитів закінчується при настанн і одної
з трьох умов:
зафіксована спроба встановлення забороненого віднош енн я, що
належить множині А
рs
програма р не задовольняє вимогам по безпеці,
запропонованим для експлуатації у обчислювальній системі
Σ
;
вичерпано ліміт тестових іспитів, відведений для проведення
досліджень; необхідно продовжити іспити, або застосувати для оцінки безпеки
програми р імовірносні ме то ди ;
проведено множину іспитів, що покриває робочий простір програми
програма р задовольняє ви могам по безпец і, запропонованих обчислювальною
системою
Σ
.
Схема аналізу безпеки програм контрольно-іспитовими методами
представлена на рис. 17.
Перевірка наявності відносин із
p
A
в множині
s
p
A
і інших умов
завершення процесу аналізу.
Засоби контролю
і
протоколювання
Здійснення контрольного
запуску, отримання інформації
про відносини, що встановлені
програмою з обєктами
обчислювальної системи.
Аналіз протоколу запуску,
визначення множини
встановлених програмою
відносин -
p
A
!
(X)
Множина
заборонених
відносин
s
p
A
Множина
тестів
Програма р
Складання сценарію запуску.
Визначення множини умов
запускуX.
226
Рис. 17. Схема аналізу безпеки ПЗ за допомогою контрольно-іспитових
методів
Логіко-аналітичні методи вирішують задачу в просторі програм. Це
означає, що для доказу того, що програма безпечна необхідно довести, що вона
не належить множині РПЗ V.
У цьому випадку проблема нерозвязності множині нелегітимних відносин
і проб ле м а одержа н н я повно го робочо го просто р у програм и зводять ся до
проблеми нерозвязності множини V. Ця пр о бл е м а п е ре бо р ю є тьс я за рахунок
того, що множина V апроксимується деякою ро звязною підмнож ин ою і безпека
програми доводиться тільки відносно цієї розвязної п ідмножи ни РПЗ. Тоді
задача аналізу зводиться до о бчисл ення значення характеристичної функції цієї
підмножини для досліджуваної програми. Оскільки програма являє собою
нетривіальний обєкт, характеристична функція не може бути визначена прямо
над множиною програм. Ця проблема вирішується шляхом уведення деякої
системи мо делю ванн я програм, у якій кож на програма описується заданим
набором атрибутів, простір значень яких і служить областю визначення
характеристичної функції. У рамках обраної моделі характеристична функція
фактично розвязує питання еквівалентності моделі досліджуваної програми де-
якої узагальненої моделі РПЗ.
У найпростішому випадку в якості розвязної множини РПЗ може бути
узята множина сигнатурних вірусів, а в якості системи моделю ванн я
представлення програми рядком біт. Тоді в якості моделі програми виступає її
бітовий образ, в якості моделі вірусів множина їхніх сигнатур, а обчислення
характеристичної функції полягає в пошуку сигнатур вірусів у програмі.
Більш складні методи використовують формальні моделі, які засновані на
сукупності ознак, властивих тій або іншій розвязній підмножині РП З [53].
Формальна постановка задачі аналізу безпеки логіко-аналітичними
методами може бути здійснена в такий спосіб.
Обрано деяку систему моделювання програм, у якій кожна програма може
бути п редставлена своєю моделлю, що володіє множиною атрибутів
227
B={b
i
|i=1,...,N}. В обраній системі досліджувана програма р представляється
своєю моделлю M
р
, що характер и зу є тьс я множ и но ю атрибутів B
р
={b
pi
|i=1,...,N}.
У рамках цієї системи моделювання повинна бути задана розвязна підмножина
РПЗ V
*
V, що володіє виз н ач ен о ї на мн о ж и н і атри б ут ів В характеристичною
функцією
ϕ
(b
1
,b
2
,...,b
N
). П ідмн ож ина РПЗ V* може бути отримана або шляхом
побудови моделей усіх відомих РПЗ, або шляхом породження моделей усіх
РПЗ, можливих у даній системі моделювання.
Тоді задача аналізу безпеки зводиться до обчислення значення
характеристичної функції
ϕ
на множині атрибутів програми р якщо
ϕ
(b
p1
,b
p2
,…,b
pN
) істинне, то програма р є РПЗ, що належить підмножині РПЗ V*
(рV*), якщ о хибне, то програма р не є РПЗ, що належить виділеній розвязній
підмножині РПЗ V* (рV*).
Для проведення логіко-аналітичного аналізу безпеки програми (Рис. 18.)
необхідно, по-перше, обрати систему моделювання програм. Існує багато
наукових підходів щодо вирішення цієї проблеми, наприклад [47,54,58],
більшість з яких у тому або іншому ступен і придатні для опису РПЗ. На
компютерну програму можна дивитися з дуже багатьох точок зору це й
алгоритм, що вона реалізує, і послідовність команд процесору, і файл, що
містить послідовність байтів і т.д. Можна обрати модель будь-якого рівня,
необхідно тільки щоб вона дозволяла побудувати розвязну підмножину РПЗ і
конструктивно визначити його характеристичну функцію. По-друге, необхідно
побудувати характеристичну функцію, що ідентифікує в обраній системі
представлення деяку підмножину РПЗ. На цьому етапі найбільш серйозною
проблемою є створення формальних моделей хоча б окремих класів РПЗ. У
роботі [76] було почато спробу створення концептуальної м о дел і одного з них
компютерних вірусів. Механізм завдання характеристичної функц ії
визначається способом представлення моделі і набором її атрибутів. Найбільш
перспективним тут можна вважати використання семантичних графів [47] і
обєктно-ориєнтованих моделей.
228
Потім треба подбати про засоби одержання множини значень атрибутів
для досліджуваної програми. Це можуть бути різні засоби, застосовувані для
аналізу коду про грам, їхнього налагоджен ня, а також засо бу з арсен алу хакерів,
що використовуються для «злому» програм [47].
Після цього, на підставі отриманих значень атрибутів можна обчислити
значення характеристичної функції і зробити висновок про безпеку про грами
щодо обраної розвязної підмножини РПЗ.
Рис. 18. Структурна схема логіко-аналітичних методів дослідження
безпеки програм
Комплексна система дослідження безпеки ПЗ повинна включати як
контрольно-іспитові так і логіко-аналітичні методи аналізу, використовуючи
переваги кожного з них.
Для порівняння методів пропонуються наступні ознаки: спосіб
представлення предметної області, методи рішення проблем нерозвязності
Обчислення характеристичної
функції для досліджуваної
програми
ϕ
(b
p1
,b
p2
,…,b
pN
)
Дослідження класів
РПЗ і їх
властивостей
Визначення розвязної
підмножини РПЗ V
*
і
характеристичної функції
ϕ
(b
1
,b
2
,...,b
N
)
Визначення множини значень
атрибутів досліджуваної
програми А
р
(а1,а
2
, ,a
n
)
Засоби аналізу і
дослідження
програм
Моделі
представлення
програм
Програма
Вибір системи моделювання і
набору атрибутів В
229
множини нелегітимних відносин і неперечислимості робочого простору, а
також надійність одержуваних результатів. Надійність методів аналізу може
визначатися імовірністю помилок перш ого і другого роду. Під помилкою
першого роду розуміється прийняття за РПЗ безпечної програми, а під
помилкою другого роду оголошення безпечної програми, що насправді є РПЗ.
Поділ методів, їхньої особливості і переваги показано в таблиці 10.
З методичної точки зору логіко-аналітичні методи виглядають більш
привабливими, тому що ґрунтуються на формальному підході і наближають
перспективне рішення проблеми, звязане з доказом можливості розвязання
множини РПЗ. Крім того, вони дозволяють створити легкозастосовувані засоби
аналізу, щ о не залежать від аналізованих програм, завдяки чому вони більш
поширені. Однак на даний час кожний з цих методів має істотний недолік
дослідження безпеки проводиться лише щодо деякої підмножини РПЗ.
Таблиця 10. Порівняння контрольно-іспитових і логіко-аналітичн их м е то дів
аналізу безпеки
Контрольно-іспитові методи
Логіко-аналітичні методи
Спосіб
представлення
предметної області
Простір відносин програми з
обєктами обчислювальної
системи
Простір програм
Принцип пошуку
РПЗ
Фіксація встановлення
програмою забороненого
відношення з об'єктами
обчислювальної системи
Доказ приналежності
програми до множини РПЗ
Рішення проблеми
розвязності
легітимності
відносин
За допомогою апроксимації
простору легитнмных відносин
для даної програми і
обчислювальної системи
За допомогою зведення до
проблеми можливості
розв'язання множини РПЗ і
аналіз безпеки щодо
розв'язної підмножини РПЗ
Рішення проблеми
перечислимості
робочого простору
Статистичні і экстраполяційні
методи теориї верифікації і
функціонального тестування
Не потрібно
Помилки першого
роду
Досить ймовірні. Чим суворіше
вимоги пропоновані в заданої
обчислювальної системи, тим
більше імовірність помилки
При строгому доказі
можливості розв'язання
підмножини РПЗ і коректно
визначеної характеристичної
функції виключені
Помилки другого
роду
Малоймовірні. Чим суворіше
вимоги по безпеці, тим менше
імовірність помилки
Неминучі. Визначаються
потужністю обраної розв'язної
підмножини РПЗ
Переваги
Не вимагає теоретичного
пророблення. Допускає
Спирається на формальну
теорію. Не вимагає значних
230
використання наявних
стандартних програмних
засобів. Стійкість до помилок
другого роду. Метод відбиває
вимоги конкретних
обчислювальної системи
витрат на етапі застосування.
Високанадійність одержання
результатів щодо обраної
підмножини РПЗ.
Інваріантість методу стосовно
різних класів програмам.
Дозволяє створювати
автоматичні, прості і доступні
засоби
Недоліки
Проведення іспитів вимагає
істотних витрат часу і інших
ресурсів. Процес тестування
вимагає виділеної іспитової
обчислювальної системи,
повинен проводитися
фахівцями
Підданий помилкам другого
родуперевіряється лише
частина множини РПЗ
З практичної точки зору з погляду забезпечення безпеки конкретної
обчислювальної системи контрольно-іспитові методи володіють низкою
переваг, звязаних з їх привязкою до конкретної обчислювальної системи і
програмі, а також з їх надійністю в сенсі відсутності помилок другого роду.
Однак витрати, які необхідні для організації процесу тестування, є перешкодою
для їхнього застосування за винятком тих обчислювальних систем, безпека
яких є особливо критичною.
З вищесказаного можна зробити висновок, що жоден з методів не має
вирішальної переваги над іншим. Використання методів тої чи іншої групи
повинно спиратися тільки на їхню відповідність розвязуваній задачі, необхідно
застосовувати ті методи, що у даній ситуації найбільш ефективні і виправдані.
Таким чином, застосування методики ООА для побудови концептуальної
моделі безпеки ПЗ обчислювальної системи дозволяє:
представити процес взаємодії компонент обчислювальної системи з
точки зору безпеки;
формалізувати властивості РПЗ і створити основу для їхньої
систематизації;
дати формальне визначення поняття безпеки програм;
формалізувати задачу аналізу безпеки ПЗ.