Корченко Олександр Григорович Національний авіаційній університет, завідуючий кафедрою безпеки інформаційних технологій кандидат технічних наук, доцент Шишкін Олександр Володимирович icon

Корченко Олександр Григорович Національний авіаційній університет, завідуючий кафедрою безпеки інформаційних технологій кандидат технічних наук, доцент Шишкін Олександр Володимирович




Скачати 371.58 Kb.
НазваКорченко Олександр Григорович Національний авіаційній університет, завідуючий кафедрою безпеки інформаційних технологій кандидат технічних наук, доцент Шишкін Олександр Володимирович
Дата13.09.2012
Розмір371.58 Kb.
ТипДокументи





ОДЕСЬКА НАЦІОНАЛЬНА АКАДЕМІЯ ЗВ’ЯЗКУ ІМ. О. С. ПОПОВА


АЙРАПЕТЯН Роберт Артемович


УДК 004.056.53


МЕТОДИ ЗАХИСТУ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ ВІД

НЕСАНКЦІОНОВАНОГО ДОСТУПУ ТА ШКІДЛИВИХ ПРОГРАМ


спеціальність 05.13.21 − системи захисту інформації


АВТОРЕФЕРАТ


дисертації на здобуття наукового ступеня

кандидата технічних наук


Одеса − 2009


Дисертацією є рукопис


Робота виконана в Одеському національному політехнічному університеті
Міністерства освіти і науки України.


Науковий керівник –

кандидат технічних наук, доцент

^ Рувінська Вікторія Михайлівна

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


Офіційні опоненти:

доктор технічних наук, професор

^ Корченко Олександр Григорович

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


кандидат технічних наук, доцент

^ Шишкін Олександр Володимирович

Одеська національна морська академія, доцент кафедри морського радіозв'язку




Захист відбудеться «_____»_____________ 2009 р. о _____ годині на
засіданні спеціалізованої вченої ради Д 41.816.01 в Одеській національній
академії зв’язку ім. О.С. Попова за адресою: 65029, м. Одеса, вул. Ковальська, 1.


З дисертацією можна ознайомитись у бібліотеці Одеської національної
академії зв’язку ім. О.С. Попова за адресою: 65029, м. Одеса, вул. Ковальська, 1.


Автореферат розісланий «___»___________2009 р.



Вчений секретар

спеціалізованої вченої ради

к.ф.-м.н., доц.






Є.В. Васіліу



^ ЗАГАЛЬНА ХАРАКТЕРИСТИКА РОБОТИ


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

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

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

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

У цей час особливо гострою є проблема захисту систем від шкідливих програм. Шкідлива програма – комп’ютерна програма або переносний код, призначений для реалізації загроз інформації, яка зберігається у комп’ютерній системі (КС), або для прихованого нецільового використання ресурсів КС, чи іншого впливу, що перешкоджає нормальному функціонуванню КС. Для приховання таких програм хакери упаковують їх за допомогою різних, у тому числі, і невідомих пакувальників. Важливим є розробка методів універсального розпакування будь-яких запакованих програм. Суть запропонованого методу універсального розпакування складається в забезпеченні контролю над процесом розпакування програми шляхом перехоплення всіх системних функцій.

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

^ Зв'язок роботи з науковими програмами, планами, темами. Робота виконувалася відповідно до плану НДР кафедри системного програмного забезпечення ОНПУ № 583-73 «Методи і засоби розробки інформаційних систем».

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

  • побудувати моделі і методи захисту ПЗ, засновані на використанні важкооборотних задач з галузі комбінаторної математики;

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

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

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

  • дослідити ефективність застосування нових методів у захисті ПЗ від несанкціонованого доступу й шкідливих програм.

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

Предметом дослідження є програмні, програмно-апаратні методи захисту ПЗ від несанкціонованого доступу і шкідливого коду.

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

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

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

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

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

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

^ Практичне значення отриманих результатів. Вперше розроблена система автоматичного захисту ПЗ від дослідження та злому під назвою diProtector для кишенькових комп'ютерів із застосуванням розроблених методів на основі мереж Петрі і Гамільтонова цикла на графі. При цьому для знаходження ключа розміром в 64 біта системам вартістю 100000 доларів потрібно біля року, крім того, збільшуються розміри захисних фрагментів і ускладнюється їхня структура в порівнянні з традиційними методами, що ускладнює дослідження. Розроблена система diProtector впроваджена в таких компаніях по розробці ПЗ для кишенькових комп'ютерів як Landpro Systems, DL Software, RDM Distributing, Inc., ARlab, corecodec inc. та інших.

У компанії Comodo Group створений і впроваджений універсальний розпакувальник (Generic Unpacker − GU) шкідливого коду, використовуваний у розробленому антивірусному захисті, що дозволяє збільшити кількість знайдених шкідливих програм на 18% у порівнянні із стандартним сигнатурним пошуком.

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

^ Особистий внесок здобувача. Авторові належить аналіз існуючих методів налагодження й протидії налагодженню [], а також розробка нових методів побудови систем захисту ПЗ [5, 9]. Автором запропоновані методи захисту ПЗ [1, 2, 3, 5, 7] та проведена їхня програмна реалізація [6]. Розроблено новий підхід для захисту ПЗ, заснований на використанні пристрою (k-Medulla) [8].

^ Апробація наукових результатів дисертації. Результати досліджень доповідалися на III Всеукраїнській науково-практичній конференції «Информационные технологии и безопасность в управлении» (м. Лівадія, 2006), на конференції молодих дослідників ОНПУ (2006), наукових семінарах кафедри СПЗ «Интеллектуальные системы и современные информационные технологии», на VII міжнародній науково-практичній конференції «Информационная безопасность» (м. Таганрог, 2005), на V міжнародній науково-практичній конференції СИЭТ (м. Одеса, 2004).

Публікації. За результатами досліджень опубліковано 10 наукових праць, у тому числі 5 статей у спеціалізованих журналах, рекомендованих ВАК України, 3 − у збірниках наукових праць конференцій, надруковано 1 книгу.

^ Структура дисертації. Дисертація складається з 157 сторінок, вступу, 4 розділів, висновків, 19 підрозділів, 39 рисунків, 10 таблиць, списку використаних джерел (90 найменувань), 4 додатків.


^ ОСНОВНИЙ ЗМІСТ РОБОТИ


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

У першому розділі – «Огляд існуючих рішень захисту ПЗ від несанк­ціонованого доступу та шкідливого коду» – проведений аналіз існуючих рішень в області методів і моделей захисту інформації та систем безпеки. Розглянуто загальні поняття безпеки для комп'ютерних систем: загрози безпеки для різних компонентів системи, включаючи програми; питання, пов'язані із забезпеченням безпеки, а саме, розмежування доступу до інформації, політики безпеки, а також способи побудови систем захисту. Описано інтелектуальні методи захисту інформації, наведені приклади реалізації таких захистів, а також розглянуті можливі способи оцінки ефективності захисту. Значний внесок у розвиток теорії захисту інформації внесли Шнайер Б., Спаффорд Ю.,
Хогланд Г., Ховард М., Корченко А.Г., Конахович Г.Ф., Горбенко І.Д.,
Малюк А.А., Шаньгін В.Ф., Романец А.М., Хорошко В.А. та інші вчені.

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

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

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

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

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

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

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

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

Задача 1.

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

^ Зворотна задача. Знайти Гамільтонов цикл в графі. Задача є -повною.

Рис. 1. Узагальнена модель симетричної системи для захисту програм

Задача 2.

Пряма задача. Задано мережу Петрі з деякою розміткою (початковою). Перевести стан мережі Петрі в інший стан, досяжний з початкового.

^ Зворотна задача. Дано мережу Петрі з деякою кінцевою розміткою. Визначити початкові розмітки, з яких вийшла ця кінцева розмітка. Задача є -повною, тобто важко розв’язуваною.

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

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

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

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

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

Отже, зломщик має в розпорядженні захищену програму . Припустимо, що він вивчив захисний фрагмент і навіть розібрався, який тип у математичного об'єкта , що лежить у його основі. Однак відповідно до фундаментального правила А. Керкхоффа, стійкість системи захисту визначається тільки тим, чи зможе він з отриманої інформації одержати секретний ключ . Для цього він повинен вирішити зворотну задачу: маючи граф з Гамільтоновим циклом, знайти цей цикл і з нього одержати ключ; маючи мережу Петрі з кінцевою розміткою, знайти початкову розмітку (ключ). Але, як відомо, перераховані вище завдання -повні, виходить, для знаходження ключа необхідний час, залежність якого від довжини ключа є експонентою, що для n більших 64 – кількість вершин у графі або кількість переходів у мережі Петрі – є трудомісткою задачею.

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

У сучасних системах захисту ПЗ секретний ключ передається по захищеному каналу від розроблювача програми (розповсюджувача) до покупця (легального користувача), а захищена програма передається користувачеві по незахищеному каналу (рис. 1). Таким чином, зломщик може легко одержати копію захищеної програми. Зламати програму, тобто знайти ключ, складно, тому що захисний фрагмент будується на основі важкооборотньої задачі. Але для зломщика залишається ще можливість одержати секретний ключ із захищеного каналу. Щоб виключити передачу секретного ключа, пропонується асиметрична комбінована система захисту програм, аналогічна комбінованій системі шифрування. При цьому система захисту з відкритим ключем застосовується для шифрування, передачі й наступного розшифрування тільки секретного ключа симетричної системи захисту програм. Для захисту ключа можна застосовувати будь-які методи, такі як RSA, схема Ель-Гамаля та інші. Для того, щоб система мала підвищену стійкість, необхідні дві пари секретних і відкритих ключів: , і , , а також сеансовий ключ , що і використовується для вбудовування захисного фрагмента. Можливі варіанти, коли ключ генерується й шифрується на стороні розроблювача захисту, а розшифровується на стороні користувача, або навпаки.

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

Рис. 2. Удосконалена структурна модель антивірусу

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

Розглянемо формування захисного фрагмента із графа для методу захисту програм з використанням Гамільтонова циклу в графі. Випадковим чином генерується ключ довжини у вигляді бітової послідовності, де , а ( раз). Далі ключ підрозділяється на фрагменти , кожний з яких має довжину , − кількість вершин графа. Таким чином, , а . На основі ключа будується граф, що містить Гамільтонов цикл (рис. 3). На першому етапі задаються n вершин з номерами , а потім вони випадковим чином переставляються, одержуємо номери . Далі вершини з'єднуються попарно одна з одною дугами циклічно, і кожна дуга одержує позначку . Потім до Гамільтонову циклу додаються випадковим чином додаткові дуги, причому, кількість дуг, що виходять із вершини, не повинна перевищувати . Ці дуги також позначаються . Кожна нова дуга одержує мітку, відмінну від тих, котрими вже позначені інші дуги, що виходять із тієї ж вершини.

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


Рис. 4. Структура захисного програмного фрагмента на основі графа

Розроблено алгоритм побудови захисного фрагмента з математичного об'єкта (орієнтованого графа з Гамільтоновим циклом). На рис. 4 key – фрагмент ключа, fi – флаг відвідування вершини, s – кількість відвіданих вершин.

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

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


Рис. 5. Порядок виконання етапів для методу захисту з Гамільтоновим циклом

Далі в роботі описується розроблений метод захисту програм на основі мереж Петрі, у яких переходи мають пріоритети. Суть його полягає в тому, що до програми додається захисний фрагмент коду, що реалізує запуск спеціально розробленої мережі Петрі (рис. 6). Мережа складається із блоків, кожний з яких містить кілька позицій (p) для завдання початкового маркірування, кількість їх дорівнює кількості бітів у ключі. Перед запуском мережі в них записується уведений користувачем ключ. На рис. 6 вхідне маркірування μ містить ключ у позиціях p0,...,pn-1, (ключові позиції), де n – довжина ключа, l – кількість позицій з фішками. Однією із вхідних позицій для «вирішального» («ключового») переходу є ps, що при початковому маркіруванні завжди містить фішку («сторожова позиція»). Всі інші переходи, з якими зв'язана «сторожова позиція» – «сторожові переходи». Після уведення правильного ключа мережа Петрі виконується до досягнення ключового переходу, і змінюється її маркірування (μ'). При невірному ключі «вирішальний» перехід не досягається.

Розроблювач захисту повинен створити зв'язані блоки мереж, кожний з яких має наступні дві властивості:

1. Маркірування μ', що буде після спрацьовування вирішального переходу, досяжне з μ тоді й тільки тоді, коли в ключових позиціях p0,...,pn-1 вірний ключ.

2. Досяжне з μ маркірування μ' при правильному ключі досягається завжди.

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

Розроблено різні варіанти блоків, на базі яких будується композиція складних мереж Петрі. Блоки діляться на два класи: забороняючі (рис. 7) і дозволяючі (рис. 9). У забороняючому блоці на рис. 7 ключовими позиціями є p0,…, p3. Сторожова позиція ps завжди має одну фішку й зв'язана зі сторожовими переходами й ключовим переходом tk. Програма буде вважатися зареєстрованою, якщо перехід tk спрацює. Задамо переходу tk пріоритет нижче, ніж сторожовим переходам ts1 ts3 (це означає, що якщо одночасно дозволені переходи tk і кожен з ts1 ts3, то спрацює перехід tk). Легко бачити, що перехід tk виконається тоді й тільки тоді, коли початкове маркірування позначає позиції p0, …, p3 у такий спосіб: p0 = 1, p1 = 0, p2 = 0, p3 = 0.

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

Надбудувавши блоки над p1, p2 і p3, одержимо 16 ключових позицій (ключ – 16 біт). Продовжуючи, дійдемо до 256 ключів, що вважається достатнім для надійного захисту. Для захисту від повного перебору ключ варто довести до 128 біт.

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

У розділі також пропонується підхід до захисту ПЗ від копіювання й злому за допомогою програмно-апаратного комплексу. В основу покладений малогабаритний пристрій (k-Medulla), що дозволяє зберігати й виконувати програмний код. При цьому досягаються наступні результати: 1) без пристрою програма не зможе працювати; 2) ріст продуктивності завдяки убудованому цифровому сигнальному процесору DSP (Digital Signal Processor); 3) захист від нелегального копіювання коду (code-rip).

Дається оцінка складності злому програм, захищених за допомогою пристрою k-Medulla. Нехай n − розмір вхідних параметрів захищеної функції (біт); m − розмір вихідних параметрів захищеної функції (біт); t − час від подачі вхідних параметрів до одержання вихідних (мс). Для створення програмного емулятора пристрою на основі табличної емуляції (кожному вхідному параметру з набору всіх можливих для захищеної функції ставиться у відповідність вихідний параметр), необхідний обсяг пам'яті (у бітах) . На генерацію таблиці необхідно затратити час (мс) . При n = 32, m = 32 і t = 1мс для побудови таблиці відповідностей витрачається 49,7 доби, а для зберігання – 32 ГБ пам'яті. Очевидно, даний метод злому прийнятний тільки для функцій, що приймають і повертають украй обмежений набір параметрів, тому захищати такі функції за допомогою k-Medulla недоцільно. Для створення програмного емулятора на основі коду самих захищених функцій (метод емуляції ключа, при якому емулюється виконання функцій на цільовій машині) буде потрібно вдатися до інвазивних методів злому − дослідженню мікрочипа за допомогою дорогого обладнання, розшифровці й перекомпіляції коду або створенню точної програмної моделі пристрою, що зажадає великих працевтрат.

Розроблено новий метод виявлення шкідливого ПЗ, суть якого полягає в тому, що будь-якими засобами запакована шкідлива програма при скануванні запускається в контрольованому оточенні, на початку своєї роботи саморозпаковується в пам'яті й, не заподіюючи шкоди системі, зупиняється для подальшого аналізу її розпакованого образа сигнатурними методами, що дозволяє протистояти витонченим способам упакування й збільшити кількість виявлених шкідливих програм у порівнянні із традиційними методами. Так, були зібрані дані по використанню системних функцій популярними пакувальниками в процесі розпакування. Як тільки програма намагається викликати заборонену функцію (а це значить, що розпакувальник завершив свою роботу і починає виконуватися основна частина програми) − виконання припиняється й знімається «зліпок» пам'яті (рис. 11). Як відомо, всі виклики Win32 API направляються через системну таблицю дескрипторів (SDT) до ntoskernel.exe.

Рис. 11. Перехоплення системних викликів універсальним роз пакувальником

У четвертому розділі«Розробка систем захисту та оцінка їх ефективності» – розглядається проектування систем захисту ПЗ й проаналізована результативність використовуваних у них методів.

У першій частині описано проектування систем захисту ПЗ на основі важкооборотних задач. Функції системи представлені на діаграмі прецедентів. На початковому етапі розробки були реалізовані пробні версії програм для настільних ПК. При вбудовуванні мережі Петрі в захисному фрагменті використані многопоточність для реалізації запуску переходів і тимчасові затримки для завдання пріоритетів. Кожний перехід − це потік, що перевіряє певний набір бітів на вході (вхідні позиції) і залежно від результату встановлює біти на виході. У роботі наведена схема алгоритму захисного фрагмента. Розроблена й випробувана побудова фрагмента на основі задачі про Гамільтонов цикл на графі при різних розмірах ключа. Результати початкового етапу лягли в основу розробленої програми diProtector − першого комерційного продукту для захисту програмного забезпечення на ринку кишенькових комп'ютерів. До захисних механізмів diProtector-а можна віднести: неможливість аналізу дизасембльованного коду захищеної програми; виявлення наладчиків (eVC, eVB і ін.) та захист від них; захист таблиці імпорту програми; захист точки входу в програму; захист від модифікації коду (створення патчів); захищена робота з реєстром; компресія ресурсів, даних і коду файлу; зовнішній модуль генератора ключів і ін. У якості основних механізмів захисту застосовані методи з мережами Петрі й графами.

У другій частині розділу досліджена результативність нових методів, заснованих на важкооборотних задачах, для кожного рівня захисту: від знаходження ключа й від дослідження. На основі відомих даних про час рішення NP-повних задач у роботі побудований графік залежності часу знаходження ключа від його довжини й встановлено, що вже для ключа довжиною в 64 бітів при використанні сучасних обчислювальних ресурсів буде потрібно більше року. Далі проведена оцінка ступеня захищеності від дослідження коду по двох показниках: розміру захисного фрагмента й рівню складності його структури
(табл. 1). У роботі експериментально визначені розміри підфрагментів, а саме, блоків мережі Петрі й блоків коду, прив'язаних до вершин графа, і побудовані графіки залежності розміру фрагментів кожного типу від довжини ключа. Встановлено, що при довжині ключа в 128 бітів розміри фрагментів 7 кБ і 26 кБ відповідно, що незначно збільшує довжину сучасних програм, але значно ускладнює дослідження коду. Складність структури фрагмента для мереж Петрі визначається кількістю паралельно працюючих потоків, а для графа – числом розгалужень. Побудовано формули залежності кількості потоків, а також кількості розгалужень від довжини ключа. Встановлено, що при довжині ключа в 128 бітів кількість потоків дорівнює 39, а загальне число розгалужень 300, тобто структура фрагментів досить складна. Отримані залежності розмірів захисних сегментів, а також кількості структурних одиниць коду від довжини ключа дозволяють цілеспрямовано управляти складністю дослідження коду. Проведено експерименти по виміру часу роботи захисних фрагментів для різних варіантів захисту. Найбільша кількість часу (через використання многопоточності на одноядерному процесорі) займає фрагмент на основі мереж Петрі. Але це не помітно для користувача, тому що час загрузки становить менш 0,5 секунди.

^ Таблиця 1

Чисельні характеристики для захисних фрагментів

Тип

фрагмента

Розмір

підфраг-мента

Розмір

фрагмента

(ключ–128 бітів)

Кількість структурних одиниць

Час роботи

фрагмента

(ключ−128 бітів)

Мережі Петрі

блок – 74 б

7 кБ

потоків – 39

384 мс

Гамільтонов цикл

код вершини – 90 б

26 кБ

розгалужень – 300

132 мс

У третій частині розглянуті структура та функції автоматизованої системи Comodo Anti-Malware Data Processing Analysis and Management System (CAMDPAMS), яка дозволяє одержувати, обробляти й аналізувати шкідливі програми. Система призначена для вірусних аналітиків, менеджерів і кінцевих користувачів антивірусу. Для розробки антивірусу використана модель, а також новий метод розпакування (див. розділи 2, 3).

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

Проведено оцінку статистичної значимості отриманих результатів. Тому що колекція містила велику кількість шкідливих програм (188231), то розподіл частот для всіх, а також для кожного з 4-х типів шкідливих програм, близькі до нормального, і відповідно до граничної теореми Лапласа були побудовані довірчі інтервали для ймовірностей виявлення шкідливих програм без GU і з ним. Встановлено, що у всіх п'яти випадках інтервали не перетинаються. Це означає, що загальна ефективність виявлення шкідливих програм при використанні GU (18,38%) буде вірна не тільки для колекції, застосованої для експериментів.


ВИСНОВКИ


У дисертації вирішені науково-практичні задачі − розроблені нові методи захисту ПЗ від несанкціонованого доступу та шкідливих програм. Основні результати дисертаційної роботи наступні:

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

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

3. Розроблено програмні методи захисту ПЗ на основі важкооборотних задач (знаходження Гамільтонова циклу на графі; визначення початкової розмітки мережі Петрі). Знаходження досить великого ключа (більше 64 біт) є трудомісткою NP-повною обчислювальною задачею.

4. Створено інструментальні засоби, що дозволяють захистити програми, що виконуються, розробленими методами на настільному й кишеньковому персональному комп'ютерах, причому, для кишенькових комп'ютерів подібний засіб створений вперше. Захист впроваджений у продукцію таких компаній як Landpro Systems, DL Software, RDM Distributing, Inc., ARlab, corecodec inc. і інших.

5. Запропоновано програмно-апаратний механізм захисту, заснований на спеціальному захисному пристрої, що виконує окремі процедури програми. Встановлено, що злом такого захисту є трудомістким завданням, тому що при розмірі вхідних параметрів захищеної функції n = 32, розмірі вихідних параметрів m = 32 і часу подачі вхідних параметрів до одержання вихідних t = 1 мс для побудови таблиці відповідностей необхідно затратити 49,7 доби.

6. Розроблено новий метод для вивчення шкідливого ПЗ, заснований на універсальному розпакуванні програми в пам'яті, що дозволяє збільшити кількість знайдених шкідливих програм на 18% у порівнянні зі стандартним сигнатурним пошуком, та впроваджено в антивірусний засіб. Також створена система CAMDPAMS для автоматизації процесів збору, вивчення й аналізу шкідливих програм і управління антивірусними лабораторіями компанії Comodo group.

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


^ СПИСОК ОПУБЛІКОВАНИХ ПРАЦЬ ЗА ТЕМОЮ ДИСЕРТАЦІЇ


Айрапетян Р.А. Отладчик SoftICE. Подробный справочник / Айрапетян Р.А. – М.: СОЛОН-Пресс, 2003. – 304 с.: ил. – (Серия «Кодокопатель»).

  1. Ayrapetyan R.A. Protecting Applications with Petri Nets / R.A. Ayrapetyan,
    Th. Scneider // The CodeBreakers Journal. – 2004. – Vol.1, №1. – P. 2–9.

  2. Айрапетян Р.А. Метод защиты программного обеспечения с помощью встроенных сетей Петри / Р.А. Айрапетян, В.М. Рувинская, Е.Л. Беркович // Труды Одесского политехнического университета. – Одесса, 2005. – Вып. 1 (23). – C. 62–67.

  3. Dolya A. Software obfuscating and watermarking based on Petri Nets / A. Dolya, R. Ayrapetyan // Материалы VII Международной научно-практической конференции "Информационная безопасность". − Таганрог: Изд-во ТРТУ, 2005. – C. 186–189.

  4. Беркович Е.Л. Метод защиты программного обеспечения на основе графов / Е.Л. Беркович, Р.А. Айрапетян, Л.В. Беркович // Научно-теоретический журнал “Искусственный интеллект”, вып. 3 (28), 2005. − С. 716–722.

  5. Айрапетян Р.А. Новые методы защиты программного обеспечения от нелегального использования / Р.А. Айрапетян // Вестник Восточноукраинского национального университета им. В. Даля. − №9. − 2006. − С. 17–20.

  6. Рувинская В.М. Новые методы построения систем защиты программ от несанкционированного использования / В.М. Рувинская, Р.А. Айрапетян // Научно-технический журнал «Защита информации», вып. 2 (33), 2007. −
    С. 62–69.

  7. Айрапетян Р.А. Защита программ с использованием сетей Петри / Р.А. Айрапетян, В.М. Рувинская // Труды пятой международной научно-практической конференции СИЭТ. – Одесса, 2004. С. 144.

  8. Айрапетян Р.А. Новый метод защиты программного обеспечения с помощью программно-аппаратного комплекса K-Medulla / Р.А. Айрапетян // Научно-технический журнал «Холодильная техника и технология», вып. 5 (109), 2007. − С. 77–79.

  9. Айрапетян Р.А., Рувінська В.М. Захист програмного забезпечення (ПЗ) від нелегального використання за допомогою математичних формалізмів / Р.А. Айрапетян, В.М. Рувінська // Тези доповідей 41-ої наукової конференції молодих дослідників ОПУ-магістрантів «Сучасні інформаційні технології та телекомунікаційні мережі». – Одеса: Наука і техніка, 2006. – С. 3.


Айрапетян Р.А. Методи захисту програмного забезпечення від несанкціонованого доступу й шкідливих програм. − Рукопис.

Дисертація на здобуття наукового ступеня кандидата наук за фахом 05.13.21 − системи захисту інформації – Одеська національна академія зв’язку ім. О. С. Попова − Одеса, 2009.

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

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

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

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

^ Ключові слова: захист комп'ютерних програм, важкооборотні задачі, мережі Петрі, графи, шкідливий код, антивірус.


Айрапетян Р.А. Методы защиты программного обеспечения от несанкционированного доступа и вредоносных программ. – Рукопись.

Диссертация на соискание учёной степени кандидата наук по специальности 05.13.21 – системы защиты информации – Одесская национальная академия связи им. А. С. Попова – Одесса, 2009.

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

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

Разработаны обобщенные модели для симметричной и комбинированной систем защиты программ, позволяющие осуществить защиту ПО на 2-х уровнях: от нахождения секретного ключа и от изучения. Разработаны программные методы защиты ПО, основанные на труднообратимых задачах (поиск Гамильтонова цикла в графе; определение начальной разметки сети Петри из конечной). Нахождения достаточно длинного ключа (больше 64 бит) является NP-полной вычислительной задачей. Созданы инструментальные средства, позволяющие защитить исполнимый модуль программы разработанными методами на настольных и карманных ПК (для карманных ПК подобное средство реализовано впервые).

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

Разработан новый метод для изучения вредоносного ПО, основанный на универсальной распаковке программ в памяти, что позволяет увеличить количество найденных вредоносных программ на 18% по сравнению со стандартным сигнатурным поиском.

Разработано антивирусное средство, использующее для анализа объектов разработанный универсальный метод распаковки. Также создана система автоматизации процессов сбора, анализа и изучения вредоносных программ и управления антивирусными лабораториями.

^ Ключевые слова: защита компьютерных программ, труднообратимые задачи, сети Петри, графы, вредоносный код, антивирус.


R.A. Ayrapetyan. Methods of software protecting against unauthorized access and malicious software. – Copy.

Thesis on the competition of graduate degree of candidate of sciences on specialty 05.13.21 – information security systems – Odessa national academy of telecommunications named after O. S. Popov – Odessa, 2009.

A researching goal is development of new software and hardware based methods of software protection against illegal using and malicious software.

Protection models based on hard-reversible tasks and methods on their basis were developed using a Hamilton’s cycle task on a graph and tasks on the Petri nets. Tools were created, allowing to protect the executable modules of the program against reversing and cracking on the desktop and pocket personal computers.

The mechanism of software and hardware protection, based on the special device, executing separate procedures of the protected program and thus allowing to protect and accelerate execution of code was offered.

A new method of universal unpacking of malicious code in safe environment and system for studying and protecting against malware was developed. The offered method is used in development of anti-malware software.

Keywords: software protection, hard-reversible tasks, Petri nets, graph, malicious software, antivirus.


Схожі:

Корченко Олександр Григорович Національний авіаційній університет, завідуючий кафедрою безпеки інформаційних технологій кандидат технічних наук, доцент Шишкін Олександр Володимирович iconРоль вищих навчальних закладів у залученні інвестицій та реалізації інноваційних проектів
Проректор, завідуючий кафедрою інформаційних технологій, кандидат фізико-математичних наук, доктор педагогічних наук, професор
Корченко Олександр Григорович Національний авіаційній університет, завідуючий кафедрою безпеки інформаційних технологій кандидат технічних наук, доцент Шишкін Олександр Володимирович iconБогів Олександр Ярославович
Богів Олександр Ярославович – кандидат історичних наук, доцент кафедри суспільних дисциплін та української мови ЗакДУ
Корченко Олександр Григорович Національний авіаційній університет, завідуючий кафедрою безпеки інформаційних технологій кандидат технічних наук, доцент Шишкін Олександр Володимирович iconБогів Олександр Ярославович
Богів Олександр Ярославович – кандидат історичних наук, доцент кафедри суспільних дисциплін та української мови ЗакДУ
Корченко Олександр Григорович Національний авіаційній університет, завідуючий кафедрою безпеки інформаційних технологій кандидат технічних наук, доцент Шишкін Олександр Володимирович icon3. Тип модуля: обов'язковий. Семестр: VІІІ. Обсяг модуля
Мичуда Зиновій Романович; д т н., професор Бучма Ігор Михайлович; к т н., доцент Вітер Олександр Сергійович; к т н., доцент Мокренко...
Корченко Олександр Григорович Національний авіаційній університет, завідуючий кафедрою безпеки інформаційних технологій кандидат технічних наук, доцент Шишкін Олександр Володимирович icon3. Тип модуля: обов'язковий. Семестр: VІІІ. Обсяг модуля
Мичуда Зиновій Романович; д т н., професор Бучма Ігор Михайлович; к т н., доцент Вітер Олександр Сергійович; к т н., доцент Мокренко...
Корченко Олександр Григорович Національний авіаційній університет, завідуючий кафедрою безпеки інформаційних технологій кандидат технічних наук, доцент Шишкін Олександр Володимирович iconВолошинський Олександр Олександрович 1943 року народження, Кандидат технічних наук, доцент
Львівський лісотехнічний інститут, ("Повышение стойкости тонких фрезерных ножей из малолегированных инструментальных сталей")
Корченко Олександр Григорович Національний авіаційній університет, завідуючий кафедрою безпеки інформаційних технологій кандидат технічних наук, доцент Шишкін Олександр Володимирович iconСіончук Олександр Володимирович
Сіончук Олександр Володимирович. Народився 27. 06. 1966 р с. Прислуч,Полонського р-н,Хмельницької обл
Корченко Олександр Григорович Національний авіаційній університет, завідуючий кафедрою безпеки інформаційних технологій кандидат технічних наук, доцент Шишкін Олександр Володимирович iconРешнова Світлана Федорівна доцент кафедри органічної та біологічної хімії, кандидат педагогічних наук, доцент робоча програма
Речицький Олександр Наумович – завідувач кафедри органічної та біологічної хімії, кандидат хімічних наук, доцент
Корченко Олександр Григорович Національний авіаційній університет, завідуючий кафедрою безпеки інформаційних технологій кандидат технічних наук, доцент Шишкін Олександр Володимирович iconМіністерство освіти І науки, молоді та спорту україни херсонський державний університет
Речицький Олександр Наумович – завідувач кафедри органічної та біологічної хімії, кандидат хімічних наук, доцент
Корченко Олександр Григорович Національний авіаційній університет, завідуючий кафедрою безпеки інформаційних технологій кандидат технічних наук, доцент Шишкін Олександр Володимирович iconМіністерство освіти І науки, молоді та спорту україни херсонський державний університет
Речицький Олександр Наумович – завідувач кафедри органічної та біологічної хімії, кандидат хімічних наук, доцент
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©zavantag.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи