Static Information Flow Analysis with Handling of Implicit Flows and a Study on Effects of Implicit Flows vs Explicit Flows

Static Information Flow Analysis with Handling of Implicit Flows and a Study on Effects of Implicit Flows vs Explicit Flows
复制标题

处理隐式流的静态信息流分析以及隐式流与显式流的影响研究

DOI:
--
复制
发表时间:
2010
期刊:
European Conference on Software Maintenance and Reengineering
影响因子:
--
通讯作者:
Ana L. Milanova
Ana L. Milanova
中科院分区:
--
文献类型:
--
作者:
Yin Liu;Ana L. Milanova

文献摘要

被引文献

相似文献

关于信息流的推理可以帮助软件工程。静态信息流推理分析是一种根据数据或控制依赖自动推断信息流的技术。它可用于一般程序理解、安全攻击和安全漏洞检测以及安全类型系统的类型推断。本文提出了一种新的静态信息流推理分析,与大多数其他信息流分析不同,它可以处理显式和隐式信息流。分析不需要注释,比较精确、实用。我们说明了静态信息流分析在三个应用程序中的用法。信息流分析的第一个应用是安全违规检测。我们对一组 Java Web 应用程序进行了实验,实验表明我们的分析可以有效地检测安全违规行为。第二个应用是类型推断。我们在 Java Web 应用程序上的实验成功推断了安全类型。最后一个应用程序研究了线程共享变量对线程局部变量的影响。我们对一组多线程程序的实验表明,大多数线程局部变量都受到线程共享变量的影响。我们研究了这些应用程序中隐式流与显式流的影响。隐式流对所有这些应用程序都有重大影响。在安全违规检测中,隐式流比显式流检测到更多的安全违规。在类型推断中,隐式流推断出更多不受信任的类型变量。在研究线程共享变量的影响时,隐式流比显式流检测到更多受影响的变量。
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.