[发明专利]一种软件更新的补丁安全性检测方法及系统有效
申请号: | 201610098343.5 | 申请日: | 2016-02-23 |
公开(公告)号: | CN105787367B | 公开(公告)日: | 2018-09-21 |
发明(设计)人: | 邹德清;金海;廖跃华 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 曹葆青 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 更新 补丁 安全性 检测 方法 系统 | ||
1.一种软件更新的补丁安全性检测方法,其特征在于,所述方法包括:
(1)对补丁进行预处理,将预处理后的补丁提交到代码仓库,并记录补丁相关信息;
(2)通过所述预处理后的补丁更新对应的旧版本程序文件,生成新版本程序文件;
(3)分析所述新版本程序文件,提取与所述预处理后的补丁相关的所有执行路径,并记录其中包含的内存敏感型函数及其变量;
(4)构造以所述内存敏感型函数为中心的数据流图,遍历后得到主要执行路径;
(5)符号执行所述主要执行路径,在执行过程中确定路径条件,在到达内存敏感型函数及路径执行过程中,结合安全检测器进行安全性分析,若满足路径条件,而不符合安全检测器规则,则确定存在软件更新安全问题;
(6)记录检测的软件更新安全问题,所有主要执行路径执行完毕后,生成软件更新安全问题分析报告。
2.如权利要求1所述的方法,其特征在于,所述步骤(3)具体包括:
(3-1)获取待分析的新版本程序文件以及对应的补丁相关信息;
(3-2)通过编译新版本程序文件,生成优化前的LLVM bitcode文件;
(3-3)利用步骤(3-2)中所述优化前的LLVM bitcode文件生成新版本程序的控制流图CFG;
(3-4)分析步骤(3-3)中的所述新版本程序的控制流图CFG,找出包含补丁语句的基本块,确定补丁影响范围,构造受补丁影响的调用流图;
(3-5)遍历步骤(3-4)中所述受补丁影响的调用流图,检测并记录其中包含的内存敏感型函数及其变量。
3.如权利要求1所述的方法,其特征在于,所述步骤(4)具体包括:
(4-1)将记录的所述内存敏感型函数存入一个待分析队列Q中;
(4-2)判断所述待分析队列Q是否为空,若是,则退出并结束;否则执行步骤(4-3);
(4-3)从所述待分析队列Q中取出一个待分析内存敏感型函数,从所述待分析内存敏感型函数出发,向前溯源获得具体涉及到的变量来源和起源,向后遍历得到执行路径的末尾,构造以所述待分析内存敏感型函数为根节点的两棵数据流树,利用上述两棵数据流树生成数据流图;
(4-4)遍历数据流图,得到主要执行路径后,重新转到步骤(4-2)。
4.如权利要求1-3任一项所述的方法,其特征在于,所述补丁相关信息包括补丁语句、补丁版本、代码行数及应用时间。
5.如权利要求1-3任一项所述的方法,其特征在于,所述内存敏感型函数为对内存进行申请、读写、释放操作的函数及指针变量。
6.一种软件更新的补丁安全性检测系统,其特征在于,所述系统包括:
补丁预处理模块,用于对补丁进行预处理,并将预处理后的补丁提交到代码仓库并记录补丁相关信息;
应用模块,用于通过所述预处理后的补丁更新对应的旧版本程序文件,生成新版本程序文件;
分析模块,用于分析所述新版本程序文件,提取与所述预处理后的补丁相关的所有执行路径,并记录其中包含的内存敏感型函数及其变量;
执行路径生成模块,用于构造以所述内存敏感型函数为中心的数据流图,遍历后得到主要执行路径;
符号执行模块,用于符号执行所述主要执行路径,在执行过程中确定路径条件,在到达内存敏感型函数及路径执行过程中,调用安全验证模块进行安全性分析;
安全验证模块,用于根据路径条件和安全检测器的规则进行安全性分析,若满足路径条件,而不符合安全检测器规则,则确定存在软件更新安全问题;
报告生成模块,用于记录检测的软件更新安全问题,在所有主要执行路径执行完毕后,生成软件更新安全问题分析报告。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610098343.5/1.html,转载请声明来源钻瓜专利网。