Beweisbar sichere Programmausführung durch deklarativ definierte dynamische Programmanalysen (Kennwort: RUNSECURE)
Final Report Abstract
Moderne Softwaresysteme zeichnen sich nicht nur durch Ihre enorme Funktionalität aus, sondern auch durch Fehler und Schwachstellen, die die Sicherheit und Privatsphäre ihrer Nutzer und ihrer Daten gefährden. In den vergangenen Jahren hat die Forschung große Fortschritte in der statischen Vorab-Analyse solcher Systeme gemacht - Fortschritte, die es erlauben, viele Fehler bereits vor dem Einsatz der Software zu erkennen und beheben, jedoch gelangen immer noch vielerlei Softwareschwachstellen unentdeckt in produktive Softwaresysteme. Ziel des Projekts RUNSECURE war es daher, Methoden, Techniken und Werkzeuge zu entwickeln, mit denen Angriffs- und Fehlersituationen nicht nur vorzeitig sondern auch zur Programmlaufzeit zuverlässig und effizient erkannt, und gleichzeitig Gegenmaßnahmen ergriffen werden können. Hierzu sollten Methoden der statischen und dynamischen Programmanalyse weiterentwickelt und miteinander integriert werden, um eine zuverlässige Erkennung von Schwachstellen spätestens zur Programmlaufzeit zu gewährleisten. Im Rahmen des Projekts entstanden mehr als ein Dutzend international begutachtete Publikationen, viele davon auf Top Venues der Softwaretechnik. Kernergebnisse des Projekts umfassen effiziente und präzise Programmanalysen wie beispielsweise das weltweit bekannte Android App-Analysewerkzeug FlowDroid, seine Erweiterung ICCTA um Inter-Component-Analyse sowie der Ansatz SPLlift, der im Bereich der Analyse von Softwareproduktlinien neue Maßstäbe setzte. Mehrere Publikationen im Kontext des Projekts erhielten einen ACM Distinguished Paper Award. Im breiteren Kontext des Projekts sind sechs Dissertationen entstanden, von denen drei den Ernst Denert Preis für Software Engineering der GI gewonnen haben. Meldungen über die Schwachstellen, über die berichtet wurde, schafften es in die weltweite Presse, und auch die FAZ veröffentlichte während der Projektlaufzeit ein Interview mit dem Projektleiter zu seiner Forschung. Die im Projekt entwickelten Softwarewerkzeuge wurden ständig weiter entwickelt. Manche von ihnen, insbesondere FlowDroid, haben sich heute zum de-facto Standard entwickelt und sind sogar im produktiven Einsatz bei weltweit führenden Konzernen. Eine Entwicklung, die im Rahmen des Projekts im Nachhinein überraschte war, dass man wohl doch bereits mit statischer Analyse allein erheblich höhere Präzision und Skalierbarkeit erreichen kann als ursprünglich gedacht. Wie sich durch Arbeiten des Projektteams zeigte, waren die zu Projektbeginn bekannten Techniken noch lange nicht ausgereizt. Aktuelle statische Programmanalysen sind um Größenordnungen effektiver als noch vor fünf Jahren, was ihre Popularität bei den designierten Nutzern - vor allem Softwareentwicklern - stetig gesteigert hat.
Publications
- How useful are existing monitoring languages for securing android apps? In ATPS, volume P-215 of GI Lecture Notes in Informatics, pages 107–122. Gesellschaft für Informatik, 2013
Steven Arzt, Kevin Falzon, Andreas Follner, Siegfried Rasthofer, Eric Bodden, and Volker Stolz
- DroidForce: Enforcing complex, data-centric, system-wide policies in android. In International Conference on Availability, Reliability and Security (ARES 2014), pages 40–49. IEEE, September 2014
Steven Arzt, Siegfried Rasthofer, Enrico Lovat, and Eric Bodden
(See online at https://doi.org/10.1109/ARES.2014.13) - FlowDroid: Precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for android apps. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’14, pages 259–269, New York, NY, USA, 2014. ACM
Steven Arzt, Siegfried Rasthofer, Christian Fritz, Eric Bodden, Alexandre Bartel, Jacques Klein, Yves Le Traon, Damien Octeau, and Patrick McDaniel
(See online at https://doi.org/10.1145/2666356.2594299) - Flowtwist: Efficient context-sensitive inside-out taint analysis for large codebases. In Proceedings of the 22Nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2014, pages 98–108. ACM, 2014
Johannes Lerch, Ben Hermann, Eric Bodden, and Mira Mezini
(See online at https://doi.org/10.1145/2635868.2635878) - Join point interfaces for safe and flexible decoupling of aspects. ACM Trans. Softw. Eng. Methodol., 23(1):7:1–7:41, February 2014
Eric Bodden, Éric Tanter, and Milton Inostroza
(See online at https://doi.org/10.1145/2559933) - Tracking load-time configuration options. In IE-EE/ACM International Conference on Automated Software Engineering (ASE 2014), pages 445– 456, September 2014
Max Lillack, Christian Kästner, and Eric Bodden
(See online at https://doi.org/10.1109/TSE.2017.2756048) - Access-path abstraction: Scaling field-sensitive data-flow analysis with unbounded access paths. In IEEE/ACM International Conference on Automated Software Engineering (ASE 2015), pages 619–629, November 2015
Johannes Lerch, Johannes Späth, Eric Bodden, and Mira Mezini
(See online at https://doi.org/10.1109/ASE.2015.9) - Iccta: Detecting intercomponent privacy leaks in android apps. In 2015 International Conference on Software Engineering (ICSE), pages 280–291, 2015
Li Li, Alexandre Bartel, Tegawende F. Bissyande, Jacques Klein, Yves Le Traon, Steven Arzt, Siegfried Rasthofer, Eric Bodden, Damien Octeau, and Patrick McDaniel
(See online at https://doi.org/10.1109/ICSE.2015.48) - jäk: Using dynamic analysis to crawl and test modern web applications. In Research in Attacks, Intrusions, and Defenses (RAID), Lecture Notes in Computer Science, pages 295–316. Springer International Publishing, 2015
Giancarlo Pellegrino, Constantin Tschürtz, Eric Bodden, and Christian Rossow
(See online at https://doi.org/10.1007/978-3-319-26362-5_14) - Tracking load-time configuration options. IEEE Transactions on Software Engineering, PP(99):1–1, 2017
M. Lillack, C. Kästner, and E. Bodden
(See online at https://doi.org/10.1109/TSE.2017.2756048) - CrySL: An Extensible Approach to Validating the Correct Usage of Cryptographic APIs. In European Conference on Object-Oriented Programming (ECOOP), pages 10:1–10:27, 2018
Stefan Krüger, Johannes Späth, Karim Ali, Eric Bodden, and Mira Mezini
(See online at https://doi.org/10.4230/LIPIcs.ECOOP.2018.10) - Crysl: An extensible approach to validating the correct usage of cryptographic apis. IEEE Transactions on Software Engineering, pages 1–1, 2019
Stefan Krüger, Johannes Späth, Karim Ali, Eric Bodden, and Mira Mezini
(See online at https://doi.org/10.1109/TSE.2019.2948910)