【大学生创新创业作品提名奖】BugSniffer —— 一种基于词向量类比推理的资源释放相关漏洞检测方法

2022-09-25

0队伍信息

作品名称:BugSniffer —— 一种基于词向量类比推理的资源释放相关漏洞检测方法

学校名称:西安电子科技大学

队伍名称:BugSniffer小队

指导老师:张宁

团队成员:梁文韬,崔又天,曲涵石,成诺


0作品介绍

资源释放相关漏洞是一种常见的且具有较大危害的软件漏洞,主要包括释放后再使用(Use-after-free)、二次释放(Double Free)和内存泄露(Memory Leak)等,其能够导致较为严重的后果。然而,采用现有漏洞检测方法来发现释放相关漏洞的效果不佳。主要原因在于现有主流漏洞检测器的知识库较为单薄,没有配置诸如mlx5dr_htbl_get()、mlx5dr_htbl_put()等目标工程所特有的相关函数,从而导致漏报。

本作品为解决上述问题,提出了一种基于词向量上类比推理(Analogical Reasoning)技术的资源释放相关函数的识别及相关漏洞检测方法BugSniffer,能基于少量的种子函数自动类比推理出大量工程特有的资源分配/释放函数支持漏洞检测。首先,我们引入自然语言处理中的词嵌入(Word Embedding)技术,通过自监督学习的方式将代码中的函数编码为词向量。其次,利用3CosAvg及一种新设计的3CosAddExchange等两种类比推理算法,采用两阶段的类比推理,从少量已知的种子函数出发,自动发现未知的资源释放相关函数。最后,将所识别出的函数转换为静态检测规则来进行资源释放相关漏洞的检测,如图1。

为了方便用户使用,我们还基于Django框架实现了一个基于Web的漏洞检测系统,如图2。

我们使用本作品方法检测了Linux内核、PostgreSQL、QEMU和libxml2等主流软件项目,涵盖了操作系统、数据库管理系统、虚拟机和常见第三方库等各种类型软件。基于所提出的方法,我们已经在这些工程中识别出大量的未知资源分配/释放函数,并由此成功地检测出21个已被这些软件的开发者确认为真实的未知漏洞。对比实验表明,由于缺少相关函数配置,主流商用漏洞检测工具Fortify仅仅能检测出以上漏洞中的4个。这充分说明了作品方法能有效提高漏洞检测工作的效能。此外,攻击实验表明,我们所检测出的漏洞具有较大的潜在危害,如图3。

本作品所提出的方法无需目标系统的领域知识即可发现大量潜在的感兴趣的函数来支持漏洞检测,能应用于各种大型实际软件系统。检测实验表明作品方法适用面广、自动化程度高、实用性强,具有较为广阔的应用前景。


0图片展示


图1

图片

图2

图片

图3
联系我们
办公地点:中国电子技术标准化研究院
地址:北京安定门东大街1号
邮编:100007
电话:010-64102639
邮箱:cciahyz@china-cia.org.cn

微信公众号