Смекни!
smekni.com

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

Вступ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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