专利汇可以提供基于动态污点跟踪的二进制软件脆弱性检测系统及方法专利检索,专利查询,专利分析的服务。并且本 发明 提出一种基于动态污点 跟踪 技术的二进制 软件 脆弱性检测系统及方法,主要解决 现有技术 运行时开销大、适用性差及因语义信息不全面造成的欠污染的问题。检测系统包括污点标记模 块 、脆弱性检测模块、污点传播分析模块以及API调用处理模块。API调用处理模块和污点传播分析模块确定系统的污点源与检测点;污点标记模块分配污点标记存储结构;污点传播分析模块和API调用处理模块跟踪被监控软件运行过程中指令、 内核 系统调用以及C标准库函数的污点标记传播;脆弱性检测模块检测污点数据的传播是否触发了软件脆弱性检测规则。本发明提高了系统动态污点跟踪的效率与准确性,扩展了系统的适用性,可用于对二进制软件进行脆弱性检测。,下面是基于动态污点跟踪的二进制软件脆弱性检测系统及方法专利的具体信息内容。
1.一种基于动态污点跟踪的二进制软件脆弱性检测系统,基于动态二进制插桩工具实现,其特征在于,包括:
污点标记模块(1),用于存储被监控软件进程地址空间以及线程通用寄存器中数据的污点标记,并为污点传播分析模块(3)以及API调用处理模块(4)提供污点标记操作功能;
脆弱性检测模块(2),用于检测被监控软件运行过程中是否触发了事先制定的软件脆弱性检测规则,并采取相应的安全响应措施,为污点传播分析模块(3)以及API调用处理模块(4)提供软件脆弱性检测功能;
污点传播分析模块(3),用于实现针对CPU架构基本指令集语义的污点标记传播,并为每个基本指令类型提供一个接口,这些接口用于根据不同的软件脆弱性检测规则,指定相关的指令类型为检测点,以调用脆弱性检测模块(2)进行脆弱性检测;
API调用处理模块(4),用于实现针对操作系统内核系统调用以及C标准库函数语义的污点标记传播,以提高系统动态污点跟踪的精确度以及效率,并提供接口以根据不同的软件脆弱性检测规则,指定相关的系统调用或C标准库函数为污点源或检测点,以调用污点标记模块(1)对引入的敏感数据设置污点标记或调用脆弱性检测模块(2)进行脆弱性检测。
2.根据权利要求1所述的系统,其特征在于,所述的污点标记模块(1)提供的污点标记操作功能,包括:设置污点标记、清除污点标记以及获取污点标记。
3.根据权利要求1所述的系统,其特征在于,所述的API调用处理接口模块(4),包括:
系统调用处理子模块(41),用于根据内核系统调用的语义信息,传播内核系统调用的污点标记,并为每个内核系统调用提供一个接口,这些接口用于根据不同的软件脆弱性检测规则,指定相关的系统调用为污点源或检测点,以调用污点标记模块(1)对引入的敏感数据设置污点标记或调用脆弱性检测模块(2)进行脆弱性检测;
C标准库调用处理子模块(42),用于根据C标准库函数的语义信息,传播C标准库函数调用的污点标记,并为每个C标准库函数提供一个接口,这些接口用于根据不同的软件脆弱性检测规则,指定相关的C标准库函数为污点源或检测点,以调用污点标记模块(1)对引入的敏感数据设置污点标记或调用脆弱性检测模块(2)进行脆弱性检测。
4.一种基于动态污点跟踪的二进制软件脆弱性检测方法,其特征在于,包括如下:
1)根据软件脆弱性检测规则,确定检测系统的污点源与检测点:
1a)API调用处理模块(4)指定产生敏感输入的系统调用或C标准库函数为污点源,通过对这些污点源函数的执行进行监控,以调用污点标记模块(1)对被监控软件引入的敏感数据设置污点标记;
1b)污点传播分析模块(3)以及API调用处理模块(4)指定潜在软件脆弱性触发点的指令类型、系统调用以及C标准库函数为检测点,通过对这些检测点相关的指令、系统调用以及C标准库函数的执行进行监控,以调用脆弱性检测模块(2)对被监控软件进行脆弱性检测;
2)污点标记模块(1)分配污点标记存储结构,存储被监控软件进程地址空间以及线程通用寄存器中数据的污点标记;
3)跟踪被监控软件运行过程中指令、系统调用以及C标准库函数的污点标记传播:
3a)污点传播分析模块(3)在被监控软件从污点源引入污点数据后,对被监控软件执行的除C标准库函数外的用户空间指令,进行语义信息的污点标记传播跟踪;对于被监控软件执行的C标准库函数内部的指令,则不进行污点跟踪;
3b)系统调用处理子模块(41)对被监控软件运行过程中产生在C标准库函数外的内核系统调用进行语义信息的污点标记传播跟踪;对于被监控软件产生在C标准库函数内部的内核系统调用,则不进行污点跟踪;
3c)C标准库调用处理子模块(42)对被监控软件运行过程中产生的C标准库函数调用进行语义信息的污点标记传播跟踪;
4)脆弱性检测模块(2)检测被监控软件运行过程中,污点数据的传播是否触发了软件脆弱性检测规则,若是,则结束监控,并采取相应的安全响应措施;否则,返回步骤3)。
5.根据权利要求4所述的方法,其特征在于所述3a)的实现步骤如下:
3a1)将被监控二进制软件分解为一系列的程序基本块,程序基本块是以入口指令或跳转目标指令为起始,以控制转移指令为终点的指令序列,其中控制转移指令具体包括返回类、跳转类以及函数调用类指令;
3a2)利用动态二进制插桩工具拦截被监控软件当前正待执行的程序基本块,并判断该程序基本块是否有效,若有效,则执行步骤3a3),否则,跟踪结束;其中程序基本块有效即为该拦截的程序基本块正常可执行,程序基本块无效即该拦截的程序基本块为空;
3a3)判断被监控软件是否从污点源引入了污点数据,若是,则执行步骤3a4),否则,在被监控软件执行3a2)拦截的程序基本块后,返回步骤3a2)拦截被监控软件下一个待执行的程序基本块;
3a4)获取3a2)拦截的程序基本块中正待分析的第一条指令,并判断该指令是否有效,若有效,则执行步骤3a5),否则,被监控软件执行插桩后的程序基本块,之后返回步骤3a2)拦截下一个待执行的程序基本块;其中指令有效即为该获取的指令正常可执行,指令无效即该获取的指令为空;
3a5)利用二进制解码工具XED解码3a4)获取的指令的指令类型,并判断该指令类型是否为检测点,若是,则先利用动态二进制插桩工具在该指令前插桩调用脆弱性检测模块(2)进行脆弱性检测的代码,再执行步骤3a6),否则,直接执行步骤3a6);
3a6)判断3a4)获取的指令是否为C标准库函数内部指令,若是,则返回步骤3a4)获取下一条待分析的指令,否则,执行步骤3a7);
3a7)利用二进制解码工具XED解码3a4)获取的指令的操作数类型信息以及操作数长度信息,该操作数类型信息包括寄存器类型、存储器类型以及立即数类型,该操作数长度信息包括字节、字、双字以及四字;
3a8)根据3a4)获取的指令的语义信息,以及步骤3a7)解码关于该指令的操作数类型与长度信息,利用动态二进制插桩工具在该指令前插桩语义信息的污点标记传播逻辑,返回步骤3a4)获取下一条待分析的指令。
6.根据权利要求4所述的方法,其特征在于所述3b)的实现步骤如下:
3b1)利用动态二进制插桩工具拦截被监控软件当前正待执行的系统调用,并判断该系统调用是否有效,若有效,则执行步骤3b2),否则,跟踪结束;其中系统调用有效即为该拦截的系统调用正常可执行,系统调用无效即该拦截的系统调用为空;
3b2)判断3b1)拦截的系统调用是否产生于C标准库函数内部,若是,则被监控软件执行该系统调用后,返回步骤3b1)拦截下一个待执行的系统调用,否则,执行步骤3b3);
3b3)在被监控软件进入3b1)拦截的系统调用前,利用动态二进制插桩工具获取被监控软件传递给该系统调用的参数;
3b4)判断3b1)拦截的系统调用是否为检测点,若是,则先调用脆弱性检测模块(2)进行脆弱性检测,再执行步骤3b5),否则,直接执行步骤3b5);
3b5)在被监控软件退出3b1)拦截的系统调用后,利用动态二进制插桩工具获取该系统调用的返回值;
3b6)根据3b1)拦截的系统调用的语义信息,以及3b3)与3b5)获取的该系统调用的参数以及返回值信息,调用污点标记模块(1),实现对该系统调用语义信息的污点标记传播逻辑;
3b7)判断3b1)拦截的系统调用是否为污点源,若是,则先调用污点标记模块(1),对被监控软件引入的敏感数据设置相应的污点标记,再返回步骤3b1)拦截下一个待执行的系统调用,否则,直接返回步骤3b1)拦截下一个待执行的系统调用。
7.根据权利要求4所述的方法,其特征在于所述3c)的实现步骤如下:
3c1)利用动态二进制插桩工具拦截被监控软件当前正待执行的C标准库函数调用,并判断该C标准库函数调用是否有效,若有效,则执行步骤3c2),否则,跟踪结束;其中C标准库函数调用有效即为该拦截的C标准库函数调用正常可执行,C标准库函数调用无效即该拦截的C标准库函数调用为空;
3c2)判断3c1)拦截的C标准库函数调用是否产生于其他C标准库函数内部,若是,则被监控软件执行该C标准库函数调用后,返回步骤3c1)拦截下一个待执行的C标准库函数调用,否则,执行步骤3c3);
3c3)在被监控软件进入3c1)拦截的C标准库函数前,利用动态二进制插桩工具获取被监控软件传递给该C标准库函数的参数;
3c4)判断3c1)拦截的C标准库函数是否为检测点,若是,则先调用脆弱性检测模块(2)进行脆弱性检测,再执行步骤3c5),否则,直接执行步骤3c5);
3c5)在被监控软件退出3c1)拦截的C标准库函数后,利用动态二进制插桩工具获取该C标准库函数调用的返回值;
3c6)根据3c1)拦截的C标准库函数的语义信息,步骤3c3)与3c5)获得的对该C标准库函数调用的参数和返回值信息,以及对应CPU架构、编译器的函数调用约定,调用污点标记模块(1),实现对该C标准库函数调用语义信息的污点标记传播逻辑;
3c7)判断3c1)拦截的C标准库函数是否为污点源,若是,则先调用污点标记模块(1),对被监控软件引入的敏感数据设置相应的污点标记,再返回步骤3c1)拦截下一个待执行的C标准库函数调用,否则,直接返回步骤3c1)拦截下一个待执行的C标准库函数调用。
8.根据权利要求5所述的方法,其特征在于,步骤3a8)中的指令污点标记传播逻辑,包括:
污点标记合并传播逻辑,用于算术运算或逻辑运算指令inst(op_dst,op1,op2,...)的污点标记传播,该合并传播逻辑为tag_dst=tag_dst|tag_src1|tag_src2|...,其中tag_dst为目的操作数op_dst对应的污点标记,tag_src1为第一源操作数op1对应的污点标记,tag_src2为第二源操作数op2对应的污点标记,当源操作数为立即数时,看作该操作数无污点标记;
污点标记传送传播逻辑,用于数据传送指令inst(op_dst,op_src)的污点标记传播,该传送传播逻辑为tag_dst=tag_src,其中tag_dst为目的操作数op_dst对应的污点标记,tag_src为源操作数op_src对应的污点标记,当源操作数为立即数时,看作该操作数无污点标记;
污点标记清除传播逻辑,用于单一源操作数为立即数的数据传送指令、运算得0的算术逻辑运算指令以及返回CPU状态信息的特殊指令的污点标记传播,该清除传播逻辑为其中tag_dst为这些指令的目的操作数对应的污点标记。
标题 | 发布/更新时间 | 阅读量 |
---|---|---|
远程听力测试系统以及使用这种系统建立听觉分布并调节助听器的关联方法 | 2020-05-08 | 637 |
一种基于LoRaWAN的监控方法、基站和存储介质 | 2020-05-08 | 487 |
快速拍摄方法、设备及可读存储介质 | 2020-05-08 | 695 |
快速拍摄方法、设备及可读存储介质 | 2020-05-08 | 627 |
终端设备的显示屏以及终端设备 | 2020-05-08 | 27 |
接口可用性上报、指示方法和设备 | 2020-05-08 | 872 |
基于耳机位置的设备和应用控制 | 2020-05-08 | 15 |
一种冗余备份方法及装置 | 2020-05-08 | 649 |
直播间弹幕显示方法、存储介质、设备及系统 | 2020-05-08 | 745 |
玻璃后盖及终端 | 2020-05-08 | 798 |
高效检索全球专利专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。
我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。
专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。