[发明专利]代码处理方法、污点分析方法和装置在审
申请号: | 202110317801.0 | 申请日: | 2021-03-25 |
公开(公告)号: | CN112926058A | 公开(公告)日: | 2021-06-08 |
发明(设计)人: | 王明华;张煜龙 | 申请(专利权)人: | 支付宝(杭州)信息技术有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 李世喆 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 处理 方法 污点 分析 装置 | ||
本说明书实施例提供了一种代码处理方法、污点分析方法和装置。根据该实施例的代码处理方法,首先判断当前加载的程序代码是否属于动态代码;如果当前加载的程序代码属于动态代码,那么识别该动态代码中的污点源;然后,将该动态代码中与污点源关联的变量的污点状态设置为污点;以及将动态代码中与污点源未关联的变量的污点状态设置为非污点;最后,针对该动态代码中的每一条语句,为该语句插入污点状态计算语句,得到代码重写后的动态代码。
技术领域
本说明书一个或多个实施例涉及软件技术领域,尤其涉及代码处理方法、污点分析方法和装置。
背景技术
数据流分析技术通过分析程序中数据传播的合法性以保证信息安全,是防止数据完整性和保密性被破坏的有效手段。污点分析技术是数据流分析技术的一种实践方法,该技术通过对系统中敏感数据进行标记,继而跟踪标记数据在程序中的传播,以检测系统安全问题。
现有技术中对程序代码进行污点分析的方案,污点分析结果不够准确。因此,希望提供一种更可靠的污点分析方案。
发明内容
本说明书一个或多个实施例描述了代码处理方法、污点分析方法和装置,以提高污点分析结果的准确性。
根据第一方面,提供了一种代码处理方法,包括:
判断当前加载的程序代码是否属于动态代码;该动态代码为在程序运行时从该程序对应的程序代码文件的外部加载到该程序中的代码;
如果是,识别所述动态代码中的污点源;
将所述动态代码中与所述污点源关联的变量的污点状态设置为污点;
将所述动态代码中与所述污点源未关联的变量的污点状态设置为非污点;
针对所述动态代码中的每一条语句,为该语句插入污点状态计算语句,得到代码重写后的动态代码;其中,所述污点状态计算语句用于根据该语句中引用的各变量的污点状态,计算该语句的污点状态。
在一个实施例中,
当一条语句中包括一个变量时,该语句的污点状态为该变量的污点状态;
当一条语句中包括至少两个变量时,该语句的污点状态为该语句最终计算出的变量的污点状态。
在一个实施例中,进一步包括:
获取所述程序包括的静态代码;该静态代码为所述程序对应的程序代码文件内部包括的代码;
识别所述静态代码中的污点源;
将所述静态代码中与该污点源关联的变量的污点状态设置为污点;
将所述静态代码中与该污点源未关联的变量的污点状态设置为非污点;
针对静态代码中的各语句,分别根据该语句中引用的各变量的污点状态,判断各语句的污点状态是否为污点,为污点状态为污点的静态代码中的各语句插入污点状态计算语句,得到代码重写后的静态代码。
在一个实施例中,在所述为污点状态为污点的静态代码中的各语句插入污点状态计算语句之前,进一步包括:
生成污点使用链;
将污点源作为第一条语句加入该污点使用链;
依次判断静态代码中的每一条语句的污点状态,如果污点状态为污点,则将该语句串联在所述污点使用链中;
判断污点使用链中的最后一条语句是否为敏感操作语句;
如果是,则继续执行所述为污点状态为污点的静态代码中的各语句插入污点状态计算语句,且
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于支付宝(杭州)信息技术有限公司,未经支付宝(杭州)信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110317801.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:欺诈识别的方法和装置
- 下一篇:标识生成方法和装置