Font Size: a A A

Research About Distributed Software Fault Injection And Software Vulnerabilities Identifying

Posted on:2008-12-14Degree:DoctorType:Dissertation
Country:ChinaCandidate:A G LiFull Text:PDF
GTID:1118360245497386Subject:Computer application technology
Abstract/Summary:PDF Full Text Request
Computer systems are used nowadays in an increasing number of applicationsthat require high levels of dependability. In some cases our lives depend on them,such as in traffic control, medical life support, or nuclear power station managementapplications. In other cases, such as banking, telecommunications and aerospace,failures can cause tremendous economic losses. Another novel area where depend-ability is increasingly important is high performance parallel computing. Parallelcomputers are used to run computation intensive applications such as fundamentalphysics/chemistry, and airplane/vehicle modeling, during large periods of time. De-pendability is important to enable those long runs in spite of the increased probabilityof fault occurrence caused by the larger number of electronic components in parallelcomputers. Especially, computer systems operating in space environment are subjectto different radiation phenomena,whose effects can be permanent or transient. Andthese effects may lead to all kinds of faults/errors.Generally, a dependable computer should be able to detect software or hard-ware errors, locate their origin, and recover from those errors by using some kind offault tolerance mechanisms. One important problem is how to evaluate and validatethe effectiveness of the fault tolerance mechanisms embedded in these systems be-fore production in order to correct defects and/or provide feedback for improvements.Furthermore, if the efficiency of the fault tolerance mechanisms is taken into account,the other important problem is where to place and how to place these mechanisms inorder to make the most use of them. These demands ask for an effective method andtool to validate the fault tolerance mechanisms.The validation of the dependability properties of a computer system is an intrin-sically complex task. The use of analytical modeling in actual systems is very difficultas the mechanisms involved in the fault activation and also in the error propagationprocess are highly complex; they are not completely understood in most cases. Ex-perimental evaluation by fault injection has become an attractive way of validating thedependability of system, which introduces some faults into target system artificially inorder to speed the occurrence of fault or failure in the system and can get the validation result of dependability and fault tolerance capability of the system through monitoringand analogizing the info gotten from the injected target system. Compared to othermethods, fault injection has the main advantage that the wide scope of application ,high result precision and much less time consuming, and attract the attention of moreand more scholars and researchers.In this paper, the basic principle and method about fault injection are investigatedfirstly; then the fault models are designed according to the characteristic of space;thirdly, a distributed framework of the fault injection tool is proposed, furthermore, itis also developed and implemented on Linux operating system. Validated by the ex-periments, this tool can not only inject many types of fault in the distributed systems,but in a single computer. On the other hand, it also have power abilities to collect thedata generated in experiment and primely multi-platforms and expansibility. This toolestablishes some foundation for study the dependability of distributed system later.Base on the fault injection tool, we study and characterize the error propagationprocess in software from the modular and signal level each, and define a set of metricsthat quantitatively represent the inter-modular software interactions and their calculatemethods. In this process, the modula leak rate and activation rate are first proposed.As a result, the concept and the principles of confirming software vulnerabilities areproposed. Furthermore, we use a real embedded target system used in a navigation-pose control system of a satellite to perform fault-injection experiments to validate thecorrectness and effectiveness of this framework. The work provides theory founda-tion from the design aspect for how to decrease the error propagation among modulesin software system, simultaneously, gives the method of how to testing the depend-ability of software system and shows the ground of how to place the fault tolerancemechanisms in order to make the most use of them.After the software vulnerabilities have been found, the next problem is how toharden them. According to the strong radiation characteristic of space environment,we propose two on-line harden methods of software from control-?ow and data-?owrespectively.The control-?ow harden technique proposed is called RSCFC(Relationship Sig-natures for Control Flow Checking) that assigns a relationship signature and insertssome special assertions to each basic block to detect control ?ow faults through ANDoperation between the run-time signature and the basic block's location info. A fault injection experiment was performed with several C benchmark programs. The resultsuggests that about 20.7~68.8% of the injected branching faults produced unde-tected incorrect outputs without RSCFC; however,with RSCFC, the above numberdeclines to 2.8~20.4%.The data-?ow harden method SBC(Single Bit Correction), a software-based ap-proach for soft error correction, is put forward. The technique is based on the codingand decoding of variables in programs to detect and correct the errors in them. Resultsissued from fault injection experiments suggests that the method can decline the unde-tected incorrect output from the original programs's 27%~49% to 0.01%~0.02%for programs's data section faults, with almost 100% correction rate; furthermore, forstack section faults, the undetected incorrect output is decreased from 10%~70% to1%~3%, with more than 82% correction rate. Compared with previous techniques,the SBC method has the characteristics of both easy implementation and low memoryoverhead with a very high fault detection and correction capability.In the software implementation, we integrated the fault injection tool, error prop-agation framework and software vulnerability identifying into one platform, generallycalled SoftwAre Vulnerabilities Identifying Environment (SAVIE). In the last of thisdissertation, a detailed description on the design and implementation of SAVIE isgiven, including the system structure, the function of each module, work progress andmethods et.ec.
Keywords/Search Tags:Distributed Fault Injection, Error Propagation, Software Vulnerabilities, On-line Harden, Control-?ow Checking
PDF Full Text Request
Related items