Neutaint:基于神经网络的高效动态污点分析
密码学与安全
2019-09-04 v2
摘要
动态污点分析(DTA)被各类应用广泛用于追踪运行时执行中的信息流。现有 DTA 技术采用基于规则的污点传播,既不准确(即高误报率)也不高效(即较大运行时开销)。很难在正确覆盖所有边界情况的同时为每个操作指定污点规则。此外,过污染与欠污染错误会在污点信息跨多个操作传播时累积。最后,基于规则的传播要求在每个操作施加适当规则前先对其检查,导致在大型真实世界应用上性能开销 prohibitive。本工作中,我们提出 NEUTAINT,一种利用神经程序嵌入追踪信息流的端到端新方法。神经程序嵌入对污点源与汇之间发生的目标程序计算建模,通过观察多样化的执行轨迹自动学习信息流。为进行轻量且精确的信息流分析,我们利用显著性图来推断对不同汇最具影响的源。NEUTAINT 构建两张显著性图(一种流行的机器学习影响分析方法),以总结神经程序嵌入中粗粒度与细粒度的信息流。我们将 NEUTAINT 与 3 种最先进的动态污点分析工具比较。评估结果显示,NEUTAINT 平均可达 68% 准确率,较次优污点工具 Libdft 在 6 个真实程序上提升 10%,同时将运行时开销降低 40 倍。NEUTAINT 用于污点引导模糊测试时还实现了 61% 更多的边覆盖,表明所识别有影响力字节的有效性。
引用
@article{arxiv.1907.03756,
title = {Neutaint: Efficient Dynamic Taint Analysis with Neural Networks},
author = {Dongdong She and Yizheng Chen and Abhishek Shah and Baishakhi Ray and Suman Jana},
journal= {arXiv preprint arXiv:1907.03756},
year = {2019}
}
备注
To appear in the 41th IEEE Symposium on Security and Privacy, May 18--20, 2020, San Francisco, CA, USA