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

DOI: 10.31673/2412-4338.2019.047180

  • Семенов С. Г. (Semenov S. G.) Національний технічний університет «Харківський політехнічний інститут», м. Харків
  • Давидов В. В. (Davydov V. V.) National Technical University “Kharkiv Polytechnic Institute”, Kharkiv
  • Волошин Д. Г. (Voloshyn D. G.) Національний технічний університет «Харківський політехнічний інститут», м. Харків
  • Гребенюк Д. С. (Hrebeniuk D. S.) Національний технічний університет «Харківський політехнічний інститут», м. Харків

Анотація

Мета статті: дослідження та розробка методу обфускації коду програмного модуля ліцензування з використанням особливостей презентації строкових виразів, механізму викликів функцій та доступу до ідентифікаторів в байткод-орієнтованих мовах програмування. Результати. У статті наведена класифікація мов програмування. Доведено доцільність досліждення саме байткод-орієнтованих мов програмування (на базі Java Virtual Machine, Common Language Runtime тощо), що в сучасному світі використовуються для створення Enterprise-застосунків. З основних послуг інформаційної безпеки для аналізу було обрано конфіденційність, що забезпечується шляхом використання процедури обфускації. Розглянуто існуючі методи захисту програмного продукту на основі процедури обфускації. Розглянуто їхні недоліки та запропоновано методи на основі процедури обфускації, що працюють з ідентифікаторами, а не змінюють алгоритм виконання програми. Проведені дослідження дозволили сформулювати завдання для створення методів обфускації. Таким чином, було розроблено 2 засоби обфускації. По-перше, це обфускація строкових літералів з використанням особливостей генерації псевдовипадкових чисел, що дає можливість описати одну й ту саму строкову константу різними значеннями. По-друге, це обфускація імен ідентифікаторів. Об’єднання розроблених двох методів дозволило створити метод, що обфускує ідентифікатори таким чином, що кожний доступ до ідентифікатора є унікальним. Це позбавляє зловмисника можливості в стислі терміни знайти відповідні імена ідентифікаторів для аналізу алгоритму роботи модуля. Висновки. Проведено експеримент, в якому IT-фахівцям було запропоновано проаналізувати необфускований та обфускований програмний код розробленого модуля програмного забезпечення, основна мета якого – генерація та верифікація ліцензійного ключа. Результати показали, що для аналізу обфускованого коду зловмиснику буде необхідно до 5 разів більше часу для аналізу коду. Це доводить доцільність розроблених методів.

Ключові слова: захист програмного забезпечення, обфускація, байткод-орієнтовані мови програмування.

Список використаної літератури
1. Мельников В.П. Информационная безопасность и защита информации, 3-е изд, Для студентов высших учебных заведений / Мельников В.П., Клейменов С.А., Петраков А.М. – M.: Издательский центр «Академия», 2008. – 336с.
2. Основы информационной безопасности: курс лекций: учебное. 3-е изд. Под редакцией академика РАН В.Б. Бетелина. – М.: ИНТУИТ.РУ "Интернет-университет Информационных Технологий", 2006. – 208 с. – ISBN 5-9556-0052-3.
3. Programming Concepts: Compiled and Interpreted Languages. https://thecodeboss.dev/2015/07/programming-concepts-compiled-and-interpreted-languages/ (last access 01-dec-2019).
4. A Look At 5 of the Most Popular Programming Languages of 2019. https://stackify.com/popular-programming-languages-2018/ (last accessed 01-dec-2019).
5. Top Computer Languages. http://statisticstimes.com/tech/top-computer-languages.php (last accessed 01-dec-2019).
6. What’s The Average Web App Development Cost. https://perfectial.com/blog/average-web-app-development-cost/ (last accessed 01-dec-2019).
7. Collberg C. A Taxonomy of Obfuscating Transformations / C. Collberg, C. Thomborson, D. Low. – Auckland: Department of Computer Science, The University of Auckland, 1997. – 36 p.
8. Barak B. On the (im) possibility of obfuscating programs / Barak B., Goldreich O., Impagliazzo R., Rudich S., Sahai A., Vadhan S. and Yang K. // CRYPTO-2001.
9. Garg S. Candidate indistinguishability obfuscation and functional encryption for all circuits / Garg S., Gentry C., Halevi S., Raykova M., Sahai A., and Waters B. // FOCS-2013.
10. Goldwasser S. On best-possible obfuscation / Goldwasser S., and Guy N. R. // TCC-2007.
11. Schrittwieser S. Protecting Software through Obfuscation: Can It Keep Pace with Progress in Code Analysis? / Schrittwieser S., Katzenbeisser S., Kinder J., Merzdovnik G., and Weippl E. // ACM Comput. Surv. 49, 1, Article 4 (April 2016) - 40 p.
12. Faruki, P. Android Code Protection via Obfuscation Techniques: Past, Present and Future Directions / Faruki P., Fereidooni H., Laxmi V., Conti M., Gaur M. // November, 2016. – 37 p.
13. Давыдов В.В. Система формирования цифрового идентификатора программного обеспечения для защиты авторских прав / Давыдов В.В., Семенов С.Г., Мовчан А.В. // XV Міжнародний науковий семінар «Сучасні проблеми інформатики в управлінні, економіці, освіті та подоланні наслідків Чорнобильської катастрофи», Київ – оз. Світязь. - 4–8 липня 2016 року. – К.: Національна академія управління, 2016. – с.110-115.

Номер
Розділ
Статті