Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
захист інф-лекції попорядку..doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
485 Кб
Скачать
☆

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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