RASP?
基本RASP是运行时应用自保护。相当于应用程序内部融合的waf功能。传统waf是部署在边界、RASP是部署在web容器等客户程序的内部。
一般实现方式
(1)比如nginx、IIS、apache都是搞三方插件开发,在三方插件中基于获取到的请求投、POST等内容,结合威胁匹配规则实现处理xss、sql注入、webshell检测等。这块基本是各自插件各自的技术,用的技术是web容器本身的插件二次开发技能
(2)比如java系列,一般使用javaagent技术进行字节码注入,技术比较通用,用的javaagent技术。
(3)比如其他go语言级别的,也是字节码修改注入到此。
可以理解RASP实际就是应用层程序的函数hook,对用户程序的应用数据进行处理。不像内核层拿到的数据是无格式无意义的,应用层比如hook了http请求处理那么拿到的待处理数据就是http请求
但注意,这里不仅仅是hook方式,三方模块插件等其他方式只要能拿到应用层程序数据都行,哪怕网络数据代理的方式实现web容器的RASP。
厂商
云锁、安全狗、OpenRASP(开源)
云锁
https://help.yunsuo.qianxin.com/guide/Compat.html
云锁支持的中间件
IIS 6/IIS 7/IIS 7.5/IIS 8
Apache 2.2/Apache 2.4(x86、x64)
Nginx 1.0.、Nginx 1.2.、Nginx 1.4.、Nginx 1.6.~Nginx 1.14.*
Tomcat、Weblogic、WebSphere、TongWeb、Jboss(使用的jdk或jre的版本需 1.6 及以上)等
【配置手册含有界面功能】https://help.yunsuo.qianxin.com/manual/f07.html
安全狗
【有免费版】【主要IIS,apache、nginx,无jvm系列】http://free.safedog.cn/website_safedog.html
安全狗支持的中间件:
IIS Apache Nginx
openRASP
【开源】【主要php、jvm系列】https://rasp.baidu.com/doc/install/compat.htmlopenRASP
支持的中间件:
Tomcat Jetty JBoss Wildfly Resin SpringBoot WebSphere WebLogic 宝兰德BES 中创InforSuiteAS
实现技术
hook:应用层hook
三方插件:应用层web容器的三方模块开发
字节码、ELF文件逆向等技术:php,go,jvm等
代理(相当于传统7层waf):解决方案型,加唯一代理RASP(比如nginx),通过代理方案一次解决各种后端web容器的RASP问题,只适用web站点方式
ebpf:uprobe挂用户函数进行安全检查