Over the years, static taint analysis emerged as the analysis of choice to detect some of the most common web application vulnerabilities, such as SQL injection (SQLi) and cross-site scripting (XSS)~\cite{OWASP}. Furthermore, from an implementation perspective, the IFDS dataflow framework stood out as one of the most successful vehicles to implement static taint analysis for real-world Java applications. While existing approaches scale reasonably to medium-size applications (e.g. up to one hour analysis time for less than 100K lines of code), our experience suggests that no existing solution can scale to very large industrial code bases (e.g. more than 1M lines of code). In this paper, we present our novel IFDS-based solution to perform fast and precise static taint analysis of very large industrial Java web applications. Similar to state-of-the-art approaches to taint analysis, our IFDS-based taint analysis uses \textit{access paths} to abstract objects and fields in a program. However, contrary to existing approaches, our analysis is demand-driven, which restricts the amount of code to be analyzed, and does not rely on a computationally expensive alias analysis, thereby significantly improving scalability.
翻译:多年来,静态污点分析作为选择分析,以发现一些最常见的网络应用弱点,如SQL注射(SQLi)和跨站脚本(XSS) ⁇ cite{OWASP}),此外,从执行角度看,国际开发协会数据流框架是实施真实世界爪哇应用静态污点分析的最成功工具之一。现有中等应用方法规模合理(例如,对不到100公里的代码线的分析时间不超过1小时),但我们的经验表明,任何现有解决方案都无法扩大到非常大的工业代码基础(例如,超过1M码线)。在本文件中,我们介绍了我们基于新型国际开发协会的解决方案,以对非常大的工业爪哇网络应用进行快速和精确的静态污点分析。类似于目前最先进的污点分析方法,我们基于国际开发协会的污点分析使用\ text{access路径}来对一个程序中的抽象对象和领域进行抽象分析。然而,与现有方法相反,我们的分析是需求驱动的,我们的分析不是以需求为驱动的,而是依赖昂贵的计算方法。