Abstract
It is hard to understand clearly the principle of DirtyCOW vulnerability of Linux operating system, even for many experienced kernel developers. An approach is presented to rebuild the design model of the related Linux system calls, which gives an insight into the vulnerability. The remodeling, i.e. model-rebuilding, is done by first constructing a control flow diagram based on the debugging and analysis of the OS kernel, and then turning the control flow diagram to an abstract program based on abstraction to the observed concrete states. The approach provides an effective way for the comprehension of complex legacy software.
Supported by National Key Research and Development Program of China (No. 2017YFB1001802 and 2018YFB0204301).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
The function __get_user_pages calls follow_page_pte only once, therefore the events in Line 13, 21, 40, 48 correspond to the same control point. The multiple occurrences of faultin_page are similar.
- 2.
“}mmap" means the event “Function mmap() ends".
- 3.
In different tests, the virtual address may vary, and the addresses of other kernel objects may also be different with those in this paper.
- 4.
This is page frame number, and the corresponding physical address is 0x66c3000.
References
Alam, D., Zaman, M., Farah, T., Rahman, R., Hosain, M.S.: Study of the Dirty Copy on write, a Linux kernel memory allocation vulnerability. In: 2017 International Conference on Consumer Electronics and Devices (ICCED), pp. 40–45, July 2017. https://doi.org/10.1109/ICCED.2017.8019988
Cornelissen, B., Zaidman, A., Deursen, A.V., Moonen, L., Koschke, R.: A systematic survey of program comprehension through dynamic analysis. IEEE Trans. Softw. Eng. 35(5), 684–702 (2009)
CVE-2016-5195. https://dirtycow.ninja
Garde, S., Knaup, P., Herold, R.: Qumquad: a UML-based approach for remodeling of legacy systems in health care. Int. J. Med. Inf. 70(2–3), 183–194 (2003)
Github: Dirty COW and why lying is bad even if you are the linux kernel. https://chao-tic.github.io/blog/2017/05/24/dirty-cow
Kai, K., Mössenböck, H.: Scene: using scenario diagrams and active text for illustrating object-oriented programs. In: International Conference on Software Engineering (1996)
Mayrhauser, A.V., Vans, A.M.: Program comprehension during software maintenance and evolution. Computer 28(8), 44–55 (1995)
Saleel, A.P., Nazeer, M., Beheshti, B.D.: Linux kernel OS local root exploit. In: 2017 IEEE Long Island Systems, Applications and Technology Conference (LISAT). IEEE (2017)
Yan, H., Garlan, D., Schmerl, B.R., Aldrich, J., Kazman, R.: Discotect: a system for discovering architectures from running systems. In: International Conference on Software Engineering (2004)
ZDNet: The Dirty Cow Linux bug: a silly name for a serious problem. https://www.zdnet.com/article/the-dirty-cow-linux-security-bug-moos/
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Wen, Y., Wang, J. (2020). Analysis and Remodeling of the DirtyCOW Vulnerability by Debugging and Abstraction. In: Miao, H., Tian, C., Liu, S., Duan, Z. (eds) Structured Object-Oriented Formal Language and Method. SOFL+MSVL 2019. Lecture Notes in Computer Science(), vol 12028. Springer, Cham. https://doi.org/10.1007/978-3-030-41418-4_1
Download citation
DOI: https://doi.org/10.1007/978-3-030-41418-4_1
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-41417-7
Online ISBN: 978-3-030-41418-4
eBook Packages: Computer ScienceComputer Science (R0)