CN104765687A - 基于对象跟踪和污点分析的j2ee程序漏洞检测方法 - Google Patents

基于对象跟踪和污点分析的j2ee程序漏洞检测方法 Download PDF

Info

Publication number
CN104765687A
CN104765687A CN201510165623.9A CN201510165623A CN104765687A CN 104765687 A CN104765687 A CN 104765687A CN 201510165623 A CN201510165623 A CN 201510165623A CN 104765687 A CN104765687 A CN 104765687A
Authority
CN
China
Prior art keywords
stain
user
flow
tainting
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510165623.9A
Other languages
English (en)
Other versions
CN104765687B (zh
Inventor
郭帆
曾祥飞
冼国豪
周壮
黎红
曾宪祚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangxi Normal University
Original Assignee
Jiangxi Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangxi Normal University filed Critical Jiangxi Normal University
Priority to CN201510165623.9A priority Critical patent/CN104765687B/zh
Publication of CN104765687A publication Critical patent/CN104765687A/zh
Application granted granted Critical
Publication of CN104765687B publication Critical patent/CN104765687B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

一种基于对象跟踪和污点分析的J2EE程序漏洞检测方法,所述方法包括预处理过程和污点分析两部分。所述预处理过程包括预定义方法集合和JSP代码插桩过程;所述污点分析包括污点信息表示和污点传播分析;本发明有效解决污点对象的动态跟踪问题,提供污点传播路径追踪功能,跟踪对象的同时记录污点对象在程序中的传播路径,有效解决漏洞定位问题。本发明的设计方案可以实时防御针对J2EE程序的各种攻击或者有效检测程序的潜在安全漏洞。

Description

基于对象跟踪和污点分析的J2EE程序漏洞检测方法
技术领域
本发明涉及一种面向J2EE程序安全漏洞检测的方法,尤其涉及一种基于Java对象跟踪和污点分析的动态检测程序漏洞方案,属WEB应用和计算机安全领域。
背景技术
 不可信WEB软件正在破坏金融、医疗、国防、能源和其他关键基础设施。Open Web Application Security Project项目在2014年十大关键Web应用安全漏洞报告中将注入攻击、跨站脚本攻击和跨站请求伪造列在第一位、第三位和第八位。使用未经验证的外部输入数据是这类漏洞产生的主要原因,外部输入数据亦被称为污点数据,即tainted data,指那些外部非可信实体数据源输入到应用程序的数据,包括从HTML表单中提交的数据、客户端Cookies获得的数据、URL中的参数、外部流数据和外部文件输入数据等,追踪和阻止对这些污点数据的使用称为污点分析。
污点分析为明确划分污点数据在程序中传播的各个阶段,将传播污点的方法分为以下几类:
 Source:源方法,指返回外部不可信数据的方法。
 Propagation:传播方法,以污点数据为输入产生了新的污点数据的方法。
 Sanitizer:验证方法,由开发人员自定义,如果污染数据经过验证函数处理,那么该污点数据转为可信数据。
 Sink:使用方法,指使用污染数据的方法,如执行SQL语句或生成HTML页面。
静态污点分析指在不运行代码的方式下,对代码进行词法、语法、静态语义分析从而找出软件潜在的安全漏洞。动态污点分析在整个***运行过程中追踪污点传播,检测污点变量是否在未验证情况下使用。本发明设计一种动态追踪污点对象、实时预警外部攻击并记录污点传播路径的具体方法,结合静态分析技术降低运行时***开销,同时拓展处理的污点数据类型以扩展污点跟踪的普遍性,不仅跟踪字符串对象的污点传播或单个字符的污点信息,而且可以跟踪所有可能污染的Java对象如流类型、XPath,本发明称为对象跟踪。
       本发明采用开源Java编译优化框架SOOT平台,将Java字节码或源代码转换为中间代码Jimple,对Jimple代码进行插桩实现对污点对象的实时跟踪,结合SOOT平台提供的SPARK静态分析框架计算程序中待插桩方法集合,方法类型为上述Source、Propagation、Sanitizer或Sink。
   
发明内容
本发明的目的是,提出一种面向J2EE程序实时检测安全漏洞和防御外部攻击的方法,提高网站抵御外部攻击的能力,为达到此目的,本发明采用以下技术方案。
本发明的方法总体架构分为两部分:一是预处理过程,包括预定义方法集合和JSP代码插桩过程;二是污点分析,包括污点信息表示和污点传播分析;
1)预处理过程
1.1)预定义方法集合包括可达方法集合和待插桩方法集合:a)程序的可达方法集合指应用程序调用的方法集合,通过调用SOOT平台的SPARK分析获取;b)待插桩方法集合是对Java和Servlet基础类库进行分析后提取出与污点传播相关的方法;
1.2)JSP代码插桩过程利用JSPC开源编译器预先将JSP代码编译成字节码后进行处理,插桩后对JSP代码的访问通过在JSPC编译过程中自动生成的与字节码的映射关系实现,将所有插桩后的Jimple代码重新编译,生成新的应用程序;
2)污点分析
污点信息表示指定污点信息的存贮和使用规范,污点传播分析包括污点传播策略设计、污点路径跟踪、污点检查与验证,根据这些方法、语义与规范编码形成污点传播方法库,将污点传播方法库和插桩后的应用程序进行链接生成检测漏洞的WEB程序,在运行过程中遇到外部攻击,则抛出异常并打印完整污点传播路径,能迅速定位漏洞。
本发明的污点分析方法的主要模块包括:污点信息表示模块、污点传播分析模块、污点路径追踪模块。
A. 污点信息表示模块
本发明跟踪Java对象的内存空间是否被污染,对象内存空间不仅存贮字符类型和字符串,也存贮字符数组、流类型、XPath类型及Object类型;
本方明利用对象的哈希值来唯一确定污点对象,而Object对象的哈希值依赖于对象实例的内存地址,需要指出的是String对象重写了哈希计算方法,用于识别不同内存位置的相同字符串值;
本发明的污点信息表示满足以下条件:a)跟踪记录每个用户每次会话的所有外部输入对象;b)应用程序在执行过程中随时获取外部输入对象和受污染对象的空间位置;c)产生新的污染对象时,记录污染来源,用于实时推导传播路径;d)记录污点传播过程中每个方法节点的坐标;e)当Java流对象被污染,装饰该对象的所有流对象和产生该对象的原始流对象都标记为污点;
本发明的程序污点信息表示由一张全局污点表对象和一幅全局污染流图组成,全局污点表记录所有用户的用户污点表引用,以标识用户的 Universally Unique Identifier为键,用户污点表引用为值,与用户污点表是一对多的关系;
用户污点表以污点对象的哈希值作为键,以该污点拥有的方法节点引用作为值,记录用户在访问应用程序过程中引入和传播的所有污点对象,每个污点对象对应一个或多个方法节点;
方法节点记录污点对象经过该方法时的信息,包括污点来源、方法名称和方法坐标,每个方法节点对应一个方法坐标,方法坐标记录该方法的位置信息,包括该方法所在的文件及行号;
本发明为了记录流对象的产生流对象和原始流对象,将流对象和其相关流对象组成流家族:a)构建流家族指在新的流对象生成时记录流对象的上下文关系,将流对象加入用户污染流图;b)流家族污染指当用户污染流图中某个节点被污染时,根据流对象的上下文关系,将该流对象所在的流家族全部添加到用户污点表中;c)全局污染流图记录所有用户污染流图的引用,以标识用户的 Universally Unique Identifier为键,用户污染流图为值,与用户污染流图是一对多的关系;d)用户污染流图以流对象的哈希值为键,以流节点的引用为值,记录某个用户使用的所有流对象信息;e)流对象信息保存在流节点中,包括该流的父流对象和子流对象,父流对象只有一个,是指生成该流的流对象;子流对象有多个,指由该流对象经过装饰而生成的其他流对象;
污点信息表示模块的全局污点表和全局污染流图的生命周期和应用程序的生命周期一致,用户污点表和用户污染流图与所对应用户的会话生命周期一致。
B. 污点传播分析模块
本发明设计一种基于XML 的语言规范描述Source、Propagation、Sanitizer和Sink方法的污点传播策略,该规范使用三项特征值具体识别每个方法,包括:a) function-class表示方法所属类;b)function-return表示方法返回值;c)function-signature: 表示方法特征,包含方法名和参数;
该规范指定污点对象在方法中出现的位置,包括三类值:Lvalue指左值,表示污点对象是方法的返回值,base指基值,表示污点对象是调用该方法的实例对象,argi指第i个参数,表示污点对象是该方法的参数;
a)对于Propagation类型方法,指定该方法被调用时污点对象的输入位置和新污点对象的产生位置,分别由符号tainted-src和tainted-des表示;b)对于Source类型方法,指定新污点对象的产生位置,由符号tainted-des表示,通常是左值;c)Sanitizer类型方法由开发人员定义,指定待验证的污点对象的输入位置,由符号tainted-src表示,经过验证的污点对象将从用户污点表中删除,成为可信对象;d)对于Sink类型方法,指定该方法被调用时污点对象的输入位置,由符号tainted-src表示,通常是方法的基值或参数,如果Sink方法的基值或参数是污点对象,则可抛出异常并报警;
本发明针对Source类型方法设计的污点传播策略如下:初始化时所有内存空间都可信,执行至Source方法时,根据预定义的Source方法语言规范,将污点产生位置的实参添加到污点表中;
本发明针对Propagation类型方法设计的污点传播策略如下:a)执行至Propagation方法时,判断tainted-src中污点对象位置的实际值是否被污染,若任一个被污染,则将tainted-des集合中对应的Java对象添加到用户污点表中;b)当tainted-des中指定位置映射的实际值类型为容器类型如数组、链表或集合类型,将容器中的所有对象都添加至用户污点表;c)当tainted-des中指定位置映射的实际类型是流类型时,获取该流家族中所有的流对象,将这些流对象添加到用户污点表中;
本发明针对Sanitizer类型方法设计的污点传播策略如下:程序执行至Sanitizer方法时,参数表示的污点对象在方法返回时变为可信对象;
本发明针对Sink类型方法设计的污点传播策略如下:程序执行至Sink方法时,如参数或者基值为污点对象,则报警并启动污点路径追踪模块。
C. 污点路径追踪模块
本发明设计的污点路径追踪算法,以Sink方法的污点对象作为起点,将该对象经历的每个方法节点添加到污点传播列表,直到Source方法;
算法参数taint对应全局污点表,参数list对应从引发报警的污点对象到当前污点对象所经历的方法节点列表,参数t表示当前污点的哈希值,参数traces表示存储污点传播路径的容器;
算法首先获取用户污点表并取得对应的方法节点列表后;然后对方法节点进行深拷贝,将拷贝的方法节点添加到traces表示的传播路径容器中并保持各条传播路径中方法节点的独立性;接着按照该污点经历方法节点的先进先出顺序遍历方法节点列表,若该方法是Source,则将方法节点的拷贝添加到传播列表中,得到一条新传播路径,并将将该路径拷贝至traces,若不是Source,将该方法节点的拷贝添加到传播列表中,并取得该方法节点对应的所有输入污点对象;递归处理这些输入污点对象,递归处理结束后删除传播列表中最后一个节点即最后添加的方法节点拷贝,回溯求出导致Sink报警的污点对象的所有传播路径。
本发明的有益效果是设计一种基于对象跟踪的动态污点分析方法,扩展污点跟踪的对象类型,定义污点信息表示规范处理任意Java对象的污点信息,有效解决漏报问题,按照Source,Propagation,Validation,Sink分类设计不同的污点传播策略,有效解决污点对象的动态跟踪问题,提供污点传播路径追踪功能,跟踪对象的同时记录污点对象在程序中的传播路径,有效解决漏洞定位问题。
本发明的设计方案可以实时防御针对J2EE程序的各种攻击或者有效检测程序的潜在安全漏洞。
附图说明
图1为本发明方案体系结构图;
图2为污点信息表示的逻辑结构;
图3为各类方法的污点传播规范示例;
图4为污点路径追踪算法伪码;
图5为插桩前后的程序对比示例;
图6为以Eclipse插件方式实施的效果;
图7 为报警和路径追踪示例。
具体实施方式
 本发明的设计方案实现需要解决两个问题,一是用户在后台进程中如何获取用户污点表,以及如何保持用户污点表生命周期和用户会话生命周期一致。二是如何在不破坏程序原有逻辑的基础上完成程序插桩。
   用户污点表的获取包括两部分:一是构建用户污点信息表并保存到会话,为使用户污点信息表和用户会话一一对应,可创建一个UUID 对象,通过用户会话持有。在用户会话创建时创建用户污点信息表,在会话结束时从会话中移除污点信息表,Java的垃圾回收机制会自动回收污点对象,这样可保持用户污点信息表的生命周期和用户会话的生命周期一致。二是从不同的应用程序线程获取用户污点信息表,在用户每个请求发出时,会由一个全局对象持有当前请求的会话,该全局对象可由Java的InheritableThreadLocal类实现,该类可以解决共享对象的多线程访问。通过全局对象可获得当前线程所在会话,得到该用户对象的UUID,从而得到用户污点表。
插桩的实施可利用SOOT框架提供的PackManager接口实现,插桩在不破坏应用程序逻辑结构的前提下进行,为了尽量减少对应用程序的影响,本发明实施时可采用***插桩方法(根据污点传播策略设计的方法)的调用语句,然后将待插桩方法的节点信息和参数具体值传递给插桩方法。
对程序和第三方类库插桩时,根据中间代码Jimple的语句结构分为两类:
非赋值语句:普通调用方法(VirtualInvokeExpr)、构造方法(SpecialInvokeExpr)、接口调用方法(InterfaceInvokeExpr)、静态调用方法(StaticInvokeExpr)。
   赋值语句:普通调用方法(VirtualInvokeExpr)、静态调用方法(StaticInvokeExpr)、接口调用方法(InterfaceInvokeExpr)。
 图5给出了方案实施的一个示例。第1部分是Java源代码,第2部分是Jimple代码,第3部分是插桩后代码。第2部分的第1,3行分别是赋值语句的接口调用方法和普通调用方法,第7行是非赋值语句中的普通调用方法,这三行代码中的方法均属于待插桩方法。
    第3部分的第2行是第2部分第1行方法所对应的插桩方法调用代码。插桩方法的参数包括方法节点信息和参数值,第2行对getParameter方法进行插桩,插桩方法第1,2个参数分别表示getParameter方法的节点特征和其父方法的节点特征,第3个参数是该方法节点所在文件,第4个参数是该方法节点对应Java代码的行号,在无法确定行号时显示为“unknown”,第5个参数是方法返回的污点对象。
    本发明的实施最终以Eclipse插件形式呈现,如图6所示,SootView是插件装载进Eclipse后的视图名称。实施方案以图形方式显示报警和污点传播路径,输入可以是Java源代码或字节码,程序执行时如污点传播至Sink方法处,可打印报警及传播路径信息。图7中可以看到视图SootView,图7给出SootView展现的报警,报警中标记的Source类型表示是一条传播路径的开始,点击每条路径的左边三角形即可展开传播路径,每条报警均指明路径中每个节点对应的文件名和行号,以方便程序员定位漏洞。

Claims (4)

1.一种基于对象跟踪和污点分析的J2EE程序漏洞检测方法,其特征是:所述方法包括预处理过程和污点分析两部分。
2.根据权利要求1所述的一种基于对象跟踪和污点分析的J2EE程序漏洞检测方法,其特征是:所述预处理过程包括预定义方法集合和JSP代码插桩过程;
所述预定义方法集合包括可达方法集合和待插桩方法集合:a)程序的可达方法集合指应用程序调用的方法集合,通过调用SOOT平台的SPARK分析获取;b)待插桩方法集合是对Java和Servlet基础类库进行分析后提取出与污点传播相关的方法;
所述JSP代码插桩过程利用JSPC开源编译器预先将JSP代码编译成字节码后进行处理,插桩后对JSP代码的访问通过在JSPC编译过程中自动生成的与字节码的映射关系实现,将所有插桩后的Jimple代码重新编译,生成新的应用程序。
3.根据权利要求1所述的一种基于对象跟踪和污点分析的J2EE程序漏洞检测方法,其特征是:所述污点分析包括污点信息表示和污点传播分析;
所述污点信息表示指定污点信息的存贮和使用规范,污点传播分析包括污点传播策略设计、污点路径跟踪、污点检查与验证,根据这些方法、语义与规范编码形成污点传播方法库,将污点传播方法库和插桩后的应用程序进行链接生成检测漏洞的WEB程序,在运行过程中遇到外部攻击,则抛出异常并打印完整污点传播路径,能迅速定位漏洞。
4.根据权利要求3所述的一种基于对象跟踪和污点分析的J2EE程序漏洞检测方法,其特征是:所述污点分析中的模块包括:污点信息表示模块、污点传播分析模块、污点路径追踪模块;
A. 污点信息表示模块
本发明跟踪Java对象的内存空间是否被污染,对象内存空间不仅存贮字符类型和字符串,也存贮字符数组、流类型、XPath类型及Object类型;
本方明利用对象的哈希值来唯一确定污点对象,而Object对象的哈希值依赖于对象实例的内存地址,需要指出的是String对象重写了哈希计算方法,用于识别不同内存位置的相同字符串值;
本发明的污点信息表示满足以下条件:a)跟踪记录每个用户每次会话的所有外部输入对象;b)应用程序在执行过程中随时获取外部输入对象和受污染对象的空间位置;c)产生新的污染对象时,记录污染来源,用于实时推导传播路径;d)记录污点传播过程中每个方法节点的坐标;e)当Java流对象被污染,装饰该对象的所有流对象和产生该对象的原始流对象都标记为污点;
本发明的程序污点信息表示由一张全局污点表对象和一幅全局污染流图组成,全局污点表记录所有用户的用户污点表引用,以标识用户的 Universally Unique Identifier为键,用户污点表引用为值,与用户污点表是一对多的关系;
用户污点表以污点对象的哈希值作为键,以该污点拥有的方法节点引用作为值,记录用户在访问应用程序过程中引入和传播的所有污点对象,每个污点对象对应一个或多个方法节点;
方法节点记录污点对象经过该方法时的信息,包括污点来源、方法名称和方法坐标,每个方法节点对应一个方法坐标,方法坐标记录该方法的位置信息,包括该方法所在的文件及行号;
本发明为了记录流对象的产生流对象和原始流对象,将流对象和其相关流对象组成流家族:a)构建流家族指在新的流对象生成时记录流对象的上下文关系,将流对象加入用户污染流图;b)流家族污染指当用户污染流图中某个节点被污染时,根据流对象的上下文关系,将该流对象所在的流家族全部添加到用户污点表中;c)全局污染流图记录所有用户污染流图的引用,以标识用户的 Universally Unique Identifier为键,用户污染流图为值,与用户污染流图是一对多的关系;d)用户污染流图以流对象的哈希值为键,以流节点的引用为值,记录某个用户使用的所有流对象信息;e)流对象信息保存在流节点中,包括该流的父流对象和子流对象,父流对象只有一个,是指生成该流的流对象;子流对象有多个,指由该流对象经过装饰而生成的其他流对象;
污点信息表示模块的全局污点表和全局污染流图的生命周期和应用程序的生命周期一致,用户污点表和用户污染流图与所对应用户的会话生命周期一致;
B. 污点传播分析模块
本发明设计一种基于XML 的语言规范描述Source、Propagation、Sanitizer和Sink方法的污点传播策略,该规范使用三项特征值具体识别每个方法,包括:a) function-class表示方法所属类;b)function-return表示方法返回值;c)function-signature: 表示方法特征,包含方法名和参数;
该规范指定污点对象在方法中出现的位置,包括三类值:Lvalue指左值,表示污点对象是方法的返回值,base指基值,表示污点对象是调用该方法的实例对象,argi指第i个参数,表示污点对象是该方法的参数;
a)对于Propagation类型方法,指定该方法被调用时污点对象的输入位置和新污点对象的产生位置,分别由符号tainted-src和tainted-des表示;b)对于Source类型方法,指定新污点对象的产生位置,由符号tainted-des表示,通常是左值;c)Sanitizer类型方法由开发人员定义,指定待验证的污点对象的输入位置,由符号tainted-src表示,经过验证的污点对象将从用户污点表中删除,成为可信对象;d)对于Sink类型方法,指定该方法被调用时污点对象的输入位置,由符号tainted-src表示,通常是方法的基值或参数,如果Sink方法的基值或参数是污点对象,则可抛出异常并报警;
本发明针对Source类型方法设计的污点传播策略如下:初始化时所有内存空间都可信,执行至Source方法时,根据预定义的Source方法语言规范,将污点产生位置的实参添加到污点表中;
本发明针对Propagation类型方法设计的污点传播策略如下:a)执行至Propagation方法时,判断tainted-src中污点对象位置的实际值是否被污染,若任一个被污染,则将tainted-des集合中对应的Java对象添加到用户污点表中;b)当tainted-des中指定位置映射的实际值类型为容器类型如数组、链表或集合类型,将容器中的所有对象都添加至用户污点表;c)当tainted-des中指定位置映射的实际类型是流类型时,获取该流家族中所有的流对象,将这些流对象添加到用户污点表中;
本发明针对Sanitizer类型方法设计的污点传播策略如下:程序执行至Sanitizer方法时,参数表示的污点对象在方法返回时变为可信对象;
本发明针对Sink类型方法设计的污点传播策略如下:程序执行至Sink方法时,如参数或者基值为污点对象,则报警并启动污点路径追踪模块;
C. 污点路径追踪模块
本发明设计的污点路径追踪算法,以Sink方法的污点对象作为起点,将该对象经历的每个方法节点添加到污点传播列表,直到Source方法;
算法参数taint对应全局污点表,参数list对应从引发报警的污点对象到当前污点对象所经历的方法节点列表,参数t表示当前污点的哈希值,参数traces表示存储污点传播路径的容器;
算法首先获取用户污点表并取得对应的方法节点列表后;然后对方法节点进行深拷贝,将拷贝的方法节点添加到traces表示的传播路径容器中并保持各条传播路径中方法节点的独立性;接着按照该污点经历方法节点的先进先出顺序遍历方法节点列表,若该方法是Source,则将方法节点的拷贝添加到传播列表中,得到一条新传播路径,并将将该路径拷贝至traces,若不是Source,将该方法节点的拷贝添加到传播列表中,并取得该方法节点对应的所有输入污点对象;递归处理这些输入污点对象,递归处理结束后删除传播列表中最后一个节点即最后添加的方法节点拷贝,回溯求出导致Sink报警的污点对象的所有传播路径。
CN201510165623.9A 2015-04-10 2015-04-10 基于对象跟踪和污点分析的j2ee程序漏洞检测方法 Expired - Fee Related CN104765687B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510165623.9A CN104765687B (zh) 2015-04-10 2015-04-10 基于对象跟踪和污点分析的j2ee程序漏洞检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510165623.9A CN104765687B (zh) 2015-04-10 2015-04-10 基于对象跟踪和污点分析的j2ee程序漏洞检测方法

Publications (2)

Publication Number Publication Date
CN104765687A true CN104765687A (zh) 2015-07-08
CN104765687B CN104765687B (zh) 2017-07-21

Family

ID=53647531

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510165623.9A Expired - Fee Related CN104765687B (zh) 2015-04-10 2015-04-10 基于对象跟踪和污点分析的j2ee程序漏洞检测方法

Country Status (1)

Country Link
CN (1) CN104765687B (zh)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105791261A (zh) * 2015-12-28 2016-07-20 华为技术有限公司 一种跨站脚本攻击的检测方法和检测设备
CN106126417A (zh) * 2016-06-17 2016-11-16 深圳开源互联网安全技术有限公司 交互式应用程序安全测试方法及其***
CN106940773A (zh) * 2017-01-10 2017-07-11 西安电子科技大学 基于静态污点数据分析的隐私泄漏漏洞检测确认方法
WO2017121172A1 (zh) * 2016-01-12 2017-07-20 上海斐讯数据通信技术有限公司 一种Java代码中数据流的跟踪装置和方法
CN107038378A (zh) * 2016-11-14 2017-08-11 平安科技(深圳)有限公司 应用软件安全漏洞检测方法和***
CN107623738A (zh) * 2017-09-28 2018-01-23 中南大学 一种面向安卓应用的WebView桥接口污点映射及分析方法
CN107704377A (zh) * 2016-09-28 2018-02-16 华侨大学 二阶污点传播型漏洞的检测方法
CN108256338A (zh) * 2018-02-27 2018-07-06 中南大学 一种基于扩展API改写的Chrome扩展敏感数据跟踪方法
CN108846282A (zh) * 2018-06-04 2018-11-20 西安电子科技大学 基于静态污点分析的安卓应用程序权限泄露漏洞检测方法
CN109002712A (zh) * 2018-06-22 2018-12-14 北京大学 一种基于值依赖图的污染数据分析方法、***与电子设备
WO2019144548A1 (zh) * 2018-01-26 2019-08-01 平安科技(深圳)有限公司 安全测试方法、装置、计算机设备和存储介质
CN111191244A (zh) * 2019-12-11 2020-05-22 杭州孝道科技有限公司 一种漏洞修复方法
CN111259399A (zh) * 2020-04-28 2020-06-09 深圳开源互联网安全技术有限公司 用于web应用的动态检测漏洞攻击的方法及***
CN111427792A (zh) * 2020-03-27 2020-07-17 中国工商银行股份有限公司 测试方法、装置、电子设备和可读存储介质
CN111737150A (zh) * 2020-07-24 2020-10-02 江西师范大学 面向Java EE程序SQLIA漏洞的污点分析和验证方法及装置
CN111859375A (zh) * 2020-07-20 2020-10-30 百度在线网络技术(北京)有限公司 漏洞检测方法、装置、电子设备及存储介质
CN111966718A (zh) * 2020-09-09 2020-11-20 支付宝(杭州)信息技术有限公司 用于应用***的数据传播追踪的***及方法
CN112199292A (zh) * 2020-10-19 2021-01-08 湖南泛联新安信息科技有限公司 一种基于规则定义的Java污点分析方法
CN112199274A (zh) * 2020-09-18 2021-01-08 北京大学 基于V8引擎的JavaScript动态污点跟踪方法及电子装置
CN113010408A (zh) * 2019-12-20 2021-06-22 Sap欧洲公司 通过沿着数据流的污点跟踪进行内容驱动的调试
CN113220525A (zh) * 2021-04-28 2021-08-06 杭州孝道科技有限公司 一种跨应用的动态污点跟踪方法
CN113392404A (zh) * 2021-06-15 2021-09-14 浙江网商银行股份有限公司 漏洞检测方法、装置及电子设备
CN114138681A (zh) * 2022-01-29 2022-03-04 深圳开源互联网安全技术有限公司 一种污点数据跟踪方法、装置及计算机可读存储介质
CN115391793A (zh) * 2022-10-26 2022-11-25 清华大学 一种基于FlowDroid工具的实时漏洞检测***、方法与存储介质
CN116451228A (zh) * 2023-04-23 2023-07-18 北京安普诺信息技术有限公司 动态污点追踪方法、装置及相关在线污点传播分析***
CN116842531A (zh) * 2023-08-28 2023-10-03 北京安普诺信息技术有限公司 基于代码疫苗的漏洞实时验证方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1570860A (zh) * 2003-03-06 2005-01-26 微软公司 ***设计期间的验证
CN102306098A (zh) * 2011-08-18 2012-01-04 电子科技大学 一种隐式污点传播***及其方案
CN102521543A (zh) * 2011-12-23 2012-06-27 中国人民解放军国防科学技术大学 一种基于动态污点分析进行消息语义解析的方法
CN103166942A (zh) * 2011-12-19 2013-06-19 中国科学院软件研究所 一种恶意代码的网络协议解析方法
CN103440201A (zh) * 2013-09-05 2013-12-11 北京邮电大学 动态污点分析装置及其在文件格式逆向解析中的应用
US20150020205A1 (en) * 2013-07-15 2015-01-15 Tencent Technology (Shenzhen) Company Limited Method and apparatus for detecting security vulnerability for animation source file

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1570860A (zh) * 2003-03-06 2005-01-26 微软公司 ***设计期间的验证
CN102306098A (zh) * 2011-08-18 2012-01-04 电子科技大学 一种隐式污点传播***及其方案
CN103166942A (zh) * 2011-12-19 2013-06-19 中国科学院软件研究所 一种恶意代码的网络协议解析方法
CN102521543A (zh) * 2011-12-23 2012-06-27 中国人民解放军国防科学技术大学 一种基于动态污点分析进行消息语义解析的方法
US20150020205A1 (en) * 2013-07-15 2015-01-15 Tencent Technology (Shenzhen) Company Limited Method and apparatus for detecting security vulnerability for animation source file
CN103440201A (zh) * 2013-09-05 2013-12-11 北京邮电大学 动态污点分析装置及其在文件格式逆向解析中的应用

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
梁北海: "基于污点分析的Java Web程序脆弱性检测方法研究", 《中国优秀硕士学位论文全文数据库(电子期刊)》 *
陆开奎: "基于动态污点分析的漏洞攻击检测技术研究与实现", 《中国优秀硕士学位论文全文数据库(电子期刊)》 *

Cited By (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105791261A (zh) * 2015-12-28 2016-07-20 华为技术有限公司 一种跨站脚本攻击的检测方法和检测设备
WO2017121172A1 (zh) * 2016-01-12 2017-07-20 上海斐讯数据通信技术有限公司 一种Java代码中数据流的跟踪装置和方法
CN106126417A (zh) * 2016-06-17 2016-11-16 深圳开源互联网安全技术有限公司 交互式应用程序安全测试方法及其***
CN107704377A (zh) * 2016-09-28 2018-02-16 华侨大学 二阶污点传播型漏洞的检测方法
CN107704377B (zh) * 2016-09-28 2020-09-11 华侨大学 二阶污点传播型漏洞的检测方法
CN107038378A (zh) * 2016-11-14 2017-08-11 平安科技(深圳)有限公司 应用软件安全漏洞检测方法和***
CN107038378B (zh) * 2016-11-14 2018-06-26 平安科技(深圳)有限公司 应用软件安全漏洞检测方法和***
CN106940773B (zh) * 2017-01-10 2019-10-25 西安电子科技大学 基于静态污点数据分析的隐私泄漏漏洞检测确认方法
CN106940773A (zh) * 2017-01-10 2017-07-11 西安电子科技大学 基于静态污点数据分析的隐私泄漏漏洞检测确认方法
CN107623738A (zh) * 2017-09-28 2018-01-23 中南大学 一种面向安卓应用的WebView桥接口污点映射及分析方法
CN107623738B (zh) * 2017-09-28 2019-08-16 中南大学 一种面向安卓应用的WebView桥接口污点映射及分析方法
WO2019144548A1 (zh) * 2018-01-26 2019-08-01 平安科技(深圳)有限公司 安全测试方法、装置、计算机设备和存储介质
CN108256338A (zh) * 2018-02-27 2018-07-06 中南大学 一种基于扩展API改写的Chrome扩展敏感数据跟踪方法
CN108256338B (zh) * 2018-02-27 2021-04-27 中南大学 一种基于扩展API改写的Chrome扩展敏感数据跟踪方法
CN108846282A (zh) * 2018-06-04 2018-11-20 西安电子科技大学 基于静态污点分析的安卓应用程序权限泄露漏洞检测方法
CN109002712A (zh) * 2018-06-22 2018-12-14 北京大学 一种基于值依赖图的污染数据分析方法、***与电子设备
CN109002712B (zh) * 2018-06-22 2020-11-03 北京大学 一种基于值依赖图的污染数据分析方法、***与电子设备
CN111191244A (zh) * 2019-12-11 2020-05-22 杭州孝道科技有限公司 一种漏洞修复方法
CN113010408B (zh) * 2019-12-20 2023-12-26 Sap欧洲公司 通过沿着数据流的污点跟踪进行内容驱动的调试
CN113010408A (zh) * 2019-12-20 2021-06-22 Sap欧洲公司 通过沿着数据流的污点跟踪进行内容驱动的调试
CN111427792A (zh) * 2020-03-27 2020-07-17 中国工商银行股份有限公司 测试方法、装置、电子设备和可读存储介质
CN111259399B (zh) * 2020-04-28 2020-08-11 深圳开源互联网安全技术有限公司 用于web应用的动态检测漏洞攻击的方法及***
CN111259399A (zh) * 2020-04-28 2020-06-09 深圳开源互联网安全技术有限公司 用于web应用的动态检测漏洞攻击的方法及***
CN111859375A (zh) * 2020-07-20 2020-10-30 百度在线网络技术(北京)有限公司 漏洞检测方法、装置、电子设备及存储介质
CN111859375B (zh) * 2020-07-20 2023-08-29 百度在线网络技术(北京)有限公司 漏洞检测方法、装置、电子设备及存储介质
CN111737150A (zh) * 2020-07-24 2020-10-02 江西师范大学 面向Java EE程序SQLIA漏洞的污点分析和验证方法及装置
CN111737150B (zh) * 2020-07-24 2023-09-15 江西师范大学 面向Java EE程序SQLIA漏洞的污点分析和验证方法及装置
CN111966718A (zh) * 2020-09-09 2020-11-20 支付宝(杭州)信息技术有限公司 用于应用***的数据传播追踪的***及方法
CN111966718B (zh) * 2020-09-09 2024-03-15 支付宝(杭州)信息技术有限公司 用于应用***的数据传播追踪的***及方法
CN112199274A (zh) * 2020-09-18 2021-01-08 北京大学 基于V8引擎的JavaScript动态污点跟踪方法及电子装置
CN112199292A (zh) * 2020-10-19 2021-01-08 湖南泛联新安信息科技有限公司 一种基于规则定义的Java污点分析方法
CN113220525A (zh) * 2021-04-28 2021-08-06 杭州孝道科技有限公司 一种跨应用的动态污点跟踪方法
CN113392404A (zh) * 2021-06-15 2021-09-14 浙江网商银行股份有限公司 漏洞检测方法、装置及电子设备
CN114138681A (zh) * 2022-01-29 2022-03-04 深圳开源互联网安全技术有限公司 一种污点数据跟踪方法、装置及计算机可读存储介质
CN115391793A (zh) * 2022-10-26 2022-11-25 清华大学 一种基于FlowDroid工具的实时漏洞检测***、方法与存储介质
CN115391793B (zh) * 2022-10-26 2023-02-17 清华大学 一种基于FlowDroid工具的实时漏洞检测***、方法与存储介质
CN116451228A (zh) * 2023-04-23 2023-07-18 北京安普诺信息技术有限公司 动态污点追踪方法、装置及相关在线污点传播分析***
CN116451228B (zh) * 2023-04-23 2023-10-17 北京安普诺信息技术有限公司 动态污点追踪方法、装置及相关在线污点传播分析***
CN116842531B (zh) * 2023-08-28 2023-11-03 北京安普诺信息技术有限公司 基于代码疫苗的漏洞实时验证方法、装置、设备及介质
CN116842531A (zh) * 2023-08-28 2023-10-03 北京安普诺信息技术有限公司 基于代码疫苗的漏洞实时验证方法、装置、设备及介质

Also Published As

Publication number Publication date
CN104765687B (zh) 2017-07-21

Similar Documents

Publication Publication Date Title
CN104765687A (zh) 基于对象跟踪和污点分析的j2ee程序漏洞检测方法
US11087002B2 (en) Using the same query language for static and dynamic application security testing tools
Graf et al. Using joana for information flow control in java programs-a practical guide
Autili et al. Aligning qualitative, real-time, and probabilistic property specification patterns using a structured english grammar
US20210056211A1 (en) System and method for automatically detecting a security vulnerability in a source code using a machine learning model
Saxena et al. A symbolic execution framework for javascript
Martin et al. Finding application errors and security flaws using PQL: a program query language
CN109002721A (zh) 一种信息安全漏洞的挖掘分析方法
Jang et al. Detecting SQL injection attacks using query result size
Androutsopoulos et al. State-based model slicing: A survey
Wagner Static analysis and computer security: New techniques for software assurance
Nguyen et al. Cross-language program slicing for dynamic web applications
Basile et al. A meta-model for software protections and reverse engineering attacks
Delgado‐Pérez et al. Performance mutation testing
Balliu et al. We are family: Relating information-flow trackers
Ferrara et al. Static privacy analysis by flow reconstruction of tainted data
CN102982282B (zh) 程序漏洞的检测***和方法
Ahmadian et al. Dynamic policies revisited
Gleiss et al. Interactive visualization of saturation attempts in vampire
Bernardi et al. Improving Design Patterns Finder Precision Using a Model Checking Approach.
Lim et al. Visualizing JIT compiler graphs
Quinlan et al. Source code and binary analysis of software defects
Aljamaan et al. Towards tracing at the model level
White et al. An early detection tool in Eclipse to support secure coding practices
Vanciu Static extraction of dataflow communication for security

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170721

Termination date: 20200410

CF01 Termination of patent right due to non-payment of annual fee