Об автоматическом анализе практической стойкости обфусцирующих преобразований


https://doi.org/10.18255/1818-1015-2019-3-317-331

Полный текст:


Аннотация

Разрабатывается способ оценки практической стойкости обфусцирующих преобразований программ, основанный на вычислении показателя похожести для исходной, обфусцированной и деобфусцированной программ. Предлагаются кандидаты для показателей похожести, в основе вычисления которых лежат такие характеристики программ, как граф потока управления, время символьного выполнения и степень покрытия при символьном выполнении. Граф потока управления рассматривается как основа для построения других кандидатов для показателей похожести программ. На его основе предлагается новый кандидат для показателя похожести, при вычислении которого находится расстояние Хэмминга между матрицами смежности графов потока управления сравниваемых программ. Строится схема оценки (анализа) стойкости обфусцирующих преобразований, в соответствии с которой для исходной, обфусцированной и деобфусцированной программ вычисляются или находятся характеристики этих программ, которые сравниваются в соответствии с выбранной моделью сравнения. Разработанная схема, в частности, подходит для сравнения программ на основе показателей похожести. В работе разрабатывается и реализуется один из ключевых блоков построенной схемы – блок получения характеристик программ, скомпилированных для архитектуры x86/x86_64. Разработанный блок позволяет находить граф потока управления, время символьного выполнения и степень покрытия при символьном выполнении. Приводятся некоторые результаты работы построенного блока.

 


Об авторах

Петр Дмитриевич Борисов
Южный Федеральный Университет
Россия
аспирант


Юрий Владимирович Косолапов
Южный Федеральный Университет
Россия
канд. техн. наук


Список литературы

1. Siegmund J., “Program Comprehension: Past, Present, and Future”, IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), 5 (2016), 13–20.

2. Avidan E., Feitelson D. G., “From Obfuscation to Comprehension”, Proceedings of the 2015 IEEE 23rd International Conference on Program Comprehension, 2015, 178–181.

3. Поздеев А. Г., Кривопалов В. Н., Ромашкин Е. В., Радченко Е. Д., “Математические и программные средства обфускации программ”, ПДМ, 1 (2009), 52–53;

4. Чернов А. В., “Анализ запутывающих преобразований программ”, 2002, http://www.citforum.ru/security/articles/analysis/;

5. Kuzurin N., Shokurov A., Varnovsky N., Zakharov V., “On the Concept of Software Obfuscation in Computer Security”, International Conference on Information Security. – Springer, Berlin, Heidelberg, 2007, 281–298.

6. Diffie W., Hellman M., “New directions in cryptography”, IEEE Transactions on Information Theory, 22:6 (1976), 644–654.

7. Collberg C. S., Thomborson C., “Watermarking, Tamper-Proofing, and Obfuscation Tools for Software Protection”, IEEE transactions on software engineering, 28:8 (2002), 735– 746.

8. Lee B., Kim Y., Kim J., “binOb+: a Framework for Potent and Stealthy Binary Obfuscation”, Proceedings of the 5th ACM Symposium on Information, Computer and Communications Security, ASIACCS 2010, 2010, 271–281.

9. Borello J.M., Me L., “Code Obfuscation Techniques for Metamorphic Viruses”, Journal in Computer Virology, 4:3 (2008), 211–220.

10. Moser A., Kruegel C., Kirda E., “Limits of Static Analysis for Malware Detection”, Proceedings of Twenty-Third Annual Computer Security Applications Conference (ACSAC 2007), 2007, 421–430.

11. Baiardi F., Sgandurra D., “An obfuscation-based approach against injection attacks”, Proceedings of the Sixth International Conference on Availability, Reliability and Security (ARES), 2011, 51–58.

12. Нурмухаметов А. Р., “Применение диверсифицирующих и обфусцирующих преобразований для изменения сигнатуры программного кода”, Труды ИСП РАН, 28:5 (2016), 93–104;

13. Косолапов Ю. В., “Об обнаружении атак типа повторного использования исполнимого кода”, Моделирование и анализ информационных систем, 26:2 (2019), 213–228;

14. Collberg C., Thomborson C., Low D., “A taxonomy of obfuscating transformations”, Technical Report 148, The University of Auckland, New Zealand, 1997.

15. Walenstein A., El-Ramly M., Cordy J. R., Evans W. S., Mahdavi K., Pizka M., Ramalingam G., von Gudenberg J. W., “Similarity in Programs”, Duplication, Redundancy, and Similarity in Software, 2007, 1–8.

16. Chipounov V., Kuznetsov V., Candea G., “The S2E Platform: Design, Implementation, and Applications”, ACM Transactions on Computer Systems, 30:1 (2012), 1–49.

17. Saudel F., Salwan J., “Triton: A Dynamic Symbolic Execution Framework”, Symposium Sur La Security Des Technologies de L’information et Des Communications, SSTIC, 2015, 31–54.

18. Wang Z, Ming J., Jia C., Gao D., “Linear Obfuscation to Combat Symbolic Execution”, Proceedings of Computer Security - ESORICS 2011, 6879 (2011), 210–226.

19. Brumley D., Hartwig C., Liang Z., Newsome J., Song D., Yin H., “Automatically Identifying Trigger-based Behavior in Malware”, Botnet Detection. Advances in Information Security, 36 (2008), 65–88.

20. King J. C., “Symbolic execution and program testing”, Communications of the ACM, 19:7 (1976), 385–394.

21. Cadar C., Dunbar D., Engler D. R., “KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs”, 8th USENIX Symposium on Operating Systems Design and Implementation, 8 (2008), 209–224.

22. Shoshitaishvili Y.et al., “SoK: (State of) The Art of War: Offensive Techniques in Binary Analysis”, IEEE Symposium on Security and Privacy, 2016, 138–157.

23. Sharif M. I., Lanzi A., Giffin J. T., Lee W., “Impeding Malware Analysis Using Conditional Code Obfuscation”, Proceedings of NDSS, 2008, 1–13.

24. Udupa S. K., Debray S. K., Madou M., “Deobfuscation: Reverse Engineering Obfuscated Code”, Proceedings of the 12th Working Conference on Reverse Engineering (WCRE’05), 2005, 44–53.

25. Nagarajan V., Gupta R., Zhang X., Madou M., De Sutter B., “Matching Control Flow of Program Versions”, IEEE International Conference on Software Maintenance, 2007, 84–93.

26. Bonfante G., Kaczmarek M., Marion J.Y., “Control Flow Graphs as Malware Signatures”, International Workshop on the Theory of Computer Viruses, 2007, 1–6.

27. Park Y., Reeves D., Mulukutla V., Sundaravel B., “Fast Malware Classification by Automated Behavioral Graph Matching”, Proceedings of the Sixth Annual Workshop on Cyber Security and Information Intelligence Research, 2010, 1–4.

28. Kinable J., Kostakis O., “Malware classification based on call graph clustering”, Journal in Computer Virology, 7:4 (2011), 233–245.

29. Lim H.I., “Comparing Control Flow Graphs of Binary Programs through Match Propagation”, IEEE 38th Annual Computer Software and Applications Conference, 2014, 598–599.

30. Dullien T., Rolles R., “Graph-based comparison of executable objects”, 5:1 (2005), 1–8.

31. Chan P.P.F., Collberg C., “A Method to Evaluate CFG Comparison Algorithms”, 14th International Conference on Quality Software, 2014, 95–104.

32. Axenovich M., Kezdy A., Martin R., “On the editing distance of graphs”, J. Graph Theory, 58:2 (2008), 123–138.

33. Борисов П. Д., Косолапов Ю. В., “О выборе характеристик для оценки стойкости обфусцирующих преобразований”, Современные информационные технологии: тенденции и перспективы развития. Труды XXVI научной конференции СИТО-2019., 2019, 42–44;

34. Lehman M. M., Belady L. A. Program Evolution. Processes of Software Change., Academic press, 1985.

35. Schnappinger M., Osman M. H., Pretschner A., Pizka M., Fietzke A., “Software Quality Assessment in Practice: a Hypothesis-Driven Framework”, Proceedings of the 12th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, 2018, 1–6.

36. Борисов П. Д., Косолапов Ю. В., “Модель экспериментального анализа стойкости алгоритмов обфускации”, Современные информационные технологии: тенденции и перспективы развития. Труды XXV научной конференции СИТО-2018., 2018, 37–39;

37. “IDA Pro”, https://www.hex-rays.com/products/ida/.

38. “The LLVM Compiler Infrastructure”, https://llvm.org/.

39. “McSema”, https://github.com/trailofbits/mcsema.

40. Junod P., Rinaldini J., Wehrli J., Michieliny J., “Obfuscator-LLVM – Software Protection for the Masses”, Conference: 2015 IEEE/ACM 1st International Workshop on Software Protection (SPRO), 2015, 3–9.


Дополнительные файлы

Для цитирования: Борисов П.Д., Косолапов Ю.В. Об автоматическом анализе практической стойкости обфусцирующих преобразований. Моделирование и анализ информационных систем. 2019;26(3):317-331. https://doi.org/10.18255/1818-1015-2019-3-317-331

For citation: Borisov P.D., Kosolapov Y.V. On the Automatic Analysis of the Practical Resistance of Obfusting Transformations. Modeling and Analysis of Information Systems. 2019;26(3):317-331. (In Russ.) https://doi.org/10.18255/1818-1015-2019-3-317-331

Просмотров: 77

Обратные ссылки

  • Обратные ссылки не определены.


Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 1818-1015 (Print)
ISSN 2313-5417 (Online)