当前位置: X-MOL 学术arXiv.cs.SE › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
LEOPARD: Identifying Vulnerable Code for Vulnerability Assessment through Program Metrics
arXiv - CS - Software Engineering Pub Date : 2019-01-31 , DOI: arxiv-1901.11479
Xiaoning Du, Bihuan Chen, Yuekang Li, Jianmin Guo, Yaqin Zhou, Yang Liu, Yu Jiang

Identifying potentially vulnerable locations in a code base is critical as a pre-step for effective vulnerability assessment; i.e., it can greatly help security experts put their time and effort to where it is needed most. Metric-based and pattern-based methods have been presented for identifying vulnerable code. The former relies on machine learning and cannot work well due to the severe imbalance between non-vulnerable and vulnerable code or lack of features to characterize vulnerabilities. The latter needs the prior knowledge of known vulnerabilities and can only identify similar but not new types of vulnerabilities. In this paper, we propose and implement a generic, lightweight and extensible framework, LEOPARD, to identify potentially vulnerable functions through program metrics. LEOPARD requires no prior knowledge about known vulnerabilities. It has two steps by combining two sets of systematically derived metrics. First, it uses complexity metrics to group the functions in a target application into a set of bins. Then, it uses vulnerability metrics to rank the functions in each bin and identifies the top ones as potentially vulnerable. Our experimental results on 11 real-world projects have demonstrated that, LEOPARD can cover 74.0% of vulnerable functions by identifying 20% of functions as vulnerable and outperform machine learning-based and static analysis-based techniques. We further propose three applications of LEOPARD for manual code review and fuzzing, through which we discovered 22 new bugs in real applications like PHP, radare2 and FFmpeg, and eight of them are new vulnerabilities.

中文翻译:

LEOPARD:通过程序指标识别用于漏洞评估的易受攻击代码

识别代码库中潜在的易受攻击的位置对于有效的漏洞评估至关重要;即,它可以极大地帮助安全专家将时间和精力投入到最需要的地方。已经提出了基于度量和基于模式的方法来识别易受攻击的代码。前者依赖于机器学习,由于非易受攻击和易受攻击的代码之间的严重不平衡或缺乏表征漏洞的特征而无法很好地工作。后者需要已知漏洞的先验知识,只能识别相似但不能识别新类型的漏洞。在本文中,我们提出并实现了一个通用、轻量级和可扩展的框架 LEOPARD,以通过程序指标识别潜在的易受攻击的功能。LEOPARD 不需要已知漏洞的先验知识。它通过组合两组系统导出的指标有两个步骤。首先,它使用复杂性度量将目标应用程序中的功能分组到一组 bin 中。然后,它使用漏洞指标对每个 bin 中的函数进行排名,并将顶部的函数确定为潜在易受攻击的。我们在 11 个实际项目中的实验结果表明,LEOPARD 可以通过识别 20% 的功能为易受攻击的功能来覆盖 74.0% 的易受攻击的功能,并且性能优于基于机器学习和基于静态分析的技术。我们进一步提出了 LEOPARD 的三个应用程序进行手动代码审查和模糊测试,通过这些应用程序,我们发现了 PHP、radare2 和 FFmpeg 等实际应用程序中的 22 个新错误,其中 8 个是新漏洞。它通过组合两组系统导出的指标有两个步骤。首先,它使用复杂性度量将目标应用程序中的功能分组到一组 bin 中。然后,它使用漏洞指标对每个 bin 中的函数进行排名,并将顶部的函数确定为潜在易受攻击的。我们在 11 个实际项目中的实验结果表明,LEOPARD 可以通过识别 20% 的功能为易受攻击的功能来覆盖 74.0% 的易受攻击的功能,并且性能优于基于机器学习和基于静态分析的技术。我们进一步提出了 LEOPARD 的三个应用程序进行手动代码审查和模糊测试,通过这些应用程序,我们发现了 PHP、radare2 和 FFmpeg 等实际应用程序中的 22 个新错误,其中 8 个是新漏洞。它通过组合两组系统导出的指标有两个步骤。首先,它使用复杂性度量将目标应用程序中的功能分组到一组 bin 中。然后,它使用漏洞指标对每个 bin 中的函数进行排名,并将顶部的函数识别为潜在易受攻击的。我们在 11 个实际项目中的实验结果表明,LEOPARD 可以通过识别 20% 的功能为易受攻击的功能来覆盖 74.0% 的易受攻击的功能,并且性能优于基于机器学习和基于静态分析的技术。我们进一步提出了 LEOPARD 的三个应用程序进行手动代码审查和模糊测试,通过这些应用程序,我们发现了 PHP、radare2 和 FFmpeg 等实际应用程序中的 22 个新错误,其中 8 个是新漏洞。它使用复杂性指标将目标应用程序中的功能分组到一组 bin 中。然后,它使用漏洞指标对每个 bin 中的函数进行排名,并将顶部的函数确定为潜在易受攻击的。我们在 11 个实际项目中的实验结果表明,LEOPARD 可以通过识别 20% 的功能为易受攻击的功能来覆盖 74.0% 的易受攻击的功能,并且性能优于基于机器学习和基于静态分析的技术。我们进一步提出了 LEOPARD 的三个应用程序进行手动代码审查和模糊测试,通过这些应用程序,我们发现了 PHP、radare2 和 FFmpeg 等实际应用程序中的 22 个新错误,其中 8 个是新漏洞。它使用复杂性指标将目标应用程序中的功能分组到一组 bin 中。然后,它使用漏洞指标对每个 bin 中的函数进行排名,并将顶部的函数确定为潜在易受攻击的。我们在 11 个实际项目中的实验结果表明,LEOPARD 可以通过识别 20% 的功能为易受攻击的功能来覆盖 74.0% 的易受攻击的功能,并且性能优于基于机器学习和基于静态分析的技术。我们进一步提出了 LEOPARD 的三个应用程序进行手动代码审查和模糊测试,通过这些应用程序,我们发现了 PHP、radare2 和 FFmpeg 等实际应用程序中的 22 个新错误,其中 8 个是新漏洞。我们在 11 个实际项目中的实验结果表明,LEOPARD 可以通过识别 20% 的功能为易受攻击的功能来覆盖 74.0% 的易受攻击的功能,并且性能优于基于机器学习和基于静态分析的技术。我们进一步提出了 LEOPARD 的三个应用程序进行手动代码审查和模糊测试,通过这些应用程序,我们发现了 PHP、radare2 和 FFmpeg 等实际应用程序中的 22 个新错误,其中 8 个是新漏洞。我们在 11 个实际项目中的实验结果表明,LEOPARD 可以通过识别 20% 的功能为易受攻击的功能来覆盖 74.0% 的易受攻击的功能,并且性能优于基于机器学习和基于静态分析的技术。我们进一步提出了 LEOPARD 的三个应用程序进行手动代码审查和模糊测试,通过这些应用程序,我们发现了 PHP、radare2 和 FFmpeg 等实际应用程序中的 22 个新错误,其中 8 个是新漏洞。
更新日期:2020-01-22
down
wechat
bug