Font Size: a A A

Research On Component Security Testing Theories And Technologies Based On Fault Injection

Posted on:2010-10-15Degree:DoctorType:Dissertation
Country:ChinaCandidate:J F ChenFull Text:PDF
GTID:1118360275986797Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
Component-Based Software Engineering (CBSE) has been the research focus in the field of software engineering at present. All kinds of new component development technologies are aimed to enhance the efficiency of component development and performance. However, problems with the component reliability and security have not yet been solved. Testing the component and component system is an important process which guarantees and enhances system correctness, reliability and security. Current component testing approaches are focused on component functionality testing, which, to some extent, ensures the correctness and integrity of component functionality. To the best of our knowledge, component security testing is rarely researched as a special subject, and we have no some feasible approaches or technologies in detecting component security vulnerabilities. Presently, there are few testing approaches on security testing, which are mainly derived from traditional software testing approaches. However, software security testing technologies themselves are not yet mature, since most components source codes are unavailable and the components are extremely independent, which challenges the security testing of components, especially third-party components. A fault injection model of component security was proposed based on fault injection technology, and then testing approach of component security based on interface fault injection and chemical abstract machine were also proposed. lastly, a testing tool of component security was designed and Implemented.As a testing technology, fault injection technology is that faults are purposely generated according to the specific fault model, and then are imposed on the tested system to accelerate the system's errors and failures occurred. The tester observes the feedback information after faults are injected into the system. The component security vulnerability is usually small probability failure. It has a certain fault model, and is usually related to environment. Given the characteristics of component security vulnerabilities, the fault injection model should firstly be created in component security testing, and then faults are injected into the tested component according to model and algorithm to accelerate the component vulnerabilities occurred. This paper proposes a FIM (fault injection model) of component security testing, and then specifies some related definitions of FIM model and its matrix specification. A TGSM (test-cases generating based on solution matrix) algorithm of fault injection for component security is proposed based on FIM. The algorithm TGSM generates solution matrix that meets K factors coverage according to the matrix form of FIM model. All rows data of the solution matrix compose the fault injection test-cases. The approach which generates the fault injection test-cases of 3 factors coverage is effective. It can trigger the vast majority of the security exceptions by using the appropriate test-cases. FIM is effective and operable.As the majority of component security vulnerabilities are caused by the invalid and super-long input parameters, a testing approach of component security was proposed based on interface fault injection. The fault injection operators of component vulnerability, predication rules and vulnerability factor were firstly presented and then a testing algorithm of component security was proposed based on fault injection operators and predication rules. The algorithm generates test-cases according to fault injection operators. The testing process and exceptional information could be monitored and recorded by dynamic monitoring mechanism after running tested component. The testing report and component security level could be obtained by testing algorithm. Lastly, some experiments were done in an integration testing platform to verify the applicability of proposed approach. The experimental results show that the approach is effective and operable.A testing approach of component security was proposed based on chemical abstract machine for detecting explicit and implicit component security vulnerability. The extended chemical abstract machine (eCHAM) model of component was firstly presented and then state transfer tree and testing sequence of component were generated based on eCHAM model. It can help to test component explicit exception according to testing approach of interface fault injection. In addition, condition mutation algorithm and state mutation algorithm for detecting component implicit security exception were proposed. The vulnerability testing report could be obtained according to testing results. The experimental results show that the approach is effective and operable. It not only can detect component explicit security exception, but also can detect component implicit security exception.The automatic testing tools of component security bring great effect on component-based software engineering, and they can effectively ensure the security and reliability of component-based software. A general testing framework of component security is presented for different components with different standard, and then aiming at the third-party Microsoft COM component used widespread, a prototype tool called CSTS (Component Security Testing System) is designed and implemented. It can employ two levels' testing for component security, namely (1) static testing, (2) dynamic testing. In the static testing level, CSTS firstly analyzes component type information such component objects, methods and parameters etc., and injects faults into interface method through parameter numbers, parameter sequence, parameter scope and parameter type for testing component. In the dynamic testing level, the tested component is firstly droved, and then the environment faults including memory fault, file system fault and registration fault etc. are injected into the tested component. Dynamic monitoring mechanism can monitor the component's runtime information after injecting the faults. CSTS can analyze the component exceptions by monitoring log file. The CSTS has high automation, good maneuverability and better testing ability.
Keywords/Search Tags:Component testing, Component security, Fault injection, Interface fault injection, Chemical abstract machine, Testing sequence, Mutation testing, Testing tool
PDF Full Text Request
Related items