• 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