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

Purpose of the article: research and development of the software licensing module code obfuscation method with usage of presentation the string expressions features, function calls mechanism and access to identifiers in the bytecode-oriented programming languages. Results. The classification of programming languages is presented. The expediency of bytecode-oriented programming languages (based on JVM, CLR, etc.) that are used in the modern world to create Enterprise applications research is proved. Privacy, which is ensured through the obfuscation procedure usage, was selected for analysis from the main information security services. Existing software product protection methods based on the obfuscation procedure were considered. Their limitations were considered and the methods based on the obfuscation procedure, which work with identifiers and do not change the algorithm of program execution, were proposed. The provided researches made it possible to formulate the task for obfuscation methods development. Thus, two obfuscation methods were developed. Firstly, it is the obfuscation of string literals using the features of pseudorandom number generation, which makes it possible to describe the same string constant with different values. Secondly, it is an obfuscation of identifier names. The combination of this two developed methods allowed to create a tool that obfuscates the identifiers in such a way that each access to the identifier is unique. This takes away the opportunity of the attacker to find the appropriate identifier names in a short time to analyze the module's algorithm. Conclusions. An experiment was conducted in which IT-specialists were offered to analyze the unobfuscated and obfuscated program code of the developed software module, the main purpose of which was the license key generation and verification. The results showed that it would take up to 5 times more time to analyze the obfuscated code. This proves the advisability of the developed methods.
Software module protection method based on obfuscation procedure
Keywords: захист програмного забезпечення; байткод-орієнтовані мови програмування; програмне забезпечення; код; генератор псевдовипадкових чисел; ідентифікатор; bytecode-oriented programming languages