DocumentCode :
1366178
Title :
Automatic Detection of Unsafe Dynamic Component Loadings
Author :
Kwon, Taeho ; Su, Zhendong
Author_Institution :
Dept. of Comput. Sci., Univ. of California, Davis, Davis, CA, USA
Volume :
38
Issue :
2
fYear :
2012
Firstpage :
293
Lastpage :
313
Abstract :
Dynamic loading of software components (e.g., libraries or modules) is a widely used mechanism for an improved system modularity and flexibility. Correct component resolution is critical for reliable and secure software execution. However, programming mistakes may lead to unintended or even malicious components being resolved and loaded. In particular, dynamic loading can be hijacked by placing an arbitrary file with the specified name in a directory searched before resolving the target component. Although this issue has been known for quite some time, it was not considered serious because exploiting it requires access to the local file system on the vulnerable host. Recently, such vulnerabilities have started to receive considerable attention as their remote exploitation became realistic. It is now important to detect and fix these vulnerabilities. In this paper, we present the first automated technique to detect vulnerable and unsafe dynamic component loadings. Our analysis has two phases: 1) apply dynamic binary instrumentation to collect runtime information on component loading (online phase), and 2) analyze the collected information to detect vulnerable component loadings (offline phase). For evaluation, we implemented our technique to detect vulnerable and unsafe component loadings in popular software on Microsoft Windows and Linux. Our evaluation results show that unsafe component loading is prevalent in software on both OS platforms, and it is more severe on Microsoft Windows. In particular, our tool detected more than 4,000 unsafe component loadings in our evaluation, and some can lead to remote code execution on Microsoft Windows.
Keywords :
Linux; object-oriented programming; operating systems (computers); security of data; software libraries; software reliability; system monitoring; Linux; Microsoft Windows; OS platforms; arbitrary file; automated technique; automatic detection; component resolution; dynamic binary instrumentation; dynamic loading; file system; malicious components; remote code execution; remote exploitation; runtime information; software components; software execution; software libraries; software modules; system flexibility; system modularity; unsafe component loading; unsafe dynamic component loadings; vulnerable component loadings; vulnerable dynamic component loadings; vulnerable host; Image resolution; Instruments; Linux; Loading; Operating systems; Security; Unsafe component loading; dynamic analysis.;
fLanguage :
English
Journal_Title :
Software Engineering, IEEE Transactions on
Publisher :
ieee
ISSN :
0098-5589
Type :
jour
DOI :
10.1109/TSE.2011.108
Filename :
6065738
Link To Document :
بازگشت