首页 / 专利库 / 电脑零配件 / 计算机系统 / 软件 / 基于IAST测试工具动态检测水平越权的方法及系统

基于IAST测试工具动态检测平越权的方法及系统

阅读:333发布:2023-05-29

专利汇可以提供基于IAST测试工具动态检测平越权的方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于IAST测试工具动态检测 水 平越权的方法及系统,其中,方法包括如下步骤:S1)、利用IAST测试工具和插桩技术,追踪用户程序与 数据库 交互的SQL语句;S2)、绑定 请求 与请求权限;S3)、根据步骤1获取该请求下所有执行的SQL语句并存储;S4)、对获取到的SQL语句进行解析;S5)、对步骤4中生成的数据进行加权计算并生成检测模型;S6)、实时监听用户请求流程;S7)、采用检测模型对用户发送的请求进行权限验证,以判断请求所执行的语句是否存在水平越权问题;本发明通过对SQL语句的数据库资源解析和检测模型的结合,可使得检测 软件 深入到应用程序的代码内部,可以更精准的 定位 水平越权漏洞。,下面是基于IAST测试工具动态检测平越权的方法及系统专利的具体信息内容。

1.一种基于IAST测试工具动态检测平越权的方法,其特征在于,包括如下步骤:
S1)、利用IAST测试工具和插桩技术,在待检测应用程序中的用户代码与数据库的连接处插入检测代码,从而动态获取用户程序与数据库交互的SQL语句以及返回的查询结果数据;
S2)、将每条用户请求分别与其所对应的请求权限绑定;
S3)、当用户请求被发送至服务端执行时,根据步骤1获取该请求下所有执行的SQL语句并存储;
S4)、对步骤3获取到的所述SQL语句进行解析;
S5)、对步骤4中生成的数据进行加权计算并生成检测模型;
S6)、实时监听用户请求流程;
S7)、采用所述检测模型对用户发送的请求进行权限验证,以判断所述请求所执行的语句是否存在水平越权问题。
2.根据权利要求1所述的基于IAST测试工具动态检测水平越权的方法,其特征在于,所述步骤2中的请求权限绑定的具体步骤包括:
S20)、将待检测应用程序中所记录的用户名和该用户名所对应的权限绑定;
S21)、监听用户登录请求,获取登录用户名和与该用户名相关的身份验证令牌;
S22)、将步骤S21中获取到的所述身份验证令牌与所对应的权限绑定;
S23)、对所述应用程序中的各个请求标记权限值。
3.根据权利要求2所述的基于IAST测试工具动态检测水平越权的方法,其特征在于,所述身份验证令牌基于cookie或token。
4.根据权利要求1所述的基于IAST测试工具动态检测水平越权的方法,其特征在于,还包括根据用户请求和所述检测模型的验证结果优化所述检测模型的步骤。
5.一种基于IAST测试工具动态检测水平越权的系统,其特征在于,包括数据跟踪、请求权限生成模块、SQL交互语句收集模块、SQL解析模块、检测模型建立模块、请求流程获取模块以及验证模块;
所述数据跟踪模块,用于利用IAST测试工具和插桩技术,在待检测应用程序中的用户代码与数据库的连接处插入检测代码,从而动态获取用户程序与数据库交互的SQL语句以及返回的查询结果数据;
所述请求权限生成模块,用于将每条用户请求分别与其所对应的请求权限绑定,以生成每条用户请求所对应的请求权限;
所述SQL交互语句收集模块,用于当用户请求被发送至服务端执行时,通过所述数据跟踪模块获取该请求下所有执行的SQL语句并存储;
所述SQL解析模块,用于对所述SQL交互语句收集模块获取到的所述SQL语句进行解析;
所述检测模型建立模块,用于根据所述SQL解析模块生成的数据进行加权计算并生成检测模型;
所述请求流程获取模块,用于实时监听并获取用户请求流程;
所述验证模块,用于采用所述检测模型对所述请求流程获取模块获取到的用户请求进行权限验证,以判断所述请求所执行的语句是否存在水平越权问题。
6.根据权利要求5所述的基于IAST测试工具动态检测水平越权的系统,其特征在于,述请求权限生成模块具体包括权限绑定模块、请求监听模块、身份鉴别模块以及请求标记模块;
所述权限绑定模块,用于将待检测应用程序中所记录的用户名和该用户名所对应的权限绑定;
所述请求监听模块,用于监听用户登录请求,获取登录用户名和与该用户名相关的身份验证令牌;
所述身份鉴别模块,用于将所述请求监听模块所获取到的所述身份验证令牌与所对应的权限绑定;
所述请求标记模块,用于对所述应用程序中的各个请求标记权限值。
7.根据权利要求6所述的基于IAST测试工具动态检测水平越权的系统,其特征在于,所述所述身份验证令牌基于cookie或token。
8.根据权利要求5所述的基于IAST测试工具动态检测水平越权的系统,其特征在于,还包括检测模型优化模块,所述检测模型优化模块用于根据用户请求和所述检测模型的验证结果优化所述检测模型。
9.一种基于IAST测试工具动态检测水平越权的系统,其特征在于,包括:
一个或多个处理器;
存储器
以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如权利要求1至4任一项所述的基于IAST测试工具动态检测水平越权的方法的指令。
10.一种计算机可读存储介质,其特征在于,包括测试用计算机程序,所述计算机程序可被处理器执行以完成如权利要求1至4任一项所述的基于IAST测试工具动态检测水平越权的方法。

说明书全文

基于IAST测试工具动态检测平越权的方法及系统

技术领域

[0001] 本发明涉及应用程序漏洞检测技术领域,尤其涉及一种基于IAST测试工具动态检测水平越权的方法及系统。

背景技术

[0002] 理论上说,一个架构完善、规则安全的应用系统,应当做到对接收到的每条请求,先对发送该请求的用户进行权限判定,再对其进行相应的服务。而现实生活中,由于搭建系统的工程人员的疏漏,系统在某些权限上,并不会对针对该权限的请求的发送用户进行权限判定,而直接对发送请求的用户进行服务,从而导致没有该权限的用户也能使用该权限,即在该权限上发生了越权。在越权中,有一种越权方式是水平越权漏洞,即攻击者可以访问其所属权限组其他用户的权限,例如:普通用户A能够访问普通用户B的管理页面,这种情况就是水平越权。而使用现有的应用程序漏洞检测手段,只能依据黑盒检测工具来检测请求级别的垂直越权问题,即:端对端的检测漏洞,只能依据返回值和响应状态判断权限问题,对于没有返回值的请求无能为。。

发明内容

[0003] 本发明的目的是为解决上述技术问题而提供一种对应用程序的水平越权漏洞可以精确定位的基于IAST测试工具动态检测水平越权的方法。
[0004] 本发明的另一目的是提供一种对应用程序的水平越权漏洞可以精确定位的基于IAST测试工具动态检测水平越权的系统。
[0005] 为了实现上述目的,本发明公开了一种基于IAST测试工具动态检测水平越权的方法,其包括如下步骤:
[0006] S1)、利用IAST测试工具和插桩技术,在待检测应用程序中的用户代码与数据库的连接处插入检测代码,从而动态获取用户程序与数据库交互的SQL语句以及返回的查询结果数据;
[0007] S2)、将每条用户请求分别与其所对应的请求权限绑定;
[0008] S3)、当用户请求被发送至服务端执行时,根据步骤1获取该请求下所有执行的SQL语句并存储;
[0009] S4)、对步骤3获取到的所述SQL语句进行解析;
[0010] S5)、对步骤4中生成的数据进行加权计算并生成检测模型;
[0011] S6)、实时监听用户请求流程;
[0012] S7)、采用所述检测模型对用户发送的请求进行权限验证,以判断所述请求所执行的语句是否存在水平越权问题。
[0013] 与现有技术相比,本发明基于IAST测试工具动态检测水平越权的方法,用户启动待检测应用程序时,同时启动IAST测试工具,并且采用插桩技术标记用户代码中与数据库交互的部分,从而监听用户请求下所有执行的SQL语句,然后获取用户请求与权限的映射关系,接着,将所有请求执行的SQL语句和请求对应的权限值存储到数据库中,然后对SQL语句进行解析后通过算法创建检测模型,然后通过该检测模型实时对监听到的用户请求进行水平越权问题检测;由此可知,本发明通过对SQL语句的数据库资源解析和检测模型的结合,可使得检测软件深入到应用程序的代码内部,可以更精准的定位水平越权漏洞。
[0014] 较佳地,所述步骤2中的请求权限绑定的具体步骤包括:
[0015] S20)、将待检测应用程序中所记录的用户名和该用户名所对应的权限绑定;
[0016] S21)、监听用户登录请求,获取登录用户名和与该用户名相关的身份验证令牌;
[0017] S22)、将步骤S21中获取到的所述身份验证令牌与所对应的权限绑定;
[0018] S23)、对所述应用程序中的各个请求标记权限值。
[0019] 较佳地,所述身份验证令牌基于cookie或token。
[0020] 较佳地,所述基于IAST测试工具动态检测水平越权的方法还包括根据用户请求和所述检测模型的验证结果优化所述检测模型的步骤。
[0021] 本发明还公开一种基于IAST测试工具动态检测水平越权的系统,其包括数据跟踪、请求权限生成模块、SQL交互语句收集模块、SQL解析模块、检测模型建立模块、请求流程获取模块以及验证模块;所述数据跟踪模块,用于利用IAST测试工具和插桩技术,在待检测应用程序中的用户代码与数据库的连接处插入检测代码,从而动态获取用户程序与数据库交互的SQL语句以及返回的查询结果数据;所述请求权限生成模块,用于将每条用户请求分别与其所对应的请求权限绑定,以生成每条用户请求所对应的请求权限;所述SQL交互语句收集模块,用于当用户请求被发送至服务端执行时,通过所述数据跟踪模块获取该请求下所有执行的SQL语句并存储;所述SQL解析模块,用于对所述SQL交互语句收集模块获取到的所述SQL语句进行解析;所述检测模型建立模块,用于根据所述SQL解析模块生成的数据进行加权计算并生成检测模型;所述请求流程获取模块,用于实时监听并获取用户请求流程;所述验证模块,用于采用所述检测模型对所述请求流程获取模块获取到的用户请求进行权限验证,以判断所述请求所执行的语句是否存在水平越权问题。
[0022] 较佳地,述请求权限生成模块具体包括权限绑定模块、请求监听模块、身份鉴别模块以及请求标记模块;所述权限绑定模块,用于将待检测应用程序中所记录的用户名和该用户名所对应的权限绑定;所述请求监听模块,用于监听用户登录请求,获取登录用户名和与该用户名相关的身份验证令牌;所述身份鉴别模块,用于将所述请求监听模块所获取到的所述身份验证令牌与所对应的权限绑定;所述请求标记模块,用于对所述应用程序中的各个请求标记权限值。
[0023] 较佳地,所述所述身份验证令牌基于cookie或token。
[0024] 较佳地,所述基于IAST测试工具动态检测水平越权的系统还包括检测模型优化模块,所述检测模型优化模块用于根据用户请求和所述检测模型的验证结果优化所述检测模型。
[0025] 本发明还公开一种基于IAST测试工具动态检测水平越权的系统,其包括:
[0026] 一个或多个处理器;
[0027] 存储器
[0028] 以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上所述的基于IAST测试工具动态检测水平越权的方法的指令。
[0029] 本发明还公开一种计算机可读存储介质,其包括测试用计算机程序,所述计算机程序可被处理器执行以完成如上所述的基于IAST测试工具动态检测水平越权的方法。附图说明
[0030] 图1为本发明实施例基于IAST测试工具动态检测水平越权的方法的流程示意图。
[0031] 图2为图1中步骤2的详细流程示意图。
[0032] 图3为本发明实施例基于IAST测试工具动态检测水平越权的系统之原理架架构示意图。

具体实施方式

[0033] 为详细说明本发明的技术内容、结构特征、实现原理及所实现目的及效果,以下结合实施方式并配合附图详予说明。
[0034] 如图1所示,本发明公开了一种基于IAST测试工具动态检测水平越权的方法,其包括如下步骤:
[0035] S1)、利用IAST测试工具和插桩技术,在待检测应用程序中的用户代码与数据库的连接处插入检测代码,从而动态获取用户程序与数据库交互的SQL语句以及返回的查询结果数据;在本步骤中,根据IAST技术插桩用户程序与数据库连接处的代码,当用户程序与IAST程序一起启动时,所有和数据库交互的代码与数据都将被捕获,这样便可以得到用户应用程序与数据库交互的SQL语句;另外,此处的用户代码是相对应用程序中的框架代码而言的,也即用户自己开发的代码,由于框架代码一般都经历过技术和时间的检验,代码结构比较成熟,一般不会发生漏洞,对于用户来说,只需检测用户自己开发的用户代码即可;
[0036] S2)、将每条用户请求分别与其所对应的请求权限绑定,从而获取请求与权限的映射关系;
[0037] S3)、当用户请求被发送至服务端执行时,根据步骤1获取该请求下所有执行的SQL语句并存储到数据库中;
[0038] S4)、对步骤3获取到的SQL语句进行解析,并相应地对数据库、表、字段、字段值进行加权计算,得到加权结果;
[0039] S5)、对步骤4中生成的数据进行加权计算并生成检测模型,具体地:利用步骤4获得的数据,利用朴素贝叶斯算法(监督学习算法中的一种)创建学习模型,学习模型会将基础数据(步骤4中得来)作为输入数据进行学习,将学习结果与实际请求数据进行对比分析,可以对该学习模型进行相应的调整,继而再讲调整后的学习模型重新将步骤4的数据作为输入数据进行学习,直到该模型对请求的SQL语句进行验证的准确率达到预设的阈值后,该模型可以较为准确的判断SQL语句中是否存在越权问题,此时可以将学习模型作为检测模型对待检测的请求SQL语句进行验证;
[0040] S6)、实时监听用户请求流程;
[0041] S7)、采用检测模型对用户发送的请求进行权限验证,以判断请求所执行的语句是否存在水平越权问题。
[0042] 通过上述本发明对水平越权的检测过程可知,本发明通过对SQL语句的数据库资源解析和检测模型的结合,可使得检测软件深入到应用程序的代码内部,可以更精准的定位水平越权漏洞。
[0043] 较佳地,如图2,上述步骤2中的请求权限绑定的具体步骤包括:
[0044] S20)、将待检测应用程序中所记录的用户名和该用户名所对应的权限绑定,比如,张三=>userA,李四=>userB;
[0045] S21)、监听用户登录请求,获取登录用户名和与该用户名相关的身份验证令牌;该身份验证信息可以基于cookie或token,当客户的服务器是web应用时,身份验证令牌基于cookie。当客户的服务器非web应用时,身份验证令牌基于token信息,并与用户名绑定。所谓非web应用:是指客户端与服务器端通信利用的不是http协议,可能是原始的tcp协议,dubbo协议,sofa协议等等。本实施例中以web应用为例加以说明:用户发送登录请求的时候,动态绑定用户名和cookie,比如,张三=>cookieA,李四=>cookieB;
[0046] S22)、将步骤S21中获取到的身份验证令牌与所对应的权限绑定,比如,比如cookieA=>userA,cookieB=>userB;
[0047] S23)、对应用程序中的各个请求标记权限值,将请求与权限绑定起来,比如,Q(cookieA)=>userA,请求P(cookieB)=>userB。
[0048] 检测水平越权的时候,同一个请求让同一权限下的不同用户重复请求,然后根据操作结果来判断是否越权(比如步骤203中的请求Q在被userA和userB都访问后来进行判断。
[0049] 进一步地,在上述检测模型建立的过程中,还包括优化检测模型的步骤,即检测模型建立后,根据请求将验证结果的正确与否反馈给检测模型,从而对检测模型进行优化,以提高检测越权问题的准确性和有效性。下面以一具体实例详细说明检测模型建立的过程:对SQL语句进行解析后,对解析出的数据(包括库、表、字段、字段值)进行加权计算,比如数据库相似度最高,加权最低,数据表相似度其次,加权较低,数据字段名和数据字段值相似度较低,加权较高,然后根据加权计算结果提取特征值,然后根据提取出来的特征值,利用朴素贝叶斯算法建立学习模型(主要思想就是:如果有一个需要分类的数据,它有一些特征,我们看看这些特征最多地出现在哪些类别中,哪个类别相应特征出现得最多,就把它放到哪个类别里,基本原理来自贝叶斯定理)。然后,再使用上述提取出的特征值作为输入数据输入学习模型进行学习,学习结束后,将获得的学习结果与实际情况进行数据对比分析,根据结果对学习模型进行二次调整,使其与实际情况的符合度更高,重复上述学习的调整,直到学习模型的验证结果达到我们预期所设的阈值,将此时的学习模型转为检测模型。然后,实时接收各个请求执行的SQL语句,并依据检测模型得出检测结果,并将该检测结果的实际情况反馈给检测模型(即检测是否正确),从而对检测模型进行不断的优化。当检测到有水平越权问题时,用户可对该请求所对应的程序代码进行处理,否则,继续执行下一条请求的检测。
[0050] 另外,本发明还公开一种基于IAST测试工具动态检测水平越权的系统,如图3,其包括数据追踪模块10、请求权限生成模块11、SQL交互语句收集模块12、SQL解析模块13、检测模型建立模块14、请求流程获取模块15以及验证模块16;数据追踪模块10用于根据IAST测试工具和插桩技术,在待检测应用程序中的用户代码与数据库的连接处插入检测代码,从而动态获取用户程序与数据库交互的SQL语句以及返回的查询结果数据;请求权限生成模块11用于将每条用户请求分别与其所对应的请求权限绑定,以生成每条用户请求所对应的请求权限;SQL交互语句收集模块12用于当用户请求被发送至服务端执行时,通过数据追踪模块10获取该请求下所有执行的SQL语句并存储;SQL解析模块13用于对SQL交互语句收集模块12获取到的SQL语句进行解析;检测模型建立模块14用于根据SQL解析模块13生成的数据进行加权计算并生成检测模型;请求流程获取模块15用于实时监听并获取用户请求流程;验证模块16用于采用检测模型对请求流程获取模块15获取到的用户请求进行权限验证,以判断请求所执行的语句是否存在水平越权问题。较佳地,请求权限生成模块11具体包括权限绑定模块110、请求监听模块111、身份鉴别模块112以及请求标记模块113;权限绑定模块110用于将待检测应用程序中所记录的用户名和该用户名所对应的权限绑定;请求监听模块111用于监听用户登录请求,获取登录用户名和与该用户名相关的身份验证令牌;身份鉴别模块112用于将请求监听模块111所获取到的身份验证令牌与所对应的权限绑定;请求标记模块113用于对应用程序中的各个请求标记权限值。身份验证令牌基于cookie或token。较佳地,还可设置检测模型优化模块17,检测模型优化模块17用于根据用户请求和检测模型的验证结果优化检测模型。
[0051] 本发明还公开一种基于IAST测试工具动态检测水平越权的系统,其包括一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序被存储在存储器中,并且被配置成由一个或多个处理器执行,程序包括用于执行如上所述的基于IAST测试工具动态检测水平越权的方法的指令。
[0052] 本发明还公开一种计算机可读存储介质,其包括测试用计算机程序,计算机程序可被处理器执行以完成如上所述的基于IAST测试工具动态检测水平越权的方法。
[0053] 以上所揭露的仅为本发明的较佳实例而已,当然不能以此来限定本发明之权利范围,因此依本发明申请专利范围所作的等同变化,仍属于本发明所涵盖的范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈