Detecting and Analyzing Insecure Component Usage∗
Detecting and Analyzing Insecure Component Usage∗ Taeho Kwon Zhendong Su University of California, Davis {kwon,su}@cs.ucdavis.edu ABSTRACT Categories and Subject Descriptors Software is commonly built from reusable components that provide D.2.5 [Software Engineering]: Testing and Debugging—Testing desired functionalities. Although component reuse significantly tools improves software productivity, insecure component usage can lead to security vulnerabilities in client applications. For example, we General Terms noticed that widely-used IE-based browsers, such as IE Tab, do not Reliability, Security enable important security features that IE enables by default, even though they all use the same browser components. This insecure Keywords usage renders these IE-based browsers vulnerable to the attacks Insecure Component Usage, Differential Testing, Testing and Anal- blocked by IE. To our knowledge, this important security aspect of ysis of Real-world Software component reuse has largely been unexplored. This paper presents the first practical framework for detecting and 1. INTRODUCTION analyzing vulnerabilities of insecure component usage. Its goal is to Component-based development has been a major paradigm for enforce and support secure component reuse. Our core approach is engineering software. In particular, a client application can perform based on differential testing and works as follows. Suppose that com- desired functionalities by invoking interface calls of a component. ponent C maintains a security policy configuration to block certain This paradigm allows better code reuse and makes software develop- malicious behavior. If two clients of component C, say a reference ment more productive. For example, Trident [47], a browser layout and a test subject, handle the malicious behavior inconsistently, the engine developed by Microsoft, has been used in IE and many other test subject uses C insecurely.
[Show full text]