早期当我们在生产环境上线了RASP后,发现其还是能够不断的被绕过,只是从原来的WAF流量层面的对抗到了应用内部视角。后来我们放弃了基于攻击特征的黑名单防御模式,逐步转变为基于应用行为特征的白名单模式,也就是我们内部所说的“应用可信”。
在应用可信的建设过程中,我们的可信力度也逐渐在加深,从最开始的命令执行可信,到网络访问可信、文件读写可信,再到后来的反射、库加载、类加载、线程注入、JNDI访问、反序列化、表达式注入、动态脚本、内存马等等,至此已经能免疫各种常规的0day漏洞了,比如Log4j RCE、Fastjson RCE、SSRF等等。
通过这套能力能观察到越来越多的应用内部的信息,同时不仅在安全防护上能起到非常好的效果,在应用稳定性监测、入侵检测、安全资产画像刻画、安全链路串联都方面都能起到非常好的效果。于是逐渐将底层的切面核心框架和上层的切面安全模块,切面核心框架负责注入、加载、调度、访问控制等能力,上层切面安全模块各自独立,有RASP模块、数据访问可信模块、稳定性监测模块、资产画像刻画模块等等。
早期模块需要一个个应用去改造重启覆盖,后来集成到应用镜像中,默认跟随应用覆盖,支持动态升级,让安全和业务能各自解开束缚,平行发展演进。让业务无感知的就能快速部署,一次接入就能拥有各种安全能力。
除了应用可信,后面也逐渐建设了容器可信、数据访问可信、接口调用可信、网络可信等能力,称之为可信纵深防御。而安全平行切面,则也形成了统一的跨端跨域的能力,进一步提升了数据的融合分析。
我们觉得这套能力对于安全的帮助巨大,应该推广普及看来,于是我们将我们的经验和实践写成了《安全平行切面白皮书》,同时也建立了《安全平行切面联盟》,各企业都可以免费加入联盟,即可获得全部源码和资料,参与技术共建和应用推广。