检测应用程序中数据库业务代码健壮性的方法及系统技术方案

技术编号:33886349 阅读:12 留言:0更新日期:2022-06-22 17:19
本发明专利技术公开了一种检测应用程序中数据库业务代码健壮性的方法及系统,其中该方法包括:通过IAST插桩工具对待测应用程序进行插桩处理;收集待测应用程序与数据库交互操作的执行信息和用户信息,执行信息包括库名、表名、操作类型、sql语句以及执行时间;对上述收集到的执行信息和用户信息进行分析梳理,以获得数据集,数据集具有树状层级数据结构;基于统计算法,分别对数据集中处于不同层级的数据进行分析处理,并根据处理结果输出相应的风险预警信息;通过上述方法,通过对待测应用程序与数据库连接的操作代码的分析处理,可检测出潜在的风险,并提前给用户发出风险预警,以达到及早发现应用程序连接数据库操作的问题。发现应用程序连接数据库操作的问题。发现应用程序连接数据库操作的问题。

【技术实现步骤摘要】
检测应用程序中数据库业务代码健壮性的方法及系统


[0001]本专利技术涉及数据库操作安全检测
,尤其涉及一种基于IAST插桩工具的检测应用程序中数据库业务代码健壮性的方法及系统。

技术介绍

[0002]目前大多数应用程序中都会涉及到与数据库连接的操作,但是不正确的数据库连接的业务逻辑使用会导致性能问题。常见的性能跟踪方法一般是利用探针跟踪业务代码中数据库连接操作,超过某阈值后发出性能报警,这种方式本身具有强烈的滞后性,常常是出了问题再解决,没办法提前发现问题。

技术实现思路

[0003]本专利技术的目的是为解决上述技术问题的不足而提供一种可及早发现应用程序在数据库连接操作方面的问题并提出风险预警的检测应用程序中数据库业务代码健壮性的方法及系统。
[0004]为了实现上述目的,本专利技术公开了一种检测应用程序中数据库业务代码健壮性的方法,其包括:
[0005]通过IAST插桩工具对待测应用程序进行插桩处理,以获取到待测应用程序的每一个请求执行过程的上下文;
[0006]收集待测应用程序与数据库交互操作的执行信息和用户信息,所述执行信息包括表示所涉及到的数据库的库名、表示所述数据库中所涉及到的数据表的表名、对所述数据表的不同操作的操作类型、sql语句以及执行时间;
[0007]对上述收集到的所述执行信息和用户信息进行分析梳理,以获得数据集,所述数据集具有树状层级数据结构;
[0008]基于统计算法,分别对所述数据集中处于不同层级的数据进行分析处理,并根据处理结果输出相应的风险预警信息。
[0009]较佳地,所述数据集包括以数据库的库名为索引关键词的第一层数据结构、位于所述第一层数据结构内的以数据表的表名为关键索引词的第二层数据结构、位于所述第二层数据结构内的以数据表的操作类型为关键索引词的第三层数据结构以及位于第三层数据结构内的以每次具体操作的次数作为自增ID并作为关键索引词的第四层数据结构。
[0010]较佳地,可分别从所述数据集中提取出用户名称、执行持续时间、数据表名、数据表操作类型数据进行统计分析。
[0011]较佳地,通过表访问频率算法对所述数据表进行风险分析,如果某一所述数据表的访问频率远大于其他数据表,则输出包括热点数据缓存和分表操作的风险信息;通过表操作算法对数据表操作类型进行风险分析,如果某一数据表的其中一操作类型远大于其他操作类型,则输出包括架构优化的风险信息。
[0012]本专利技术还公开一种检测应用程序中数据库业务代码健壮性的系统,其包括插桩模
块、数据收集模块、数据集建立模块和分析模块;
[0013]所述插桩模块,用于通过IAST插桩工具对待测应用程序进行插桩处理,以获取到待测应用程序的每一个请求执行过程的上下文;
[0014]所述数据收集模块,用于根据所述插桩模块收集待测应用程序与数据库交互操作的执行信息和用户信息,所述执行信息包括表示所涉及到的数据库的库名、表示所述数据库中所涉及到的数据表的表名、对所述数据表的不同操作的操作类型、sql语句以及执行时间;
[0015]所述数据集建立模块,用于对所述数据收集模块收集到的所述执行信息和用户信息进行分析梳理,以获得数据集,所述数据集具有树状层级数据结构;
[0016]所述分析模块,用于基于统计算法,分别对所述数据集中处于不同层级的数据进行分析处理,并根据处理结果输出相应的风险预警信息。
[0017]较佳地,所述数据集包括以数据库的库名为索引关键词的第一层数据结构、位于所述第一层数据结构内的以数据表的表名为关键索引词的第二层数据结构、位于所述第二层数据结构内的以数据表的操作类型为关键索引词的第三层数据结构以及位于第三层数据结构内的以每次具体操作的次数作为自增ID并作为关键索引词的第四层数据结构。
[0018]较佳地,所述分析模块可分别从所述数据集中提取出用户名称、执行持续时间、数据表名、数据表操作类型数据进行统计分析。
[0019]较佳地,所述分析模块中设置有表访问频率算法和表操作算法,所述表访问频率算法用于对所述数据表进行风险分析,如果某一所述数据表的访问频率远大于其他数据表,则输出包括热点数据缓存和分表操作的风险信息;所述表操作算法,用于对数据表操作类型进行风险分析,如果某一数据表的其中一操作类型远大于其他操作类型,则输出包括架构优化的风险信息。
[0020]本专利技术还公开另一种检测应用程序中数据库业务代码健壮性的系统,其包括:
[0021]一个或多个处理器;
[0022]存储器;
[0023]以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上所述的检测应用程序中数据库业务代码健壮性的方法的指令。
[0024]本专利技术还公开一种计算机可读存储介质,其包括计算机程序,所述计算机程序可被处理器执行以完成如上所述的检测应用程序中数据库业务代码健壮性的方法。
[0025]与现有技术相比,在本专利技术检测应用程序中数据库业务代码健壮性的方法中,通过插桩方式获得待测应用程序的每一个请求执行过程的上下文,从而获得待测应用程序与数据库连接操作的具体代码,并以此收集待测应用程序与数据库交互操作的执行信息和用户信息,且对收集到的信息进行分析梳理,建立具有树状层级数据结构的数据集,然后,从该数据集中分别提取每一层的数据并通过统计算法对其进行分析处理,从而根据处理结果输出相应的风险预警信息;由此可知,通过上述方法,通过对待测应用程序与数据库连接的操作代码的分析处理,可检测出潜在的风险,并提前给用户发出风险预警,以达到及早发现应用程序连接数据库操作的问题。
附图说明
[0026]图1为本专利技术实施例中检测应用程序中数据库业务代码健壮性的方法流程图。
[0027]图2为本专利技术实施例中检测应用程序中数据库业务代码健壮性的系统结构图。
具体实施方式
[0028]为详细说明本专利技术的
技术实现思路
、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
[0029]本实施例公开了一种检测应用程序中数据库业务代码健壮性的方法,以对应用程序与数据库连接操作的稳定性进行检测分析,以达到在出现故障问题之前发现和解决问题的目的,具体地,如图1,该方法包括如下步骤:
[0030]S1:通过IAST插桩工具对待测应用程序进行插桩处理,以获取到待测应用程序的每一个请求执行过程的上下文;本实施例中,对待测应用程序进行插桩处理的过程也即是,利用Java虚拟机技术将下述步骤所涉及到的检测逻辑的组件织入到被测应用程序中,其中检测逻辑的组件是与待测应用程序所处同一个容器的agent进程,所以检测逻辑可以获取到待测应用程序的每一个请求执行过程的上下文;
[0031]S2:收集待测应用程序与数据库交互操作的执行信息和用户信息,执行信息包括表示所涉及到的数据库的库名、表示数据库中所涉及到的数据表的表名、对数据表的不同操作的操作类型本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种检测应用程序中数据库业务代码健壮性的方法,其特征在于,包括:通过IAST插桩工具对待测应用程序进行插桩处理,以获取到待测应用程序的每一个请求执行过程的上下文;收集待测应用程序与数据库交互操作的执行信息和用户信息,所述执行信息包括表示所涉及到的数据库的库名、表示所述数据库中所涉及到的数据表的表名、对所述数据表的不同操作的操作类型、sql语句以及执行时间;对上述收集到的所述执行信息和用户信息进行分析梳理,以获得数据集,所述数据集具有树状层级数据结构;基于统计算法,分别对所述数据集中处于不同层级的数据进行分析处理,并根据处理结果输出相应的风险预警信息。2.根据权利要求1所述的检测应用程序中数据库业务代码健壮性的方法,其特征在于,所述数据集包括以数据库的库名为索引关键词的第一层数据结构、位于所述第一层数据结构内的以数据表的表名为关键索引词的第二层数据结构、位于所述第二层数据结构内的以数据表的操作类型为关键索引词的第三层数据结构以及位于第三层数据结构内的以每次具体操作的次数作为自增ID并作为关键索引词的第四层数据结构。3.根据权利要求2所述的检测应用程序中数据库业务代码健壮性的方法,其特征在于,可分别从所述数据集中提取出用户名称、执行持续时间、数据表名、数据表操作类型数据进行统计分析。4.根据权利要求3所述的检测应用程序中数据库业务代码健壮性的方法,其特征在于,通过表访问频率算法对所述数据表进行风险分析,如果某一所述数据表的访问频率远大于其他数据表,则输出包括热点数据缓存和分表操作的风险信息;通过表操作算法对数据表操作类型进行风险分析,如果某一数据表的其中一操作类型远大于其他操作类型,则输出包括架构优化的风险信息。5.一种检测应用程序中数据库业务代码健壮性的系统,其特征在于,包括插桩模块、数据收集模块、数据集建立模块和分析模块;所述插桩模块,用于通过IAST插桩工具对待测应用程序进行插桩处理,以获取到待测应用程序的每一个请求执行过程的上下文;所述数据收集模块,用于根据所述插桩模块收集待测应用程序与数据库交互操作的执行信息和用户信息,所述执行信息包括表示所涉及到的...

【专利技术属性】
技术研发人员:刘海涛万振华王颉李华董燕
申请(专利权)人:深圳开源互联网安全技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1