Об обнаружении эксплуатации уязвимостей, приводящей к запуску вредоносного кода
https://doi.org/10.18255/1818-1015-2020-2-138-151
Аннотация
Задача защиты программного обеспечения от эксплуатации возможных неизвестных уязвимостей может решаться как путем поиска (например, с помощью символьного исполнения) и последующего устранения уязвимостей, так и путем использования систем обнаружения и/или предотвращения вторжений. В последнем случае эта задача решается обычно путем формирования профиля нормального выполнения программ, а недопустимое отклонение от нормального состояния расценивается как аномалия или атака. В настоящей работе рассматривается задача защиты заданного исполнимого файла (программы) P от эксплуатации неизвестных уязвимостей в нем. Для этого предлагается способ построения профиля нормального выполнения программы P, в котором кроме набора легальных цепочек системных и библиотечных функций длины l учитывается расстояние между соседними вызовами функций, вычисляемое как разность адресов вызова соответствующих функций. Учет расстояний между вызовами функций позволяет выявлять исполнение вредоносного шеллкода, использующего вызовы системных и/или библиотечных функций, если хотя бы один из используемых в шеллкоде вызовов находится на нетипичном для программы P расстоянии от предыдущего вызова. В работе строится алгоритм и система обнаружения аномального выполнения кода и проводятся эксперименты в случае, когда P — браузер FireFox для операционной системы Windows.
Об авторе
Юрий Владимирович КосолаповРоссия
канд. техн. наук
ул. Мильчакова, 8а, г. Ростов-на-Дону, 344090
Список литературы
1. A. Khraisat, I. Gondal, P. Vamplew, and J. Kamruzzaman, “Survey of intrusion detection systems: techniques, datasets and challenges”, Cybersecurity, vol. 2, no. 1, p. 20, 2019.
2. S. Forrest, S. Hofmeyr, and A. Somayaji, “The Evolution of System-Call Monitoring”, in Proceedings of 2008 Annual Computer Security Applications Conference (ACSAC), 2008, pp. 418–430.
3. S. Gupta, H. Sharma, and S. Kaur, “Malware Characterization Using Windows API Call Sequences”, Journal of Cyber Security and Mobility, vol. 7, no. 4, pp. 363–378, 2018.
4. R. Veeramani and N. Rai, “Windows API based Malware Detection and Framework Analysis”, International Journal of Scientific & Engineering Research, vol. 3, no. 3, pp. 1–6, 2012.
5. A. Singh, R. Arora, and H. Pareek, “Malware Analysis using Multiple API Sequence Mining Control Flow Graph”, CoRR. arXiv preprint arXiv:1707.02691, 2017.
6. M. L. Bernardi, M. Cimitile, D. Distante, F. Martinelli, and F. Mercaldo, “Dynamic malware detection and phylogeny analysis using process mining”, International Journal of Information Security, vol. 18, no. 3, pp. 257–284, 2019.
7. L. Viljanen, “A Survey of Application Level Intrusion Detection”, Technical report, Series of Publications C, Report C-2004-61 Helsinki, 2004.
8. G. Creech, “Developing a high-accuracy cross platform Host-Based Intrusion Detection System capable of reliably detecting zero-day attacks”, PhD thesis, University of New South Wales, Canberra, Australia, 2014.
9. H. Hu, S. Shinde, S. Adrian, Z. L. Chua, P. Saxena, and Z. Liang, “Data-oriented programming: On the expressiveness of non-control data attacks”, in 2016 IEEE Symposium on Security and Privacy (SP), 2016, pp. 969–986.
10. K. K. Ispoglou, B. AlBassam, T. Jaeger, and M. Payer, “Block Oriented Programming: Automating Data-Only Attacks”, in Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security, 2018, pp. 1868–1882.
11. Y. V. Kosolapov, “About detection of code reuse attacks”, Modelirovanie i Analiz Informatsionnykh Sistem, vol. 26, no. 2, pp. 213–228, 2019.
12. D. Wagner and P. Soto, “Mimicry attacks on host-based intrusion detection systems”, in Proceedings of the 9th ACM Conference on Computer and Communications Security, 2002, pp. 255–264.
13. K. Z. Snow, F. Monrose, L. Davi, A. Dmitrienko, C. Liebchen, and A.-R. Sadeghi, “Just-In-Time Code Reuse: On the Effectiveness of Fine-Grained Address Space Layout Randomization”, in 2013 IEEE Symposium on Security and Privacy, 2013, pp. 574–588.
14. E. Stalmans and S. El-Sherei, Macro-less Code Exec in MSWord, Last access 12.12.2019. [Online]. Available: https://sensepost.com/blog/2017/macro-less-code-exec-in-msword/.
15. P. D. Borisov and Y. V. Kosolapov, “On the automatic analysis of the practical resistance of obfusting transformations”, Modelirovanie i Analiz Informatsionnykh Sistem, vol. 26, no. 3, pp. 317–331, 2019.
16. API Monito, Last access 28.11.2019. [Online]. Available: http://www.rohitab.com/apimonitor.
17. ListDLLs, Last access 28.11.2019. [Online]. Available: https://docs.microsof.com/en-us/sysinternals/downloads/listdlls.
18. M. Vervier, M. Orru, B. J. Wever, and E. Sesterhenn, Browser Security Whitepaper, Last access 05.12.2019. [Online]. Available: https://browser-security.x41-dsec.de/X41-Browser-Security-White-Paper.pdf.
19. R. Gawlik and T. Holz, “Sok: Make JIT-spray great again”, in WOOT’18 Proceedings of the 12th USENIX Conference on Offensive Technologies, 2018, pp. 1–14.
20. Offensive Security, Exploitdb/exploits/windows/remote/42484.html, Last access 05.12.2019. [Online]. Available: https://github.com/ofensive-security/exploitdb/blob/master/exploits/windows/remote/42484.html.
21. 0vercl0k, CVE-2019-9810, Last access 05.12.2019. [Online]. Available: https://github.com/0vercl0k/CVE-2019-9810.
22. Exploit Database, Last access 05.12.2019. [Online]. Available: https://www.exploit-db.com/.
23. CVE-2017-5375_ASM.JS_JIT-Spray, Last access 30.12.2019. [Online]. Available: https://github.com/rh0dev/expdev/tree/master.
Рецензия
Для цитирования:
Косолапов Ю.В. Об обнаружении эксплуатации уязвимостей, приводящей к запуску вредоносного кода. Моделирование и анализ информационных систем. 2020;27(2):138-151. https://doi.org/10.18255/1818-1015-2020-2-138-151
For citation:
Kosolapov Yu.V. On the Detection of Exploitation of Vulnerabilities Leading to the Execution of a Malicious Code. Modeling and Analysis of Information Systems. 2020;27(2):138-151. (In Russ.) https://doi.org/10.18255/1818-1015-2020-2-138-151