一种基于代码疫苗的运行时漏洞分析方法及装置制造方法及图纸

技术编号:37683603 阅读:36 留言:0更新日期:2023-05-28 09:36
本申请提供一种基于代码疫苗的运行时漏洞分析方法及装置,包括:解析请求信息,对所述请求参数进行污点源标记和污点传播标记;监控操作函数,判断是否为污点源事件;若是,则创建污点源事件结构体,并去除操作函数的返回值的污点源标记;监控传播函数,判断是否为污点传播事件;若是,则创建污点传播事件结构体,并对传播函数的返回值进行污点传播标记;监控风险函数,判断是否为污点汇聚事件;若是,则创建污点汇聚事件结构体;根据所述污点源事件结构体、污点传播事件结构体和污点汇聚事件结构体构建污点传播链路。实施该方法能够通过污点传播链路溯源解决漏洞修复的如何定位代码问题和漏洞成因分析的追踪污点传播问题。和漏洞成因分析的追踪污点传播问题。和漏洞成因分析的追踪污点传播问题。

【技术实现步骤摘要】
一种基于代码疫苗的运行时漏洞分析方法及装置


[0001]本申请涉及代码安全领域,具体而言,涉及一种基于代码疫苗的运行时漏洞分析方法及装置。

技术介绍

[0002]现有漏洞挖掘技术主要分为两类。一类为黑盒测试,将整个软件系统作为一个黑盒子对待,用户从黑盒的一端提供数据输入,另一端产生输出结果,通过观察软件系统是否出现异常或者发生崩溃来确定是否存在软件漏洞。但其对程序内部结构不了解,导致无法覆盖所有的代码执行路径。同时在测试过程中会产生大量脏数据、脏操作,且在数据包加密、带签名等场景下无法构造数据包,导致黑盒测试无法使用。第二类为白盒测试,通过对软件源代码进行代码审计的方式来寻找软件漏洞。但其需要对应用程序的源代码进行深度分析,消耗的时间成本高,且由于该技术分析的是模拟程序运行时的数据,导致其漏洞误报率较高。而且在win32下的绝大多数软件是不开源的,这限制了白盒测试的使用。
[0003]相关技术中,代码安全解决方案是基于语法规则将接收到的连接请求添加污染标志位;根据污染保持函数传递污染标志位;通过污染风险函数判断处理结果是否存在污染数据,本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于代码疫苗的运行时漏洞分析方法,其特征在于,所述方法包括:解析请求信息,所述请求信息包括:请求参数、url和请求方法;对所述请求参数进行污点源标记和污点传播标记;监控opcode对应的操作函数,判断是否为污点源事件;若是,则创建污点源事件结构体,并去除操作函数的返回值的污点源标记;监控传播函数,判断是否为污点传播事件;若是,则创建污点传播事件结构体,并对传播函数的返回值进行污点传播标记;监控opcode对应的风险函数,判断是否为污点汇聚事件;若是,则创建污点汇聚事件结构体;根据所述污点源事件结构体、污点传播事件结构体和污点汇聚事件结构体构建污点传播链路。2.根据权利要求1所述的方法,其特征在于,所述解析请求信息之前,包括:在php扩展的模块初始化阶段对zend引擎的opcode预插桩第一探针,对php内部函数预插桩第二探针。3.根据权利要求2所述的方法,其特征在于,所述解析请求信息包括:将所述请求信息存放到第一zval结构体的预定义变量数组中;在php扩展的请求初始化阶段通过所述第一探针解析存放在预定义变量数组中的请求信息,得到请求参数、url和请求方法。4.根据权利要求3所述的方法,其特征在于,所述对所述请求参数进行污点源标记和污点传播标记,包括:对所述预定义变量数组中的string类型进行污点源标记和污点传播标记。5.根据权利要求1所述的方法,其特征在于,所述请求参数进行污点源标记和污点传播标记之后,包括:将所述请求参数的第一zval结构体地址和请求参数的信息保存到污点传播表中,所述请求参数的信息包括请求参数的类型和请求参数的名称;所述创建污点源事件结构体之后,包括:将所述操作函数的返回值的第二zval结构体地址和对应的所述污点源事件结构体保存到污点传播表中;所述创建污点传播事件结构体之后,包括:将所述传播函数的返回值的第三zval结构体地址和对应的所述污点传播事件结构体保存到污点传播表中;所述污点汇聚事件结构体包括:将所述风险函数的参数的第四zval结构体地址和对应的所述污点汇聚事件结构体保存到污点传播表中。6.根据权利要求2所述的方法,其特征在于,所述监控opcode对应的操作函数,判断是否为污点源事件包括:通过所述第一探针监控opcode对应的操作函数,获取操作函数的参数和返回值,判断所述操作函数的返回值是否为string类型,且是否存在污点源标记。7.根据权利要求2所述的方法,其特征在于,所述监控传播函数,判断是否为污点传播事件包括:通过所述第一探针或第二探针监控传播函数,获取传播函数的参数和返回值,判断传播函数的参数是否为string类型,且是否存在污点传播标记。
8.根据权利要求7所述的方法,其特征在于,所述通过所述第一探针或第二探针监控传播函数包括:通过所述第一探针监控opcode对应的操作函数,所述操作函数包括用于字符串连接的第一传播函数;或,通过所述第二探针监控php内部函数,所述php内部函数包括用于字符串操作的第二传播函数。9.根据权利要求2所述的方法,其特征在于,所述监控opcode对应的风险函数,判断是否为污点汇聚事件包括:通过所述第一探针监控opcode对应的风险函数,获取风险函数的参数,判断风险函数的参数是否为string类型,且是否存在污点传播标记。10.根据权利要求5所述的方法,其特征在于,所述污点源事件结构体包括:污点源参数信息、污点事件类型、调用栈信息、操...

【专利技术属性】
技术研发人员:张涛李浩宁戈董毅周辜名
申请(专利权)人:北京安普诺信息技术有限公司
类型:发明
国别省市:

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

1