Оцінка ефективності систем захисту програмного забезпечення

Середа С.А. (Докторант Економічної академії Молдови)
serge_sereda@hotmail.com, http://cie.ase.md/~sereda/

Розглядається комплекс питань, пов'язаних з дослідженням систем
захисту програмного забезпечення (ПЗ). Проведено аналіз існуючих засобів
і методів захисту ПЗ. Розроблено і запропоновано ряд критеріїв оцінки
ефективності систем захисту ПЗ.

Системи захисту ПЗ широко поширені і знаходяться в постійному розвитку,
завдяки розширенню ринку ПЗ та телекомунікаційних технологій. Необхідність
використання систем захисту (СЗ) ПО обумовлена низкою проблем, серед яких
слід виділити: незаконне використання алгоритмів, які є
інтелектуальною власністю автора, при написанні аналогів продукту
(Промислове шпигунство); несанкціоноване використання ПЗ (крадіжка і
копіювання); несанкціонована модифікація ПЗ з метою впровадження
програмних зловживань; незаконне розповсюдження та збут ПЗ (піратство).

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

Системи захисту ПЗ за методом установки можна підрозділити на системи,
встановлюються на скомпільовані модулі ПЗ; системи, що вбудовуються в
вихідний код ПЗ до компіляції; і комбіновані
.

Системи першого типу найбільш зручні для виробника ПО, так як легко
можна захистити вже повністю готове й відтестовані ПЗ (зазвичай процес
встановлення захисту максимально автоматизований і зводиться до вказівки імені
захищається файлу і натискання "Enter"), а тому і найбільш популярні.
У той же час стійкість цих систем досить низька (в залежності від
принципу дії СЗ), так як для обходу захисту досить визначити точку
завершення роботи "конверту" захисту і передачі управління захищеної
програмі, а потім примусово її зберегти в незахищеному вигляді.
Системи
другого типу незручні для виробника ПО, так як виникає необхідність
навчати персонал роботі з програмним інтерфейсом (API) системи захисту з
витікаючими звідси грошовими і тимчасовими витратами. Крім того, ускладнюється
процес тестування ПЗ та знижується його надійність, тому що крім самого ПЗ
помилки може містити API системи захисту або процедури, його використовують. Але
такі системи є більш стійкими до атак, тому що тут зникає чітка
межа між системою захисту і як таким ПЗ.
Найбільш живучими є
комбіновані системи захисту. Зберігаючи переваги і недоліки систем
другого типу, вони максимально ускладнюють аналіз і дезактивацію своїх
алгоритмів.

По використовуваних механізмам захисту СЗ можна класифікувати на: системи,
використовують складні логічні механізми; системи, що використовують шифрування
захищається ПЗ; і комбіновані системи
.

Системи першого типу використовують різні методи і прийоми, орієнтовані
на складне становище дизассемблирования, налагодження та аналізу алгоритму СЗ та захистило
ПЗ. Цей тип СЗ найменш стійок до атак, так як для подолання захисту
достатньо проаналізувати логіку процедур перевірки і належним чином їх
модифікувати.
Більш стійкими є системи другого типу. Для
дезактивації таких захистів необхідно визначення ключа дешифрування ПЗ.
Найбільш стійкими до атак є комбіновані системи.

Для захисту ПЗ використовується ряд методів, таких як:

  1. Алгоритми заплутування– Використовуються хаотичні переходи в
    різні частини коду, впровадження помилкових процедур – "пустушок",
    неодружені цикли, спотворення кількості реальних параметрів процедур ПЗ,
    розкид ділянок коду з різних галузей ОЗУ і т.п.

  2. Алгоритми мутації– Створюються таблиці відповідності операндів –
    синонімів і заміна їх один на одного при кожному запуску програми з
    певною схемою або випадковим чином, випадкові зміни структури
    програми.

  3. Алгоритми компресії даних– Програма упаковується, а
    потім розпаковується по мірі виконання.

  4. Алгоритми шифрування даних– Програма шифрується, а
    потім розшифровується по мірі виконання.

  5. Обчислення математичних виразів складних в процесі відпрацювання
    механізму захисту– Елементи логіки захисту залежать від результату
    обчислення значення якої-небудь формули або групи формул.

  6. Методи труднощі дизассемблирования– Використовуються
    різні прийоми, спрямовані на запобігання дизассемблирования в
    пакетному режимі.

  7. Методи труднощі налагодження– Використовуються різні прийоми,
    спрямовані на ускладнення налагодження програми.

  8. Емуляція процесорів і операційних систем– Створюється
    віртуальний процесор і / або операційна система (не обов'язково реально
    існуючі) і програма-перекладач з системи команд IBM в систему
    команд створеного процесора або ОС, після такого перекладу ПЗ може
    виконуватися тільки за допомогою емулятора, що різко ускладнює дослідження
    алгоритму ПЗ.

  9. Нестандартні методи роботи з апаратним забезпеченням
    модулі системи захисту звертаються до апаратури ЕОМ, минаючи процедури
    операційної системи, і використовують маловідомі або недокументовані
    її можливості.

У свою чергу зловмисники так само застосовують ряд методів і засобів для
порушення систем захисту. Ситуація протистояння розробників СЗПО і
зловмисників постійно змінюється за рахунок комбінування вже відомих
методів захисту та нападу, а так само за рахунок створення і використання нових
методів.
У цілому ця взаємодія може бути описано схемою на Рис. 1.

За принципом функціонування СЗ можна підрозділити на пакувальники / шифратори;
СЗ від несанкціонованого копіювання і СЗ від несанкціонованого доступу
(НСД).

Пакувальники / шифратори

Спочатку, основною метою пакувальників / шифраторів було зменшення
обсягу виконуваного модуля на диску без шкоди для функціональності програми,
але пізніше на перший план вийшла мета захисту ПЗ від аналізу його алгоритмів і
несанкціонованої модифікації. Для досягнення цього використовуються алгоритми
компресії даних; прийоми, пов'язані з використанням недокументованих
особливостей операційних систем (ОС) і процесорів; шифрування даних,
алгоритми мутації, заплутування логіки програми, приведення ОС в нестабільний
стан на час роботи ПЗ та ін

Позитивні сторони:

  1. У рамках періоду безпечного використання дані системи забезпечують
    високий рівень захисту ПЗ від аналізу його алгоритмів.

  2. Методи пакування / шифрации набагато збільшують стійкість систем захисту
    інших типів.

Негативні сторони:

  1. Практично всі застосовувані методи уповільнюють виконання коду ПЗ.

  2. Шифрування / упаковка коду ПЗ викликає труднощі при оновленні (update)
    і виправлення помилок (bugfix, servicepack).

  3. Можливе підвищення апаратно-програмних вимог ПЗ.

  4. У чистому вигляді дані системи не застосовні для авторизації
    використання ПЗ.

  5. Ці системи застосовуються лише до продуктів невеликого обсягу (до 1 мегабайта).

  6. Даний клас систем уразливий, оскільки програмний код, в кінцевому підсумку,
    розпаковується або розшифровується для виконання.

  7. Мають невеликим терміном безпечного використання, з огляду на п.4

  8. Упаковка та шифрування виконуваного коду вступає в конфлікт із забороною
    самомодифицирующихся коду в сучасних ОС.

СЗ від несанкціонованого копіювання

СЗ від несанкціонованого копіювання здійснюють "прив'язку"
ПЗ до дистрибутивному носія (гнучкий диск, CD …). Даний тип захистів
грунтується на глибокому вивченні роботи контролерів накопичувачів, їх
фізичних показників, нестандартних режимів розбивки, читання / запису і т.п.
При цьому на фізичному рівні створюється дистрибутивний носій, що володіє
(Приблизно) неповторними властивостями (зазвичай це досягається при
допомоги нестандартної розмітки носія інформації або / і запису на нього
додаткової інформації – пароля або мітки), а на програмному – створюється
модуль, налаштований на ідентифікацію та аутентифікацію носія за його
унікальним властивостям. При цьому можливе застосування прийомів, використовуваних
пакувальниками / шифратор.

Позитивні фактори:

  1. Утруднення нелегального копіювання та розповсюдження ПЗ;

  2. Захист прав користувача на придбане ПЗ.

Негативні фактори:

  1. Велика трудомісткість реалізації системи захисту;

  2. Уповільнення продажів через необхідність фізичної передачі
    дистрибутивного носія інформації;

  3. Підвищення системних вимог через захисту (наявність накопичувача);

  4. Зниження відмовостійкості ПЗ;

  5. Несумісність захисту та апаратури користувача (накопичувач, контролер);

  6. На час роботи ПЗ займається накопичувач;

  7. Загроза крадіжки захищеного носія;

СЗ від НСД

СЗ від НСД здійснюють попередню і періодичну аутентифікацію
користувача чи використовувати його комп'ютерної системи шляхом запиту додаткової
інформації. До цього типу СЗ можна віднести системи парольного захисту ПЗ,
системи "прив'язки" ПЗ до комп'ютера користувача, системи з "
ключовими дисками "та апаратно-програмні системи з електронними
ключами. У першому випадку "ключову" інформацію вводить користувач,
у другому – вона міститься в унікальних параметрах комп'ютерної системи
користувача, у третьому – вона зберігається на диску і в четвертому випадку
"Ключова" інформація зчитується з мікросхем електронного ключа.

Парольні захисту

Цей клас СЗПО, на сьогоднішній день, є найпоширенішим.
Основний принцип роботи даних систем полягає в ідентифікації та
аутентифікації користувача ПЗ шляхом запиту додаткових даних, це
можуть бути назва фірми та / або ім'я та прізвище користувача і його пароль або
тільки пароль / реєстраційний код. Ця інформація може запитуватися
різних ситуаціях, наприклад, при старті програми, після закінчення терміну
безкоштовного використання ПЗ, при виклику процедури реєстрації або в
процесі встановлення на ПК користувача. Процедури парольного захисту прості в
реалізації і, тому, дуже часто застосовуються виробниками ПЗ. Більшість
парольних СЗПО використовує логічні механізми, що зводяться до перевірки
правильності пароля / коду й запуск або не запуску ПЗ, в залежності від
результатів перевірки. Існують також системи, шифрувальні захищається ПЗ та
використовують пароль або похідну від нього величину як ключ дешифрування,
більшість таких систем використовує слабкі або найпростіші алгоритми шифрування,
нестійкі до спрямованим атакам. Це відбувається через складність коректної
реалізації стійких криптоалгоритмів і недоцільність їх застосування для
захисту недорогих умовно-безкоштовних програмних продуктів, що становлять
більшість ПЗ, яке користується парольні захисту. Лише останнім часом
розроблені парольні СЗПО, реалізують стійкі криптоалгоритми типу DES і
RSA, вони реалізовані у вигляді модуля і допоміжних бібліотек і
встановлюються на вже скомпільовані модулі ПЗ.

Слабкою ланкою парольних захистів є блок перевірки правильності
введеного пароля / коду. Для такої перевірки можна порівнювати введений пароль
з записаним в коді ПО правильним або з правильно сгенерованими з введених
додаткових даних паролем. Можливо так само порівняння похідних величин
від введеного і правильного паролів, наприклад їх хеш-функцій, в такому випадку в
коді можна зберігати тільки похідну величину, що підвищує стійкість
захисту. Шляхом аналізу процедур перевірки можна знайти реальний пароль,
записаний в коді ПЗ, знайти правильно згенерований пароль з введених
даних або створити програму для перебору паролів для визначення пароля з
потрібної хеш-сумою. Крім того, якщо СЗПО не використовує шифрування, досить
лише примусово змінити логіку перевірки для отримання безперешкодного
доступу до ПЗ.
Шифрувальні системи більш стійкі до атак, але при
використанні найпростіших або некоректно реалізованих криптоалгоритмів є
небезпека дешифрування ПЗ.

Для всіх парольних систем існує загроза перехоплення пароля при його введенні
авторизованим користувачем. Крім того, в більшості СЗПО даного типу
процедура перевірки використовується лише один раз, зазвичай при реєстрації або
встановлення ПЗ, потім система захисту просто відключається, що створює реальну
загрозу для НСД при незаконному копіюванні ПО.

Позитивні сторони:

  1. Надійний захист від зловмисника-непрофесіонала.

  2. Мінімальні незручності для користувача.

  3. Можливість передачі пароля / коду по мережі.

  4. Відсутність конфліктів з системним і прикладним ПЗ та апаратних
    забезпеченням.

  5. Простота реалізації та застосування.

  6. Низька вартість.

Негативні сторони:

  1. Низька стійкість більшості систем захисту даного типу.

  2. Користувачеві необхідно запам'ятовувати пароль / код.

Системи "прив'язки" ВО

Системи цього типу при установці ПЗ на ПК користувача здійснюють
пошук унікальних ознак комп'ютерної системи або вони встановлюються
самою системою захисту. Після цього модуль захисту в самому ПО настроюється на
пошук і ідентифікацію даних ознак, за якими в подальшому визначається
авторизоване або недозволене використання ПЗ. При цьому можливе
застосування методик оцінки швидкісних і інших показників процесора,
материнської плати, додаткових пристроїв, ОС, читання / запис в мікросхеми
енергонезалежній пам'яті, запис прихованих файлів, налаштування на найбільш часто
зустрічаємо карту використання ОЗУ і т.п.

Слабкою ланкою таких захистів є той факт, що на ПК користувача ПЗ
завжди запускається на виконання, що призводить до можливості примусового
збереження ПЗ після відпрацювання системи захисту, дослідження самої захисту та
виявлення даних, що використовуються СЗПО для аутентифікації ПК користувача.

Позитивні фактори:

  1. Не потрібно додаткових апаратних засобів для роботи захисту.

  2. Утруднення несанкціонованого доступу до скопійовані по.

  3. Простота застосування.

  4. "Невидимість" СЗПО для користувача.

Негативні фактори:

  1. Помилкові спрацьовування СЗПО за будь-яких змінах в параметрах ПК.

  2. Низька стійкість при доступі зловмисника до ПК користувача.

  3. Можливість конфліктів із системним ПЗ.

Програмно-апаратні засоби захисту ПЗ з електронними ключами

Цей клас СЗПО останнім часом здобуває все більшу популярність
серед виробників програмного забезпечення (ПЗ). Під програмно-апаратними
засобами захисту, в даному випадку, розуміються засоби, засновані на
використанні так званих "апаратних (електронних) ключів".
Електронний ключ – це апаратна частина системи захисту, що представляє собою
плату з мікросхемами пам'яті і, в деяких випадках, мікропроцесором,
вміщену в корпус і призначену для установки в один із стандартних
портів ПК (COMM, LPT, PCMCIA, USB …) або слот розширення материнської плати.
Так само як такого пристрою можуть використовуватися СМАРТ-карти. За
результатами проведеного аналізу, програмно-апаратні засоби захисту в
Зараз є одними з найбільш стійких систем захисту ПЗ від несанкціонованого доступу.

Електронні ключі по архітектурі можна підрозділити на ключі з пам'яттю
(Без мікропроцесора) і ключі з мікропроцесором (І пам'яттю).

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

Найбільш стійкими є системи з апаратною частиною другого типу. Такі
комплекси містять в апаратній частині не тільки ключ дешифрування, але і блоки
шифрации / дешифрування даних, таким чином при роботі захисту в електронний
ключ передаються блоки зашифрованої інформації, а приймаються звідти
розшифровані дані. У системах цього типу досить складно перехопити
ключ дешифрування так як всі процедури виконуються апаратною частиною, але
залишається можливість примусового збереження захищеної програми в
відкритому вигляді після відпрацювання системи захисту. Крім того, до них застосовні
методи криптоаналізу.

Позитивні фактори:

  1. Значне утруднення нелегального розповсюдження і використання ПЗ;

  2. Позбавлення виробника ПО від розробки власної системи захисту;

  3. Висока автоматизація процесу захисту ПЗ;

  4. Наявність API системи для більш глибокого захисту;

  5. Можливість легкого створення демо-версій;

  6. Досить великий вибір таких систем на ринку;

Негативні фактори:

  1. Утруднення розробки та налагодження ПЗ через обмеження з боку СЗ;

  2. Додаткові витрати на придбання системи захисту та навчання персоналу;

  3. Уповільнення продажів через необхідність фізичної передачі апаратної частини;

  4. Підвищення системних вимог через захисту (сумісність, драйвери);

  5. Зниження відмовостійкості ПЗ;

  6. Несумісність систем захисту та системного або прикладного ПЗ користувача;

  7. Несумісність захисту та апаратури користувача;

  8. Обмеження з-за несумісності електронних ключів різних фірм;

  9. Зниження розширюваності комп'ютерної системи;

  10. Труднощі або неможливість використання захищеного ПО в переносних і
    блокнотних ПК;

  11. Наявність у апаратної частини розмірів і ваги (для COMM / LPT = 5х3х2см ~ 50гр);

  12. Загроза крадіжки апаратного ключа

Засоби захисту ПЗ з "ключовими дисками"

На даний момент цей тип систем захисту мало поширений, зважаючи на його
морального старіння. СЗПО цього типу багато в чому аналогічні системам з
електронними ключами, але тут критична інформація зберігається на спеціальному,
ключовому, носії. Так само багато спільного є і з системами захисту від
копіювання, так як використовуються ті ж методи роботи з ключовим носієм.

Основною загрозою для таких СЗПО є перехоплення зчитування критичної
інформації, а так само незаконне копіювання ключового носія.

Позитивні і негативні сторони даного типу СЗПО практично
повністю збігаються з такими у систем з електронними ключами:

Позитивні фактори:

  1. Значне утруднення нелегального розповсюдження і використання ПЗ;
  2. Позбавлення виробника ПО від розробки власної системи захисту;
  3. Висока автоматизація процесу захисту ПЗ;
  4. Можливість легкого створення демо-версій;

Негативні фактори:

  1. Утруднення розробки та налагодження ПЗ через обмеження з боку СЗ;

  2. Додаткові витрати на придбання системи захисту та навчання персоналу;

  3. Уповільнення продажів через необхідність фізичної передачі носія;

  4. Підвищення системних вимог через захисту;

  5. Зниження відмовостійкості ПЗ;

  6. Несумісність систем захисту та системного або прикладного ПЗ користувача;

  7. Несумісність захисту та апаратури користувача;

  8. Зниження розширюваності комп'ютерної системи;

  9. Труднощі або неможливість використання захищеного ПО в переносних і
    блокнотних ПК;

  10. Загроза крадіжки ключового носія

Необхідно відзначити, що користувачем явно відчуваються лише негативні
боку систем захистів. А виробники ПЗ розглядають тільки пов'язані з
ним "плюси" і "мінуси" систем захисту і практично не
розглядають фактори, пов'язані з кінцевого споживача.

За результатами дослідження було розроблено набір показників застосовності
та критеріїв оцінки СЗПО.

Показники застосовності:

Технічні

Відповідність СЗПО функціональним вимогам виробника ПО і вимогам
по стійкості, системні вимоги ПЗ та системні вимоги СЗПО, обсяг ПО і
обсяг СЗПО, функціональна спрямованість ПО, наявність і тип СЗ в аналогів
ПЗ – конкурентів.

Економічні

Співвідношення втрат від піратства та загального обсягу прибутку, співвідношення
втрат від піратства та вартості СЗПО та її впровадження, співвідношення вартості ПЗ
і вартості СЗПО, відповідність вартості СЗПО та її впровадження поставленим цілям.

Організаційні

Поширеність і популярність ПЗ, умови розповсюдження і
використання ПЗ, унікальність ПЗ, наявність загроз, ймовірність перетворення
користувача в зловмисника, роль документації та підтримки при використанні
ПЗ.

Критерії оцінки:

Захист як така

Утруднення нелегального копіювання, утруднення нелегального доступу,
захист від моніторингу, відсутність логічних проломів і помилок в реалізації
системи.

Стійкість до дослідження / злому

Застосування стандартних механізмів, нові / нестандартні механізми

Відмовостійкість (надійність)

Імовірність відмови захисту (НСД), час напрацювання на відмову,
ймовірність відмови програми захисту (крах), час напрацювання на відмову, частота
помилкових спрацьовувань.

Незалежність від конкретних реалізацій ОС

Використання недокументованих можливостей, "вірусних"
технологій і "дірок" ОС

Працює

Відсутність конфліктів із системним ПЗ, відсутність конфліктів з прикладним ПЗ,
відсутність конфліктів з існуючим АТ, максимальна сумісність з
майбутнім АТ, ПЗ.

Незручності для кінцевого користувача ПЗ

Необхідність і складність додаткової настройки системи захисту,
доступність документації, доступність інформації про оновлення модулів
системи захисту через помилки / несумісності / нестійкості, доступність сервісних
пакетів, безпека мережевий передачі пароля / ключа, затримка з-за фізичної
передачі пароля / ключа, порушення прав споживача.

Побічні ефекти

Перевантаження трафіку, відмова в обслуговуванні, уповільнення роботи захищається
ПЗ, уповільнення роботи ОС, захоплення системних ресурсів, перевантаження ОЗУ,
порушення стабільності ОС.

Вартість

Вартість / ефективність, вартість / ціна захищається ПЗ,
вартість / ліквідовані збитки.

Доброякісність

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

У цілому, загальна картина взаємодії агентів ринку програмного
забезпечення може бути представлена на схемі на Рис. 2.

З чотирьох зазначених вище видів середовища взаємодії
захищається, підконтрольні (або частково підконтрольні) три види –
організаційна, технічна і економічне середовище. На нашу думку,
найважливішою середовищем взаємодії є економічне середовище, так як
економічна взаємодія, в даному випадку, є першопричиною і метою
всього взаємодії. При розробці та аналізі захисту програмного
забезпечення необхідно враховувати існуючу законодавчу базу, при цьому
потрібно проводити докладний економічний аналіз ситуації, застосовуючи різні
критерії оцінки, а потім створювати стратегію захисту, що включає застосування
технічних та організаційних заходів захисту програмного забезпечення.

Використана література:

  1. D. Hsiao, D. Kerr, S. Madnick "Computer Security" Academic Press, 1979.

  2. Г. А. Чорней, С. А. Охріменко, Ф. С. Ляху
    "Безпека
    автоматизованих інформаційних систем "Ruxanda, 1996.

  3. Pavel V. Semjanov
    "On cryptosystems untrustworthiness"

  4. С. Середа
    "Програмно-апаратні системи захисту програмного забезпечення"


Авторські Права на Статтю © 1999 Сергій А. Середа.
Всі права захищені. За додатковою інформацією звертайтеся
на consumer.cjb.net

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*