Conquering the Extensional Scalability Problem for Value-Flow Analysis Frameworks
With an increasing number of value-flow properties to check, existing static program analysis still tends to have scalability issues when high precision is required. We observe that the key design flaw behind the scalability problem is that the core static analysis engine is unaware of the properties being checked and, thus, inevitably loses the opportunities to exploit the mutual synergies among different properties. Our approach is inter-property-aware and able to capture possible overlaps and inconsistencies among the properties to check. Thus, before analyzing a program, we can make an optimization plan which decides how to reuse the specific analysis results of a property to speed up checking other properties. Such a synergistic interaction among the properties significantly improves the analysis performance.
We have evaluated our approach by checking twenty value-flow properties in standard benchmark programs and ten real-world software systems. The results demonstrate that our approach is more than 8$\times$ faster than existing ones but consumes only 1/7 memory. Such a substantial improvement in analysis efficiency is not achieved by sacrificing effectiveness: at the time of writing, 39 bugs found by our approach have been fixed by developers and four of them have been assigned CVE IDs due to their security impact.
Conference DayFri 10 JulDisplayed time zone: (UTC) Coordinated Universal Time change
08:05 - 09:05
|Conquering the Extensional Scalability Problem for Value-Flow Analysis FrameworksTechnical|
|Pipelining Bottom-up Data Flow AnalysisTechnical|
|An Empirical Validation of Oracle ImprovementJ1|
|Is Static Analysis Able to Identify Unnecessary Source Code?J1|
Roman HaasCQSE GmbH, Rainer NiedermayrCQSE GmbH, Tobias RoehmCQSE GmbH, Sven ApelSaarland UniversityPre-print
|Memory and Resource Leak Defects and Their Repairs in Java ProjectsJ1|
|Towards Understanding and Detecting Fake Reviews in App StoresJ1|