CN115357900A - 提升存储型漏洞检测效率的方法及系统 - Google Patents
提升存储型漏洞检测效率的方法及系统 Download PDFInfo
- Publication number
- CN115357900A CN115357900A CN202210860120.3A CN202210860120A CN115357900A CN 115357900 A CN115357900 A CN 115357900A CN 202210860120 A CN202210860120 A CN 202210860120A CN 115357900 A CN115357900 A CN 115357900A
- Authority
- CN
- China
- Prior art keywords
- data
- taint
- type
- application program
- storage
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种提升存储型漏洞检测效率的方法及系统,该方法包括:确认污点数据是否匹配预设的数据标签集,数据标签集包括一个或多个标准数据标签,如果是,则,将该污点数据定义为第一类目标数据,如果否,则根据预设判断模型判断该污点数据是否符合筛选规则,如果是,则,将该污点数据定义为第二类目标数据;基于当前第一类目标数据或第二类目标数据和预设的存储型漏洞检测方法对应用程序进行漏洞检测;如果应用程序存在基于第二类目标数据的存储型漏洞,则生成与该第二类目标数据的数据规则相匹配的衍生数据标签,并将该衍生数据标签加入数据标签集;本发明上述技术方案,可有效提升对存储型漏洞检测的靶向性,进而提升检测效率。
Description
技术领域
本发明涉及应用程序存储型漏洞检测技术领域,尤其涉及一种提升存储型漏洞检测效率的方法及系统。
背景技术
随着互联网的发展,应用程序也越来越多,常见的web漏洞也都由SAST、DAST工具进行检测、防护。存储型漏洞为应用程序中的一种特殊漏洞,如果应用程序中存在存储型漏洞,攻击者将攻击数据通过A接口存储到数据库中,再利用B接口(可能是下一个请求,也可能是几天后发送的请求)从数据库中获取之前发送的攻击数据进行协同攻击。对于这种存储型漏洞,由于常规检测方式只能基于单个请求进行拦截验证,因此,逐渐有人开发专用地存储型漏洞检测工具,然而,由于造成存储型漏洞的请求数据类型比较多,造成这种专业检测工具的靶向性不强,从而造成检测效率不够理想。
基于此,市场对应用程序的存储型漏洞的检测效率提出了新的需求。
发明内容
本发明的目的是提供一种专用于对应用程序中的存储型漏洞检测检测且有效提升检测效率的提升存储型漏洞检测效率的方法及系统。
为了实现上述目的,本发明公开了一种提升存储型漏洞检测效率的方法,其包括:
确认进入待测应用程序中的污点数据是否匹配预设的数据标签集,所述数据标签集包括一个或多个标准数据标签,所述标准数据标签所描述一类与一种或多种漏洞类型相对应的标准数据规则,如果是,则,将该污点数据定义为第一类目标数据,如果否,则,
解析该污点数据,以获得包括该污点数据的数据类型和数据值的解析结果,并根据预设判断模型判断该解析结果是否符合筛选规则,如果是,则,将该污点数据定义为第二类目标数据;
基于当前所述第一类目标数据或所述第二类目标数据和预设的存储型漏洞检测方法对应用程序进行漏洞检测;
如果所述应用程序存在存储型漏洞且基于所述第二类目标数据检出,则生成与该第二类目标数据的数据规则相匹配的衍生数据标签,并将该衍生数据标签加入所述数据标签集。
较佳地,对于经由所述判断模型判断解析结果符合筛选规则的污点数据,在将其定义为所述第二类目标数据前,先判断该污点数据在一连续时间段内进入所述应用程序中和/或在所述应用程序中执行的频率是否超出预设的频率阈值,如果是,则将该污点数据定义为所述第二类目标数据。
较佳地,判断模型判断该污点数据是否符合筛选规则的方法包括:
将污点数据解析为键值对;
判断所述污点数据的数据类型和数据长度是否符合筛选规则,如果是,则,
进一步判断该污点数据中的关键字是否符合筛选规则,如果是,则当前污点数据符合筛选规则。
较佳地,所述存储型漏洞检测方法包括:
采用IAST插桩工具插桩待测应用程序,以将数据流跟踪程序织入待测应用程序;
当进入待测应用程序中的污点数据要求应用程序发生数据存储操作事件时,获取所述污点数据在数据库中所存储数据的位置信息,并存储该位置信息,以获得参照数据表;
当进入待测应用程序中的污点数据要求应用程序发生数据查询操作事件时,判断查询内容是否与所述参照数据表中记录的内容相匹配,如果是,则采用标记信息对当前所述查询内容做特征标记;
跟踪所述污点数据的数据流,判断带有所述标记信息的查询内容是否出现在输出阶段或经由传播阶段到达输出阶段,如果是,则当前应用程序存在存储型漏洞。
本发明还公开一种提升存储型漏洞检测效率的系统,其包括:
第一数据筛选模块,其用于将进入待测应用程序中的并与预设的数据标签集匹配的污点数据定义为第一类目标数据;所述数据标签集包括一个或多个标准数据标签,所述标准数据标签所描述一类与一种或多种漏洞类型相对应的标准数据规则;
第二数据筛选模块,其用于根据预设的判断模型对与预设的数据标签集不匹配的污点数据进行筛选,并将筛选出的污点数据定义为第二类目标数据,所述判断模型用于判断所述污点数据的数据类型和数据值是否符合筛选规则;
漏洞检测模块,其用于基于当前所述第一类目标数据或所述第二类目标数据和预设的存储型漏洞检测方法对应用程序进行漏洞检测;
数据标签更新模块,其用于当所述漏洞检测模块检测到所述应用程序存在存储型漏洞且基于所述第二类目标数据检出,生成与该第二类目标数据的数据规则相匹配的衍生数据标签,并将该衍生数据标签加入所述数据标签集。
较佳地,对于经由所述判断模型判断解析结果符合筛选规则的污点数据,在将其定义为所述第二类目标数据前,所述第二数据筛选模块还根据该污点数据在一连续时间段内进入所述应用程序中和/或在所述应用程序中执行的频率筛选所述第二类目标数据。
较佳地,所述第二数据筛选模块通过判断污点数据的数据类型、数据长度以及关键字是否符合筛选规则来筛选所述第二类目标数据。
较佳地,所述漏洞检测模块包括:
插桩模块,其用于采用IAST插桩工具插桩待测应用程序,以将数据流跟踪程序织入待测应用程序;
参照数据采集模块,其用于当进入待测应用程序中的污点数据要求应用程序发生数据存储操作事件时,获取所述污点数据在数据库中所存储数据的位置信息,并存储该位置信息,以获得参照数据表;
标记模块,其用于当进入待测应用程序中的污点数据要求应用程序发生数据查询操作事件时,如果查询内容是否与所述参照数据表中记录的内容相匹配,采用标记信息对当前所述查询内容做特征标记;
确认模块,其用于通过判断带有所述标记信息的查询内容是否出现在所述污点数据的数据流的输出阶段或经由传播阶段到达输出阶段确认当前应用程序存在存储型漏洞。
本发明还公开另一种提升存储型漏洞检测效率的系统,其包括:
一个或多个处理器;
存储器;
以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上所述的提升存储型漏洞检测效率的方法的指令。
本发明还公开一种计算机可读存储介质,其包括计算机程序,所述计算机程序可被处理器执行以完成如上所述的提升存储型漏洞检测效率的方法。
与现有技术相比,本发明上述技术方案,通过预设的专用于存储型漏洞检测的检测方法对应用程序进行漏洞检测,检测时,首先会通过预设的数据标签集对污点数据进行第一重筛选,由此,将快速筛选出高风险的第一类目标数据,从而提升对存储型漏洞检测的靶向性,进而提升检测效率;再者,对不符合数据标签集的污点数据进行解析,并对解析内容进行第二重筛选,将筛选出的数据定义为第二类目标数据,且,如果通过该第二类目标数据检测到存储型漏洞,则基于该第二类目标数据生成衍生数据标签,并将其添加到数据标签集,由此确保了对存储型漏洞检测的全面性,避免漏检;另外,通过第二重筛选,还筛掉一部分与存储型漏洞极低相关性的污点数据,从而进一步提升了检测效率。
附图说明
图1为本发明实施例中提升存储型漏洞检测效率的方法流程图。
图2为本发明实施例中存储型漏洞检测方法流程图。
图3为本发明实施例中参照数据表的存储结构图。
图4为本发明实施例中提升存储型漏洞检测效率的系统原理结构图。
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
本实施例公开了一种提升存储型漏洞检测效率的方法,以用于应用程序存储型漏洞的检测,并解决应用程序存储型漏洞检测的靶向性不强以致效率不高的问题。如图1,本实施例中的提升存储型漏洞检测效率的方法包括如下步骤:
S10:确认进入待测应用程序中的污点数据(也即用户输入的请求数据)是否匹配预设的数据标签集,所述数据标签集包括一个或多个标准数据标签,所述标准数据标签所描述一类与一种或多种漏洞类型相对应的标准数据规则,如果是,则,进入步骤S11;如果否,则跳过步骤S11而进入步骤S12。
S11:将该污点数据定义为第一类目标数据,并跳过步骤S12~S14而直接进入步骤S15。
S12:解析该污点数据,以获得包括该污点数据的数据类型和数据值的解析结果。
S13:根据预设判断模型判断该解析结果是否符合筛选规则,如果是,则,进入下述步骤S14,如果否,则丢弃该污点数据,放弃基于该污点数据进行存储型漏洞的检测。
S14:将该污点数据定义为第二类目标数据。
S15:基于当前所述第一类目标数据或所述第二类目标数据和预设的存储型漏洞检测方法对当前应用程序进行漏洞检测。
S16:确认是否检出存储型漏洞,如果否,则结束,如果是,则进入下述步骤S17。
S17:确认存储型漏洞是否基于所述第二类目标数据检出,如果否,则结束,如果是,则进入下述步骤S18。
S18:生成与该第二类目标数据的数据规则相匹配的衍生数据标签,并将该衍生数据标签加入上述数据标签集,从而对数据标签集进行更新、完善。
在本实施例中,首先,通过数据标签集对进入应用程序的污点数据进行第一重筛选,以筛选出与存储型漏洞高相关性的测试数据,也即第一类目标数据,例如,对于容易造成“不安全的重定向漏洞”的污点数据A,一般为uri或者url类型,而uri和url数据容易出现存储型ssrf漏洞,如果数据标签集中配置有uri数据标签(/*/**)和url数据标签(http://*/**)。那么,污点数据A进入应用程序的输入阶段后,将与标签数据集进行匹配,从而匹配到uri数据标签或url数据标签,进而将该污点数据A定义为第一类目标数据,并对其进行特征标记。再者,对于容易造成“存储型XSS漏洞”的污点数据B,一般是富文本类型,此时,如果数据标签集中配置有富文本标签([<br|<div|<script]?),那么污点数据B进入应用程序后,也会被定义为第一类目标数据,并对其进行特征标记。
另外,如http请求的queryString中有contextPath=baidu,污点数据C“baidu”因为不符合任何已配置的标签数据集中(uri或者富文本等)的数据标签,所以,对该污点数据C进行解析,从而获得其数据类型为字符类型(非纯数字),并且污点数据C的key中存在请求相关的关键字contextPath,通过判断模型得出该污点数据C可能存在“不安全的重定向漏洞”,因此,将该污点数据C定义为第二类目标数据,并对其进行特征标记。
可选地,为确保判断模型判断的准确性,本实施例中的判断模型基于机器学习算法的神经网络架构构建,这样,判断模型可根据最终的漏洞检测结果不断进行自身优化,从而提升其判断准确性。
具体地,判断模型判断该污点数据是否符合筛选规则的方法包括:
将污点数据解析为键值对;
判断所述污点数据的数据类型和数据长度是否符合筛选规则,如果是,则,进一步判断该污点数据中的关键字是否符合筛选规则,如果是,则当前污点数据符合筛选规则。例如,对于上述实施例中的污点数据C,数据类型为字符串,该字符串长度为5,均符合预设规则(假设),键值对的key值中的关键字为contextPath,该关键字符合跟存储型漏洞触发条件相关的语义,因此,将该污点数据定义为第二类目标数据。
进一步地,为进一步提升服务器的性能并进而提升检测效率,对于经由所述判断模型判断解析结果符合筛选规则的污点数据,在将其定义为所述第二类目标数据前,先判断该污点数据在一连续时间段内进入所述应用程序中和/或在所述应用程序中执行的频率是否超出预设的频率阈值,如果是,则将该污点数据定义为所述第二类目标数据,如果否,则放弃基于该污点数据的漏洞检测。
具体地,当污点数据不符合第一类目标数据,并通过上述判断模型的筛选后,如果该污点数据首次出现或执行,不对其进行漏洞检测处理,即不将其定义为第二类目标数据,当该污点数据进入应用程序中的次数或在该应用程序中的执行次数在三十分钟内达到三次以上时,才将该污点数据定义为第二类目标数据。另外,在将污点数据定义为第二类目标数据前,还可考虑当前服务器系统资源使用情况,如果系统资源较紧张,则放弃将其定义为第二类目标数据。
根据上述实施例公开的技术方案,通过预设的专用于存储型漏洞检测的检测方法对应用程序进行漏洞检测,检测时,首先会通过预设的数据标签集对污点数据进行第一重筛选,由此,将快速筛选出高风险的第一类目标数据,从而提升对存储型漏洞检测的靶向性,进而提升检测效率;再者,对不符合数据标签集的污点数据进行解析,并对解析内容进行第二重筛选,将筛选出的数据定义为第二类目标数据,且,如果通过该第二类目标数据检测到存储型漏洞,则基于该第二类目标数据生成衍生数据标签,并将其添加到数据标签集,由此确保了对存储型漏洞检测的全面性,避免漏检;另外,通过第二重筛选,还筛掉一部分与存储型漏洞极低相关性的污点数据,从而进一步提升了检测效率。
本发明另一较佳实施例中,如图2,存储型漏洞检测方法包括如下步骤:
S20:采用IAST插桩工具插桩待测应用程序,以将数据流跟踪程序织入待测应用程序,基于该数据流跟踪程序,可跟踪污点数据在应用程序中的数据流。
S21:基于数据流跟踪程序,获取污点数据(也即第一类目标数据或第二类目标数据)在应用程序中的数据流,并根据该污点数据所进入的数据库交互函数判断当前污点数据是否要求应用程序发生数据存储操作事件,如果是,则进入下述步骤S30,如果否,表示当前污点数据要求应用程序发生的是数据查询操作事件,则进入下述步骤S40。
具体地,通过插桩的数据库交互函数如java.sql.Connection#prepareStatement(java.lang.String),获取入参信息,也即sql语句,然后,通过sql语句中的关键字,如select,update,delete,insert等判断当前应用程序通过数据库交互函数发生的动作,如果为insert或update则说明是数据存储操作,如果为select则为数据库查询操作。
S30:获取污点数据在数据库中所存储数据的位置信息,并存储该位置信息,以获得参照数据表。具体地,本实施例中的位置信息包括污点数据存储在应用程序数据库中的数据所属的数据库名、数据表名和列名。
S40:判断查询内容是否与参照数据表中记录的内容相匹配,如果是,表示当前污点数据所要提取的数据为其他在先请求所存储的来自于用户输入的数据,则进入步骤S41,如果否,不对当前查询内容做任何操作。
S41:采用标记信息对当前查询内容做特征标记。
S42:跟踪污点数据的数据流,并判断带有标记信息的查询内容是否出现在输出阶段或经由传播阶段到达输出阶段,如果是,则确认当前应用程序存在存储型漏洞,如果否,则结束。
上述实施例中公开的存储型漏洞检测方法所适用的漏洞操作情景是:在先请求将一个污点数据存储到数据库,但是并没有执行,而在后请求把之前在先请求的污点数据从数据库中取出并执行。如果出现这种操作情景,说明当前应用程序存在存储型漏洞。因此,上述实施例中的存储型漏洞检测方法的发明构思是:基于下述两个条件判断应用程序是否存在存储型漏洞,一是,在后请求从数据库中提取的数据是来自于用户输入的在先请求存储的数据,二是,在后请求从数据库提取在先请求存储的数据后,把数据传入到了敏感函数(比如sql执行,命令行执行),进而输出。由此,通过该方法,可检测应用程序中大部分存储型漏洞攻击的场景,而且检测效率高。
在上述实施例中,数据库交互函数会根据入参信息(sql语句)执行数据存储操作或数据查询操作。例如,当入参的sql语句为insert into users(name,sex)values(request.getParameter("name"),request.getParameter("sex"))时,执行语句为:
相应地,当数据库交互函数执行数据查询操作时,其具体执行语句为:
因此,通过对当前进入数据库交互函数的入参信息的解析,可获得当前所要存储或提取的数据在数据库中所属的数据表名和列名,通过解析当前数据库交互函数中的对象(在上述执行语句中为Connection)可获得当前所要存储或提取的数据在数据库中所属的数据库名称信息(在上述执行语句中为test)。
基于此,本实施例中,获取存储在数据中的数据的位置信息的方法具体包括:
首先,跟踪污点数据的数据流,获取应用程序与数据库交互的存储语句(sql语句)和执行语句。
然后,解析该存储语句,以获得数据表名和列名,解析该执行语句,以获得数据库名。根据上述实施例公开的具体的存储语句和相应的执行语句,数据表名为users,列名为name和sex,数据库名为test。
当获取到位置信息后,将其存入参照数据表中,如图3所示,参照数据表中的数据以树状结构存储。
相应地,判断查询内容是否与参照数据表中记录的内容相匹配的方法包括:
首先,跟踪污点数据的数据流,获取应用程序与数据库交互的查询语句(sql语句)和执行语句。
然后,解析该查询语句和执行语句,以获取当前应用程序访问数据库的目标位置。
接着,采用轮询方式查询目标位置是否与参照数据表中的位置信息匹配,如果是,则表明由查询语句返回的查询内容与参照数据表中记录的内容相匹配。
本实施例中,当查询语句为select name,sex from users where name=‘zhangsan’时,通过词法分析技术提取出表名为users,列名为name和sex,并通过插桩技术获取的执行语句中的Connection对象为test,因此,该目标位置可与参照数据表中记录的内容相匹配,当前应用程序存在存储型漏洞。
进一步地,在参照数据表中,存储污点数据在数据库中的位置信息时,同时将污点数据和发生数据存储操作时的线程上下文信息与位置信息进行关联存储,这样,当检测到存储型漏洞时,可结合当前和参照数据表存储的污点数据和线程上下文信息,准确定位存储型漏洞的来源和爆发点。
本发明另一较佳实施例中,如图4,还公开一种提升存储型漏洞检测效率的系统,其包括第一数据筛选模块、第二数据筛选模块、漏洞检测模块以及数据标签更新模块。
第一数据筛选模块,用于将进入待测应用程序中的并与预设的数据标签集匹配的污点数据定义为第一类目标数据;所述数据标签集包括一个或多个标准数据标签,所述标准数据标签所描述一类与一种或多种漏洞类型相对应的标准数据规则。
第二数据筛选模块,用于根据预设的判断模型对与预设的数据标签集不匹配的污点数据进行筛选,并将筛选出的污点数据定义为第二类目标数据,所述判断模型用于判断所述污点数据的数据类型和数据值是否符合筛选规则。
漏洞检测模块,用于基于当前所述第一类目标数据或所述第二类目标数据和预设的存储型漏洞检测方法对应用程序进行漏洞检测。
数据标签更新模块,用于当所述漏洞检测模块检测到所述应用程序存在存储型漏洞且基于所述第二类目标数据检出,生成与该第二类目标数据的数据规则相匹配的衍生数据标签,并将该衍生数据标签加入所述数据标签集。
进一步地,对于经由所述判断模型判断解析结果符合筛选规则的污点数据,在将其定义为所述第二类目标数据前,所述第二数据筛选模块还根据该污点数据在一连续时间段内进入所述应用程序中和/或在所述应用程序中执行的频率筛选所述第二类目标数据。
进一步地,所述第二数据筛选模块通过判断污点数据的数据类型、数据长度以及关键字是否符合筛选规则来筛选所述第二类目标数据。
进一步地,漏洞检测模块包括插桩模块、参照数据采集模块、标记模块以及确认模块。
插桩模块,用于采用IAST插桩工具插桩待测应用程序,以将数据流跟踪程序织入待测应用程序。
参照数据采集模块,用于当进入待测应用程序中的污点数据要求应用程序发生数据存储操作事件时,获取污点数据在数据库中所存储数据的位置信息,并存储该位置信息,以获得参照数据表。
标记模块,用于当进入待测应用程序中的污点数据要求应用程序发生数据查询操作事件时,如果查询内容是否与参照数据表中记录的内容相匹配,采用标记信息对当前查询内容做特征标记。
确认模块,用于通过判断带有标记信息的查询内容是否出现在污点数据的数据流的输出阶段或经由传播阶段到达输出阶段确认当前应用程序存在存储型漏洞。
可选地,参照数据采集模块还在参照数据表中同时将污点数据和发生数据存储操作时的线程上下文信息与位置信息进行关联存储。
进一步地,位置信息包括污点数据存储在应用程序数据库中的数据所属的数据库名、数据表名和列名。
参照数据采集模块包括第一数据采集模块和第一解析模块。
第一数据采集模块,用于通过跟踪污点数据的数据流获取应用程序与数据库交互的存储语句和执行语句。
第一解析模块,用于对第一数据采集模块采集到的存储语句进行解析,以获得数据表名和列名,并对该执行语句进行解析,以获得数据库名。
标记模块中包括有第二数据采集模块、第二解析模块以及轮询模块。
第二数据采集模块,用于通过跟踪污点数据的数据流获取应用程序与数据库交互的查询语句和执行语句。
第二解析模块,用于解析该查询语句和执行语句,以获取当前应用程序访问数据库的目标位置。
轮询模块,用于采用轮询方式查询目标位置是否与参照数据表中的位置信息匹配,以确认查询语句返回的查询内容是否与参照数据表中记录的内容相匹配。
进一步地,该漏洞检测模块还包括数据操作判断模块,该数据库操作判断模块用于通过应用程序与数据库交互的sql语句中的关键字判断当前进入应用程序中的污点数据对数据库的操作事件。
另外需要说明的是,本实施例中的提升存储型漏洞检测效率的系统的工作原理和工作方式详见上述提升存储型漏洞检测效率的方法,在此不再赘述。
本发明还公开另一种提升存储型漏洞检测效率的系统,其包括一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上所述的提升存储型漏洞检测效率的方法的指令。处理器可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的提升存储型漏洞检测效率的系统中的模块所需执行的功能,或者执行本申请方法实施例的提升存储型漏洞检测效率的方法。
本发明还公开一种计算机可读存储介质,其包括计算机程序,所述计算机程序可被处理器执行以完成如上所述的提升存储型漏洞检测效率的方法。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-onlymemory,ROM),或随机存取存储器(random access memory,RAM),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质,例如,固态硬盘(solid state disk,SSD)等。
本申请实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述提升存储型漏洞检测效率的方法。
以上所披露的仅为本发明的优选实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种提升存储型漏洞检测效率的方法,其特征在于,包括:
确认进入待测应用程序中的污点数据是否匹配预设的数据标签集,所述数据标签集包括一个或多个标准数据标签,所述标准数据标签所描述一类与一种或多种漏洞类型相对应的标准数据规则,如果是,则,将该污点数据定义为第一类目标数据,如果否,则,
解析该污点数据,以获得包括该污点数据的数据类型和数据值的解析结果,并根据预设判断模型判断该解析结果是否符合筛选规则,如果是,则,将该污点数据定义为第二类目标数据;
基于当前所述第一类目标数据或所述第二类目标数据和预设的存储型漏洞检测方法对应用程序进行漏洞检测;
如果所述应用程序存在存储型漏洞且基于所述第二类目标数据检出,则生成与该第二类目标数据的数据规则相匹配的衍生数据标签,并将该衍生数据标签加入所述数据标签集。
2.根据权利要求1所述的提升存储型漏洞检测效率的方法,其特征在于,对于经由所述判断模型判断解析结果符合筛选规则的污点数据,在将其定义为所述第二类目标数据前,先判断该污点数据在一连续时间段内进入所述应用程序中和/或在所述应用程序中执行的频率是否超出预设的频率阈值,如果是,则将该污点数据定义为所述第二类目标数据。
3.根据权利要求1所述的提升存储型漏洞检测效率的方法,其特征在于,判断模型判断该污点数据是否符合筛选规则的方法包括:
将污点数据解析为键值对;
判断所述污点数据的数据类型和数据长度是否符合筛选规则,如果是,则,
进一步判断该污点数据中的关键字是否符合筛选规则,如果是,则当前污点数据符合筛选规则。
4.根据权利要求1所述的提升存储型漏洞检测效率的方法,其特征在于,所述存储型漏洞检测方法包括:
采用IAST插桩工具插桩待测应用程序,以将数据流跟踪程序织入待测应用程序;
当进入待测应用程序中的污点数据要求应用程序发生数据存储操作事件时,获取所述污点数据在数据库中所存储数据的位置信息,并存储该位置信息,以获得参照数据表;
当进入待测应用程序中的污点数据要求应用程序发生数据查询操作事件时,判断查询内容是否与所述参照数据表中记录的内容相匹配,如果是,则采用标记信息对当前所述查询内容做特征标记;
跟踪所述污点数据的数据流,判断带有所述标记信息的查询内容是否出现在输出阶段或经由传播阶段到达输出阶段,如果是,则当前应用程序存在存储型漏洞。
5.一种提升存储型漏洞检测效率的系统,其特征在于,包括:
第一数据筛选模块,其用于将进入待测应用程序中的并与预设的数据标签集匹配的污点数据定义为第一类目标数据;所述数据标签集包括一个或多个标准数据标签,所述标准数据标签所描述一类与一种或多种漏洞类型相对应的标准数据规则;
第二数据筛选模块,其用于根据预设的判断模型对与预设的数据标签集不匹配的污点数据进行筛选,并将筛选出的污点数据定义为第二类目标数据,所述判断模型用于判断所述污点数据的数据类型和数据值是否符合筛选规则;
漏洞检测模块,其用于基于当前所述第一类目标数据或所述第二类目标数据和预设的存储型漏洞检测方法对应用程序进行漏洞检测;
数据标签更新模块,其用于当所述漏洞检测模块检测到所述应用程序存在存储型漏洞且基于所述第二类目标数据检出,生成与该第二类目标数据的数据规则相匹配的衍生数据标签,并将该衍生数据标签加入所述数据标签集。
6.根据权利要求5所述的提升存储型漏洞检测效率的系统,其特征在于,对于经由所述判断模型判断解析结果符合筛选规则的污点数据,在将其定义为所述第二类目标数据前,所述第二数据筛选模块还根据该污点数据在一连续时间段内进入所述应用程序中和/或在所述应用程序中执行的频率筛选所述第二类目标数据。
7.根据权利要求5所述的提升存储型漏洞检测效率的系统,其特征在于,所述第二数据筛选模块通过判断污点数据的数据类型、数据长度以及关键字是否符合筛选规则来筛选所述第二类目标数据。
8.根据权利要求5所述的提升存储型漏洞检测效率的系统,其特征在于,所述漏洞检测模块包括:
插桩模块,其用于采用IAST插桩工具插桩待测应用程序,以将数据流跟踪程序织入待测应用程序;
参照数据采集模块,其用于当进入待测应用程序中的污点数据要求应用程序发生数据存储操作事件时,获取所述污点数据在数据库中所存储数据的位置信息,并存储该位置信息,以获得参照数据表;
标记模块,其用于当进入待测应用程序中的污点数据要求应用程序发生数据查询操作事件时,如果查询内容是否与所述参照数据表中记录的内容相匹配,采用标记信息对当前所述查询内容做特征标记;
确认模块,其用于通过判断带有所述标记信息的查询内容是否出现在所述污点数据的数据流的输出阶段或经由传播阶段到达输出阶段确认当前应用程序存在存储型漏洞。
9.一种提升存储型漏洞检测效率的系统,其特征在于,包括:
一个或多个处理器;
存储器;
以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如权利要求1至4任一项所述的提升存储型漏洞检测效率的方法的指令。
10.一种计算机可读存储介质,其特征在于,包括计算机程序,所述计算机程序可被处理器执行以完成如权利要求1至4任一项所述的提升存储型漏洞检测效率的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210860120.3A CN115357900A (zh) | 2022-07-20 | 2022-07-20 | 提升存储型漏洞检测效率的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210860120.3A CN115357900A (zh) | 2022-07-20 | 2022-07-20 | 提升存储型漏洞检测效率的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115357900A true CN115357900A (zh) | 2022-11-18 |
Family
ID=84032624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210860120.3A Pending CN115357900A (zh) | 2022-07-20 | 2022-07-20 | 提升存储型漏洞检测效率的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115357900A (zh) |
-
2022
- 2022-07-20 CN CN202210860120.3A patent/CN115357900A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110324311B (zh) | 漏洞检测的方法、装置、计算机设备和存储介质 | |
CN108763928B (zh) | 一种开源软件漏洞分析方法、装置和存储介质 | |
US9032516B2 (en) | System and method for detecting malicious script | |
CN109922052B (zh) | 一种结合多重特征的恶意url检测方法 | |
US9680848B2 (en) | Apparatus, system and method for detecting and preventing malicious scripts using code pattern-based static analysis and API flow-based dynamic analysis | |
CN110602029B (zh) | 一种用于识别网络攻击的方法和系统 | |
CN109768992B (zh) | 网页恶意扫描处理方法及装置、终端设备、可读存储介质 | |
US7640235B2 (en) | System and method for correlating between HTTP requests and SQL queries | |
CN111259399B (zh) | 用于web应用的动态检测漏洞攻击的方法及系统 | |
CN111104579A (zh) | 一种公网资产的识别方法、装置及存储介质 | |
KR102120200B1 (ko) | 악성 코드 수집 방법 및 시스템 | |
CN106250761B (zh) | 一种识别web自动化工具的设备、装置及方法 | |
CN110889113A (zh) | 一种日志分析方法、服务器、电子设备及存储介质 | |
CN113055399A (zh) | 注入攻击的攻击成功检测方法、系统及相关装置 | |
CN113190838A (zh) | 一种基于表达式的web攻击行为检测方法及系统 | |
CN115186274A (zh) | 基于iast的安全测试方法及装置 | |
CN107786529B (zh) | 网站的检测方法、装置及系统 | |
CN115098151A (zh) | 一种细粒度的内网设备固件版本探测方法 | |
CN115801455B (zh) | 一种基于网站指纹的仿冒网站检测方法及装置 | |
CN115357899A (zh) | 基于iast技术检测存储型漏洞的方法及系统 | |
US10313127B1 (en) | Method and system for detecting and alerting users of device fingerprinting attempts | |
CN111131236A (zh) | 一种web指纹检测装置、方法、设备及介质 | |
CN115357900A (zh) | 提升存储型漏洞检测效率的方法及系统 | |
CN115309968A (zh) | 一种基于资源搜索引擎生成网页指纹规则的方法、装置 | |
CN113051876A (zh) | 恶意网址识别方法及装置、存储介质、电子设备 |
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 |