Hier finden Sie wissenschaftliche Publikationen aus den Fraunhofer-Instituten.

Sustainable Solving: Reducing the Memory Footprint of IFDS-Based Data Flow Analyses Using Intelligent Garbage Collection

: Arzt, Steven

Fulltext urn:nbn:de:0011-n-6245527 (223 KByte PDF)
MD5 Fingerprint: a4c595c086deab93e17f8a79e3372eb5
Created on: 13.2.2021

Institute of Electrical and Electronics Engineers -IEEE-; IEEE Computer Society:
IEEE/ACM 43rd International Conference on Software Engineering, ICSE 2021. Proceedings : Virtual (originally Madrid, Spain), 25-28 May 2021
Los Alamitos, Calif.: IEEE Computer Society Conference Publishing Services (CPS), 2021
ISBN: 978-1-6654-0296-5
International Conference on Software Engineering (ICSE) <43, 2021, Online>
Conference Paper, Electronic Publication
Fraunhofer SIT ()

Static data flow analysis is an integral building block for many applications, ranging from compile-time code optimization to security and privacy analysis. When assessing whether a mobile app is trustworthy, for example, analysts need to identify which of the users personal data is sent to external parties such as the app developer or cloud providers. Since accessing and sending data is usually done via API calls, tracking the data flow between source and sink API is often the method of choice. Precise algorithms such as IFDS help reduce the number of false positives, but also introduce significant performance penalties. With its fixpoint iteration over the programs entire exploded supergraph, IFDS is particularly memory-intensive, consuming hundreds of megabytes or even several gigabytes for medium-sized apps. In this paper, we present a technique called CLEANDROID for reducing the memory footprint of a precise IFDS-based data flow analysis and demonstrate its effectiveness in the popular FlowDroid open-source data flow solver. CLEANDROID efficiently removes edges from the path edge table used for the IFDS fixpoint iteration without affecting termination. As we show on 600 realworld Android apps from the Google Play Store, CLEANDROID reduces the average per-app memory consumption by around 63% to 78%. At the same time, CLEANDROID speeds up the analysis by up to 66%.