应用程序运行时的异常检测方法及系统、设备及存储介质与流程

文档序号:20917583发布日期:2020-05-29 13:43阅读:253来源:国知局
应用程序运行时的异常检测方法及系统、设备及存储介质与流程

本发明属于计算机应用技术领域,尤其涉及一种应用程序运行时的异常检测方法及系统、设备及存储介质。



背景技术:

随着程序规模越来越大,功能越来越复杂,数量越来越多。随着软件的发布,漏洞数量也越来越多,其造成的破坏也日趋严重。其中比较重要也容易被人忽略的就有程序异常,重要的原因是,如果程序异常直接返回到页面,容易被黑客利用异常中的堆栈信息获取到程序的关键路径信息等,增大了应用被攻击的威胁点。容易忽略的是,有些开发人员会捕捉程序异常,但是不做任何处理,导致程序异常一直得不到正确处理。目前解决异常问题有安全人员手动排查,模糊测试和直接分析异常日志文件:

1、安全人员手动排查,人工判断程序是否存在异常,耗时长,可能出现遗漏问题。

2、模糊测试,会出现大量脏数据,同时基于黑盒工具的原理,容易出现测试请求不足等问题。

3、直接分析异常日志文件,耗时长,程序如果没有打印异常日志则会出现异常丢失的情况,同时也无法发现异常直接返回页面的情况。



技术实现要素:

本发明所要解决的技术问题是:针对现有技术存在的问题,本发明提供了一种具有高效性、干净与针对性的方法。

第一方面,本申请实施例提供了一种应用程序运行时的异常检测方法,所述方法包括:

利用iast技术动态插桩应用程序运行时的请求响应,获取所述请求响应存在的异常信息;

利用所述异常信息得到所述请求响应对应的异常事件;

保存所述异常事件至预设的存储区。

第二方面,本申请实施例还提供一种应用程序运行时的异常检测系统,所述系统包括:

获取模块,用于利用iast技术动态插桩应用程序运行时的请求响应,获取所述请求响应存在的异常信息;

对应模块,用于利用所述异常信息得到所述请求响应对应的异常事件;

保存模块,用于保存所述异常事件至预设的存储区。

第三方面,本申请实施例还提供一种设备,包括存储器、处理器、以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如第一方面所述的应用程序运行时的异常检测方法中的各个步骤。

第四方面,本申请实施例中还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面所述的应用程序运行时的异常检测方法的各个步骤。

本申请实施例提供的应用程序运行时的异常检测方法,该方法包括:利用iast技术动态插桩应用程序运行时的请求响应,获取所述请求响应存在的异常信息;利用所述异常信息得到所述请求响应对应的异常事件;保存所述异常事件至预设的存储区。通过利用iast技术动态插桩应用程序运行时的请求响应,具有高效性和实时性,跟随应用程序同时启动,出现异常就可以随时发现并报告,并无延迟,也不需要分析日志文件,不需要处理脏数据,可以更快更全的发现问题。

附图说明

下面结合附图详述本发明的具体结构

图1为本发明应用程序运行时的异常检测的流程示意图;

图2为本发明应用程序运行时的异常检测的子流程示意图;

图3为本发明应用程序运行时的异常检测的另一子流程示意图;

图4为本发明应用程序运行时的异常检测的另一子流程示意图;

图5为本发明应用程序运行时的异常检测的程序模块示意图。

具体实施方式

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本申请实施例中应用程序运行时的异常检测方法的流程示意图,本实施例中,上述应用程序运行时的异常检测方法包括:

步骤101、利用iast技术动态插桩应用程序运行时的请求响应,获取请求响应存在的异常信息。

其中,利用iast技术动态插桩应用程序响应请求和异常的方法,从而获取响应请求过程中可能存在的异常以及返回信息中可能存在的异常信息,插桩应用程序响应请求指的是利用iast技术动态插桩用户响应请求的方法,这样用户代码在执行请求前和返回请求后都会经过检测方法,从中可得到当前请求的请求头、请求体、请求url等信息,插桩应用程序异常方法是指利用iast技术动态插桩用户异常方法执行路径,应用程序中的异常一般会封装成特殊的异常类型,不同的异常类型内部会有自己的处理流程,比如打印异常信息并抛出异常堆栈,亦或直接打印异常信息等(分析异常日志的方法,就需要依赖用户应用程序处理异常的逻辑,如果不打印异常信息和异常堆栈信息,则分析不到该异常),响应返回信息可能存在的异常信息:指的是可能存在的异常信息泄露,即黑客可能会利用返回到页面上的响应信息中的异常堆栈信息,获取到应用程序的代码路径,以及使用的第三方代码信息等,增大应用程序的威胁点,可以通过正则的方式提前响应信息中可能存在的异常信息。不需要分析日志文件,不需要处理脏数据,更快更全的发现问题。

步骤102、利用异常信息得到请求响应对应的异常事件。

其中,利用异常信息指的是在请求响应中存在的异常,在请求响应中得到的请求头、请求体、请求url等信息,应用程序中的异常会封装成特殊的异常类型,不同的异常类型的内部会有自己不同的处理流程,则会得到对于的异常事件。

步骤103、保存异常事件至预设的存储区。

其中,若请求响应中存在异常,那么在请求到达用户的应用程序时,处理并返回响应信息的所有过程,都会经过预先插桩的代码,请求和响应信息都会被提取并存储,若存在了异常信息,则会结合请求信息一起关联存储。

本申请实施例提供的应用程序运行时的异常检测方法,该方法包括:利用iast技术动态插桩应用程序运行时的请求响应,获取请求响应存在的异常信息;利用异常信息得到所述请求响应对应的异常事件;保存异常事件至预设的存储区。通过利用iast技术动态插桩应用程序运行时的请求响应,具有高效性和实时性,跟随应用程序同时启动,出现异常就可以随时发现并报告,并无延迟,也不需要分析日志文件,不需要处理脏数据,可以更快更全的发现问题。

进一步的,基于上述实施例,参照图2,图2为本申请实施例中应用程序运行时的异常检测方法的子流程示意图,本实施例中,上述步骤102利用异常信息得到请求响应对应的异常事件中,若未提取出异常类型,则包括:

步骤201、从异常信息中提取异常堆栈信息,及从异常信息中提取异常类型;

步骤202、若从异常信息中未提取出异常类型,则基于用户自定义的方式设置异常类型。

具体的,用户可以将在当前应用程序环境中容易出现较大问题的异常的严重性等级调高,比如购物网站对请求超时异常比较关注,那么请求超时异常的严重性等级就会较高。又比如金融行业对金钱数字比较关心,那么关于数组越界以及跟数字相关的异常的等级就会较高。该步骤可以精确筛选需要重点被关注的异常,从而提高用户的使用体验。

进一步的,基于上述实施例,参照图3,图3为本申请实施例中应用程序运行时的异常检测方法的子流程示意图,本实施例中,上述步骤102利用异常信息得到请求响应对应的异常事件中,获取到异常事件则包括:

步骤301、从异常信息中提取异常堆栈信息,及从异常信息中提取异常类型;

步骤302、获取请求响应的请求信息,异常类型、异常堆栈信息及请求信息构成异常事件。

进一步的,基于上述实施例,参照图4,图4为本申请实施例中应用程序运行时的异常检测方法的子流程示意图,本实施例中,上述步骤301获取到异常事件之后,则应该保存异常事件,在保存异常事件之前,还包括:

步骤401、查找预先设置的异常类型与异常等级的对应关系,确定所述异常事件包含的异常类型对应的异常等级;

步骤402、将所述异常等级添加至所述异常事件中。

具体的,程序出现异常时,我们的插桩逻辑会获取到异常信息,并动态提取出异常类型,异常堆栈信息,当前请求信息等并存储。该步骤具有高效与实时性,没有延迟,出现异常情况立马分析存储。

进一步的,在获取请求响应中存在的异常信息之前还应缓存应用程序运行时的请求信息及响应信息至预设的缓存区,若未获取到请求响应中存在的异常信息,那就删除缓存区中已经缓存的请求信息跟响应信息。

进一步的,该方法还包括从存储区中提取应用程序的异常事件,利用提取的异常事件进行分类聚合,得到分类聚合的结果并展示出来。

具体的,用户可以查看某种类型的所有异常,或者把当前应用所有异常按照时间节点聚合,或者按照自定义的异常等级优先查看等级较高的异常,提供一个展示页面允许用户查看自己程序中存在的异常信息统计。该步骤通过已被发现异常的请求数据进行分类。

进一步地,本申请实施例还提供一种应用程序运行时的异常检测设备200,参照图5,图5为本申请实施例中应用程序运行时的异常检测设备程序模块示意图,本实施例中,上述应用程序运行时的异常检测设备200包括:

获取模块501,利用iast技术动态插桩应用程序运行时的请求响应,获取请求响应存在的异常信息;

对应模块502,利用异常信息得到请求响应对应的异常事件;

保存模块503,保存异常事件至预设的存储区。

本申请实施例提供的应用程序运行时的异常检测设备200,可以实现:利用iast技术动态插桩应用程序运行时的请求响应,获取请求响应存在的异常信息;利用异常信息得到请求响应对应的异常事件;保存异常事件至预设的存储区。通过利用iast技术动态插桩应用程序运行时的请求响应,具有高效性和实时性,跟随应用程序同时启动,出现异常就可以随时发现并报告,并无延迟,也不需要分析日志文件,不需要处理脏数据,可以更快更全的发现问题。

进一步的,本申请还提供一种设备,包括存储器、处理器、以及存储在存储器中并可在处理器上运行的计算机程序,该处理器执行计算机程序时,实现上述的应用程序运行时的异常检测方法中的各个步骤。

进一步的,本申请还提供一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现如上述的应用程序运行时的异常检测方法的各个步骤。

在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上为对本发明所提供的一种应用程序运行时的异常检测方法及系统、设备及存储介质的描述,对于本领域的技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1