[发明专利]一种开源软件漏洞分析方法、装置和存储介质有效
申请号: | 201810415008.2 | 申请日: | 2018-05-03 |
公开(公告)号: | CN108763928B | 公开(公告)日: | 2020-10-02 |
发明(设计)人: | 王博;崔宝江;吴倩;杨俊;张家旺;林星辰;宋绪言 | 申请(专利权)人: | 北京邮电大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F21/57 |
代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 苏胜 |
地址: | 102200*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 漏洞 分析 方法 装置 存储 介质 | ||
1.一种开源软件漏洞分析方法,其特征在于,所述方法包括:
获取待测软件中的开源代码;
将所述开源代码的源文件集与漏洞库中的源码型漏洞进行同源性比对检测;
输出比对检测结果;
其中,所述漏洞库中包括所述源码型漏洞和库类型漏洞;将所述开源代码的源文件集与漏洞库中的源码型漏洞进行同源性比对检测之前,还包括:
将所述开源代码预处理为所述源文件集和库文件集;
所述方法还包括:
将所述开源代码中的所述源文件集与所述漏洞库中的源码型漏洞进行同源性比对检测;
将所述开源代码中的所述库文件集与所述漏洞库中的库类型漏洞进行组件引用检测;
所述输出比对检测结果,包括:
输出同源性比对检测结果和组件引用检测结果;
其中,所述组件引用检测包括:判断所述库文件集中含有所述库类型漏洞的库文件是否被使用;
其中,将所述开源代码中的所述库文件集与所述漏洞库中的库类型漏洞进行组件引用检测包括:
判断所述库文件集中与所述库类型漏洞相匹配的库文件是否被导入,若所述库文件集中与所述库类型漏洞相匹配的库文件被导入,则提取所述与所述库类型漏洞相匹配的库文件;
判断所述提取的与所述库类型漏洞相匹配的库文件是否被加载,若所述提取的与所述库类型漏洞相匹配的库文件被加载,则判断所述被加载的库文件中与所述库类型漏洞相匹配的函数是否被调用,若所述库文件中与所述库类型漏洞相匹配的函数被调用,则确定所述库文件集存在所述库类型漏洞。
2.根据权利要求1所述的方法,其特征在于,将所述开源代码预处理为所述源文件集和库文件集,包括:
提取所述开源代码中的至少一个源文件、至少一个库文件和至少一个配置文件;
将所述至少一个源文件组成源文件集;
将所述至少一个库文件和所述至少一个配置文件组成库文件集。
3.根据权利要求2所述的方法,其特征在于,将所述至少一个库文件和所述至少一个配置文件组成库文件集包括:
通过所述配置文件,获取第三方包;
将所述第三方包和所述库文件组成库文件集。
4.根据权利要求1所述的方法,其特征在于,所述同源性比对检测包括:
若将所述源文件集与所述源码型漏洞进行文本比对后,未发现所述源码型漏洞,则将所述源文件集与所述源码型漏洞进行Token标识比对,若发现所述源码型漏洞,则将所述源文件集进行二次分析;
若将所述源文件集与所述源码型漏洞进行Token标识比对后,未发现所述源码型漏洞,则将所述源文件集与所述源码型漏洞进行语法树比对,若发现所述源码型漏洞,则将所述源文件集进行二次分析;
若将所述源文件集与所述源码型漏洞进行语法树比对后,未发现所述源码型漏洞,则确定所述源文件集不存在所述源码型漏洞,若发现所述源码型漏洞,则将所述源文件集进行二次分析。
5.根据权利要求4所述的方法,其特征在于,所述二次分析包括:
判断所述源文件集是否满足所述源码型漏洞的触发条件,当满足所述源码型漏洞的触发条件时,确定所述源文件集存在所述源码型漏洞。
6.根据权利要求1所述的方法,其特征在于,所述输出比对检测结果,包括:
在画面一侧显示所述开源代码,并标记所述开源代码中含有所述源码型漏洞的片段和所述库类型漏洞的片段,在画面另一侧显示所述含有所述源码型漏洞的片段和所述库类型漏洞的片段具体包含的所述漏洞库中的漏洞。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京邮电大学,未经北京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810415008.2/1.html,转载请声明来源钻瓜专利网。