京东云RASP云原生安全免疫创新实践
作者:京东云 刘一鑫
1 背景
随着网络攻击事件整体呈上升趋势,应用作为网络入口承载着大量业务和流量,因此成为了安全的重灾区。黑客往往借助自动化的工具以及安全漏洞,对Web进行漏洞扫描和探测,进而利用漏洞攻击,达到窃取Web应用的敏感数据或者入侵服务器的目的,这大大加剧了应用面临的安全风险。以前一段时间出现的log4j2漏洞为例、这是近十年来最严重的漏洞,由于使用广泛和漏洞利用简单,影响70%以上的企业线上业务系统,官方发布漏洞修复补丁后依旧被多次绕过,几乎所有互联网公司都在通宵加急处理漏洞、修复更新,避免造成黑客攻击事件。除此之外,还有像fastjson、Xstream等相关漏洞,此类漏洞还是会长期与应用共存。
2 传统应用安全防护方案
2.1 WAF
传统应用安全的解决方案,大部分安全从业者都会想到WAF(Web Application Firewall, 应用程序防火墙),WAF是一种专门用于分析HTTP/HTTPS流量的专用防火墙,可以深入到每一次HTTP/HTTPS请求和详情中去检查是否包含敏感字段,然后放行正常行为,拦截恶意行为,就像自来水过滤器一样,把“杂质”从庞大的流量中剔除出去,这样应用程序就只会响应正常的请求,从而达到保护应用程序的目的。
但随着黑客攻击应用程序的威胁不断演变,基于规则对流量进行检测的分析手段容易被绕过,并且需要根据不断演变的漏洞进行规则的持续更新。
2.2 黑白盒扫描
应用安全解决方案除了WAF以外,还可以通过黑盒和白盒扫描的方式。
SAST或称为“白盒测试”已经存在了十多年。它使开发人员可以在软件开发生命周期的早期,在应用程序源代码中找到安全漏洞。
DAST或称为“黑盒测试”可以发现正在运行的应用程序中的安全漏洞和弱点。它通过在应用程序上采用注入技术来识别常见的安全漏洞(例如SQL注入和跨站点脚本)来做到这一点。
但他们都无法解决已经在运行中的应用安全问题,只能通过事前的扫描发现安全漏洞,并且也需要根据不断演变的漏洞进行规则的持续更新。
3 京东云RASP应用运行时自我保护技术实践
21年12月Apache Log4j 开源组件被曝出严重漏洞,被认为是“21年最重要的安全威胁之一”,22年4月Spring 开源应用开发框架也被爆出了一个严重高危漏洞。
针对0day漏洞攻击频发,安全形势日益严峻的现状,京东云自主创新云原生安全RASP应用运行时自我保护技术(英文全称:Runtime Application self-protection运行时应用时自我保护(简称RASP)),通过注入安全疫苗的方式将防护引擎嵌入到应用内部,与应用程序融为一体,使应用程序具备自我防护能力,对0day漏洞、内存马等攻击实现免疫防护。
3.1 工作原理
相比于传统的边界安全产品,RASP不过度依赖检测规则持续更新。从原理上来看,RASP是从应用内部对关键函数操作的数据进行分析,即使原始请求经过加密和混淆,但是它在应用内传播到最终的底层函数时将会以明文方式被RASP截获,并根据应用当前上下文精准识别攻击事件,给予实时阻断,因此相比WAF能减少大量的误报和漏报问题。基于此特性,RASP还能为安全人员和开发人员提供更为详尽的攻击链路,包括攻击原始 Payload、代码调用堆栈等信息,方便他们进行漏洞定位、复现以及修复。
对于一些经常爆发漏洞的开源软件和第三方组件而言,漏洞存在位置和利用方法可能不同,但是在进行利用时,执行到应用代码底层,往往都会聚集到一些“敏感”函数上,如反序列化、数据库执行、命令执行、文件操作、响应返回等相关函数。如果通过RASP技术对这些底层“敏感”函数调用做一定识别阻断,即可免疫大部分0day攻击。因此,从此类实践应用出发,RASP天然可作为漏洞热修复和免疫0day漏洞的应用安全疫苗。
3.2 0day漏洞防护示例
接下来,我们通过 fastjson 反序列化漏洞的攻击场景来演示 RASP应用安全的实际防护效果,fastjson 的反序列化过程主要如下:
当执行上述代码时,在反序列时如果存在恶意的方法则会触发命令执行。但在部署了RASP的应用中,发生上述反序列漏洞时,RASP应用安全会识别到序列化漏洞产生的命令执行行为,从而直接阻断该反序列化动作并发送告警通知,在攻击详情还可以进一步分析攻击源以及漏洞代码位置。
fastjson 反序列化漏洞的利用核心,还是在于寻找可以造成代码执行的类,实际上在 java 庞大的 jdk 类库以及第三方类库中存在着大量的可利用类,传统流量产品如 WAF,往往需要在防御时去穷举这些可能被利用的类,可能经常会出现遗漏,而基于 RASP 的上下文分析能力与基于行为的攻击发现方式,将会捕获掉所有由 fastjson 造成的代码执行、恶意文件上传、敏感文件读写等行为,而无需去针对特定代码实现做精准匹配,所以不会存在被绕过的可能性。
3.3 京东云RASP云原生安全免疫平台架构设计
目前京东云 RASP云原生安全免疫平台具体架构设计如下:
京东云 RASP架构主要包括探针、客户端、云端服务三个模块。
探针模块,主要通过将类转换器添加到Instrumentation,在类加载前后,对字节码进行操作,注入RASP的安全探针。在运行了RASP安全探针的 Java 程序中,字节码的加载会经过自定义的类转换器,过滤出存在攻击风险的关键类,再将检测的逻辑插入到字节码文件中,统一进入JVM中执行,相当于在应用进程中加入 hook 点,当程序运行流程到了 hook 点时,实时采集Web 应用的高风险行为,并通过引擎实时对高风险行为阻断并上报日志。
客户端模块,主要用于对探针模块进行管理,云端服务下发的指令都会通过客户端对探针进行管控,包括模型管理、升级管理、异常监控等。
云端服务模块包括三部分:一是日志处理服务,通过流式分析引擎对上报的日志进行处理二次分析,二是运营管控服务,通过运营管控服务对RASP客户端进行管理,三是数据可视化展示平台,将整体安全态势,事件发现,资产、API等数据可视化展示出来。
3.4 RASP攻防对抗应用场景
从攻防角度看,应用层面积极防御的建立可促进纵深防御体系更加深入,推进业务应用实质性安全落地,京东云RASP主要存在以下应用场景:
1)应用资产管理:借助插桩节点推广覆盖,可梳理微服务应用IP、URL地址、API接口、第三方组件等,并绘制资产关联图谱;
2)运行时入侵检测:基于应用污点分析和上下文分析技术,实时检测应用远程命令执行,恶意反序列化,敏感信息,错误的内容类型,OGNL注入,未授权网络活动,未捕获的异常,未验证的请求,恶意文件操作,DNSLOG探测,恶意动态库加载,内存马,XXE注入等,并实时预警高危组件风险,定位具体应用;
3)攻击威胁疫苗:免疫通用Web应用漏洞及第三方组件安全漏洞,防御0day漏洞,并对EDR难以防御的反序列化、代码执行等攻击进行更加有效的阻断;
4)应用安全基线:符合性应用层基线配置检测,覆盖中间件、单应用、微服务等;
5)敏感数据审查:基于可获取应用内部数据输入、操作、内容的先天技术优势,可针对业务侧关注的个人信息、业务数据等敏感信息进行合规审查,敏感数据未授权访问检测等,必要时进行输出阻断和过滤;
6)应用热补丁:对已上线的重要应用系统,当出现重大漏洞短时间难以修复时,可以动态下发热补丁进行修复,在不中断业务的同时为应用系统提供临时防护,为漏洞修复争取宝贵的时间;
7)东西向流量分析:以微服务架构作为基础,除了对应用间流量和东西向流量描绘,更能深入呈现应用程序内部具体执行操作,为安全运营提供从网络层到应用内部真实执行过程数据,分析攻击链路。
4 京东云RASP云原生安全免疫平台最佳实践案例
4.1 RASP安全运营定位
在日常京东云RASP安全运营中,如何保证业务更稳定,运营更高效,应急更及时,是我们一直思考的问题。比如要如何做到攻击告警可运营,包括拦截日志,事件日志,分级分类区别哪些需要关注,哪些必须后续处理,自动发单,漏洞修复等,做到运营闭环,事件闭环。在部署时,做到一键部署,为保证业务稳定,按半分比进行灰度部署,并且可回滚,通过配置策略告警,策略优化,监控应用各项性能指标,快速响应故障报警等。
4.2 大促防护
京东云RASP已经历了多次双十一、618大促防护。在大促的业务高并发挑战下,RASP基于自研运行时代码植入框架、隔离保障机制、兼容性管理,对业务性能几乎无影响,且无误拦截事件产生,通过了拦截能力和性能压力的双重考验。
4.3 国家级攻防演习对抗效果
在国家级攻防对抗实战中,京东云RASP也发挥了巨大作用。攻击方主要把精力都放到寻找入侵点上,各种0day、Nday漏洞,经常会被用来寻找突破点。而作为防守方,京东的攻击暴露面非常广,防守困难,虽然有WAF、IPS、防火墙、零信任等多款安全产品的纵深防御体系,但黑客突破边界后,仍无有效工具能够自动拦截黑客的入侵行为。当有0day或重大漏洞爆发时,相关厂商可能没有快速解决方案,且有方案的话也需要安全人员进行大规模紧急修复,效率低、容易遗漏资产、业务体验很差。但部署了RASP的应用可在攻防对抗中及时进行策略调整,快速有效地抵御fastjson、shiro、反序列化、log4j等0day、Nday漏洞攻击。
5 总结
RASP产品本身优点明显,通过无感知的注入应用进程,可以更了解应用程序的上下文,减少大量的误报和漏报问题,不依赖规则的更新,可对0day漏洞免疫。在纵深防御体系中,RASP是现阶段保障应用安全强有力的存在。但安全方面没有所谓一揽子工程,不存在一款产品能解决所有问题,攻击技术的发展演进会推动防护能力的创新。京东云RASP也会在持续升级的攻防中不断迭代优化,提高应用本身的“免疫力”。
京东云RASP云原生安全免疫创新实践的更多相关文章
- 腾讯云“智能+互联网TechDay”:揭秘智慧出行核心技术与创新实践
现如今,地面交通出行与大家的生活息息相关.在当前城市道路日益复杂和拥挤的情况下,如何保证交通出行的安全和便捷相信是每个人以及众多专家.科研工作者重点关注的问题. “智慧交通”系统是解决交通发展瓶颈的有 ...
- 灵雀云发布云原生制品仓库Harbor企业版(Alauda Registry Service for Harbor)
灵雀云发布云原生制品仓库Harbor企业版(Alauda Registry Service for Harbor) 近日,国内领先的云原生全栈私有云提供商灵雀云宣布,推出企业版云原生制品仓库Ala ...
- 使用“宝塔一键迁移”工具,将typecho博客迁移到京东云cvm云主机
作者:京东科技 林中 服务器更换.网站搬家,对于很多开发者新手来说不是一件容易的事情,需要迁移网站程序.数据库,修改数据库连接文件等.在云迁移方案中,宝塔是非常简单好用的服务器运维面板,能够极大提升运 ...
- 你云我云•兄弟夜谈会 第三季 企业IT架构
你云我云•兄弟夜谈会 第三季 企业IT架构 你云我云•兄弟夜谈会 第二季 5G 你云我云•兄弟夜谈会 第一季 企业云 0. 概况 时间:2019年2月23日 22:00~23:30 主题:企业IT架构 ...
- [转帖]你云我云•兄弟夜谈会 第三季 企业IT架构
你云我云•兄弟夜谈会 第三季 企业IT架构 https://www.cnblogs.com/sammyliu/p/10425252.html 你云我云•兄弟夜谈会 第三季 企业IT架构 你云我云•兄弟 ...
- 亿级日PV的魅族云同步的核心协议与架构实践(转)
云同步的业务场景 这是魅族云同步的演进,第一张是M8.M9,然后到后面的是MX系统,M9再往后发展,我们的界面可以看到基本上是没有什么变化的,但本质发生了很大的变化,我们经过了一些协议优化,发展到今天 ...
- 亿级日PV的魅族云同步的核心协议与架构实践
声明:本文根据msup和魅族联合举办的<第三期魅族技术开放日-架构设计与优化>录音整理原创首发,转载或节选内容前需获授权. 嘉宾:沈辉煌,魅族高级架构师,魅族云同步负责人.2010年加入魅 ...
- 鲲鹏凌云,并行科技Paramon通过华为云鲲鹏云服务兼容性认证
随着Cloud2.0时代到来,5G技术开始应用普及,超算云服务需求不断升级,业务多样性.数据多样性不断延伸.2019年7月,华为召开鲲鹏计算产业发展峰会,依托在联接领域坚实的基础,华为未来将着力打造智 ...
- 阿里云在云栖大会发布SaaS加速器3.0版最新成果,让天下没有难做的SaaS
2019年杭州·云栖大会顺利落幕,超过6万人次观展,200余位顶尖科学家分享了前沿技术.作为“阿里云不做SaaS”,坚持“被集成”战略的落地体现,阿里云SaaS加速器在云栖大会现场发布了SaaS加速器 ...
- 中小企业上云首选,华为云全新云服务器S6性能评测分析
转: 中小企业上云首选,华为云全新云服务器S6性能评测分析 [小宅按]今天,华为云全新弹性云服务器ECS通用计算型云服务器S6(以下简称为"华为云S6云服务器")正式发布,至顶网云 ...
随机推荐
- vue2升级vue3:单文件组件概述 及 defineExpos/expose
像我这种react门徒被迫迁移到vue的,用管了TSX,地vue 单文件组件也不太感冒,但是vue3 单文件组件,造了蛮多api ,还不得去了解下 https://v3.cn.vuejs.org/ap ...
- 超详细的 Jenkins 安全tips
Jenkins 作为一个开放的.可定制的平台,即使在默认状态下也提供了不错的安全性.但是鉴于 Jenkins 连接了许多行业工具,因此也存在一定安全隐患.本篇文章将会介绍一些方法和工具,来确保 Jen ...
- MongoDB 读写分离——SpringBoot读写分离
application.yml data: mongodb: uri: mongodb://127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019/fecg_d ...
- Intellij IDEA 集成 Docker 发布
1. Docker开启远程访问,注意端口不要用默认的,防止被攻击 [root@localhost ~]# vi /usr/lib/systemd/system/docker.service 修改 # ...
- 一、@Configuration、@Conponent 、@ComponentScan 注解等
一句话概括 区别: @Configuration 中所有带 @Bean 注解的方法都会被动态代理,因此调用该方法返回的都是同一个实例.2. 可以直接调用方法,不需要 @Autowired 注入后使用. ...
- 最全!即学即会 Serverless Devs 基础入门(上)
作者 | 刘宇(花名:江昱) 在上篇<即学即会 Serverless | 如何解决 Serverless 应用开发部署的难题>中,我们阐述了工具链的重要性,那么本文将带领各位快速实现 Se ...
- uni-app 从入门到放弃(持续更新)
https://blog.csdn.net/weixin_33940102/article/details/91460204
- hybird介绍
什么是hybird? hybrid即"混合",即前端和客户端的混合开发,需要前端开发人员和客户端开发人员配合完成. hybrid存在价值 可以快速迭代更新(无需app审核,思考为何 ...
- 项目管理之问,ChatGPT作答
项目管理 帮我列一份<项目管理>的大纲 当然可以!以下是一个典型的<项目管理>大纲: I. 项目管理概述 A. 项目管理定义和目标 B. 项目管理的重要性和价值 C. 项目管理 ...
- ThreadLocal应用及理解
转载请注明出处: 1. 先展示threadLocal的一个简单封装,该封装用来在不同的请求线程中解析用户参数.在请求经过过滤器时, 对用户的信息进行设置入 ThreadLocalContext 中,可 ...