logo
Metodichka_No_4

Теоретичні відомості Основні поняття щодо захисту програмного забезпечення

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

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

Системи захисту ПО за методом установки можна підрозділити на:

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

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

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

По використовуваних механізмах захисту СЗ можна класифікувати на:

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

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

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

За принципом функціонування СЗ можна підрозділити на наступні:

Переваги і недоліки основних систем захисту

Розглянемо переваги і недоліки основних систем захисту ПО виходячи з принципів їхнього функціонування.

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

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

Переваги:

Недоліки:

Системи захисту від несанкціонованого копіювання

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

Переваги:

Недоліки:

Системи захисту від несанкціонованого доступу

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

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

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

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

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

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

Переваги:

Недоліки:

Системи «прив'язки» ПО

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

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

Переваги:

Недоліки:

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

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

За результатами проведеного аналізу, програмно-апаратні засоби захисту в дійсний момент є одними із самих стійких систем захисту ПО від НСД.

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

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

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

Переваги:

Недоліки:

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

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

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

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

Показники ефективності систем захисту

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

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

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

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

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

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

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

Стійкість до дослідження/зломів застосування стандартних механізмів, або нові/нестандартні механізми для дослідження/злому.

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

Незалежність від конкретних реалізацій ОС використання не документованих можливостей, «вірусних» технологій і «дір» в ОС.

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

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

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

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

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

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

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