【技术实现步骤摘要】
反序列化0day安全风险防御方法、装置与设备
[0001]本申请涉及软件
,尤其涉及一种反序列化0day安全风险防御方法、装置与设备。
技术介绍
[0002]当前java(一种面向对象编程语言)项目应用广泛,并且也会复用越来越多的开源软件,然而在享受使用这种软件带来的便捷的同时,也会引入很多安全风险,其中通过反序列化带来的任意命令执行可谓是最致命的安全风险,当前大部分情况都是通过软件提供商设置的被限制对象名单或被信任对象名单进行防御,但是事实上这样的方式并没有阻止类似的0day(零日)安全风险再次出现。
[0003]因而,如何有效防御0day安全风险成为一个亟待解决的技术问题。
技术实现思路
[0004]有鉴于此,本申请提供一种反序列化0day安全风险防御方法、装置与设备。
[0005]具体地,本申请是通过如下技术方案实现的:根据本申请实施例的第一方面,提供一种反序列化0day安全风险防御方法,包括:在基于java实现的业务系统的运行过程中,利用java探针对所述业务系统运行状态进行监控 ...
【技术保护点】
【技术特征摘要】
1.一种反序列化零日0day安全风险防御方法,其特征在于,包括:在基于java实现的业务系统的运行过程中,利用java探针对所述业务系统运行状态进行监控;其中,所述java探针针对java函数库中与指定反序列化攻击方式关联的java函数设置;依据所述java探针监控到的信息,以及,所述指定反序列化攻击方式对应的判定规则,进行反序列化攻击判定;其中,所述指定反序列化攻击方式对应的判定规则依据所述指定反序列化攻击方式下的攻击特性设置;在确定存在反序列化攻击的情况下,进行反序列化攻击防御处理。2.根据权利要求1所述的方法,其特征在于,所述指定反序列化攻击方式包括:invoke方式、readObject方式、forName方式,以及,URLClassLoader方式中的部分或全部;与invoke方式关联的函数包括invoke函数,针对所述invoke函数设置的java探针用于监控所述invoke函数运行时的调用者caller和方法method的实际名称;与readObject方式关联的函数包括readObject函数和getInputStream函数,针对所述readObject函数设置的java探针用于监控所述readObject函数运行时的实际流类型,针对所述getInputStream函数设置的java探针用于监控返回的流对象;与forName方式关联的函数包括forName函数,针对所述forName函数设置的java探针用于监控所述forName运行时输入参数的类名;与URLClassLoader方式关联的函数包括URLClassLoader函数,针对所述URLClassLoader函数设置的java探针用于监控所述URLClassLoader函数运行时的输入参数。3.根据权利要求2所述的方法,其特征在于,所述指定反序列化攻击方式包括invoke方式;invoke方式对应的判定规则包括:在invoke函数运行时的caller是java.lang.ProcessBuilder,且method的实际名称是start;或,invoke函数运行时的caller是java.lang.Runtime,且method的实际名称是exec的情况下,确定存在反序列化攻击;和/或,所述指定反序列化攻击方式包括readObject方式;readObject方式对应的判定规则包括:在对readObject函数运行时的当前实体进行解包装得到的对象中任一对象的哈希码hashcode在内存池的哈希池hashPools中存在相同的hashcode的情况下,确定存在反序列化攻击;其中,所述hashPools中的hashcode包括所述getInputStream函数返回的流对象的hashcode;和/或,所述指定反序列化攻击方式包括forName方式;forName方式对应的判定规则包括:在forName函数运行时的输入参数的类名为java.lang.ProcessBuilder或java.lang.Runtime的情况下,确定存在反序列化攻击;和/或,所述指定反序列化攻击方式包括URLClassLoader方式;URLClassLoader方式对应的判定规则包括:在所述URLClassLoader函数运行时的输入
参数为外部不可信地址的情况下,确定存在反序列化攻击。4.根据权利要求1所述的方法,其特征在于,所述在确定存在反序列化攻击的情况下,进行反序列化攻击防御处理,包括:在所述业务系统的运行时长未超过预设时长的情况下,进行告警处理;在所述业务系统的运行时长超过所述预设时长的情况下,进行反序列化攻击行为拦截。5.根据权利要求4所述的方法,其特征在于,在所述反序列化攻击为URLClassLoader方式的反序列化攻击,且所述业务系统的运行时长未超过预设时长的情况下,所述方法还包括:输出告警信息,所述告警信息包括URLClassLoader函数运行时的输入参数;依据检测到的针对所述输入参数的被信任名单设置指令,将所述输入参数添加至被信任名单;其中,所述被信任名单设置指令由用户在确定所述输入参数为可信地址的情况下输入。6.一种反序列化零日0day安全风险防御装置,其特征在于,包括:监控单元,用于在基于java实现...
【专利技术属性】
技术研发人员:陈群华,王滨,万里,
申请(专利权)人:杭州海康威视数字技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。