Lossless, Persisted Summarization of Static Callgraph, Points-To and Data-Flow Analysis - Schubert, Philipp; Hermann, Ben; Bodden, Eric (European Conference on Object-Oriented Programming (ECOOP))
Static analysis is used to automatically detect bugs and security breaches, and aids compileroptimization. Whole-program analysis (WPA) can yield high precision, however causes long analysistimes and thus does not match common software-development workflows, making it often impracticalto use for large, real-world applications.This paper thus presents the design and implementation ofModAlyzer, a novel static-analysisapproach that aims at accelerating whole-program analysis by making the analysis modular andcompositional. It shows how to computelossless, persisted summaries for callgraph, points-to anddata-flow information, and it reports under which circumstances this function-level compositionalanalysis outperforms WPA.We implementedModAlyzeras an extension to LLVM and PhASAR, and applied it to 12 real-world C and C++ applications. At analysis time,ModAlyzermodularly and losslessly summarizesthe analysis effect of the library code those applications share, hence avoiding its repeated re-analysis.The experimental results show that the reuse of these summaries can save, on average, 72% ofanalysis time over WPA. Moreover, because it is lossless, the module-wise analysis fully retainsprecision and recall. Surprisingly, as our results show, it sometimes even yields precision superior toWPA. The initial summary generation, on average, takes about 3.67 times as long as WPA.

Identifying Challenges for OSS Vulnerability Scanners - A Study & Test Suite - Dann, Andreas Peter; Plate, Henrik; Hermann, Ben; Ponta, Serena Elisa; Bodden, Eric (IEEE Transactions on Software Engineering)
Keywords: Software

SecuCheck: Engineering configurable taint analysis for software developers - Piskachev, Goran; Krishnamurthy, Ranjith; Bodden, Eric (2021 IEEE 21st International Working Conference on Source Code Analysis and Manipulation (SCAM))

IDE Support for Cloud-Based Static Analyses - Luo, Linghui; Schäf, Martin; Sanchez, Daniel; Bodden, Eric (Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering)

SootFX: A Static Code Feature Extraction Tool for Java and Android - Karakaya, Kadiray; Bodden, Eric (2021 IEEE 21st International Working Conference on Source Code Analysis and Manipulation (SCAM))

Into the Woods: Experiences from Building a Dataflow Analysis Framework for C/C++ - Schubert, Philipp; Hermann, Ben; Bodden, Eric; Leer, Richard (SCAM '21: IEEE International Working Conference on Source Code Analysis and Manipulation (Engineering Track))

Modeling the Effects of Global Variables in Data-Flow Analysis for C/C++ - Schubert, Philipp; Sattler, Florian; Schiebel, Fabian; Hermann, Ben; Bodden, Eric (2021 IEEE 21st International Working Conference on Source Code Analysis and Manipulation (SCAM))

A systematic literature review of model-driven security engineering for cyber–physical systems - Geismann, Johannes; Bodden, Eric (Journal of Systems and Software)

Explaining Static Analysis with Rule Graphs - Nguyen Quang Do, Lisa; Bodden, Eric (IEEE Transactions on Software Engineering)

PASAPTO: Policy-aware Security and Performance Trade-off Analysis - Computation on Encrypted Data with Restricted Leakage - Fischer, Andreas; Janneck, Jonas; Kussmaul, Jörn; Krätzschmar, Nikolas; Kerschbaum, Florian; Bodden, Eric (2020 IEEE Computer Security Foundations Symposium (CSF))

Heaps'n Leaks: How Heap Snapshots Improve Android Taint Analysis - Benz, Manuel; Krogh Kristensen, Erik; Luo, Linghui; P. Borges Jr., Nataniel; Bodden, Eric; Zeller, Andreas (International Conference for Software Engineering (ICSE))

Computation on Encrypted Data using Dataflow Authentication - Fischer, Andreas; Fuhry, Benny; Kerschbaum, Florian; Bodden, Eric (Privacy Enhancing Technologies Symposium (PETS/PoPETS))

CogniCrypt_GEN - Generating Code for the Secure Usage of Crypto APIs - Krüger, Stefan; Ali, Karim; Bodden, Eric (International Symposium on Code Generation and Optimization (CGO))

CogniCrypt -- The Secure Integration of Cryptographic Software - Krüger, Stefan
Frühere Studien haben empirisch offenbart, dass Fehlbenutzungen von kryptographischen APIs in Softwareanwendungen weitverbreitet sind. Dies geschieht vor allem, weil Software-Entwickler_innen aufgrund schlechten API-Designs und fehlenden Kryptographiewissens Probleme bekommen, wenn sie versuchen kryptographische Features zu implementieren. Die Literatur liefert mehrere Ansätze und Vorschläge diese Probleme zu lösen, aber alle scheitern schlussendlich auf die eine oder andere Weise daran die Anforderungen der Entwickler_innenzu erfüllen. Das Resultat ist eine insgesamt lückenhafte Landschaft verschiedener nur wenigkomplementärer Ansätze.In dieser Arbeit adressieren wir das Problem kryptographischer Fehlbenutzungen systematischer durch CogniCrypt. CogniCrypt integriert verschiedene Arten von Tool Supportin einen gemeinsamen Ansatz, der Entwickler_innen davon befreit wissen zu müssen, wie diese APIs benutzt werden müssen. Zentral für unseren Ansatz ist CrySL, eine Beschreibungssprache,die die kognitive Lücke zwischen Kryptographie-Expert_innen und Software-Entwickler_innenüberbrückt. CrySL ermöglicht es Kryptographie-Expert_innen zu spezifizeren, wie die APIs,die sie bereitstellen, richtig benutzt werden. Wir haben einen Compiler für CrySL implementiert, der es erlaubt auf CrySL-Spezifikationen aufbauenden Tool Support zu entwickeln. Wir haben weiterhin die statische Analyse CogniCrypt_SAST und den Code-Generator CogniCrypt_GEN entwickelt. Schlussendlich haben wir CogniCrypt prototypisch implementiert und diesen Prototyp in einem kontrollierten Experiment evaluiert.

Scenario-based Specification of Security Protocols and Transformation to Security Model Checkers - Koch, Thorsten; Dziwok, Stefan; Holtmann, Jörg; Bodden, Eric (ACM/IEEE 23rd International Conference on Model Driven Engineering Languages and Systems (MODELS ’20))

Model-Driven Information Flow Security Engineering for Cyber-Physical Systems - Gerking, Christopher

Accelerating Static Call-Graph, Points-to and Data-Flow Analysis Through Persisted Summaries - Schubert, Philipp; Bodden, Eric; Hermann, Ben

Using Abstract Contracts for Verifying Evolving Features and Their Interactions - Knüppel, Alexander; Krüger, Stefan; Thüm, Thomas; Bubel, Richard; Krieter, Sebastian; Bodden, Eric; Schaefer, Ina (Lecture Notes in Computer Science)
Today, software systems are rarely developed monolithically, but may be composed of numerous individually developed features. Their modularization facilitates independent development and verification. While feature-based strategies to verify features in isolation have existed for years, they cannot address interactions between features. The problem with feature interactions is that they are typically unknown and may involve any subset of the features. Contrary, a family-based verification strategy captures feature interactions, but does not scale well when features evolve frequently. To the best of our knowledge, there currently exists no approach with focus on evolving features that combines both strategies and aims at eliminating their respective drawbacks. To fill this gap, we introduce Fefalution, a feature-family-based verification approach based on abstract contracts to verify evolving features and their interactions. Fefalution builds partial proofs for each evolving feature and then reuses the resulting partial proofs in verifying feature interactions, yielding a full verification of the complete software system. Moreover, to investigate whether a combination of both strategies is fruitful, we present the first empirical study for the verification of evolving features implemented by means of feature-oriented programming and by comparing Fefalution with another five family-based approaches varying in a set of optimizations. Our results indicate that partial proofs based on abstract contracts exhibit huge reuse potential, but also come with a substantial overhead for smaller evolution scenarios.

SWAN_ASSIST: Semi-Automated Detection of Code-Specific, Security-Relevant Methods - Piskachev, Goran; Nguyen Quang Do, Lisa; Johnson, Oshando; Bodden, Eric (2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE))

AuthCheck: Program-State Analysis for Access-Control Vulnerabilities - Piskachev, Goran; Petrasch, Tobias; Späth, Johannes; Bodden, Eric (Lecture Notes in Computer Science)