Анализ устойчивости динамических водяных знаков
Аннотация
В данной работе рассмотрена ранее известная схема внедрения динамических водяных знаков Radix-n, применяемая для борьбы с нелегальным использованием программного обеспечения. Согласно схеме водяной знак представляет собой динамическую структуру данных (граф), которую программа создает в памяти компьютера в процессе выполнения. Топология такого графа определяет скрытую информацию, например сведения об авторе. Эта информация может быть извлечена для установления авторства в рамках судебных разбирательств. В ходе данного исследования установлено, что рассматриваемая схема, считавшейся ранее одной из наиболее надежных, обладает рядом особенностей, позволяющих злоумышленнику выявить этап построения водяного знака в программе и, соответственно, его исказить или удалить. Автором данной статьи показан недостаток схемы Radix-n, который заключается в том, что с помощью сведений, полученных от перехватчика Api-функций выделения динамических блоков памяти, можно выявить динамические структуры данных программы, среди которых присутствует водяной знак. Анализ содержимого оперативной памяти позволяет обнаружить указатели на динамически созданные объекты (массивы, переменные, экземпляры классов и т.д.) программы. Различные динамические объекты в памяти, связанные между собой указателями образуют структуры данных программы (списки, стеки, деревья и иные графы), в том числе и водяной знак. В ходе проведенных экспериментов установлено, что в подавляющем числе случаев количество структур данных в программах невелико, что повышает вероятность реализации успешной атаки злоумышленником. В настоящей работе также предложен алгоритм поиска компонент связности графа с линейной трудоемкостью в случае, когда количество вершин порядка 106. На основе полученных в эксперименте результатов была предложена новая схема внедрения водяных знаков, являющаяся устойчивой к разработанной атаке. В предлагаемой схеме используется граф для хранения водяного знака, где связи между узлами реализованы с помощью уникальных сигнатур. Предложено применять шифрование содержимого узлов графа (кроме сигнатур) для того, чтобы злоумышленник не смог выявить наличие связи между узлами.
Ключевые слова
Полный текст:
PDFЛитература
1. Алейников С.И., Богатов А.О. Защита программ от дизассемблирования // Труды Института системного программирования РАН. 2006. Т. 11. С. 9-16.
2. Collbcrg С., Thomborson С. and Low D. A Taxonomy of Obf'ucatingTransforrnations.Tcchnical Report N148, Department of Computer Science. TheUniversityofAuckland, July, 1997.
3. Никольская К.Ю. Хлестов А.Д. Обфускация и методы защиты программных продуктов // Вестник УрФО. Безопасность в информационной сфере. 2015. .№ 2. С. 7-10.
4. Yarmolik V.N., Portyanko S.S. State of the ART in Software Ownership Protection // Computer Information Systems and Industrial Management Application / Editors: Khalid Saeed. RomualdMosdorf. Olli-PekkaHilmola. Bialystok. Poland. 2003. Pp. 188-195.
5. Collberg C.S., Thomborson С. Watermarking, Tamper-proofing and Obfuscation - Tools for Software protection // Computer Science Technical Report #170. UniversityofAuckland, Aucland, NewZealand. February 10, 2000.
6. Козубенко Ю.В. Защита авторских прав на программы для ЭВМ в уголовном, административном и гражданском судопроизводстве. Wolters Kluwer. Russia, 2009. 344 с.
7. Alexander G. Gounares Fingerprinting Executable Code // Patent US20120317421 Al, date 19.07.2012.
8. Anckaert B. et al. Steganography for executables and code transformation signatures //International Conference on Information Security and Cryptology.Springer Berlin Heidelberg. 2004. Pp. 425^439.
9. Zaidan A. A. et al. Novel approach for high (secure and rate) data hidden within triplex space for executable file // Scientific Research and Essays. 2010. Vol. 5. No. 15. Pp. 1965-1977.
10. Collberg C., Thomborson C. Software watermarking: Models and dynamic embeddings // Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages. ACM. 1999. Pp. 311-324.
11. Moser A., Kruegel C., Kirda E. Limits of static analysis for malware detection // Computer security applications conference, 2007. ACSAC 2007.Twenty-third annual.IEEE. 2007. Pp. 421-430.
12. Ernst M. D. Static and dynamic analysis: Synergy and duality // WODA 2003: ICSE Workshop on Dynamic Analysis. 2003. Pp. 24-27.
13. Linn C., Debray S. Obfuscation of executable code to improve resistance to static disassembly //Proceedings of the 10th ACM conference on Computer and communications security. ACM. 2003. Pp. 290-299.
14. Крис К. Искусство дизассемблирования. СПб.: БХВ-Петербург. 2008.
15. Алексеев В.Е., Таланов В.А. Графы и алгоритмы. Структуры данных. Модели вычислений. М.: Интернет- университет информационных технологий. 2006.
DOI: http://dx.doi.org/10.26583/bit.2017.2.08
Ссылки
- На текущий момент ссылки отсутствуют.

Это произведение доступно по лицензии Creative Commons «Attribution» («Атрибуция») 4.0 Всемирная.