过去十年来,最有可能实现的应用安全解决方案之一可能要属应用运行时的自我防护机制(runtime application self-protection, RASP)。今年,RASP进入了NIST800-53的最新版本中,作为关键控制的项目列表中的一员。

什么是RASP?

根据Gartner的定义,RASP是“一种建立在应用中,或者连接在应用运行环境中的安全技术;该技术可以控制应用执行情况,并且检测和组织实时的攻击”。该概念在2012年被当时的Gartner副总裁Joseph Feiman(现WhiteHat Security首席战略官)提出。

一般而言,WAF会防止攻击者接触到墙后的脆弱应用;而RASP的理念是让应用自己能够防御实时的攻击。

RASP如何实现?

RASP会在应用附近部署代理,从而在安全事件发生时可以进行控制。RASP会观测并分析应用进程,以及运行时进入的数据。理论上,使用RASP的应用可以识别SQL注入、跨站点脚本攻击,并防止威胁直达其攻击目标。

RASP技术的挑战

尽管说RASP的理念很美好,但是Feiman认为,这项技术还未完全演化成为一项独立的技术。因此,它暂时在企业的应用中还极其有限,原因有四:

  • RASP需要插桩,从而可能无意中导致应用崩溃,但企业显然不想看到在运行时的应用环境里有代理。

  • RASP和编程语言有关联——每个代理都需要基于应用本身使用的语言。而几十种应用语言,以及各种语言形成的框架,使得RASP代理很难适配。

  • RASP同时很消耗CPU。代理消耗的CPU性能和应用差不多,从而会导致应用的运行速度降低。

  • RASP还可能将正常的接入误认为是攻击,从而阻断。

Feiman看来,这四点阻碍了RASP的使用。而应用安全厂商Sqreen的CTO,JB Aviat,赞同了这些观点:“这些问题确实引发了人们对RASP使用的担忧。但是,我们认为这些问题源自RASP不成熟的技术和使用方式,而不是RASP自身的理念。”

Aviat认为,安全人员应该只使用RASP检测和阻断真正成功的攻击,从而降低误报率,并且多种语言进行结合,减少对性能和部署的影响。

RASP前景

Feiman认为,像RASP和WAF这样的解决方案是基于不顾一切要保护应用数据的思想出现的,但这样的效率是不足的。市场需要的是能够检测,而非防范的解决方案。为了解决RASP带来的一系列的问题,他和他在WhiteHat的团队正在测试一种应用安全的技术,在不使用插桩的情况下进行应用测试。

Feiman同样预言,RASP不会成为单独的技术,而最终会被像Amazon AWS和Microsoft Azure云平台这样的应用运行时平台所吸收。这些云厂商可能会通过收购的方式将RASP能力结合进自身的平台。

不过,Aviat则持相反观点,他认为RASP就是一项独立的技术。

他希望RASP成为任何一种应用安全策略中的关键元素——就像WAF和SCA一样。他提到,RASP已经被NIST认可,成为降低应用风险的一项关键技术。在未来,RASP只会越来越容易部署,涵盖的安全范围越来越广,会以越来越高效的方式覆盖大部分脆弱点。

关键词:应用安全;RASP;运行时保护;

声明:本文来自数世咨询,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。