Font Size: a A A

Detection And Repair Of Sensitive Codes For Linux Device Drivers

Posted on:2017-04-07Degree:MasterType:Thesis
Country:ChinaCandidate:P MaFull Text:PDF
GTID:2308330482487218Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
With the highly development of global information and continuously improvement of the computer science and technology, as Linux operating system is a free, open source, stable, high-performance system, it received widely attention and application. Device drivers are important part of Linux system, these are special procedures that can enable computers and devices to communicating, and occupy a large proportion of kernel codes. As the communication bridge between master and peripheral device, there is no doubt that the device drivers will be directly affected by hardware failure. In Linux system, device driver is one of the major root causes of system security. Particularly, hardware device can fail, but many drivers assume they do not. When confronted with real devices that misbehave, these assumptions can lead to driver or system failures. Hence we analyze driver source codes to find locations where the driver incorrectly trusts the hardware to behave. With the aid of existing repair technology, we can repair sensitive codes effectively. In short, we can achieve the goal to improve the safety and reliability of operating system.First, base on the analysis of Linux kernel architecture and device driver hierarchy, hardware transient fault, characteristics of sensitive codes, communication mechanism between drivers, kernel and device are discussed by this essay, a basic method for detecting and repairing device driver sensitive codes is proposed. Then, this paper explores the prototype of design and implementation. The prototype is to let driver source codes can be automatic analyzed and sensitive codes is detected, blot analysis technique is used in verifying device data to ensure the validity of the data used by device drivers. Meanwhile, fault detection and repair modules are specific analyzed. Automatic analysis process model is implemented, not only can it analyze all type of tainted variables, but also can identify each driver sensitive codes. Core detection method is tracing variables which are modified by I/O operation functions, and mark these variables when these are used in cycling conditions or array index. Manual way to repair fault is inserting appropriate repair codes in the position of sensitive. To support administrative management of hardware failures, we use printk to write to the system log, as Linux does not have a failure monitoring service. Finally, to verify the detection and repair results, fault injection technology and hardware fault simulation are researched. The experimental results show that the method of detection and repair of sensitive codes can improve the reliability of drivers, these can provide evidence for strengthening the system kernel. Next, we can research more type of sensitive codes and automatically repair modus which are related to hardware transient fault.
Keywords/Search Tags:Device Driver, Reliability, Sensitive Codes, Hardware Device, Fault Detection, Fault Repairing
PDF Full Text Request
Related items