什么产品可以定义为 RASP?
RASP 英文为 Runtime application self-protection,它是一种新型应用安全保护技术,它将保护程序想疫苗一样注入到应用程序和应用程序融为一体,能实时检测和阻断安全攻击,使应用程序具备自我保护能力,当应用程序遇到特定漏洞和攻击时不需要人工干预就可以进行自动重新配置应对新的攻击。
这意味着,RASP 运行在程序执行期间,使程序能够自我监控和识别有害的输入和行为。
其实,RASP 不同于传统的安全技术仅在网络周边或者终端设备上进行保护,它能够让应用程序具备自我保护能力。而实时是 RASP 非常重要的特点,因为拥有应用程序的上下文,它不仅可以分析应用程序的行为也可以结合上下文对行为进行分析,而且这些能持续不断的进行分析,一旦发现有攻击行为能立刻进行响应和处理。
RASP工作原理探秘
首先,RASP 是以什么形态存在?通常来说 RASP 将安全保护代码嵌入到运行中的服务器应用程序,它会实时拦截所有的系统调用并确保调用安全,最终实现应用程序自我保护。
RASP 可以应用在 Web 应用程序和非 Web 应用程序,对应用程序的代码设计没有任何影响,不需要修改任何代码,只需要简单的配置就可以将安全保护功能在服务器程序在运行时注入。
当前,RASP 只在 Java 虚拟机和 .NET 通用运行环境得到实现,其他语言的 RASP 实现目前还没有,笔者估计在2015年必然会有 PHP 实现上市,其他语言还需要技术更成熟。
RASP什么时候进行保护?
一旦 RASP 探测到每个用户访问违反预设定的安全条件,RASP 就会接管系统并执行必要合理的保护行为。一个例子就是当用户执行访问数据库的 SQL 命令,如果 RASP 认为这个是一个 SQL 注入攻击就可以执行 SQL 注入保护行为。
RASP 有检测和保护两种模式,检测模式在检测到安全攻击时只是记录下来并发送警告给用户,保护模式不仅能够检测同时能够实时拦截潜在的安全攻击。
RASP 的保护行为可以一下几种方式:
终止用户会话
停止用户程序(不影响服务器上其他程序):这是针对非常严重的攻击,比如DDOS。
发送警报给专门的安全人员
发送警告给用户
防火墙 vs. RASP
RASP 和防火墙一样都能检测流量和内容,也能够终止用户会话。 然而防火墙不拥有应用上下文,不能在应用层检测用户流量,必然安全威胁拦截的准确性肯定没有 RASP 高,误报率也会大大提高。而且在现在移动互联网和云计算盛行的今天,网络边界已经越来越不清晰了,这样也使防火墙的安全防护效果也越来越差。
Gartner 的 Joseph Feinman 非常精确的把防火墙比喻为簇拥在大人物周围的保镖,大人物去哪里都带着保镖,看起来防御力爆棚,但是大人物本人肌肉不发达也没有武功,一旦保镖被突破或者保镖被调虎离山,那么这个大人物就没有任何保护了,就非常危险了。RASP 可以让没有武功的人在很短的时间并且付出的代价不高的情况下拥有很高的自我保护能力(听起来有点像神话)。
RASP 的优点
RASP 能够看到系统里所有用户行为的细节,这样对于提高安全攻击识别的准确性有非常大的帮助。 比如RASP能非常清楚的理解用户的逻辑,配置以及数据和事件流,这就给非常精确的探测和拦截安全攻击行为提供了坚石的基础。
另外 RASP 能够自我保护数据,能够保护数据从创建到消亡的全过程。
RASP 和应用程序运行在一起,拥有用户的数据,RASP 在安全保护上想象的空间非常的大,RASP 可以满足很多企业级的数据保护需求, 比如数据透明加解密,一些只在系统内使用保密数据就可以使用加密,即使黑客将数据偷窃出去,也无法破解和解密,这样更不存在其他的问题了。
RASP 不足之处
没有任何安全解决方案是完美的,每个方案都有优点也有缺点,RASP 也一样,虽然它很多独特的优势,但也存在一些不可忽视的不足,需要安全研发人员不断的改善。
首先 RASP 是针对应用程序的,每个应用程序都必须有独立的探针,不能像防火墙一样只在入口放置一个设备就可以了。这样增加了部署困难和防范不完整的风险。
另外一个比较的不足就是对系统性能的影响,RASP 实时拦截,深入检测用户数据流,这是对精确度和误判率都有很大的帮助,但是对用户性能有一些影响,这些性能消耗也必然影响到用户的体验,这也是影响企业客户部署 RASP 的很大一方面原因。现在 RASP 的提供商在优化方面做了很大努力,大部分 RASP 对性能影响在5%左右。
最后使用 RASP 并不是真正建立一个安全的应用,系统中存在的漏洞还是存在,应用了 RASP 后临时提供一个虚拟补丁修补上已知漏洞,当不用 RASP 后这些漏洞还是存在。另外 RASP 也不能修复所有的漏洞,漏洞时刻在更新。企业应该将 RASP 和扫描工具结合起来将更有价值。RASP 软件提供商也应该提供实时漏洞更新功能,实现真正零日攻击防御。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。