上周四,美国信用体系中的三大核心公司之一Equifax因为Struts 2的安全漏洞,造成1.43亿人的个人信息被盗窃,其中可能包括完整的姓名、生日、地址、SSN和驾照号等。此次信息盗窃发生在五月,但是Equifax七月份才发现,直到9月7号才被报道出来。Equifax事后的危机处理让民众感到非常不满,目前受害者已提出高达700亿巨额的集体诉讼。


面对这样大规模的信息泄漏事件,无论是旋涡中的当事人,还是掌握着大量个人信息的大中小企业,都不应该袖手旁观,觉得此事于己无关。这次美国的巨额集体诉讼为我们敲响了安全的警钟,国内的网络安全法更是犹如利剑高悬,时刻提醒着企业安全防护的重要性。


截止到发稿日期,在世界前100强的公司里,大概有65%还在使用Struts 2,国内也深受其影响。Struts 2给网络安全带来了严峻的威胁,但要替换掉它们却需要大量的工作,非一夕之功能完成。此外,还有大量的第三方Web框架,甚至是各家公司自己研发的Web代码里也经常引入各种高危安全漏洞,比如SQL Injection, XSS, CSRF等等。仅靠WAF难以提供有效的保障,而推行SDL安全开发生命周期管理又不是普通企业能够承担。企业安全从业者应该何去何从?


为了更好的提高企业安全的防护能力,百度安全最近推出了一款开源的自适应安全产品 OpenRASP,并与国际知名非盈利安全组织OWASP(Open Web Application Security Project)达成深度合作,现已加入到OWASP全球技术项目中,将在全球范围内进行大规模推广。OpenRASP将新兴的RASP(Runtime Application Self-Protection)安全防护技术普及化,使其迅速成为企业Web安全防护中的一个重要武器,有效增强防御体系纵深和对漏洞防护的适应能力。


OWASP是什么?


OWASP(Open Web Application Security Project)是世界范围内的非盈利组织,关注于提高软件的安全性。其主要目标是研议协助解决Web软件安全之标准、工具与技术文件,长期致力于协助政府或企业了解并改善网页应用程序与网页服务的安全性。目前,OWASP在全球有超过140个分会。该组织从2003年开始每隔几年就会发布Web应用程序的十大安全风险。针对云计算的安全问题,OWASP还提出过云计算十大安全风险。OWASP一直被视为Web应用安全领域的权威参考。

Why OpenRASP?


作为国内知名安全厂商,百度一直致力于不断提高企业安全的防护能力。针对于目前在Web攻击不断变得复杂的情况下,WAF面对其展现了很多的不足,国际迫切需要一个更优的产品来面对云波诡谲的安全攻击,于是OpenRASP应运而生。


RASP 是一种新型防护手段,即使开发人员没有太多的安全经验,也可以将复杂的安全特性集成到应用服务器中。无论从产品设计,代码实现还是实际运行,它从本质上都不同于现有的安全措施。早在2014年,Gartner在年度报告上就提出RASP技术将会成为未来安全防护的主流和重点。


RASP技术的原理,就是直接将保护引擎注入到应用服务中,在数据库、文件系统访问、网络操作等关键点上进行保护。

当应用服务器收到一个恶意请求,保护引擎就可以结合上下文,识别用户输入;然后检查应用逻辑是否被用户输入所修改,并决定是否阻断这个请求。当攻击被阻断,RASP引擎还可以提供完整的调用堆栈,帮助安全从业者理解漏洞成因,正确的修复漏洞。


相比于WAF来说,OpenRASP具有一些天生的优势:


1. 零规则检测攻击


对于Web安全而言,攻击的本质就是参数注入。 结合智能语义识别和应用上下文,OpenRASP实现了WAF和数据库防火墙都不能完成的事情,即区分数据和代码。WAF和数据库防火墙本质上是通过分析网络流量,通过正则识别http协议和数据库协议中的数据,通过静态规则识别注入的攻击代码,稍微先进的WAF和数据库防火墙还会实现http或者数据库的协议语法解析,但是相对于变化多端的各类编码、变形、绕过等攻击形式以及版本千差万别的后端应用,传统的基于规则和语法的检测方式难以覆盖。OpenRASP实现了降维防护,直接工作在后端应用的层面,在后端应用完成各类协议解析完后再进行防护,直接处理底层的数据库、文件读取等操作,借助这一点,OpenRASP成功的实现了多种零规则检测攻击算法。


2. 只有成功的攻击才会触发保护点


对于一家企业来说,每天都会遭受上万次扫描攻击,那么哪些攻击是成功的呢?WAF显然是不知道的。而OpenRASP面向漏洞,且失败的攻击不会触发保护点,所以误报会很低,对规则的依赖也少。


3. 不受畸形协议的影响


后端应用对HTTP协议的兼容性极好,好到无法想象。比如,对于Multipart文件上传协议,只要我们稍作变化,某些WAF就无法正常识别了,这个时候WAF会选择放行。而对于RASP技术来说,对威胁的检测发生在协议解析之后,所以不受畸形协议的影响。


4. 灵活的插件支持


为了方便企业定制安全检测能力,检测逻辑均由Java插件实现;报警日志以JSON形式输出到文件,可以跟ELK、Splunk等SIEM系统完美集成。

图1 - Splunk App


为什么企业应该选择RASP技术?


以上面的Equifax公司为例,导致其大量个人隐私数据泄露的就是Struts 2漏洞,而近两年Struts 2漏洞却在频繁爆发。面临这些未知漏洞,WAF需要不断的增加规则,非常被动。

相比于WAF,RASP技术可以更加有效的对抗未知漏洞。以Struts OGNL系列漏洞举例,漏洞最终都要调用 Ongl::parseExpression 方法,来执行任意的OGNL代码、获取系统权限。

通过对表达式进行过滤,OpenRASP实现了 Struts OGNL系列漏洞的永久补丁。防护策略根据 Payload的类型,可以分为允许静态方法、命令执行、文件上传等等,同时OpenRASP提供了一组默认的策略供大家进行参考,具体可根据业务进行定制。

除了OGNL系列的漏洞,Struts 2最近又爆发了xstream反序列化漏洞(S2-052)。虽然原理不同,但是通过对异常执行流的保护,OpenRASP 依然可以拦截。


无论是xstream,还是transformer反序列化漏洞,最终都要通过反射的方法,调用敏感类,执行任意代码。OpenRASP 允许你对指定的方法进行监控,当这些方法通过被反射调用,将会触发安全检测流程

插件还会根据当前调用堆栈,尝试识别这是哪种类型的攻击,帮助你理解漏洞。

所以,在新型漏洞的对抗上,RASP技术要比WAF更加有效。


如何参与到OpenRASP项目中?


未来,百度安全将和OWASP一起,在全球范围内吸引大家参与进来,共同完善OpenRASP项目。目前我们的代码发布在GitHub,有着完善的项目文档和活跃的社区支持 。如果你有任何奇思妙想,欢迎提交Merge Request~


https://rasp.baidu.com


官方文档


https://rasp.baidu.com/doc/

https://github.com/baidu/openrasp