一句话:提出 ANTaint,通过按需污点传播与健全调用图,解决 Alibaba SOA 应用静态污点分析的扩展性与隐式依赖问题。
在阿里巴巴,数据泄漏检测、变更治理和数据一致性检查等场景需要对数据流进行追踪,静态污点分析是其中关键技术。然而,现有工具 FlowDroid 在工业 SOA 应用中表现不佳:应用大量使用库、native 方法和企业特定框架,带来可扩展性与隐式依赖两大挑战。本文提出 ANTaint:针对库代码扩展调用图,并按需传播污点,因为库占执行大部分但仅少部分传播污点;同时构建健全调用图并保证核心部分精度,采用更精确的污点传播模型。基于 60 个生产案例的评估显示,ANTaint 的精确率为 95%、召回率为 98%,而 FlowDroid 为 13%;ANTaint 耗时减少 65%,且在 32 GB 内存限制下无案例发生内存溢出。
In Alibaba, we have seen a growing demand for tracing data flow for scenarios such as data leak detection, change governance, and data consistency checking. Static taint analysis is a technique for such problems, and many approaches are proposed for high scalability and precision. This paper shares our experience in applying taint analysis in Alibaba. In particular, we find that the state-of-the-art taint analysis tool, FlowDroid, does not work well in our cases because our applications make heavy use of libraries, native methods and enterprise-specific frameworks, which impose two major challenges, scalability and implicit dependency, to FlowDroid. This paper presents ANTaint to address these problems. ANTaint improves scalability by expanding the call graph and applying taint propagation on demand for libraries, which account for majority of the program execution but only a small fraction propagates taints. To improve accuracy, we ensure to build a sound call graph with its core part having certain accuracy, and providing a more precise taint propagation model. The practice of applying ANTaint in the company workload validates the idea. According to an experiment on 60 production cases, ANTaint is correct for 95% of the cases (precision: 95%, recall: 98%) while FlowDroid is 13%. ANTaint takes 65% less time and none of the cases run out of memory with 32 GB limitation.
DOI 原文 ·
@inproceedings{paperbot5832,
title = {Scaling static taint analysis to industrial SOA applications: a case study at Alibaba},
author = {Jie Wang and Yunguang Wu and Gang Zhou and Yiming Yu and Zhenyu Guo and Yingfei Xiong},
booktitle = {FSE},
year = {2020},
doi = {10.1145/3368089.3417059}
}