[发明专利]基于代码相似性分析的操作系统脆弱性检测方法、系统及介质有效
| 申请号: | 202010381909.1 | 申请日: | 2020-05-08 |
| 公开(公告)号: | CN111400724B | 公开(公告)日: | 2023-09-12 |
| 发明(设计)人: | 任怡;汪哲;谭郁松;周凯;黄辰林;李宝;阳国贵;王晓川;丁滟;张建锋;谭霜;蹇松雷 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
| 主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F8/75 |
| 代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 谭武艺 |
| 地址: | 410073 湖南*** | 国省代码: | 湖南;43 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 代码 相似性 分析 操作系统 脆弱 检测 方法 系统 介质 | ||
本发明公开了一种基于代码相似性分析的操作系统脆弱性检测方法、系统及介质,本发明方法包括定位脆弱性代码段,形成操作系统脆弱性代码库;筛选操作系统源码库;针对脆弱性代码段、操作系统源码库分别生成代码属性图集合;分别从脆弱性代码段中的脆弱函数和操作系统源码库中各待测函数的代码属性图集合中提取特征,计算相似性,检测是否存在脆弱性代码的复用,并输出结果。本发明针对现有脆弱性代码复用检测方法在面向操作系统等规模较大的软件系统时出现的检测能力不足等问题,采用筛选操作系统源码库,以及多脆弱性特征的递进式筛选等方法,对现有检测方法流程进行了改进和优化,在保证较高的运行效率的同时,兼顾良好的准确度。
技术领域
本发明涉及计算机程序检测、以及操作系统脆弱性分析技术领域,具体涉及一种基于代码相似性分析的操作系统脆弱性检测方法、系统及介质。
背景技术
代码复用是指将一个软件中的一段代码直接复制或进行少量修改后,使用到其他软件中,作为后者代码的组成部分。目前,利用已有代码组件或模板进行软件开发已成为软件工程中普遍而常见的手段。2018年,Blackduck公司对超过 1100 个商业代码库中的匿名数据进行了开源组件的复用分析和审计,涵盖大数据、网络安全、企业软件、金融服务、医疗保健、物联网、汽车、制造业和移动应用市场等行业。审计结果显示,96%的被扫描代码中存在开源组件。在诸如通用操作系统等大型软件的代码组成中,代码复用的现象也十分明显。例如,苹果公司的Mac OS早期版本的内核即是在开源的FreeBSD内核基础上复用、发展而来的。代码复用在有效提高软件开发效率的同时,也带来了脆弱性代码的扩散。操作系统作为信息系统中的重要基础软件,其代码中由于复用带来的脆弱性会造成更大的影响和危害。例如,2019年1月首次发现的本地提权漏洞“Dirty Sock”影响范围包含当时所有最新的Ubuntu版本和一些Linux发行版,可以让攻击者通过将普通权限账户提升为root帐户来获得对整个操作系统的控制。这些脆弱性如果不能得到及时发现和修补,将形成很大的安全隐患。
目前,软件脆弱性形式化验证工具通常适用于数万、十几万行代码规模,且仅对整数溢出、缓冲区溢出、空指针、内存泄漏等部分代码脆弱性有效,难以识别在形式上符合程序语法及语义规则的诸如后门代码、认证绕过等脆弱性代码。操作系统,特别是通用操作系统,其代码具有大规模的特点,仅内核代码往往就达数百至数千万行,而且还在持续增长。因此,针对代码复用,基于代码相似性分析来检测操作系统中的脆弱性成为了操作系统漏洞检测领域的一个重要研究方向。
国内外学者已基于各种代码相似性分析理论提出了多种检测方法,并开发了众多检测工具。依据选取特征的不同,上述方法可分为基于文本、基于词法、基于语法和基于语义等四种类型。其中,基于文本和词法的检测方法复杂度较低、效率较高,但无法检测对代码进行过语句增删和调换等更改的代码复用;基于语法、语义的检测方法需要构建代码语法树或程序依赖图,并进行同构关系比较,可以达到比较高的检测精度,但计算复杂度高,运行效率偏低,在面对大规模软件,如操作系统的时候常出现运行时间过长的问题。因此,针对操作系统等大规模软件,需在方法的准确性和效率之间做折中,这方面国内外已有工作较少,尤其缺乏针对操作系统软件包组成特点的专用方法和工具。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于代码相似性分析的操作系统脆弱性检测方法、系统及介质,本发明针对现有脆弱性代码复用检测方法在面向操作系统等规模较大的软件系统时出现的检测能力不足,检测结果准确度低,检测效率低等问题,采用筛选操作系统源码库,以及基础信息、标记(token)序列以及控制流路径等脆弱性特征集合的递进式筛选等方法,对现有脆弱性代码复用检测流程进行了改进和优化,在保证较高的运行效率的同时,兼顾良好的准确度。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于代码相似性分析的操作系统脆弱性检测方法,实施步骤包括:
1)基于公共脆弱性数据库提供的信息定位操作系统相关的脆弱性代码段,形成操作系统脆弱性代码库;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010381909.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种三点支撑式石板干挂装置
- 下一篇:一种铝制基板的拼装面板





