JAVA代码入侵攻击行为监控插件的开发



     通过查看应用日志,可以了解Java程序所执行的业务级别的操作,但是由于缺乏相应的系

统行为日志,很难根据特定日志快速判断Java程序是否存在异常行为。下面是一些轻量级的

、可快速上线的组件,它们可以用来帮助判断是否有入侵行为发生。在Java程序中可能存在

系统漏洞,当漏洞被利用时,可能会产生未知行为,对所关注Java程序的未知行为进行监视

和报警,从而能够及时发现系统的入侵。
 
 
Java程序的创建进程、网络行为以及当出现不在白名单中的未知行为时,可以通过默认处理

类或自定义处理类来实现的效果是什么?缺省处理类将发出警告,警告的内容包括相应的行

为和线程调用堆栈,以便于分析系统是否受到攻击,或者漏洞触发的执行过程。


 
您可以在定制处理类中实现您自己需要的功能,比如调用监控系统接口,根据定制格式记录

日志,阻止行为等等。阻断未知行为有风险,可能会影响正常功能,需谨慎处理。基于以下

原因,提出了采用行为监测组件的系统和采用行为监测组件的接入互联网系统。
 
 
(a)外层系统比较容易受到入侵;
 
减少所需配置和观测的机器数目。JAVA提供了安全管理器机制,通过创建进程、网络行为

等相关API来调用安全管理器进行权限检查。可以实现定制的安全管理器并进行设置,当发

生相关行为时,会触发定制的安全管理器的检查方法,可以起到监视和阻止的作用。在JD

K1.8中有410次对安全管理器的调用,行为监控组件只实现了安全管理器,并添加了判断

和打印日志功能,不影响原功能。如果有多个安全管理器,则对原有安全管理器调用检测

方法,以避免覆盖已有的安全管理器。当配置文件改变时,行为监控组件支持动态读取,

当反复加载测试时(包含10000行配置文件,读取超过80,000次),GC运行正常。
 
 
对系统性能没有任何影响。经过测试,在白名单文件中包含10,000行数据,并用100并发

执行将监视的行为,当不需要记录报警日志时,行为监视组件处理将花费0ms;当需要记

录报警日志时,大约需要30ms。可以配置每种未知行为的最大报警次数。其他安全问题

、行为监控组件带来其他安全问题的可能性都很小,不使用序列化和反序列化、不提供

web前端可浏览接口、不执行系统命令、不执行网络操作。
分享: