基于GO语言的注入式污点数据跟踪方法、装置和电子装置制造方法及图纸

技术编号:34186992 阅读:62 留言:0更新日期:2022-07-17 14:29
本申请涉及一种基于GO语言的注入式污点数据跟踪方法、装置、电子装置和存储介质,其中,该基于GO语言的注入式污点数据跟踪方法包括:获取被检测应用的ELF表,通过查询所述ELF表获取被检测应用的构建信息,并从所述构建信息中获取用于构建所述被检测应用的方法函数的地址信息;根据所述方法函数的地址信息,通过预先注入至所述被检测应用中的预设函数结构获取所述方法函数处理污点数据时的输入数据和输出数据;对获取到的所述方法函数的输入数据和输出数据进行标记。通过本申请,解决了现有技术中编译型污点跟踪技术存在的使用前准备工作比较繁琐麻烦,影响用户的使用体验的问题,提供了一种新的基于GO语言的注入式污点数据跟踪方法。数据跟踪方法。数据跟踪方法。

【技术实现步骤摘要】
基于GO语言的注入式污点数据跟踪方法、装置和电子装置


[0001]本申请涉及计算机
,特别是涉及一种基于GO语言的注入式污点数据跟踪方法、装置、电子装置和存储介质。

技术介绍

[0002]目前市面上存在的基于GO语言的污点跟踪技术主要采用了把污点跟踪的代码跟用户代码进行合并编译,然后运行编译后的程序进行监控,存在如下几点缺点。
[0003]a)首先需要拥有用户代码才能进行编译处理,假如用户只有执行文件没有源码将无法进行漏洞检测。
[0004]b)使用重新编译的方式意味着用户每一台在线的机子都需要重新进行编译部署,尤其是对于机器集群巨大的客户来说是一个非常不方便的事情,时间成本巨大。
[0005]c)编译型的注入需要在用户代码中进行一定量的修改,也就意味着用户不需要使用的时候需要去删除修改源码中添加的部分,影响用户使用体验。
[0006]因此目前的编译型污点跟踪技术在使用前的准备工作比较繁琐麻烦,影响用户的使用体验。
[0007]针对相关技术中编译型污点跟踪技术存在的使用前准备工作比较繁琐麻烦,影响用户的使用体验的问题,目前还没有提出有效的解决方案。

技术实现思路

[0008]在本实施例中提供了一种基于GO语言的注入式污点数据跟踪方法、装置、电子装置和存储介质,以解决相关技术中编译型污点跟踪技术存在的使用前准备工作比较繁琐麻烦,影响用户的使用体验的问题。
[0009]第一个方面,在本实施例中提供了一种基于GO语言的注入式污点数据跟踪方法,所述方法包括
[0010]获取被检测应用的ELF表,通过查询所述ELF表获取被检测应用的构建信息,并从所述构建信息中获取用于构建所述被检测应用的方法函数的信息;
[0011]根据所述方法函数的信息,通过预先注入至所述被检测应用中的预设函数结构,获取所述方法函数处理污点数据时的输入数据和输出数据;
[0012]对获取到的所述方法函数的输入数据和输出数据进行标记;
[0013]其中,被标记的各个所述方法函数的输入数据和输出数据用于形成漏洞链路。
[0014]在其中的一些实施例中,所述获取被检测应用的ELF表,通过查询所述ELF表获取被检测应用的构建信息包括:
[0015]将所述被检测应用的进程文件转化为字符类型以生成ELF文件,其中所述ELF文件中包括所述ELF表,所述ELF表中包含有所述被检测应用的构建信息;
[0016]获取所述被检测应用的进程文件在内存中的虚拟地址和地址偏移量;
[0017]根据所述虚拟地址获取所述构建信息在内存中的具体地址空间,结合所述地址偏
移量获取所述被检测应用的构建信息。
[0018]在其中的一些实施例中,所述获取所述被检测应用的进程文件在内存中的虚拟地址和地址偏移量包括:
[0019]根据所述进程文件的进程名称,获取所述被检测应用所在的路径;
[0020]基于所述被检测应用所在的路径,通过文件映射关系获取所述进程文件在内存中的虚拟地址和地址偏移量。
[0021]在其中的一些实施例中,所述对获取到的所述方法函数的输入数据和输出数据进行标记之前还包括:
[0022]对所述方法函数进行分类;其中所述方法函数的类型包括:第一类型、第二类型以及第三类型;所述第一类型的方法函数用于接收外部输入的污点数据、所述第二类型的方法函数用于传播污点数据,所述第三类型的方法函数用于触发漏洞。
[0023]在其中的一些实施例中,所述预设函数结构包括数据标记函数和数据获取函数,所述方法函数的信息包括所述方法函数在内存中的地址;
[0024]所述根据所述方法函数的信息,通过预先注入至所述被检测应用中的预设函数结构,获取所述方法函数处理污点数据时的输入数据和输出数据包括:
[0025]根据所述方法函数在内存中的地址,通过数据获取函数进行寄存器地址替换操作,以使所述方法函数的输入数据和输出数据进入所述预设函数结构;
[0026]通过所述数据标记函数对所述输出数据和所述输入数据进行标记和存储。
[0027]在其中的一些实施例中,所述方法还包括:
[0028]根据所述ELF表获取所述被检测应用所调用接口的接口列表;
[0029]其中,所述接口列表中包含有所述方法函数。
[0030]在其中的一些实施例中,所述通过预先注入至所述被检测应用中的预设函数结构获取所述方法函数处理污点数据时的输入数据和输出数据包括:
[0031]通过对比所述接口列表中的方法函数和预设函数列表中的方法函数,确定所述被检测应用中需要监测的方法函数;其中,所述预设函数列表中包括预设的需要监测的方法函数;
[0032]通过所述预设函数结构获取所述被检测应用中需要监测的方法函数处理污点数据时的输入数据和输出数据。
[0033]第二个方面,在本实施例中提供了一种基于GO语言的注入式污点数据跟踪装置,所述装置包括:第一获取模块、第二获取模块和数据标记模块;
[0034]所述第一获取模块用于获取被检测应用的ELF表,通过查询所述ELF表获取被检测应用的构建信息,并从所述构建信息中获取用于构建所述被检测应用的方法函数的信息;
[0035]所述第二获取模块用于根据所述方法函数的信息,通过预先注入至所述被检测应用中的预设函数结构获取所述方法函数处理污点数据时的输入数据和输出数据;
[0036]所述数据标记模块用于对获取到的所述方法函数的输入数据和输出数据进行标记;
[0037]其中,被标记的各个所述方法函数的输入数据和输出数据用于形成漏洞链路。
[0038]第三个方面,在本实施例中提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时
实现上述第一个方面所述的基于GO语言的注入式污点数据跟踪方法。
[0039]第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的基于GO语言的注入式污点数据跟踪方法。
[0040]与现有技术相比,本申请中的污点跟踪技术从操作系统的角度入手,通过ELF文件获取被检测应用的构建信息,构建信息中包含有方法函数信息,在此基础上采用相应的hook技术获取相应方法函数的输入数据和输出数据,最终实现污点跟踪分析。由于从操作系统的角度获取了方法函数信息,因此注入应用中的预设函数结构,不需要与应用的源代码一起进行编译,而是通过寄存器地址替换操作直接获取方法函数的输入和输出数据并标记,从而确定污点数据的传播链路。因此该污点数据跟踪方法可以直接作用在进程文件中,在应用程序的启动阶段,通过预设函数结构的动态注入,使其能够在不重新编译重启的情况下,获取污点数据的传播链路,并上报相应的漏洞信息。所以解决了现有技术中编译型污点跟踪技术存在的使用前准备工作比较繁琐麻烦,影响用户的使用体验的问题。
[0041]本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于GO语言的注入式污点数据跟踪方法,其特征在于,所述方法包括:获取被检测应用的ELF表,通过查询所述ELF表获取被检测应用的构建信息,并从所述构建信息中获取用于构建所述被检测应用的方法函数的信息;根据所述方法函数的信息,通过预先注入至所述被检测应用中的预设函数结构,获取所述方法函数处理污点数据时的输入数据和输出数据;对获取到的所述方法函数的输入数据和输出数据进行标记;其中,被标记的各个所述方法函数的输入数据和输出数据用于形成漏洞链路。2.根据权利要求1所述的基于GO语言的注入式污点数据跟踪方法,其特征在于,所述获取被检测应用的ELF表,通过查询所述ELF表获取被检测应用的构建信息包括:将所述被检测应用的进程文件转化为字符类型以生成ELF文件,其中所述ELF文件中包括所述ELF表,所述ELF表中包含有所述被检测应用的构建信息;获取所述被检测应用的进程文件在内存中的虚拟地址和地址偏移量;根据所述虚拟地址获取所述构建信息在内存中的具体地址空间,结合所述地址偏移量获取所述被检测应用的构建信息。3.根据权利要求2所述的基于GO语言的注入式污点数据跟踪方法,其特征在于,所述获取所述被检测应用的进程文件在内存中的虚拟地址和地址偏移量包括:根据所述进程文件的进程名称,获取所述被检测应用所在的路径;基于所述被检测应用所在的路径,通过文件映射关系获取所述进程文件在内存中的虚拟地址和地址偏移量。4.根据权利要求1所述的基于GO语言的注入式污点数据跟踪方法,其特征在于,所述对获取到的所述方法函数的输入数据和输出数据进行标记之前还包括:对所述方法函数进行分类;其中所述方法函数的类型包括:第一类型、第二类型以及第三类型;所述第一类型的方法函数用于接收外部输入的污点数据、所述第二类型的方法函数用于传播污点数据,所述第三类型的方法函数用于触发漏洞。5.根据权利要求1所述的基于GO语言的注入式污点数据跟踪方法,其特征在于,所述预设函数结构包括数据标记函数和数据获取函数,所述方法函数的信息包括所述方法函数在内存中的地址;所述根据所述方法函数的信息,通过预先注入至所述被检测应用中的预设函数结构...

【专利技术属性】
技术研发人员:范丙华徐锋熊奎
申请(专利权)人:杭州孝道科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1