49659 (Захист програмного забезпечення)

2016-07-30СтудИзба

Описание файла

Документ из архива "Захист програмного забезпечення", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "49659"

Текст из документа "49659"

Вступ

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

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

  • хто потенційно може здійснити практичне впровадження програмних дефектів деструктивного впливу в програмний код?

  • які можливі мотиви дій суб'єкта, що здійснює розробку таких дефектів?

  • як можна ідентифікувати наявність програмного дефекту?

  • як можна відрізнити навмисний програмний дефект від програмної помилки?

  • які найбільш імовірні наслідки активізації деструктивних програмних засобів при експлуатації комп'ютерних систем?

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

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

  • у результаті ініціативних злочинних дій безпосередніх розроблювачів алгоритмів і програм;

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

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

Для опису мотивів злочинних дій при розробці програмних компонентів необхідно створити психологічний «портрет» зловмисника, що вимагає проведення спеціальних досліджень психологів і кримінологів в області психології програмування. Однак деякі мотиви очевидні вже зараз:

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

  • незадоволеність особистих амбіцій безпосереднього розроблювача алгоритму або програми, що вважає себе невизнаним талантом, у результаті чого може з'явитися прагнення довести й показати кому-небудь (у тому числі й самому собі) таким чином свої високі інтелектуальні можливості;

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

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

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

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

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

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

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

При відповіді на питання про несанкціоноване копіювання програм необхідно відповісти на наступні питання:

  • що може зробити зловмисник («пірат») у ході спроб вивчення програми?

  • що є істотними знаннями про програму?

  • що є специфікацією програми?

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

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

Програмне забезпечення є однією з базових складових сучасних ІКС.

Розглянемо застосування до ПЗ моделі порушника, яка визначена в НД ТЗІ 1.1-002-99. Відповідно до рівнів можливостей, що надаються потенційним порушникам штатними засобами КС, можна виділити чотири групи умов щодо порушення безпеки ПЗ:

  1. перший рівень визначає найнижчий рівень можливостей впливу на ПЗ - можливість взаємодії з ПЗ тільки через інтерфейси, що надаються ним (наприклад — доступ до вебсерверу, програмні інтерфейси, інтерфейси користувача);

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

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

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

Відповідно до такої класифікації можливими типовими ситуаціями, що потребують захисту ПЗ є:

  1. злам ПЗ засобами АРМ, які надані користувачу;

  2. злам ПЗ наявними та додатковими засобами АРМ;

  1. створення найбільш зручного програмного (або програмно-апаратного) середовища для зламу ПЗ;

  2. внесення в ПЗ таких властивостей, які сприяють зниженню його рівня захищеності.

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

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

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

Тому завдання захисту ПЗ доцільно розглядати в двох основних аспектах:

— захист програмної складової даної автоматизованої системи;

— захист окремої програми (прав, що пов'язані з нею) як об'єкту продаж або розповсюдження.

В рамках другого аспекту до основних цілей порушення безпеки ПЗ можна віднести:

  • незаконне використання ПЗ (всього ПЗ або його частини);

  • незаконне використання ідей, що реалізовані в ПЗ (алгоритмів, програмних інтерфейсів, інтерфейсів взаємодії з користувачем, інших технічних рішень);

  • незаконний продаж ПЗ;

  • незаконне виготовлення копій ПЗ.

Досягнення зазначених вище цілей пов'язане з реалізацією стосовно ПЗ наступних основних загроз:

  • несанкціоноване виконання програми або частини програмного коду;

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

  • несанкціоноване копіювання програм.

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

1) технічні (в тому числі голографічні);

  1. організаційні(наприклад порядок постачання та використання);

  2. правові (наприклад, шляхом визначення законів, кодексів, інструкцій).

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

  1. захист ПЗ засобами ОС;

  2. перевірка і забезпечення цілісності ПЗ;

  3. забезпечення стійкості до цілеспрямованих і випадкових дестабілізуючих впливів;

  4. ідентифікація користувача та/або середовища виконання;

  5. захист від відновлення та/або вивчення вихідного програмного коду та алгоритмів функціонування ПЗ.

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

2.1 Класифікація засобів дослідження програмного коду

Всі засоби дослідження ПЗ можна розбити на 2 класи: статичні і динамічні. Перші оперують вихідним кодом програми як даними і будують її алгоритм без виконання, другі ж вивчають програму, інтерпретуючи її в реальному або віртуальному обчислювальному середовищі. Звідси випливає, що перші є більш універсальними в тому сенсі, що теоретично можуть отримати алгоритм всієї програми, в тому числі і тих блоків, які ніколи не отримають управління. Динамічні засоби можуть будувати алгоритм програми тільки на підставі конкретної її траси, отриманої при певних вхідних даних. Тому завдання отримання повного алгоритму програми в цьому випадку еквівалентно побудові вичерпного набору текстів для підтвердження правильності програми, що практично неможливо, і взагалі при динамічному дослідженні можна говорити тільки про побудову деякої частини алгоритму.

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

Крім цих двох основних інструментів дослідження, можна використовувати:

  • «Діскомпілятори», програми, які генерують з виконуваного коду програму на мові високого рівня;

  • «Трасировщики», спочатку запам'ятовують кожну інструкцію, що проходить через процесор, а потім переводять набір інструкцій у форму, зручну для статичного дослідження, автоматично виділяючи цикли, підпрограми тощо;

  • «Слідкуючі системи», запам'ятовують і аналізують трасу вже не інструкції, а інших характеристик, наприклад викликаних програмою переривань.

2.2 Методи захисту ПЗ від дослідження

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

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

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

  • ініціалізатор;

  • зашифровану конфіденційну частину;

  • деструктор (деіцініалізатор).

Ініціалізатор повинен забезпечувати виконання таких функцій:

  • збереження параметрів операційного середовища функціонування (векторів переривань, вмісту регістрів процесора і т.д.);

  • заборона всіх внутрішніх і зовнішніх переривань, обробка яких не може бути записана в програмі;

  • завантаження в оперативну пам'ять і дешифрування коду конфіденційної частини програми;

  • передача керування конфіденційної частини програми.

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

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Нет! Мы не выполняем работы на заказ, однако Вы можете попросить что-то выложить в наших социальных сетях.
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
4100
Авторов
на СтудИзбе
670
Средний доход
с одного платного файла
Обучение Подробнее