Hier finden Sie wissenschaftliche Publikationen aus den Fraunhofer-Instituten.

FlowTwist: Efficient context-sensitive inside-out taint analysis for large codebases

: Lerch, Johannes; Hermann, Ben; Bodden, Eric; Mezini, Mira


Association for Computing Machinery -ACM-; Association for Computing Machinery -ACM-, Special Interest Group on Software Engineering -SIGSOFT-:
22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2014. Proceedings : Held in Hong Kong between November 16 and November 21, 2014
New York: ACM, 2014
ISBN: 978-1-4503-3056-5
International Symposium on Foundations of Software Engineering (FSE) <22, 2014, Hong Kong>
Conference Paper
Fraunhofer SIT ()
taint analysis; confused deputy; IFDS

Over the past years, widely used platforms such as the Java Class Library have been under constant attack through vulnerabilities that involve a combination of two taint-analysis problems: an integrity problem allowing attackers to trigger sensitive operations within the platform, and a confidentiality problem allowing the attacker to retrieve sensitive information or pointers from the results of those operations. While existing static taint analyses are good at solving either of those problems, we show that they scale prohibitively badly when being applied to situations that require the exploitation of both an integrity and confidentiality problem in combination. The main problem is the huge attack surface of libraries such as the Java Class Library, which exposes thousands of methods potentially controllable by an attacker. In this work we thus present FlowTwist, a novel taint-analysis approach that works inside-out, i.e., tracks data flows from potentially vulnerable calls to the outer level of the API which the attacker might control. This inside-out analysis requires a careful, context-sensitive coordination of both a backward and a forward taint analysis. In this work, we expose a design of the analysis approach based on the IFDS algorithm, and explain several extensions to IFDS that enable not only this coordination but also a helpful reporting of error situations to security analysts. Experiments with the Java Class Library show that, while a simple forward taint-analysis approach does not scale even with much machine power, FlowTwist's algorithm is able to fully analyze the library within 10 minutes.