中文

CryptoGuard:在海量规模 Java 项目中高精度检测密码学漏洞

密码学与安全 2019-03-28 v5

摘要

密码学 API 误用,如暴露密钥、可预测随机数以及易受攻击的证书验证,严重威胁软件安全。在海量规模(例如数百万行代码)Java 程序中自动筛查密码学 API 调用的愿景并不新鲜。然而,受限于在不损害分析质量的前提下减少误报的实际困难,该目标尚未实现。最先进的密码学 API 筛查方案并非设计用于大规模运行。我们的技术创新是一组快速且高精度的切片算法。我们的算法通过识别语言特定的无关元素来精炼程序切片。在实验中,这些精炼将误报警告减少了 76% 至 80%。在 46 个高影响的大规模 Apache 项目和 6,181 个 Android 应用上运行我们的工具 CryptoGuard 产生了许多安全洞见。我们的发现帮助多个流行的 Apache 项目加固其代码,包括 Spark、Ranger 和 Ofbiz。我们在该领域的分析科学方面也取得了实质性进展,包括:i) 手动分析 1,295 个 Apache 警报并确认 1,277 个真阳性(98.61% 精度),ii) 创建包含 38 个单元基础案例和 74 个单元高级案例的基准,iii) 与包括 CrySL、SpotBugs 和 Coverity 在内的领先方案进行深入比较。我们正将 CryptoGuard 与软件保障市场(SWAMP)进行集成。

关键词

引用

@article{arxiv.1806.06881,
  title  = {CryptoGuard: High Precision Detection of Cryptographic Vulnerabilities in Massive-sized Java Projects},
  author = {Sazzadur Rahaman and Ya Xiao and Sharmin Afrose and Fahad Shaon and Ke Tian and Miles Frantz and Danfeng and Yao and Murat Kantarcioglu},
  journal= {arXiv preprint arXiv:1806.06881},
  year   = {2019}
}