6176

Системи захисту програмного забезпечення

Реферат

Информатика, кибернетика и программирование

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

Украинкский

2012-12-30

72.5 KB

7 чел.

Системи захисту програмного забезпечення

1. Класифікація систем захисту програмного забезпечення

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

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

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

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

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

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

1) системи, установлювані на скомпільовані модулі ПО;

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

3) комбіновані.

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

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

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

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

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

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

3) комбіновані системи.

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

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

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

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

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

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

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

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

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

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

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

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

1) пакувальники/шифратори;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ПО.

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

6. Даний клас систем уразливий, тому що програмний код може бути, розпакований

або розшифрований для виконання.

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

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

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

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

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

1. Утруднення нелегального копіювання і поширення ПО.

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

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

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

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

носія інформації.

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

4. Зниження отказоустойчивости ПО.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5. Зниження отказоустойчивости ПО.

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

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

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

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

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

і блокнотних ПК.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


 

А также другие работы, которые могут Вас заинтересовать

13350. Визначення опору провідника за допомогою моста сталого струму (моста Уітстона) 581.5 KB
  Лабораторна робота № 3 Тема: Визначення опору провідника за допомогою моста сталого струму моста Уітстона. Мета: ознайомитись з класичним методом вимірювання опору за допомогою мостової схеми. Прилади і пристрої: стрілковий гальванометр з нульовою точкою мага
13351. Изучение особенностей идентификации и рассмотрение фальсификации растительных масел 906 KB
  В связи с актуальностью проблемы идентификации и фальсификации товаров необходимо изучить данную тему глубже. А в качестве объекта исследования хотелось бы обратиться к такой группе товаров как растительные масла. Ведь рынок масложировой продукции
13352. Основні способи обробки металів тиском 171.5 KB
  Лабораторна робота Обробка металів тиском Мета роботи: ознайомитися з основними способами обробки металів тиском. Теоретичні відомості Обробка тиском заснована на пластичних властивостях металів тобто на їх здатності під дією навантаження остаточно...
13353. Ручне електродугове зварювання металів. Електрична дуга та її властивості 160 KB
  Ручне електродугове зварювання металів Мета роботи: ознайомитися з основними відомостями про ручне електродугове зварювання металів плавким електродом вибрат: режим зварювання отримати зварне зєднання та перевірит його якість. Обладнання і
13354. Газове зварювання металів 1.45 MB
  Лабораторна робота № 4 Газове зварювання металів Мета роботи: ознайомитися з основними відомостями про газове зварювання металів вибрати режими зварювання отримати зварне з'єднання та перевірити його якість. Обладнання інструменти і матеріали: спецодяг зварюваль...
13355. Токарні верстати ,загальний вигляд, основні вузли та блоки 1.03 MB
  1.Токарні верстати загальний вигляд основні вузли та блоки. Верстати токарної групи застосовують для обробки заготовок які обертаються головний рух різання інструментом що здійснює неперервний рух подачі. Тут основним різальним інструментом є різець; використ
13356. Загальний вигляд свердлильних та розточувальних верстатів, основні вузли та блоки 366.5 KB
  1.Загальний вигляд свердлильних та розточувальних верстатів основні вузли та блоки. Свердлильні верстати Свердлильні верстати служать для обробки отворів інструментом який виконує одночасно головний обертальний рух різання і поступальний рух подачі. Розрізн...
13357. Фрезерні верстати 617.5 KB
  Фрезерування високопродуктивний і поширений спосіб обробки поверхонь заготовки за допомогою різального інструмента фрези з багатьма вістрями. Під час обробки фреза обертається виконуючи головний рух різання а заготовка пересувається прямолінійно виконуючи ру
13358. Визначення чисел твердості металів на приладі ТК-2 (типу Роквелла) 2.6 MB
  Лабораторна робота №8 Визначення чисел твердості металів на приладі ТК2 типу Роквелла Мета роботи: Ознайомитися з основними методами вимірювання твердості металів та сплавів ознайомитися з будовою і принципом роботи приладу ТК2 для випробування металів на тве