Using Targeted Symbolic Execution for Reducing False-Positives in Dataflow Analysis
Static data flow analysis is an indispensable tool for finding potentially malicious data leaks in software programs. Programs, nowadays often consisting of millions of lines of code, have grown much too large to allow for a complete manual inspection. Nevertheless, security experts need to judge whether an application is trustworthy or not, developers need to find bugs, and quality experts need to assess the maturity of software products. Thus, analysts take advantage of automated data flow analysis tools to find candidates for suspicious leaks which are then further investigated. While much progress has been made in the area with a broad variety of static data flow analysis tools proposed in academia and being offered commercially, the number of false alarms raised by these tools is still a concern. Many of the false alarms are reported because the analysis tool detects data flows along paths which are not realizable at runtime, e.g., due to contradictory conditions on the path. Still, every single report is a potential issue and must be reviewed by an expert which is labor-intensive and costly. In this work, we therefore propose TASMAN, a post-analysis based on symbolic execution that removes such false data leaks along unrealizable paths from the result set. Thus, it greatly improves the usefulness of the result presented to the human analyst. In our experiments on DroidBench examples, TASMAN reduces the number of false positives by about 80% without pruning any true positives. Additionally, TASMAN also identified false positives in real-world examples which we confirmed by hand. With an average execution time of 5.4 seconds per alleged leak to be checked on large real-world applications, TASMAN is fast enough for practical use.
Sun 14 JunDisplayed time zone: Tijuana, Baja California change
09:00 - 11:00 | |||
09:00 10mDay opening | Opening remarks SOAP | ||
09:10 50mTalk | Static Analysis for Android: GUIs, Callbacks, and Beyond SOAP | ||
10:00 20mTalk | Using Targeted Symbolic Execution for Reducing False-Positives in Dataflow Analysis SOAP | ||
10:20 20mTalk | Design Your Analysis: A Case Study on Implementation Reusability of Data-Flow Functions SOAP | ||
10:40 20mTalk | Combining Type-Analysis with Points-To Analysis for Analyzing Java Library Source-Code SOAP |