CN114968826A - 应用程序漏洞修复验证方法及系统 - Google Patents

应用程序漏洞修复验证方法及系统 Download PDF

Info

Publication number
CN114968826A
CN114968826A CN202210894732.4A CN202210894732A CN114968826A CN 114968826 A CN114968826 A CN 114968826A CN 202210894732 A CN202210894732 A CN 202210894732A CN 114968826 A CN114968826 A CN 114968826A
Authority
CN
China
Prior art keywords
function
chain
feature
chains
verification
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
CN202210894732.4A
Other languages
English (en)
Other versions
CN114968826B (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.)
Seczone Technology Co Ltd
Original Assignee
Seczone Technology Co Ltd
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 Seczone Technology Co Ltd filed Critical Seczone Technology Co Ltd
Priority to CN202210894732.4A priority Critical patent/CN114968826B/zh
Publication of CN114968826A publication Critical patent/CN114968826A/zh
Application granted granted Critical
Publication of CN114968826B publication Critical patent/CN114968826B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种应用程序漏洞修复验证方法及系统,该方法包括:获取待验证漏洞数据,并提取该漏洞数据中的请求信息和数据流信息;从数据流信息中提取请求信息所经过的所有特征函数;对数据流信息中不同阶段的特征函数预设不同的量化分值;对所有特征函数进行随机分组,以获得若干函数链;从若干函数链中选择其中一个或多个作为验证链;通过该IAST工具插桩验证链中的特征函数;对应用程序进执行请求重发,并获取当前数据流信息;根据当前数据流信息确认验证链中的特征函数是否全部被触发,并根据确认结果判断当前漏洞是否被修复;通过上述技术方案,不但可自动对漏洞修复结果进行验证,而且有效提升验证结果的准确性,还能更准确地定位修复点。

Description

应用程序漏洞修复验证方法及系统
技术领域
本发明涉及程序漏洞修复技术领域,尤其涉及一种应用程序漏洞修复验证方法及系统。
背景技术
应用程序的安全问题一直备受重视,因此,应用程序的漏洞检测和修复工作伴随应用程序的整个生命周期。随着漏洞检测工具的不断发展,人们已经渐渐不满足于检测工具只能发现已存在的安全漏洞,更想利用工具动态判断已存在的安全漏洞是否被开发人员修复成功。然而,目前判断安全漏洞是否被修复只能通过安全人员手动测试,重新发送验证请求,人工判断该漏洞是否被验证,不但耗时长,而且由于开发人员修复漏洞的方式有很多种,既包括正统的修复漏洞执行点以及添加安全函数,也包括随意的修改请求格式,如get请求变成post请求,将存在隐藏问题点,可能出现遗漏问题。
发明内容
本发明的目的是提供一种可自动验证应用程序中的漏洞是否被修复且有效提升验证准确性的应用程序漏洞修复验证方法及系统。
为了实现上述目的,本发明公开了一种应用程序漏洞修复验证方法,其包括:
获取待验证漏洞数据,并提取该漏洞数据中的请求信息和数据流信息;
从所述数据流信息中提取所述请求信息所经过的所有特征函数;
对所述数据流信息中不同阶段的所述特征函数预设不同的量化分值;
对所有所述特征函数进行随机分组,以获得若干函数链,且,每一所述函数链中至少包括处于输入阶段的特征函数和处于输出阶段的特征函数;
从若干所述函数链中选择其中一个或多个作为验证链;
基于IAST工具对该漏洞数据所属的应用程序进行插桩,以将检测逻辑织入到所述应用程序中,并通过该IAST工具插桩所述验证链中的所述特征函数;
对所述应用程序进执行请求重发,基于数据流跟踪的方式获取当前数据流信息;
根据当前数据流信息确认所述验证链中的特征函数是否全部被触发,并根据确认结果判断当前漏洞是否被修复。
较佳地,从若干所述函数链中选择所述验证链的方法包括:
基于预设的计算模型,并以每一所述函数链的长度和该函数链中每一所述特征函数的量化分值为参数分别计算每一所述函数链的特征值;所述计算模型以所述函数链的长度与所述特征值负相关,且以所述函数链中各个特征函数的量化分值的和与所述特征值正相关为原则构建;
基于所述函数链的特征值对所有所述函数链进行排序,并从中选出排名靠前的一个或多个函数链作为所述验证链。
较佳地,所述计算模型为:
Mi=[Nmax+(Nmax-Ni)]×Si,
其中,Mi为当前任一所述函数链的特征值,Nmax为当前所有函数链中最长函数链中特征函数的个数,Ni为当前所计算函数链中特征函数的个数,Si为当前所计算函数链中所有特征函数的量化分值的和。
较佳地,处于所述应用程序的输出阶段的特征函数的量化分值大于处于所述应用程序的传播阶段的特征函数的量化分值,处于所述应用程序的传播阶段的特征函数的量化分值大于处于所述应用程序的输入阶段的特征函数的量化分值。
本发明还公开一种应用程序漏洞修复验证系统,其包括:
漏洞管理模块,其用于获取待验证漏洞数据,并提取该漏洞数据中的请求信息和数据流信息;
特征函数获取模块,其用于从所述数据流信息中提取所述请求信息所经过的所有特征函数;
量化模块,其用于对所述数据流信息中不同阶段的所述特征函数预设不同的量化分值;
分组模块,其用于对所有所述特征函数进行随机分组,以获得若干函数链,且,每一所述函数链中至少包括处于输入阶段的特征函数和处于输出阶段的特征函数;
选择模块,其用于从若干所述函数链中选择其中一个或多个作为验证链;
插桩模块,其用于基于IAST工具对该漏洞数据所属的应用程序进行插桩,以将检测逻辑织入到所述应用程序中,并通过该IAST工具插桩所述验证链中的所述特征函数;
请求重发模块,其用于对所述应用程序进执行请求重发,基于数据流跟踪的方式获取当前数据流信息;
确认模块,其用于根据当前请求重发过程中的数据流信息确认所述验证链中的特征函数是否全部被触发,并根据确认结果判断当前漏洞是否被修复。
较佳地,所述选择模块包括模型生成模块、计算模块和排序模块;
所述模型生成模块,用于生成计算模型,该计算模型用于以每一所述函数链的长度和该函数链中每一所述特征函数的量化分值为参数分别计算每一所述函数链的特征值;所述计算模型以所述函数链的长度与所述特征值负相关,且以所述函数链中各个特征函数的量化分值的和与所述特征值正相关为原则构建;
所述计算模块,用于基于所述计算模型分别计算每一所述函数链的特征值;
所述排序模块,用于基于所述函数链的特征值对所有所述函数链进行排序,以排名靠前的一个或多个函数链作为所述验证链。
较佳地,所述计算模型为:
Mi=[Nmax+(Nmax-Ni)]×Si,
其中,Mi为当前任一所述函数链的特征值,Nmax为当前所有函数链中最长函数链中特征函数的个数,Ni为当前所计算函数链中特征函数的个数,Si为当前所计算函数链中所有特征函数的量化分值的和。
较佳地,处于所述应用程序的输出阶段的特征函数的量化分值大于处于所述应用程序的传播阶段的特征函数的量化分值,处于所述应用程序的传播阶段的特征函数的量化分值大于处于所述应用程序的输入阶段的特征函数的量化分值。
本发明还公开另一种应用程序漏洞修复验证系统,其包括:
一个或多个处理器;
存储器;
以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上所述的应用程序漏洞修复验证方法的指令。
本发明还公开一种计算机可读存储介质,其包括计算机程序,所述计算机程序可被处理器执行以完成如上所述的应用程序漏洞修复验证方法。
与现有技术相比,本发明上述技术方案,通过提取与漏洞数据相对应的数据流信息中的特征函数来获得若干函数链,并从函数链中选出其中一者或多者作为验证链,然后,在对应用程序进行请求重发时,通过IAST工具插桩所述验证链中的所述特征函数,从而通过监测当前数据流信息中验证链中的特征函数是否全部被触发来判断当前漏洞是否被修复,即如果验证链中的特征函数全部被触发,则当前漏洞仍然存在;由此可知,通过上述技术方案,不但可自动对漏洞修复结果进行验证,而且有效提升验证结果的准确性,还能更准确地定位修复点。
附图说明
图1为本发明实施例中应用程序漏洞修复验证方法流程图。
图2为图1中生成验证链的方法流程图。
图3为本发明实施例中应用程序漏洞修复验证系统原理结构图。
图4为图3中选择模块的原理结构图。
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
本实施例公开了一种应用程序漏洞修复验证方法,以自动验证应用程序中检测出的漏洞点是否被修复或修复成功,具体地,如图1,该方法包括如下步骤:
S1:从应用程序的漏洞检测和管理平台中获取待验证漏洞数据,并提取该漏洞数据中的请求信息和数据流信息。
S2:从数据流信息中提取请求信息所经过的所有特征函数,该所有特征函数包括请求信息所经历的输入阶段、传播阶段以及输出阶段的功能函数,例如,在传播阶段,该特征函数指的是一些字符串对象转换的函数或者字符串拼接的函数,而输入阶段和输出阶段的所有函数皆可作为特征函数。
S3:对数据流信息中不同阶段(输入阶段、传播阶段以及输出阶段)的特征函数预设不同的量化分值。
S4:对所有特征函数进行随机分组,以获得若干函数链,且,每一函数链中至少包括处于输入阶段的特征函数和处于输出阶段的特征函数。例如,当前漏洞数据所对应的数据流信息中总共有四个特征函数,分别为函数a、函数b、函数c、函数d,其中函数a为输入阶段的函数,函数d为输出阶段的函数,函数b、函数c为传播阶段的函数,形成的函数链如下:
L1:函数a、函数b、函数c、函数d;
L2:函数a、函数b、函数d;
L3:函数a、函数c、函数d;
L4:函数a、函数d。
S5:从若干函数链中(L1~L4)选择其中一个或多个作为验证链。
S6:基于IAST工具对该漏洞数据所属的应用程序进行插桩,以将检测逻辑织入到应用程序中,并通过该IAST工具插桩验证链中的特征函数。
S7:对应用程序进执行请求重发,基于数据流跟踪的方式获取当前数据流信息;
S8:根据当前数据流信息确认验证链中的特征函数是否全部被触发,并根据确认结果判断当前漏洞是否被修复。也即,如果该验证链中的特征函数被未被全部触发,则说明当前漏洞已被修复,反之,如果验证链中的特征函数被全部触发,则说明当前漏洞点仍然存在。
在此需要说明的是,当从若干函数链中选择一个作为验证链时,根据该验证链的执行结果输出验证结果,当从若干函数链中选择多个作为验证链时,前后分别通过多次请求重发的方式对每一验证链进行验证。
更具体地,例如,应用程序中存在如下漏洞点:
String username = request.getParameter(“username”);//输入 String password = request.getParameter(“password”);//输入 String nameSql = “select username,email from user where username = ” +username;//传播 String sql = nameSql + “and password = ” + password;//传播 PreparedStatement pst =Drivermanager.getConnection(“jdbc:mysql://localhost:3306/test).prepareStatement(sql); ResultSetresult = pst.executeQuery(sql);//输出
则该漏洞点中的特征函数有“String sql = nameSql + “and password = ” +password;”和“pst.executeQuery(sql)”,其中前者为多污染源聚合函数,后者为漏洞输出函数。
该漏洞点的修复结果如下:
User user = JSON.parseObject(“{“username”:”test”,”password”:”pwd”}”); String nameSql = “selectusername,email from user where username = admin” ; String password = user.getPassword(); Stringsql = nameSql + “and password = ” + password; PreparedStatement pst = Drivermanager.getConnection(“jdbc:mysql://localhost:3306/test).prepareStatement(sql); ResultSet result = pst.executeQuery(sql);
由此可知,该漏洞点的请求信息不再从queryString中获取,并且username在代码中固定不变,常规的请求重发已经无法正确判断漏洞是否修复成功。那么根据上述验证链跟踪的方式就可检测出该次请求的调用过程,进而判断出该漏洞点的修复结果。
基于上述验证方法,通过提取与漏洞数据相对应的数据流信息中的特征函数来获得若干函数链,并从函数链中选出其中一者或多者作为验证链,然后,在对应用程序进行请求重发时,通过IAST工具插桩验证链中的特征函数,从而通过监测当前数据流信息中验证链中的特征函数是否全部被触发来判断当前漏洞是否被修复,即如果验证链中的特征函数全部被触发,则当前漏洞仍然存在,这样,不但可自动对漏洞修复结果进行验证,提升漏洞修复的验证效率,而且有效提升验证结果的准确性,还能更准确地定位修复点。
较优地,处于应用程序的输出阶段的特征函数的量化分值大于处于应用程序的传播阶段的特征函数的量化分值,处于应用程序的传播阶段的特征函数的量化分值大于处于应用程序的输入阶段的特征函数的量化分值。
进一步地,如图2,从若干函数链中选择验证链的方法包括:
S50:基于预设的计算模型,并以每一函数链的长度和该函数链中每一特征函数的量化分值为参数分别计算每一函数链的特征值。计算模型以函数链的长度与特征值负相关,且以函数链中各个特征函数的量化分值的和与特征值正相关为原则构建。这是因为,作为验证链,其长度越短,越容易验证,效率越高,同时,其中所包含的各个特征函数的量化分值的和越大,结果越准确,从而以函数链的长度和其中各个特征函数的量化分值的和作为参数来构建计算模型,使得选出的验证链性能最优。
S51:基于函数链的特征值对所有函数链进行排序。
S52:选出排名靠前的一个或多个函数链作为验证链。
具体地,计算模型为:
Mi=[Nmax+(Nmax-Ni)]×Si,
其中,Mi为当前任一函数链的特征值,Nmax为当前所有函数链中最长函数链中特征函数的个数,Ni为当前所计算函数链中特征函数的个数,Si为当前所计算函数链中所有特征函数的量化分值的和。
以上述步骤S4中的例子为例,当前漏洞数据所对应的数据流信息中总共有五个特征函数,分别为函数a、函数b、函数c、函数d。处于应用程序的输入阶段的特征函数的量化分值为1,传播阶段的特征函数的量化分值为2,输出阶段的特征函数的量化分值为5,那么函数链L1的各个特征函数的量化分值的和S1为10,函数链L2、L3的各个特征函数的量化分值的和S2、S3均为8,函数链L4的各个特征函数的量化分值的和S4为6。
那么,函数链L1的特征值M1=[5+(5-5)]×10=50;
函数链L2的特征值M2=[5+(5-3)]×8=56;
函数链L3的特征值M3=[5+(5-3)]×8=56;
函数链L4的特征值M2=[5+(5-2)]×6=48。
因此,根据特征值对函数链自大至小排序:L2/L3、L1、L4。
因此,可随机选择函数链L2、L3中的其中一个或全部作为验证链,另外也可选择L2/L3、L1、L4作为先后验证的验证链。
本发明另一较佳实施例中,还公开一种应用程序漏洞修复验证系统,如图3,其包括漏洞管理模块10、特征函数获取模块11、量化模块12、分组模块13、选择模块14、插桩模块15、请求重发模块16以及确认模块17。
漏洞管理模块10,用于获取待验证漏洞数据,并提取该漏洞数据中的请求信息和数据流信息。
特征函数获取模块11,用于从数据流信息中提取请求信息所经过的所有特征函数。
量化模块12,用于对数据流信息中不同阶段的特征函数预设不同的量化分值。
分组模块13,用于对所有特征函数进行随机分组,以获得若干函数链,且,每一函数链中至少包括处于输入阶段的特征函数和处于输出阶段的特征函数。
选择模块14,用于从若干函数链中选择其中一个或多个作为验证链。
插桩模块15,用于基于IAST工具对该漏洞数据所属的应用程序进行插桩,以将检测逻辑织入到应用程序中,并通过该IAST工具插桩验证链中的特征函数。
请求重发模块16,用于对应用程序进执行请求重发,基于数据流跟踪的方式获取当前数据流信息。
确认模块17,用于根据当前请求重发过程中的数据流信息确认验证链中的特征函数是否全部被触发,并根据确认结果判断当前漏洞是否被修复。
可选地,如图4,选择模块14包括模型生成模块140、计算模块141和排序模块142。
模型生成模块140,用于生成计算模型,该计算模型用于以每一函数链的长度和该函数链中每一所述特征函数的量化分值为参数分别计算每一所述函数链的特征值;所述计算模型以所述函数链的长度与所述特征值负相关,且以所述函数链中各个特征函数的量化分值的和与所述特征值正相关为原则构建。
计算模块141,用于基于计算模型分别计算每一函数链的特征值。
排序模块142,用于基于函数链的特征值对所有函数链进行排序,以排名靠前的一个或多个函数链作为验证链。
可选地,计算模型为:
Mi=[Nmax+(Nmax-Ni)]×Si,
其中,Mi为当前任一函数链的特征值,Nmax为当前所有函数链中最长函数链中特征函数的个数,Ni为当前所计算函数链中特征函数的个数,Si为当前所计算函数链中所有特征函数的量化分值的和。
另外需要说明的是,本实施例中的应用程序漏洞修复验证系统的工作原理和工作过程详见上述应用程序漏洞修复验证方法,在此不再赘述。
本发明还公开另一种的应用程序漏洞修复验证系统,其包括一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序被存储在存储器中,并且被配置成由一个或多个处理器执行,程序包括用于执行如上的的应用程序漏洞修复验证方法的指令。处理器可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的的应用程序漏洞修复验证系统中的模块所需执行的功能,或者执行本申请方法实施例的的应用程序漏洞修复验证方法。
本发明还公开一种计算机可读存储介质,其包括计算机程序,计算机程序可被处理器执行以完成如上的的应用程序漏洞修复验证方法。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-onlymemory,ROM),或随机存取存储器(random access memory,RAM),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质,例如,固态硬盘(solidstate disk,SSD)等。
本申请实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述的应用程序漏洞修复验证方法。
以上所揭露的仅为本发明的优选实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。

Claims (10)

1.一种应用程序漏洞修复验证方法,其特征在于,包括:
获取待验证漏洞数据,并提取该漏洞数据中的请求信息和数据流信息;
从所述数据流信息中提取所述请求信息所经过的所有特征函数;
对所述数据流信息中不同阶段的所述特征函数预设不同的量化分值;
对所有所述特征函数进行随机分组,以获得若干函数链,且,每一所述函数链中至少包括处于输入阶段的特征函数和处于输出阶段的特征函数;
从若干所述函数链中选择其中一个或多个作为验证链;
基于IAST工具对该漏洞数据所属的应用程序进行插桩,以将检测逻辑织入到所述应用程序中,并通过该IAST工具插桩所述验证链中的所述特征函数;
对所述应用程序进执行请求重发,基于数据流跟踪的方式获取当前数据流信息;
根据当前数据流信息确认所述验证链中的特征函数是否全部被触发,并根据确认结果判断当前漏洞是否被修复。
2.根据权利要求1所述的应用程序漏洞修复验证方法,其特征在于,从若干所述函数链中选择所述验证链的方法包括:
基于预设的计算模型,并以每一所述函数链的长度和该函数链中每一所述特征函数的量化分值为参数分别计算每一所述函数链的特征值;所述计算模型以所述函数链的长度与所述特征值负相关,且以所述函数链中各个特征函数的量化分值的和与所述特征值正相关为原则构建;
基于所述函数链的特征值对所有所述函数链进行排序,并从中选出排名靠前的一个或多个函数链作为所述验证链。
3.根据权利要求2所述的应用程序漏洞修复验证方法,其特征在于,所述计算模型为:
Mi=[Nmax+(Nmax-Ni)]×Si,
其中,Mi为当前任一所述函数链的特征值,Nmax为当前所有函数链中最长函数链中特征函数的个数,Ni为当前所计算函数链中特征函数的个数,Si为当前所计算函数链中所有特征函数的量化分值的和。
4.根据权利要求1所述的应用程序漏洞修复验证方法,其特征在于,处于所述应用程序的输出阶段的特征函数的量化分值大于处于所述应用程序的传播阶段的特征函数的量化分值,处于所述应用程序的传播阶段的特征函数的量化分值大于处于所述应用程序的输入阶段的特征函数的量化分值。
5.一种应用程序漏洞修复验证系统,其特征在于,包括:
漏洞管理模块,其用于获取待验证漏洞数据,并提取该漏洞数据中的请求信息和数据流信息;
特征函数获取模块,其用于从所述数据流信息中提取所述请求信息所经过的所有特征函数;
量化模块,其用于对所述数据流信息中不同阶段的所述特征函数预设不同的量化分值;
分组模块,其用于对所有所述特征函数进行随机分组,以获得若干函数链,且,每一所述函数链中至少包括处于输入阶段的特征函数和处于输出阶段的特征函数;
选择模块,其用于从若干所述函数链中选择其中一个或多个作为验证链;
插桩模块,其用于基于IAST工具对该漏洞数据所属的应用程序进行插桩,以将检测逻辑织入到所述应用程序中,并通过该IAST工具插桩所述验证链中的所述特征函数;
请求重发模块,其用于对所述应用程序进执行请求重发,基于数据流跟踪的方式获取当前数据流信息;
确认模块,其用于根据当前请求重发过程中的数据流信息确认所述验证链中的特征函数是否全部被触发,并根据确认结果判断当前漏洞是否被修复。
6.根据权利要求5所述的应用程序漏洞修复验证系统,其特征在于,所述选择模块包括模型生成模块、计算模块和排序模块;
所述模型生成模块,用于生成计算模型,该计算模型用于以每一所述函数链的长度和该函数链中每一所述特征函数的量化分值为参数分别计算每一所述函数链的特征值;所述计算模型以所述函数链的长度与所述特征值负相关,且以所述函数链中各个特征函数的量化分值的和与所述特征值正相关为原则构建;
所述计算模块,用于基于所述计算模型分别计算每一所述函数链的特征值;
所述排序模块,用于基于所述函数链的特征值对所有所述函数链进行排序,以排名靠前的一个或多个函数链作为所述验证链。
7.根据权利要求6所述的应用程序漏洞修复验证系统,其特征在于,所述计算模型为:
Mi=[Nmax+(Nmax-Ni)]×Si,
其中,Mi为当前任一所述函数链的特征值,Nmax为当前所有函数链中最长函数链中特征函数的个数,Ni为当前所计算函数链中特征函数的个数,Si为当前所计算函数链中所有特征函数的量化分值的和。
8.根据权利要求5所述的应用程序漏洞修复验证系统,其特征在于,处于所述应用程序的输出阶段的特征函数的量化分值大于处于所述应用程序的传播阶段的特征函数的量化分值,处于所述应用程序的传播阶段的特征函数的量化分值大于处于所述应用程序的输入阶段的特征函数的量化分值。
9.一种应用程序漏洞修复验证系统,其特征在于,包括:
一个或多个处理器;
存储器;
以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如权利要求1至4任一项所述的应用程序漏洞修复验证方法的指令。
10.一种计算机可读存储介质,其特征在于,包括计算机程序,所述计算机程序可被处理器执行以完成如权利要求1至4任一项所述的应用程序漏洞修复验证方法。
CN202210894732.4A 2022-07-28 2022-07-28 应用程序漏洞修复验证方法及系统 Active CN114968826B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210894732.4A CN114968826B (zh) 2022-07-28 2022-07-28 应用程序漏洞修复验证方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210894732.4A CN114968826B (zh) 2022-07-28 2022-07-28 应用程序漏洞修复验证方法及系统

Publications (2)

Publication Number Publication Date
CN114968826A true CN114968826A (zh) 2022-08-30
CN114968826B CN114968826B (zh) 2022-11-22

Family

ID=82969756

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210894732.4A Active CN114968826B (zh) 2022-07-28 2022-07-28 应用程序漏洞修复验证方法及系统

Country Status (1)

Country Link
CN (1) CN114968826B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130055220A1 (en) * 2011-08-26 2013-02-28 Fujitsu Limited Tracking Variables in Javascript Software Using a Control Flow Graph
CN109165507A (zh) * 2018-07-09 2019-01-08 深圳开源互联网安全技术有限公司 跨站脚本攻击漏洞检测方法、装置及终端设备
CN109800175A (zh) * 2019-02-20 2019-05-24 河海大学 一种基于代码插桩的以太坊智能合约重入漏洞检测方法
CN109829312A (zh) * 2019-01-29 2019-05-31 北京启明星辰信息安全技术有限公司 基于调用链的java漏洞检测方法及检测系统
CN111046396A (zh) * 2020-03-13 2020-04-21 深圳开源互联网安全技术有限公司 web应用测试数据流跟踪方法及系统
CN111859380A (zh) * 2019-04-25 2020-10-30 北京九州正安科技有限公司 Android App漏洞的零误报检测方法
CN112765031A (zh) * 2021-01-25 2021-05-07 北京航空航天大学 一种群智化漏洞挖掘任务的分解方法
CN113342673A (zh) * 2021-06-25 2021-09-03 深圳前海微众银行股份有限公司 漏洞检测方法、设备及可读存储介质
CN113497809A (zh) * 2021-09-07 2021-10-12 中国人民解放军国防科技大学 基于控制流和数据流分析的mips架构漏洞挖掘方法
CN114138681A (zh) * 2022-01-29 2022-03-04 深圳开源互联网安全技术有限公司 一种污点数据跟踪方法、装置及计算机可读存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130055220A1 (en) * 2011-08-26 2013-02-28 Fujitsu Limited Tracking Variables in Javascript Software Using a Control Flow Graph
CN109165507A (zh) * 2018-07-09 2019-01-08 深圳开源互联网安全技术有限公司 跨站脚本攻击漏洞检测方法、装置及终端设备
CN109829312A (zh) * 2019-01-29 2019-05-31 北京启明星辰信息安全技术有限公司 基于调用链的java漏洞检测方法及检测系统
CN109800175A (zh) * 2019-02-20 2019-05-24 河海大学 一种基于代码插桩的以太坊智能合约重入漏洞检测方法
CN111859380A (zh) * 2019-04-25 2020-10-30 北京九州正安科技有限公司 Android App漏洞的零误报检测方法
CN111046396A (zh) * 2020-03-13 2020-04-21 深圳开源互联网安全技术有限公司 web应用测试数据流跟踪方法及系统
CN112765031A (zh) * 2021-01-25 2021-05-07 北京航空航天大学 一种群智化漏洞挖掘任务的分解方法
CN113342673A (zh) * 2021-06-25 2021-09-03 深圳前海微众银行股份有限公司 漏洞检测方法、设备及可读存储介质
CN113497809A (zh) * 2021-09-07 2021-10-12 中国人民解放军国防科技大学 基于控制流和数据流分析的mips架构漏洞挖掘方法
CN114138681A (zh) * 2022-01-29 2022-03-04 深圳开源互联网安全技术有限公司 一种污点数据跟踪方法、装置及计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HONGZHE LI 等: "Software Vulnerability Detection Using Backward Trace Analysis and Symbolic Execution", 《2013 INTERNATIONAL CONFERENCE ON AVAILABILITY, RELIABILITY AND SECURITY》 *
王晓婷: "基于全局函数调用关系的Android系统漏洞关联技术研究与实现", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 *

Also Published As

Publication number Publication date
CN114968826B (zh) 2022-11-22

Similar Documents

Publication Publication Date Title
KR102061987B1 (ko) 위험 평가 방법 및 시스템
CN109815991A (zh) 机器学习模型的训练方法、装置、电子设备及存储介质
JP2018026135A (ja) 静的解析警告の効率的な運用のための原因ポイント解析のためのシステム及び方法
CN110633211A (zh) 对于多接口的测试方法、装置、服务器及介质
Ellims et al. The Csaw C mutation tool: Initial results
CN115098292B (zh) 应用程序崩溃根原因识别方法、装置及电子设备
Grbac et al. Stability of software defect prediction in relation to levels of data imbalance
CN111752846A (zh) 一种接口测试方法及装置
CN114968826B (zh) 应用程序漏洞修复验证方法及系统
US11645192B2 (en) Graph-based method for inductive bug localization
CN113886373A (zh) 一种数据处理方法、装置及电子设备
May et al. Immune and evolutionary approaches to software mutation testing
JP2013182468A (ja) パラメータ値設定誤り検出システム、パラメータ値設定誤り検出方法およびパラメータ値設定誤り検出プログラム
CN112948193A (zh) 一种基于差异测试的fpga综合工具缺陷检测方法
CN117196385A (zh) 一种钢筋成品质量评价方法及系统
CN111091194B (zh) 一种基于cavwnb_kl算法的操作系统识别方法
CN115640155A (zh) 基于语句依赖和补丁相似性的程序自动修复方法与系统
CN113256289B (zh) 区块链的判别方法、装置及电子设备
CN115658646A (zh) 一种二进制特征数据库构建方法及装置
WO2022041866A1 (zh) 因果关系的确定方法、装置、设备及可读存储介质
CN113672508A (zh) 一种基于风险策略和多样性策略的Simulink测试方法
US7650579B2 (en) Model correspondence method and device
CN109583590A (zh) 数据处理方法及数据处理装置
JP5118707B2 (ja) 検索ログ悪用防止方法及び装置
JP6369102B2 (ja) ソフトウェア試験支援システム

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