关键词:
反序列化漏洞
运行时保护
利用链
漏洞防御
摘要:
反序列化漏洞自被发现以来,便受到安全研究者的广泛关注,越来越多的漏洞被爆出,给企业的网络安全带来严重挑战。Java语言多态、反射等特性,导致其反序列化漏洞利用链更加多变和复杂,带来了更大的防御和检测难度。因此,研究如何防御Java反序列化漏洞攻击,成为网络防御的重要环节。通过对公开的众多Java反序列化漏洞进行研究,提出了基于运行时检测的Java反序列化漏洞防御技术方案。根据反序列化数据类型,将反序列化漏洞分为Java原生反序列化漏洞、JSON反序列化漏洞、XML反序列化漏洞、YAML反序列化漏洞4种类型,并针对每种类型的反序列化漏洞、归纳其漏洞利用过程中的反序列化入口函数;通过Java的运行时保护技术,对Java底层的敏感行为如命令执行进行监控,获取系统当前的运行时上下文信息;通过在上下文信息中匹配漏洞利用中的反序列化入口函数,来判断当前行为是否为反序列化漏洞的利用行为。在多个Java应用(如WebLogic、JBoss、Jenkins等)的测试结果表明,该方案能有效地对Java反序列化漏洞攻击行为进行防御,且不会对目标系统性能产生较大的影响。同时,在与其他主流防护方案的比较中,该方法显示出更好防护效果。