? Untrusted Hardware Causes Double-fetch Problems in the I/O Memory
Journal of Computer Science and Technology
Quick Search in JCST
 Advanced Search 
      Home | PrePrint | SiteMap | Contact Us | FAQ
 
Indexed by   SCIE, EI ...
Bimonthly    Since 1986
Journal of Computer Science and Technology 2018, Vol. 33 Issue (3) :587-602    DOI: 10.1007/s11390-018-1842-3
Regular Paper Current Issue | Archive | Adv Search << Previous Articles | Next Articles >>
Untrusted Hardware Causes Double-fetch Problems in the I/O Memory
Kai Lu1,2,3, Member, CCF, Peng-Fei Wang1,*, Member, CCF, Gen Li1, Xu Zhou1, Member, CCF
1 College of Computer, National University of Defense Technology, Changsha 410073, China;
2 Science and Technology on Parallel and Distributed Processing Laboratory, National University of Defense Technology Changsha 410073, China;
3 Collaborative Innovation Center of High-Performance Computing, National University of Defense Technology Changsha 410073, China

Abstract
Reference
Related Articles
Download: [PDF 1460KB]     Export: BibTeX or EndNote (RIS)  
Abstract The double fetch problem occurs when the data is maliciously changed between two kernel reads of supposedly the same data, which can cause serious security problems in the kernel. Previous research focused on the double fetches between the kernel and user applications. In this paper, we present the first dedicated study of the double fetch problem between the kernel and peripheral devices (aka. The Hardware Double Fetch). Operating systems communicate with peripheral devices by reading from and writing to the device mapped I/O (Input and Output) memory, and due to the lack of effective validation of the attached hardware, compromised hardware could flip the data between two reads of the same I/O memory address, causing a double fetch problem. We proposed a static pattern-matching approach to identify the hardware double fetches from the Linux kernel. Our approach can analyze the entire kernel without relying on the corresponding hardware. The results were categorized and each category was analyzed using case studies to discuss the possibility of causing bugs. We also found 4 double-fetch vulnerabilities, which have been confirmed and fixed by the maintainers as a result of our report.
Articles by authors
KeywordsHardware Double Fetches   Double-fetch Bugs   I/O Memory   Peripheral Devices   Double-fetch Vulnerabilities     
Received 2017-07-01;
Fund:

The work is supported by the National Key Research and Development Program of China under Grant No. 2016YFB0200401.

Corresponding Authors: Peng-Fei Wang     Email: pfwang@nudt.edu.cn
About author: Kai Lu received his B.S. degree and Ph.D. degree in 1995 and 1999, respectively, both in computer science and technology, from the College of Computer, National University of Defense Technology, Changsha. He is now a professor in the College of Computer, National University of Defense Technology, Changsha. His research interests include operating systems, parallel computing, and security.
Cite this article:   
Kai Lu, Peng-Fei Wang, Gen Li, Xu Zhou.Untrusted Hardware Causes Double-fetch Problems in the I/O Memory[J]  Journal of Computer Science and Technology, 2018,V33(3): 587-602
URL:  
http://jcst.ict.ac.cn:8080/jcst/EN/10.1007/s11390-018-1842-3
Copyright 2010 by Journal of Computer Science and Technology