Detecting Missed Security Operations Through Differential Checking of Object-based Similar Paths(CCS 2021)
这是一篇卢康杰教授组在 CCS 2021被接收的论文,使用 基于对象的相似检查路径 差异检查 来检测 遗漏的安全操作
这是一篇卢康杰教授组在 CCS 2021被接收的论文,使用 基于对象的相似检查路径 差异检查 来检测 遗漏的安全操作
是一篇源代码和源代码相似性检测的论文,采用FA-AST构造图,然后使用图神经网络进行相似度计算
**研究背景:**安卓中第三方库(TPLs)使用十分常见,检测第三方库对于漏洞识别等都十分有用,但是由于TPL的分散性、直接或间接的依赖性以及应用中TPL信息的不透明性,现有工具不能很好的检测,更不用说检测具体某版本
现有的二进制相似度检测工作并没有很好的解决编译优化和混淆带来的影响,所以作者提出了
IMOPT
来重新优化代码,用于提高代码相似性检测的准确率。该方法在测试集上和原本的Asm2vec相比,将精度提高了22.7%,并且可以缓解ollvm混淆带来的影响
作者设计了一个可扩展的漏洞发现工具(Sys),并且在已经被好多自动化工具检查过的软件中发现了一些漏洞,比如说Chrome,Firefox,以及sqlite3。
整个系统分为两个部分:首先通过静态分析定位可能存在漏洞的地方,然后在对这些备选项通过符号执行的方法进一步确认。这样就在漏洞发现的速度 和 准确率上得到了一个平衡。
二进制代码相似性检测:在没有源代码的情况下检测相似的二进制函数。传统的方法一般使用图匹配算法进行检测,但传统方法准确率低且复杂度高。深度学习的发展为这一领域提供的新的方法,根据控制流图生成CFG,并使用GNN计算图嵌入,既高效又准确。本文提出Semantic-Aware Neural Networks ,取得了不错的成果
识别代码中的脆弱点漏洞评估的重要步骤,当前主要的两种方法为:基于度量和基于模式。前者基于机器学习,后者依赖先验知识。本文提出并实现了一个通用、轻量且具有可扩展性的基于程序指标识别漏洞函数的框架 LEOPARD,这个框架不需要任何漏洞的先验知识就能识别脆弱点。第一步,通过复杂的程序指标将目标应用的函数分类;第二步,对每个分类中的函数进行排序,并将排位靠前的函数作为漏洞函数。在实际应用中,LEOPARD将20%的函数中识别出了74%的漏洞函数,从PHP,r2等应用中找到了22个新bug,其中8个是新漏洞。
B2SFinder 主要是为了解决闭源二进制软件中对复用开源组件检测的问题,由于复用了开源组件,当开源组件发现存在漏洞时,复用它的二进制软件也会存在漏洞,即OSS复用漏洞。
PS:我挂了个n作
虽然此前也有一些工作致力于研究二进制和源代码的匹配方法,并能进行大规模的分析,但他们只支持一些简单的特征。在他们的研究中只能近似的衡量OSS复用,忽略了项目中的代码结构。
为了解决这个问题,B2SFinder通过对二进制文件和源代码中的7种特征进行提取,并对7种特征使用三种匹配方法和两种重要性加权方法,计算匹配分数。通过这种方法,我们对1000个流行的二进制软件中的21991个二进制文件和2189个开源库的复用进行了评估。平均每个二进制文件耗时53.85秒。我们也讨论了如何使用B2SFinder检测OSS复用漏洞。
随着开源世界的扩大,代码克隆的情况也越来越普遍,与此同时,由于代码克隆产生的1day漏洞也越来越多,因此自动化的克隆代码漏洞检测成为一大需求。
本文提出了一种大规模复用漏洞代码检测的方法——VUDDY,能在大规模的代码中精确有效的发现漏洞。
优势: