Affiliation:
1. Columbia University, New York, NY, USA
Abstract
Dynamic taint analysis is a well-known information flow analysis problem with many possible applications. Taint tracking allows for analysis of application data flow by assigning labels to data, and then propagating those labels through data flow. Taint tracking systems traditionally compromise among performance, precision, soundness, and portability. Performance can be critical, as these systems are often intended to be deployed to production environments, and hence must have low overhead. To be deployed in security-conscious settings, taint tracking must also be sound and precise. Dynamic taint tracking must be portable in order to be easily deployed and adopted for real world purposes, without requiring recompilation of the operating system or language interpreter, and without requiring access to application source code.
We present
Phosphor
, a dynamic taint tracking system for the Java Virtual Machine (JVM) that simultaneously achieves our goals of performance, soundness, precision, and portability. Moreover, to our knowledge, it is the first portable general purpose taint tracking system for the JVM. We evaluated
Phosphor
's performance on two commonly used JVM languages (Java and Scala), on two successive revisions of two commonly used JVMs (Oracle's HotSpot and OpenJDK's IcedTea) and on Android's Dalvik Virtual Machine, finding its performance to be impressive: as low as 3% (53% on average; 220% at worst) using the DaCapo macro benchmark suite. This paper describes our approach toward achieving portable taint tracking in the JVM.
Funder
Division of Computing and Communication Foundations
Division of Computer and Network Systems
National Institutes of Health
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference43 articles.
1. Apache Software Foundation. Apache harmony - open source java platform. http://harmony.apache.org. Apache Software Foundation. Apache harmony - open source java platform. http://harmony.apache.org.
2. FlowDroid
3. Towards a system-wide and transparent security mechanism using language-level information flow control
4. J. Bell and G. Kaiser. Phosphor: Dynamic taint tracking for the jvm. https://github.com/Programming-Systems-Lab/phosphor. J. Bell and G. Kaiser. Phosphor: Dynamic taint tracking for the jvm. https://github.com/Programming-Systems-Lab/phosphor.
5. The DaCapo benchmarks
Cited by
14 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Accelerating High-Precision Vulnerability Detection in C Programs with Parallel Graph Summarization;2023 6th International Conference on Software Engineering and Computer Science (CSECS);2023-12-22
2. ConfTainter: Static Taint Analysis For Configuration Options;2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE);2023-09-11
3. ωTest: WebView-Oriented Testing for Android Applications;Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis;2023-07-12
4. Analysing the Impact of Workloads on Modeling the Performance of Configurable Software Systems;2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE);2023-05
5. Coverage-Based Debloating for Java Bytecode;ACM Transactions on Software Engineering and Methodology;2023-04-04