[发明专利]一种检测python代码漏洞的方法及装置在审
| 申请号: | 201510708735.4 | 申请日: | 2015-10-27 |
| 公开(公告)号: | CN105243019A | 公开(公告)日: | 2016-01-13 |
| 发明(设计)人: | 廖新喜 | 申请(专利权)人: | 北京神州绿盟信息安全科技股份有限公司;北京神州绿盟科技有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 朱佳 |
| 地址: | 100089 北京*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 检测 python 代码 漏洞 方法 装置 | ||
1.一种检测python代码漏洞的方法,其特征在于,包括:
对待检测的python代码进行语法解析,生成相应的语法树,以及对语法树进行数据流分析,提取出使用的危险函数;
对提取出的危险函数的外层函数所包含的参数进行跟踪,将赋值类型满足预设传递规则的参数确定为可控参数,组成可控参数集合;
将获得的危险函数中包含的参数与可控参数集合中的每一个可控参数进行匹配,若匹配成功,则确定危险函数中包含的参数为可控参数;
根据包含有可控参数的危险函数确定相应的代码漏洞。
2.如权利要求1所述的方法,其特征在于,进一步包括:
在对python代码进行语法解析的过程中,根据指示删除非必要代码。
3.如权利要求1所述的方法,其特征在于,进一步包括,
在进行数据流跟踪的过程中,基于输入import机制,从数据流以及python代码的环境变量中获取引入的第三方模块或/和第三方函数,并对所述第三方模块或/和第三方函数进行解析;
根据解析结果判断所述第三方模块或/和第三方函数包含的参数在整个函数处理过程是否发生改变,将未发生改变的参数归属于可控参数集合中。
4.如权利要求1、2或3任一项所述的方法,其特征在于,将赋值类型满足预设传递规则的参数确定为可控参数,具体包括:
将赋值类型满足以下规则中的一种或任意组合的参数确定为可控参数:
参数的赋值类型为:指定的属性取值;
参数的赋值类型为:字符串拼接,且被拼接的字符串中包含已认定的可控参数;
参数的赋值类型为:分片符取值;
参数的赋值类型为:列表解析式,且所述列表解析式基于至少一个可控因子进行迭代,或者,且所述列表解析式为包含有可控因子的列表相加;
参数为赋值类型为:经字符串操作函数处理的返回值,或/和,经未过滤函数处理的返回值。
5.如权利要求4所述的方法,其特征在于,进一步包括:
对所述语法树进行类分析,在分析过程中将各个类的初始化参数归属于所述可控参数集合,以及对各个类的变量赋值进行跟踪,若任一危险函数中使用了类的变量,则确定所述任一危险函数包含有可控参数。
6.如权利要求4所述的方法,其特征在于,确定任一危险函数中包含的参数为可控参数后,在根据所述任一危险函数确定相应的代码漏洞之前,进一步包括:
采用用户预设的安全函数或者python自带的安全函数对所述任一危险函数包含的可控参数进行处理,确定经处理后的可控参数仍可控时,最终判定所述任一危险函数为真正的危险函数。
7.一种检测python代码漏洞的装置,其特征在于,包括:
提取单元,用于对待检测的python代码进行语法解析,生成相应的语法树,以及对语法树进行数据流分析,提取出使用的危险函数;
处理单元,用于对提取出的危险函数的外层函数所包含的参数进行跟踪,将赋值类型满足预设传递规则的参数确定为可控参数,组成可控参数集合;
匹配单元,用于将获得的危险函数中包含的参数与可控参数集合中的每一个可控参数进行匹配,若匹配成功,则确定危险函数中包含的参数为可控参数;
确定单元,用于根据包含有可控参数的危险函数确定相应的代码漏洞。
8.如权利要求7所述的装置,其特征在于,所述提取单元进一步用于:
在对python代码进行语法解析的过程中,根据指示删除非必要代码。
9.如权利要求7所述的装置,其特征在于,所述处理单元进一步用于,
在进行数据流跟踪的过程中,基于输入import机制,从数据流以及python代码的环境变量中获取引入的第三方模块或/和第三方函数,并对所述第三方模块或/和第三方函数进行解析;
根据解析结果判断所述第三方模块或/和第三方函数包含的参数在整个函数处理过程是否发生改变,将未发生改变的参数归属于可控参数集合中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京神州绿盟信息安全科技股份有限公司;北京神州绿盟科技有限公司,未经北京神州绿盟信息安全科技股份有限公司;北京神州绿盟科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510708735.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种计算林分最大蓄积量的方法
- 下一篇:新型给排水阀门





