Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_No_4.doc
Скачиваний:
16
Добавлен:
12.02.2016
Размер:
620.54 Кб
Скачать

Міністерство освіти і науки України

національний університет “Львівська політехніка”

КАФЕДРА зі

Дослідження методів захисту програмного забезпечення та їх реалізація

Методичні вказівки

до виконання лабораторної роботи №4

з курсу

Захист програмного забезпечення та програмні методи захисту інформації ”

Львів- 2014

Дослідження методів захисту програмного забезпечення та їх реалізація: Інструкція до лабораторної роботи №4 з курсу “ Захист програмного забезпечення та програмні методи захисту інформації ” для магістрів та спеціалістів базових напрямків 8.160102 “ Захист інформації з обмеженим доступом та автоматизація її обробки ” та 8.160101 “ Безпека інформації в інформаційно комунікаційних системах ” // Укладачі кандидат технічних наук, доцент В.І. Отенко, та асистент О. В. Пашук Львів : Національний університет “ Львівська політехніка ”, 2014 – 19 сторінок.

Укладачі кандидат технічних наук, доцент В.І. Отенко,

асистент О. В. Пашук

При участі В.В. Домарецький С.Р. Салабай

студенти НУ “ЛП” базового напрямку

“Безпека інформації в інформаційно комунікаційних системах”

Відповідальний за

випуск доктор технічних наук, професор В.Б. Дудикевич

Рецензент

МЕТА РОБОТИ

Дослідити основні методи захисту програмного забезпечення. Навчитися їх реалізовувати.

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

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

  • незаконне використання алгоритмів, що є інтелектуальною власністю автора, при написанні аналогів продукту (промислове шпигунство)

  • несанкціоноване використання ПО (крадіжка і копіювання)

  • несанкціонована модифікація ПО з метою введення програмних зловживань; незаконне поширення і збут ПО (піратство)

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

  • метод установки

  • використовувані механізми захисту

  • принцип функціонування

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

  • системи, установки на скомпільовані модулі ПО

  • системи, що вбудовуються у вихідний код ПО до компіляції

  • комбіновані

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

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

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

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

  • системи, що використовують складні логічні механізми

  • системи, що використовують шифрування захищаючи ПО

  • комбіновані системи

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

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

  • Алгоритми заплутування – використовуються хаотичні переходи в різні частини коду, упровадження помилкових процедур – «пусток», не суміжних циклів, перекручування кількості реальних параметрів процедур ПО, розкид ділянок коду по різних областях ОЗУ і т.п.

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

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

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

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

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

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

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

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

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

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

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

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

  • СЗ від несанкціонованого доступу (НСД)

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

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

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

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

  • алгоритми компресії даних

  • прийоми, зв'язані з використанням не документованих особливостей операційних систем і процесорів

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

Переваги:

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

  • Методи упакування/шифрування збільшують стійкість СЗ інших типів

Недоліки:

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

  • Шифрування/упакування коду ПО викликає ускладнення при відновленні (update) і виправленні помилок (bug fix, service pack)

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

  • У чистому виді дані системи не можуть бути застосовані для авторизації використання ПО

  • Ці системи можуть бути застосовані лише до продуктів невеликого обсягу

  • Даний клас систем уразливий, тому що програмний код може бути, розпакований або розшифрований для виконання

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

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

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

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

Переваги:

  • Ускладнення нелегального копіювання і поширення ПО

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

Недоліки:

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

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

  • Підвищення системних вимог через захист (наявність нагромаджувача)

  • Зниження завадостійкого ПО

  • Несумісність захисту й апаратури користувача (нагромаджувач, контролер)

  • На час роботи ЗД займається нагромаджувач

  • Погроза крадіжки захищеного носія

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

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

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

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

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

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

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

Переваги:

  • Надійний захист від зловмисника початківця

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

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

  • Відсутність конфліктів із системним і прикладним ПО і АТ

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

  • Низька вартість

Недоліки:

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

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

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

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

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

Переваги:

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

  • Ускладнення несанкціонованого доступу до скопійованого ПО

  • Простота застосування

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

Недоліки:

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

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

  • Можливість конфліктів із системним ПО

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

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

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

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

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

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

Переваги:

  • Значне ускладнення нелегального поширення і використання ПО

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

  • Висока автоматизація процесу захисту ПО

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

  • Можливість легкого створення демонстраційних версій

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

Недоліки:

  • Ускладнення розробки і налагодження ПО через обмеження з боку СЗ

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

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

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

  • Зниження відказу-стійкості ПО

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

  • Несумісність захисту й апаратури користувача

  • Обмеження через несумісність електронних ключів різних фірм

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

  • Ускладнення або неможливість використання захищеного ПО в переносних і блочних ПК

  • Наявність в апаратної частини розмірів і ваги (для COM/LPT = 5×3×2 вага 50гр).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]