论文标题

在大规模代码库中查找加密漏洞的工业经验

Industrial Experience of Finding Cryptographic Vulnerabilities in Large-scale Codebases

论文作者

Xiao, Ya, Zhao, Yang, Allen, Nicholas, Keynes, Nathan, Danfeng, Yao, Cifuentes, Cristina

论文摘要

企业环境通常使用静态分析工具筛选大规模(数百万行代码)代码库,以查找错误和漏洞。 Parfait是Oracle中用于在工业代码库中找到安全漏洞的静态代码分析工具。最近,许多研究表明,由于Java中滥用加密API而引起的加密漏洞。在本文中,我们描述了如何实现基于帕菲特框架的这些复杂的加密漏洞的精确且可扩展的检测。检测加密漏洞的关键挑战是伪影响引起的高误报率。如果使用安全性 - IRRELELELELELELELELELELELELELERVANT常数用于构建安全至关重要的值,则会发生伪影响。静态分析通常无法将它们与暴露敏感信息的硬编码常数区分开。我们通过专门利用冻糕的落后数据流分析,并通过改进见解来解决这个问题。我们对分析仪进行了全面的Java密码漏洞基准和11个大型现实世界应用的评估。结果表明,基于冻糕的加密漏洞检测器可以在具有很高真实阳性速率和低运行时成本的大规模代码库中找到现实世界中的加密漏洞。

Enterprise environment often screens large-scale (millions of lines of code) codebases with static analysis tools to find bugs and vulnerabilities. Parfait is a static code analysis tool used in Oracle to find security vulnerabilities in industrial codebases. Recently, many studies show that there are complicated cryptographic vulnerabilities caused by misusing cryptographic APIs in Java. In this paper, we describe how we realize a precise and scalable detection of these complicated cryptographic vulnerabilities based on Parfait framework. The key challenge in the detection of cryptographic vulnerabilities is the high false alarm rate caused by pseudo-influences. Pseudo-influences happen if security-irrelevant constants are used in constructing security-critical values. Static analysis is usually unable to distinguish them from hard-coded constants that expose sensitive information. We tackle this problem by specializing the backward dataflow analysis used in Parfait with refinement insights, an idea from the tool CryptoGuard. We evaluate our analyzer on a comprehensive Java cryptographic vulnerability benchmark and eleven large real-world applications. The results show that the Parfait-based cryptographic vulnerability detector can find real-world cryptographic vulnerabilities in large-scale codebases with high true-positive rates and low runtime cost.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源