DocumentCode :
2524384
Title :
Static Information Flow Analysis with Handling of Implicit Flows and a Study on Effects of Implicit Flows vs Explicit Flows
Author :
Liu, Yin ; Milanova, Ana
Author_Institution :
Dept. of Comput. Sci., Rensselaer Polytech. Inst., Troy, NY, USA
fYear :
2010
fDate :
15-18 March 2010
Firstpage :
146
Lastpage :
155
Abstract :
Reasoning about information flow can help software engineering. Static information flow inference analysis is a technique which automatically infers information flows based on data or control dependence. It can be utilized for the purposes of general program understanding, detection of security attacks and security vulnerabilities, and type inference for security type systems. This paper proposes a new static information flow inference analysis, which unlike most other information flow analyses, handles both explicit and implicit information flows. The analysis does not require annotations and it is relatively precise and practical. We illustrate the usage of the static information flow analysis on three applications. The first application of information flow analysis is security violation detection. We perform experiments on a set of Java web applications and the experiments show that our analysis effectively detects security violations. The second application is type inference. Our experiments on the Java web applications successfully infer security types. The last application studies the effect of thread-shared variables on thread-local variables. Our experiments on a set of multi-thread programs show that most of the thread-local variables are affected by the thread-shared variables. We study the impact of implicit flow versus explicit flow in these applications. Implicit flow has significant impact on all these applications. In security violation detection, implicit flow detects more security violations than explicit flow. In type inference, implicit flow infers more untrusted type variables. In the study of the effect of thread-shared variables, implicit flow detects more affected variables than explicit flow.
Keywords :
Internet; Java; data flow analysis; multi-threading; reasoning about programs; security of data; software engineering; type theory; Java Web application; control dependence; data dependence; explicit flow; implicit flow; multihread program; security attack; security type system; security violation detection; security vulnerability; software engineering; static information flow analysis; thread local variable; thread shared variable; type inference analysis; Context; Instruction sets; Java; Joining processes; Runtime; Security; Web pages; automatic inference; information flow; security vulnerability; type inference;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Software Maintenance and Reengineering (CSMR), 2010 14th European Conference on
Conference_Location :
Madrid
ISSN :
1534-5351
Print_ISBN :
978-1-61284-369-8
Electronic_ISBN :
1534-5351
Type :
conf
DOI :
10.1109/CSMR.2010.26
Filename :
5714429
Link To Document :
بازگشت