Preview

Труды Института системного программирования РАН

Расширенный поиск

Исследование встречаемости небезопасно сериализованных программных объектов в клиентском коде веб–приложений

https://doi.org/10.15514/ISPRAS-2023-35(1)-14

Аннотация

В данной статье проведено исследование встречаемости случаев использования небезопасной десериализации при взаимодействии между клиентским кодом и серверной стороной веб–приложения. Особое внимание было уделено сериализованным объектам, отправляемым из JavaScript-кода. Были выявлены характерные особенности шаблонов использования сериализованных объектов внутри клиентского JavaScript-кода и составлены уникальные классы, главной целью которых является облегчение ручного и автоматического анализа веб-приложений. Было разработано и реализовано инструментальное средство, выявляющее сериализованный объект в коде веб-страницы. Данный инструмент способен найти закодированные сериализованные объекты, а также сериализованные объекты, закодированные с помощью нескольких последовательно примененных кодировок. Для найденных экземпляров сериализованных объектов, инструмент определяет контекст, в котором находится найденный объект на странице. Для объектов, находящихся внутри JavaScript-кода, инструмент выявляет ранее упомянутые классы, при помощи сопоставления вершин абстрактного синтаксического дерева кода. После получения результатов исследования был проведен анализ серверных точек ввода данных на предмет десериализации  найденных программных объектов на стороне сервера. В результате данной проверки были найдены ранее неизвестные публично уязвимости, о которых было сообщено разработчикам данного программного обеспечения. Одна из них получила идентификатор CVE-2022-24108. По результатам проведенного исследования был предложен метод, позволяющий облегчить как ручной, так и автоматизированный поиск уязвимостей типа “Десериализация недоверенных данных”. Предложенный алгоритм был протестирован на страницах более чем 50000 веб-приложений из списка Alexa Top 1M, а также на страницах 20000 веб-приложений из программ Bug Bounty.

 

Об авторах

Денис Дмитриевич МИРОНОВ
ООО "СолидСофт"
Россия

Исследователь проблем безопасности



Даниил Алексеевич СИГАЛОВ
Московский государственный университет имени М.В. Ломоносова, ООО "СолидСофт"
Россия

Младший научный сотрудник лаборатории математических проблем компьютерной безопасности факультета ВМК МГУ, исследователь проблем безопасности в OOO «Солидсофт»



Максим Петрович МАЛЬКОВ
Московский государственный университет имени М.В. Ломоносова, ООО "СолидСофт"
Россия

Ведущий программист лаборатории математических проблем компьютерной безопасности факультета ВМК МГУ, исследователь безопасности в OOO «Солидсофт»



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

1. Nath K., Dhar S., Basishtha S. Web 1.0 to Web 3.0 - Evolution of the Web and its various challenges. In Proc. of the International Conference on Reliability Optimization and Information Technology (ICROIT), 2014, pp. 86-89.

2. Koutroumpouchos N., Lavdanis G. et al. ObjectMap: detecting insecure object deserialization. In Proc. of the 23rd Pan-Hellenic Conference on Informatics (PCI'19), 2019, pp/ 67-72.

3. Bach-Nutman M. Understanding The Top 10 OWASP Vulnerabilities. arXiv preprint arXiv:2012.09960, 2020, 4 p.

4. Shcherbakov M., Balliu M. SerialDetector: SerialDetector: Principled and Practical Exploration

5. of Object Injection Vulnerabilities for the Web. In Proc. of the Network and Distributed Systems Security (NDSS) Symposium, 2021, 18 p.

6. Sabatini A. Evaluating the Testability of Insecure Deserialization Vulnerabilities via Static Analysis. Tesi di Laurea Magistrale in Computer Science and Engineering. Politecnico Milano, 2022, 72 p.

7. Dahse J., Holz T. Simulation of Built-in PHP Features for Precise Static Code Analysis. In Proc. of the Network and Distributed System Security (NDSS) Symposium, 2014, 15 p.

8. PT Application Inspector. Available at: https://www.ptsecurity.com/ru-ru/products/ai/, accessed 02.04.2023.

9. Solar appScreener. Available at: https://rt-solar.ru/products/solar_appscreener/, accessed 02.04.2023.

10. Fortify Static Code Analyzer. Available at: https://www.microfocus.com/en-us/cyberres/application-security/static-code-analyzer, accessed 02.04.2023.

11. Checkmarx. Available at: https://checkmarx.com/, accessed 02.04.2023.

12. PT BlackBox Scanner. Available at: https://bbs.ptsecurity.com/, accessed 02.04.2023.

13. Acunetix. Available at: https://www.acunetix.com/, accessed 02.04.2023.

14. Burp Suite's web vulnerability scanner. Available at: https://portswigger.net/burp/vulnerability-scanner, accessed 02.04.2023.

15. HCL AppScan. Available at: https://www.hcltechsw.com/appscan, accessed 02.04.2023.

16. Detectify Web Application Scanning. Available at: https://detectify.com/product/application-scanning, accessed 02.04.2023.

17. Qualys Web Application Scanning. Available at: https://www.qualys.com/apps/web-app-scanning/, accessed 02.04.2023.

18. Esser S. Shocking News in PHP Exploitation. Slides of the Presentation at the Power of Community Conference (POC), 2009. Available at: https://www.suspekt.org/wp-content/uploads/2019/12/POC2009-ShockingNewsInPHPExploitation.pdf, accessed at 04.03.2023.

19. Esser S. Utilizing code reuse or return oriented programming in PHP applications. Slides of the Presentation at the BlackHat USA Conference, 2010. Available at: Available at: https://media.blackhat.com/bh-us-10/presentations/Esser/BlackHat-USA-2010-Esser-Utilizing-Code-Reuse-Or-Return-Oriented-Programming-In-PHP-Application-Exploits-slides.pdf, accessed at 04.03.2023.

20. Сигалов Д.А., Хашаев А.А., Гамаюнов Д.Ю. Обнаружение серверных точек взаимодействия в веб-приложениях на основе анализа клиентского JavaScript-кода. Прикладная дискретная математика вып. 53, 2021 г., стр. 32-54. / Sigalov D.A., Khashaev A.A., Gamayunov D.Yu. Detecting server-side endpoints in web applications based on static analysis of client-side JavaScript code. Prikladnaya Diskretnaya Matematika, issue 53, 2021, pp. 32-54 (in Russian).

21. Раздобаров А.В., Петухов А.А., Гамаюнов Д.Ю. Проблемы обнаружения уязвимостей в современных веб-приложениях. Проблемы информационной безопасности. Компьютерные системы, вып. 4, 2015 г., стр. 64-69. / Razdobarov A.V., Petukhov A.A., Gamayunov D.Yu. Problems overview for modern web applications vulnerabilities discovery. Information Security Problems. Computer Systems, issue 4, 2015, pp. 64-69 (in Russian).

22. Pradel M., Schuh P., Sen K. TypeDevil: Dynamic type inconsistency analysis for JavaScript. In Proc. of the IEEE/ACM 37th IEEE International Conference on Software Engineering, 2015, pp. 314-324.

23. Park C., Ryu S. Scalable and Precise Static Analysis of JavaScript Applications via Loop-Sensitivity. In Proc. of the 29th European Conference on Object-Oriented Programming (ECOOP), 2015, pp. 735-756.

24. Lin J., Sayagh M., Hassan A.E. The Co-evolution of the WordPress Platform and its Plugins. ACM Transactions on Software Engineering and Methodology, vol. 32, issue 1, 2023, article no. 19, 24 p.

25. Patel S.K., Rathod V.R., Prajapati J.B. Performance Analysis of Content Management

26. Systems - Joomla, Drupal and WordPress. International Journal of Computer Applications, vol. 21, issue 4, 2011, pp 39-43.

27. Walshe T., Simpson A. An Empirical Study of Bug Bounty Programs. In Proc. of the IEEE 2nd International Workshop on Intelligent Bug Fixing (IBF), 2020, pp. 35-44.


Рецензия

Для цитирования:


МИРОНОВ Д.Д., СИГАЛОВ Д.А., МАЛЬКОВ М.П. Исследование встречаемости небезопасно сериализованных программных объектов в клиентском коде веб–приложений. Труды Института системного программирования РАН. 2023;35(1):223-236. https://doi.org/10.15514/ISPRAS-2023-35(1)-14

For citation:


MIRONOV D.D., SIGALOV D.A., MALKOV M.P. Research into Occurrence of Insecurely-Serialized Objects in Client-Side Code of Web-Applications. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2023;35(1):223-236. (In Russ.) https://doi.org/10.15514/ISPRAS-2023-35(1)-14



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


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)