CN109101820A - 一种基于执行流图的Web应用安全漏洞预测方法 - Google Patents

一种基于执行流图的Web应用安全漏洞预测方法 Download PDF

Info

Publication number
CN109101820A
CN109101820A CN201810933988.5A CN201810933988A CN109101820A CN 109101820 A CN109101820 A CN 109101820A CN 201810933988 A CN201810933988 A CN 201810933988A CN 109101820 A CN109101820 A CN 109101820A
Authority
CN
China
Prior art keywords
web application
subgraph
function
data
security
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
CN201810933988.5A
Other languages
English (en)
Other versions
CN109101820B (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.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
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 Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN201810933988.5A priority Critical patent/CN109101820B/zh
Publication of CN109101820A publication Critical patent/CN109101820A/zh
Application granted granted Critical
Publication of CN109101820B publication Critical patent/CN109101820B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于执行流图的Web应用安全漏洞预测方法,根据Web应用程序的数据依赖关系与控制依赖关系,构建执行流图EFG;从EFG中抽取以安全敏感语句所在节点Sk为终点、以与Sk相关联的用户输入节点UI为起点的子图,针对每个子图提取度量元;将子图的度量元的具体数值作为输入,将子图对应的Sk有无漏洞作为输出,构建漏洞预测模型,从而实现Web应用安全漏洞预测。本发明在度量元的提取上包含判断节点,且与直接对程序切片进行分析相比,工作量大大减小。

Description

一种基于执行流图的Web应用安全漏洞预测方法
技术领域
本发明涉及网络安全技术领域,尤其涉及一种基于执行流图的Web应用安全漏洞预测方法。
背景技术
Web应用程序已经广泛应用于我们日常生活的各个方面,例如社交网络、网络购物、email、订单系统、注册系统等,这些系统的实现大部分都是基于web开发的。在这些系统中,发现了大量的安全漏洞,攻击者利用这些漏洞,可以轻易的获得系统根权限,造成敏感信息泄露,危害极大。
软件漏洞预测能够预先获知软件源代码模块中存在的漏洞的可能性、数量或者具体类型,软件生产厂家根据预测结果,可将有限的时间和经费有针对性投入到那些漏洞可能性高的和数量多的软件模块的测试和验证中,这样就能发现更多的安全漏洞,以此提高软件安全性测试的效率。
当用户使用Web应用时,在程序的实际执行流程中,用户的输入赋值给系统中某个变量,该变量值被之后的程序(应用逻辑)进行一系列处理,在这个处理过程中,可能包含了许多敏感的程序操作,比如数据库更新(database updates)、HTML输出(HTML outputs)以及文件访问(file accesses)等。如果输入数据中包含了一些不符合规定的脏数据,且这些数据在一系列的处理过程中也没有被净化处理和校验,则安全事件发生。因此,绝大部分Web应用漏洞的产生是由于软件代码中对用户输入的处理不够造成的,一旦用户的输入中带有不合法或者不合规的内容,将引起安全事件。对用户输入的处理主要有两种方法,一种是对输入做过滤净化处理(sanitization),另一种是对输入做校验(validation)。当软件代码中对输入的净化处理和校验缺失、不正确或者不充分时,软件代码便存在了漏洞。
从这个角度讲,如果将代码的对输入的净化处理能力和校验能力作为度量代码质量的属性,进而描述衡量Web应用程序代码的安全性指标,将是合理的。因此针对Web应用漏洞预测模型的建立可从源代码净化处理和校验能力中提取度量元,度量元的提取可针对Web应用程序中对用户输入数据的一系列的后续处理的安全属性进行描述并分类加以实现。
现有的度量元提取方法的主要思路是,从用户的输入到安全敏感语句Sk执行,用户的输入数据经过了一系列的传递和处理,可以围绕这个传递过程中所涉及的变量及其安全处理方法提取度量元。其中,安全敏感语句Sk是指源代码中的一条程序语句,如果该语句的执行将导致安全攻击行为发生,则将其称为安全敏感语句(security-sensitiveprogram statements k,假设该程序语句的序号为k。又称为Sensitive Sink k,简写为Sk)。
现有度量元的提取方法有两种:
方法一:建立与Sk相关的数据流图DDGk,将该图的节点的安全属性进行定义并分类,即为度量元。
首先建立Web应用程序的控制流图(CFG),安全敏感语句Sk即为CFG图的一个节点。基于CFG,抽取仅针对Sk的数据流图DDGk,DDGk的节点中提供了Sk中所涉及的所有数据变量的定义以及对数据进行净化处理和校验处理的函数和方法,因此在DDGk的节点中反映了数据净化和校验的能力,数据净化和校验的能力可视为节点的安全属性。
通过对图节点的安全属性进行定义,并对所有的安全属性进行分类,这些安全属性即为针对Sk的漏洞预测的度量元。将针对Sk的DDGk的节点归类到各个安全属性,并统计每个类别安全属性的节点的数量,该数值即为度量元的具体值。
但是,基于数据流图DDGk的度量元提取存在的主要问题是DDGk中不包含判断节点(predicate nodes),因此无法提取有关校验处理的安全属性,因此该方法存在一定的缺陷。
方法二:抽取与Sk相关的后向代码切片,将代码切片中的每一条语句的安全属性进行定义并分类,即为度量元。
首先建立Web应用程序的控制流图(CFG),找到安全敏感语句Sk对应的节点。基于CFG,提取关于Sk的后向静态程序切片Qk(<k,V>),V即表示了Sk中所涉及的变量的集合。程序切片中的每条语句可能包含了针对V中变量的数据净化和校验能力,数据净化和校验的能力可视为该语句的安全属性。实际上,程序切片Qk(<k,V>)中包含了判断语句节点,因此与上面情况(一)相比,(二)中的度量元能够提取有关校验处理的安全属性,弥补了(一)中的不足。
但是,方法二直接对程序切片中的所有程序语句进行分析,主要不足是工作量太大,而且不够直观。
发明内容
有鉴于此,本发明提供了一种基于执行流图的web应用安全漏洞预测方法,在度量元的提取上包含判断节点,且与直接对程序切片进行分析相比,工作量大大减小。
为了解决上述技术问题,本发明是这样实现的:
一种基于执行流图的Web应用安全漏洞预测方法,包括:根据Web应用程序的数据依赖关系与控制依赖关系,构建执行流图EFG;从EFG中抽取以安全敏感语句所在节点Sk为终点、以与Sk相关联的用户输入节点UI为起点的子图,针对每个子图提取度量元;将子图的度量元的具体数值作为输入,将子图对应的Sk有无漏洞作为输出,构建漏洞预测模型,从而实现Web应用安全漏洞预测。
该方法具体包括如下步骤:
步骤一、定义程序语句的安全属性,包括净化处理类和校验处理类;
步骤二、建立Web应用程序的历史漏洞库;针对历史漏洞库中的每个Web应用程序漏洞样本,执行步骤三~八;
步骤三、建立Web应用漏洞样本的执行流图EFG;
步骤四、找到EFG中的安全敏感语句所在节点Sk,作为敏感节点Sk
步骤五、以敏感节点Sk为起点,在EFG中反向回溯,找到与敏感节点Sk关联的用户输入节点UI
步骤六、从EFG中抽取以用户输入节点UI为起点、以敏感节点Sk为终点的子图Gk
步骤七、针对每个子图Gk,统计属于各类安全属性的节点的数量,形成统计向量,作为度量元的具体数值;
步骤八、根据历史漏洞库的记载,确定子图Gk对应的敏感节点Sk是否有漏洞;一个子图的统计向量以及该子图对应的敏感节点Sk有无漏洞信息组成一个训练数据;
步骤九、以统计向量为输入,以敏感节点Sk有无漏洞为输出,训练漏洞预测模型;
步骤十、实际预测时,从待预测Web应用程序的EFG中提取各安全敏感语句的子图,并确定统计向量,将统计向量输入训练好的漏洞预测模型,获得各安全敏感语句是否有漏洞的预测结果。
优选地,步骤九选择多种机器学习算法作为漏洞预测模型进行训练,确定根据机器学习算法的性能评价指标,确定性能最优的漏洞预测模型。
优选地,步骤二用于构建历史漏洞库的Web应用程序与所述的待预测Web应用程序属于系列版本Web应用程序。
有益效果:
由于在程序的控制依赖图中包含判断节点,可以通过控制依赖图提取有关校验处理的安全属性,因此本发明将数据依赖图(即控制流图CFG)与控制依赖图(即数据流图DDG)相结合,构建了程序的执行流图,执行流图中既包含了对所有变量处理的函数(基本块内的数据依赖图),也包含判断分支的函数(基本块间的依赖关系),所以能够同时提取到净化处理相关的安全属性,也能够得到校验处理的安全属性,弥补了现有方法一因无法提取有关校验处理的安全属性而导致的缺陷。
其次,本发明基于执行流图实现,执行流图的生成和计算工作量小,表达直观,弥补了现有方法二直接对程序切片中的所有程序语句进行分析导致的缺陷。
还有,本发明针对安全敏感语句的子图提取度量元,基于该方案构建的漏洞预测模型,不仅能够预测Web应用是否有漏洞,还能预测其漏洞位置。
附图说明
图1为本发明流程图;
图2为一个存在XSS漏洞的Web应用实例;
图3为实例中基本块之间的控制依赖关系图;
图4为实例中某个基本块的源代码;
图5为图4中该基本块的数据依赖图;
图6为从图5中抽取的与敏感节点关联的子图。
具体实施方式
本发明提供了一种基于执行流图的Web应用安全漏洞预测方法,其基本思想是:将数据依赖图与控制依赖图相结合,构建程序的执行流图EFG;从EFG中抽取以安全敏感语句所在节点Sk为终点、以与节点Sk相关联的用户输入节点UI为起点的子图,针对每个子图提取度量元;将子图的度量元的具体数值作为输入,将子图对应的Sk有无漏洞作为输出,构建漏洞预测模型,从而实现Web应用安全漏洞预测。
如图1所示,该方法包括如下步骤:
步骤一、定义程序语句的安全属性。
描述与Web应用程序语句的净化处理和校验处理能力相关的各种安全属性Ai,各类属性的分类和具体定义如下所示:
(1)用户输入分类
不同类型的用户输入造成不同类型的漏洞,用户输入的主要类型如下。
A1:Client,用户数据的提交是通过HTML表格或者URLs(例如,$_GET、$_POST)
A2:File,数据的访问是通过外部文件或者XML文件(例如,$_COOKIE、fgets())
A3:Database,数据的获取是来自于数据库(例如,mysql_result())
A4:Persistent,数据的访问是通过永久数据对象(例如,$_SESSION)
A5:Uninit,数据访问所使用的变量未被初始化
(2)净化处理分类
对程序语句中用到的对数据进行净化处理的函数分类。
A6:Sanitization,为阻止某个确定的已知的安全问题而对数据进行净化处理的函数(例如,mysql_real_escape_string()、htmlentities())
A7:Encoding,根据设定的编码格式对变量进行编码的函数(例如,convert_uuencode())
A8:Encryption,确保数据安全传输的加密或者hash函数(例如,crypt()、sha1())
A9:Replacement,基于字符串的子串替换函数(例如,str_replace())
A10:Regex-replacement,基于正则表达式的子串替换函数(例如,preg_replace())
A11:Numeric-conversion,对参数进行处理并返回数值型值的函数(例如,intval())或者数值类型转换操作函数(例如,$a=(int)$b/$c)
(3)校验处理分类
对程序语句中用到的对数据进行校验处理的函数分类。
A12:Null,判断数据是否存在的函数(例如,isset())
A13:Size,计算参数长度或者规模的函数(例如,strlen())
A14:Containment,判断一个参数是否包含了预定义的特征字符的函数(例如,strops())
A15:Match,两个参数相比较的函数或者操作(例如,strnatcmp()、$a==“abc”)
A16:Regex-match,基于正则表达的字符串匹配函数(例如,preg_match())
A17:Type,对参数类型或格式进行检查的函数(例如,is_int()、is_string()、is_file())
(4)其他
A18:Other,不属于以上任何类型的输入或者函数,例如,有些函数仅仅是传递参数而不进行任何的安全操作处理。
步骤二、建立Web应用程序的历史漏洞库。
针对某个Web应用程序,从公开的软件漏洞库中搜集所有该Web应用的漏洞实例,称为Web应用程序漏洞样本:包括形成该漏洞的源代码。
这里给出一个存在XSS漏洞的Web应用实例,如图2所示。该网页把用户通过GET发送过来的表单数据(灰色底),未经处理直接写入返回的html流,这就是XSS漏洞所在。
下面针对历史漏洞库中的每个Web应用程序漏洞样本执行步骤三~九。
步骤三、建立Web应用程序的控制流图(CFG)。
定义:控制流图。控制流图是一种有向图G=(N,E,entry,exit)。其中,N是节点集,每个节点对应程序中的一条语句、一个条件判断或者一个控制流汇合点;边集E={<s1,s2>|s1,s2∈N且s1执行后,可能立即执行s2};entry和exit分别为控制流图的唯一入口节点和唯一出口节点。
定义:基本块。基本块是程序顺序执行的语句序列,只有一个入口和一个出口,入口是其中的第一个语句,出口是其中的最后一个语句。对于一个基本块来说,执行时只从其入口进入,从其出口退出。
在步骤二的基础上,进行如下操作。
(1)遍历Web应用程序源代码,将源代码划分成一个个基本块;
(2)以基本块为节点,如果基本块之间存在控制关系,则将两个基本块用线连接;
(3)遍历完所有基本块,则形成该Web应用程序的以基本块为节点的控制流图。
在上述实例中,Web应用程序的控制流图如图3所示,包含7个基本块,每个基本块只有唯一的入口和出口。基本块1和基本块7之间的控制依赖关系如图所示。
步骤四、建立Web应用程序的执行流图(EFG)。
定义:数据依赖关系。控制流图中,如果变量v在节点n被定义,在节点m处被使用,且存在一条从节点n到m的路径,变量v在此路径除n节点外未被重新定义,则称节点m数据依赖于节点n。
定义:数据依赖图(DDG)。将所有存在数据依赖关系的节点用线连接形成的图称为数据依赖图。
在步骤三的基础上,进行如下操作。
对步骤三中得到的CFG的节点,也就是基本块内的程序,建立块内的数据依赖图。由此,块内是数据依赖图,块间是控制依赖关系,整体图即为EFG。
针对图3中的CFG,设某个基本块的源代码如图4所示,则该基本块的数据依赖图如图5所示。完成从基本块1到基本块7的DDG,则得到了整个CFG的EFG。
步骤五、找到EFG中的敏感节点Sk
在步骤四的基础上,根据已知的安全敏感语句,找到EFG中的安全敏感语句对应的节点Sk,即为敏感节点Sk。一个程序中可能有多个敏感节点Sk
在图4的程序中,“S12:echo“<div$img_size>”;”为敏感节点。
步骤六、找到EFG中的与Sk关联的用户输入节点UI
在步骤五的基础上,以敏感节点Sk为起点,在EFG中反向回溯,找到与Sk关联的用户输入节点UI
在上述实例中,以图5的节点S12为起点,在EFG中反向回溯,找到与S12关联的用户输入节点UI,为节点S1。图5中的节点S3不是用户输入节点。
步骤七、抽取与敏感节点Sk关联的子图Gk
在步骤六的基础上,按照程序执行顺序,在EFG中抽取以UI为起点、Sk为终点的子图Gk。一个Sk对应一个子图Gk。因此可能从一个Web应用程序中抽取出多个子图。
在上述实例中,按照程序执行顺序,在EFG中抽取以节点S1为起点、S12为终点的子图G12,如图6所示。
步骤八、分析Gk中节点的安全属性。
在步骤一和七的基础上,针对每个子图Gk,分析Gk中节点的安全属性,将其归入某个类别A1~A18。执行流图中既包含了对所有变量处理的函数(基本块内的数据依赖图),也包含判断分支的函数(基本块间的依赖关系),所以能够同时提取到净化处理相关的安全属性,也能够得到校验处理的安全属性。
在上述实例中,分析子图G12中各节点的安全属性,将其归入某个类别Ai,归类结果参见下表1:
表1
步骤九、针对每个子图Gk,统计Gk中属于各类安全属性的节点的数量,形成统计向量,作为度量元的具体数值。
在步骤八的基础上,针对每个子图Gk统计属于各类安全属性的节点的数量。经过统计,针对每个子图Gk,形成统计向量,本实施例中该统计向量包括18个元素,分别对应A1~A18
在上述实例中,统计子图G12中属于各类安全属性的节点的数量,得到统计向量:(0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,3)。
针对多个Web应用程序漏洞样本执行上述步骤三~九之后,就完成了训练数据中输入部分的提取。
步骤十、确定Sk的漏洞标签。
在步骤二和五的基础上,根据该Web应用程序的历史漏洞库的记载,确定各Sk的漏洞标签:如果历史漏洞库中存在Sk,则漏洞标签为1,否则为0。该标签是训练数据中的理想输出。
一个子图的统计向量以及该子图对应的敏感节点漏洞标签组成一个训练数据。则经过上述步骤,每个漏洞样本都能够获得1个或1个一样的训练数据,从而获得了一系列的训练数据。
在上述实例中,假设漏洞库中不存在S12,故漏洞标签为0。
步骤十一、训练和测试漏洞预测模型。
在步骤九和步骤十的基础上,选择多种机器学习算法,将步骤九中得到的统计向量的数值作为机器学习算法的输入,将步骤十中得到的漏洞标签作为机器学习算法的输出,训练和测试漏洞预测模型。根据机器学习算法的准确度、精确度、召回率以及虚警率等性能评价指标,确定性能最优的预测模型。
步骤十二、将预测模型应用于新的Web应用程序。
将步骤十一中获得的性能最优的预测模型应用于新的Web应用程序的漏洞预测。这里待预测的Web应用程序最好与构建历史漏洞库时所针对的Web应用程序,属于同一系列版本,其效果最好。当然,在实际中,二者是不同的Web应用程序也是可以的。
本步骤中,针对待预测的Web应用程序,生成执行流图EFG,并确定敏感节点Sk,找到各个Sk的子图Gk,计算Gk中属于Ai的节点的数量,形成统计向量。依次将各个Sk的统计向量输入到预测模型,模型运行的输出是Sk是否有漏洞的标签,即Web应用程序中各安全敏感语句处是否出现漏洞,从而预测得到了Web应用程序中是否有漏洞,以及漏洞的位置。
至此,本流程结束。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种基于执行流图的Web应用安全漏洞预测方法,其特征在于,包括:根据Web应用程序的数据依赖关系与控制依赖关系,构建执行流图EFG;从EFG中抽取以安全敏感语句所在节点Sk为终点、以与Sk相关联的用户输入节点UI为起点的子图,针对每个子图提取度量元;将子图的度量元的具体数值作为输入,将子图对应的Sk有无漏洞作为输出,构建漏洞预测模型,从而实现Web应用安全漏洞预测。
2.如权利要求1所述的方法,其特征在于,该方法包括如下步骤:
步骤一、定义程序语句的安全属性,包括净化处理类和校验处理类;
步骤二、建立Web应用程序的历史漏洞库;针对历史漏洞库中的每个Web应用程序漏洞样本,执行步骤三~八;
步骤三、建立Web应用漏洞样本的执行流图EFG;
步骤四、找到EFG中的安全敏感语句所在节点Sk,作为敏感节点Sk
步骤五、以敏感节点Sk为起点,在EFG中反向回溯,找到与敏感节点Sk关联的用户输入节点UI
步骤六、从EFG中抽取以用户输入节点UI为起点、以敏感节点Sk为终点的子图Gk
步骤七、针对每个子图Gk,统计属于各类安全属性的节点的数量,形成统计向量,作为度量元的具体数值;
步骤八、根据历史漏洞库的记载,确定子图Gk对应的敏感节点Sk是否有漏洞;一个子图的统计向量以及该子图对应的敏感节点Sk有无漏洞信息组成一个训练数据;
步骤九、以统计向量为输入,以敏感节点Sk有无漏洞为输出,训练漏洞预测模型;
步骤十、实际预测时,从待预测Web应用程序的EFG中提取各安全敏感语句的子图,并确定统计向量,将统计向量输入训练好的漏洞预测模型,获得各安全敏感语句是否有漏洞的预测结果。
3.如权利要求2所述的方法,其特征在于,步骤一定义的程序语句的安全属性包括:用户输入类、净化处理类、校验处理类和其他类;
所述用户输入类包括的用户输入类型有:
A1:Client,用户数据的提交是通过HTML表格或者URLs;
A2:File,数据的访问是通过外部文件或者XML文件;
A3:Database,数据的获取是来自于数据库;
A4:Persistent,数据的访问是通过永久数据对象;
A5:Uninit,数据访问所使用的变量未被初始化;
所述净化处理类包括的函数分类有:
A6:Sanitization,为阻止某个确定的已知的安全问题而对数据进行净化处理的函数;
A7:Encoding,根据设定的编码格式对变量进行编码的函数;
A8:Encryption,确保数据安全传输的加密或者hash函数;
A9:Replacement,基于字符串的子串替换函数;
A10:Regex-replacement,基于正则表达式的子串替换函数;
A11:Numeric-conversion,对参数进行处理并返回数值型值的函数或者数值类型转换操作函数;
所述校验处理类包括的函数分类有:
A12:Null,判断数据是否存在的函数;
A13:Size,计算参数长度或者规模的函数;
A14:Containment,判断一个参数是否包含了预定义的特征字符的函数;
A15:Match,两个参数相比较的函数或者操作;
A16:Regex-match,基于正则表达的字符串匹配函数;
A17:Type,对参数类型或格式进行检查的函数;
所述其他类是指不属于以上任何类型的输入或者函数。
4.如权利要求2所述的方法,其特征在于,步骤九选择多种机器学习算法作为漏洞预测模型进行训练,确定根据机器学习算法的性能评价指标,确定性能最优的漏洞预测模型。
5.如权利要求2所述的方法,其特征在于,步骤二用于构建历史漏洞库的Web应用程序与所述的待预测Web应用程序属于系列版本Web应用程序。
CN201810933988.5A 2018-08-16 2018-08-16 一种基于执行流图的Web应用安全漏洞预测方法 Active CN109101820B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810933988.5A CN109101820B (zh) 2018-08-16 2018-08-16 一种基于执行流图的Web应用安全漏洞预测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810933988.5A CN109101820B (zh) 2018-08-16 2018-08-16 一种基于执行流图的Web应用安全漏洞预测方法

Publications (2)

Publication Number Publication Date
CN109101820A true CN109101820A (zh) 2018-12-28
CN109101820B CN109101820B (zh) 2021-09-07

Family

ID=64849845

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810933988.5A Active CN109101820B (zh) 2018-08-16 2018-08-16 一种基于执行流图的Web应用安全漏洞预测方法

Country Status (1)

Country Link
CN (1) CN109101820B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110162963A (zh) * 2019-04-26 2019-08-23 肖银皓 一种识别过权应用程序的方法
CN110618809A (zh) * 2019-08-08 2019-12-27 北京大学 一种前端网页输入约束提取方法和装置
CN111460450A (zh) * 2020-03-11 2020-07-28 西北大学 一种基于图卷积网络的源代码漏洞检测方法
CN113557478A (zh) * 2019-03-29 2021-10-26 欧姆龙株式会社 控制器系统、支持装置及评价方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080072214A1 (en) * 2006-09-15 2008-03-20 Ounce Labs, Inc. Method and system for detecting interprocedural vulnerability by analysis of source code
CN107239706A (zh) * 2017-06-06 2017-10-10 贵州大学 一种Android平台下手机应用程序的安全漏洞挖掘方法
CN107392029A (zh) * 2017-07-28 2017-11-24 中国人民解放军63928部队 一种基于化学抽象机的脆弱性模型构建方法
CN107516040A (zh) * 2017-07-25 2017-12-26 中国人民解放军63928部队 一种基于数据控制流图的脆弱性特征分析和获取方法
CN107665172A (zh) * 2017-10-20 2018-02-06 北京理工大学 一种基于复杂加权软件网络的软件缺陷预测方法
CN107798245A (zh) * 2017-11-02 2018-03-13 北京理工大学 一种基于组件依赖图的软件安全漏洞预测方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080072214A1 (en) * 2006-09-15 2008-03-20 Ounce Labs, Inc. Method and system for detecting interprocedural vulnerability by analysis of source code
CN107239706A (zh) * 2017-06-06 2017-10-10 贵州大学 一种Android平台下手机应用程序的安全漏洞挖掘方法
CN107516040A (zh) * 2017-07-25 2017-12-26 中国人民解放军63928部队 一种基于数据控制流图的脆弱性特征分析和获取方法
CN107392029A (zh) * 2017-07-28 2017-11-24 中国人民解放军63928部队 一种基于化学抽象机的脆弱性模型构建方法
CN107665172A (zh) * 2017-10-20 2018-02-06 北京理工大学 一种基于复杂加权软件网络的软件缺陷预测方法
CN107798245A (zh) * 2017-11-02 2018-03-13 北京理工大学 一种基于组件依赖图的软件安全漏洞预测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
万志远: "Web应用程序漏洞检测关键技术研究", 《中国博士学位论文全文数据库信息科技辑(月刊)》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113557478A (zh) * 2019-03-29 2021-10-26 欧姆龙株式会社 控制器系统、支持装置及评价方法
CN110162963A (zh) * 2019-04-26 2019-08-23 肖银皓 一种识别过权应用程序的方法
CN110618809A (zh) * 2019-08-08 2019-12-27 北京大学 一种前端网页输入约束提取方法和装置
CN110618809B (zh) * 2019-08-08 2020-11-03 北京大学 一种前端网页输入约束提取方法和装置
CN111460450A (zh) * 2020-03-11 2020-07-28 西北大学 一种基于图卷积网络的源代码漏洞检测方法
CN111460450B (zh) * 2020-03-11 2023-02-10 西北大学 一种基于图卷积网络的源代码漏洞检测方法

Also Published As

Publication number Publication date
CN109101820B (zh) 2021-09-07

Similar Documents

Publication Publication Date Title
CN109101820A (zh) 一种基于执行流图的Web应用安全漏洞预测方法
Shar et al. Web application vulnerability prediction using hybrid program analysis and machine learning
CN103036730B (zh) 一种对协议实现进行安全测试的方法及装置
Shar et al. Predicting common web application vulnerabilities from input validation and sanitization code patterns
Shar et al. Mining SQL injection and cross site scripting vulnerabilities using hybrid program analysis
Shar et al. Mining input sanitization patterns for predicting SQL injection and cross site scripting vulnerabilities
CN102624574B (zh) 一种对协议实现进行安全测试的方法及装置
Feng et al. Efficient vulnerability detection based on abstract syntax tree and deep learning
CN110110529B (zh) 一种基于复杂网络的软件网络关键节点挖掘方法
CN112492059A (zh) Dga域名检测模型训练方法、dga域名检测方法、装置及存储介质
CN110765459A (zh) 一种恶意脚本检测方法、装置和存储介质
CN103793652A (zh) 一种基于静态分析的应用系统代码安全扫描装置
CN105306463A (zh) 基于支持向量机的Modbus TCP入侵检测方法
CN106529283B (zh) 一种面向软件定义网络的控制器安全性定量分析方法
CN109067800A (zh) 一种固件漏洞的跨平台关联检测方法
Zhao et al. Suzzer: A vulnerability-guided fuzzer based on deep learning
CN116663018A (zh) 一种基于代码可执行路径的漏洞检测方法及装置
CN110334510A (zh) 一种基于随机森林算法的恶意文件检测技术
CN110516446A (zh) 一种恶意软件家族归属判定方法、系统及存储介质
CN115577364A (zh) 一种多静态分析工具结果融合的漏洞挖掘方法
Dik et al. Web attacks detection based on patterns of sessions
Chen et al. Structured algorithm for software behavior model based on finite state automaton
Chernousov et al. Deep learning based automatic software defects detection framework
Altiero et al. AI-Based fault-proneness metrics for source code changes
Park et al. A Study on the Improvement of Source Code Static Analysis Using Machine Learning

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant