作者:京东云 刘一鑫

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云原生安全免疫创新实践的更多相关文章

  1. 腾讯云“智能+互联网TechDay”:揭秘智慧出行核心技术与创新实践

    现如今,地面交通出行与大家的生活息息相关.在当前城市道路日益复杂和拥挤的情况下,如何保证交通出行的安全和便捷相信是每个人以及众多专家.科研工作者重点关注的问题. “智慧交通”系统是解决交通发展瓶颈的有 ...

  2. 灵雀云发布云原生制品仓库Harbor企业版(Alauda Registry Service for Harbor)

      灵雀云发布云原生制品仓库Harbor企业版(Alauda Registry Service for Harbor) 近日,国内领先的云原生全栈私有云提供商灵雀云宣布,推出企业版云原生制品仓库Ala ...

  3. 使用“宝塔一键迁移”工具,将typecho博客迁移到京东云cvm云主机

    作者:京东科技 林中 服务器更换.网站搬家,对于很多开发者新手来说不是一件容易的事情,需要迁移网站程序.数据库,修改数据库连接文件等.在云迁移方案中,宝塔是非常简单好用的服务器运维面板,能够极大提升运 ...

  4. 你云我云•兄弟夜谈会 第三季 企业IT架构

    你云我云•兄弟夜谈会 第三季 企业IT架构 你云我云•兄弟夜谈会 第二季 5G 你云我云•兄弟夜谈会 第一季 企业云 0. 概况 时间:2019年2月23日 22:00~23:30 主题:企业IT架构 ...

  5. [转帖]你云我云•兄弟夜谈会 第三季 企业IT架构

    你云我云•兄弟夜谈会 第三季 企业IT架构 https://www.cnblogs.com/sammyliu/p/10425252.html 你云我云•兄弟夜谈会 第三季 企业IT架构 你云我云•兄弟 ...

  6. 亿级日PV的魅族云同步的核心协议与架构实践(转)

    云同步的业务场景 这是魅族云同步的演进,第一张是M8.M9,然后到后面的是MX系统,M9再往后发展,我们的界面可以看到基本上是没有什么变化的,但本质发生了很大的变化,我们经过了一些协议优化,发展到今天 ...

  7. 亿级日PV的魅族云同步的核心协议与架构实践

    声明:本文根据msup和魅族联合举办的<第三期魅族技术开放日-架构设计与优化>录音整理原创首发,转载或节选内容前需获授权. 嘉宾:沈辉煌,魅族高级架构师,魅族云同步负责人.2010年加入魅 ...

  8. 鲲鹏凌云,并行科技Paramon通过华为云鲲鹏云服务兼容性认证

    随着Cloud2.0时代到来,5G技术开始应用普及,超算云服务需求不断升级,业务多样性.数据多样性不断延伸.2019年7月,华为召开鲲鹏计算产业发展峰会,依托在联接领域坚实的基础,华为未来将着力打造智 ...

  9. 阿里云在云栖大会发布SaaS加速器3.0版最新成果,让天下没有难做的SaaS

    2019年杭州·云栖大会顺利落幕,超过6万人次观展,200余位顶尖科学家分享了前沿技术.作为“阿里云不做SaaS”,坚持“被集成”战略的落地体现,阿里云SaaS加速器在云栖大会现场发布了SaaS加速器 ...

  10. 中小企业上云首选,华为云全新云服务器S6性能评测分析

    转: 中小企业上云首选,华为云全新云服务器S6性能评测分析 [小宅按]今天,华为云全新弹性云服务器ECS通用计算型云服务器S6(以下简称为"华为云S6云服务器")正式发布,至顶网云 ...

随机推荐

  1. 华为海外女科学家为您揭秘:GaussDB(for MySQL)云栈垂直集成的力量有多大?

    摘要:让数据库性能UP!UP!UP!华为云GaussDB(for MySQL)是这样做的 本文分享自华为云社区<华为海外女科学家为您揭秘:GaussDB(for MySQL)云栈垂直集成的力量有 ...

  2. 一文搞定Matplotlib 各个示例丨建议收藏

    摘要:Matplotlib 是 Python 的绘图库. 它可与 NumPy 一起使用 ,Matplotlib也是深度学习的常用绘图库,主要是将训练的成果进行图形化,因为这样更直观,更方便发现训练中的 ...

  3. 聊聊Hive数据血缘——从Atlas没有列级血缘的Bug讲起

    前几天,Datahub提供了最新的字段级别数据血缘功能,很多朋友迫不及待想对比一下Datahub的字段级血缘与Atlas的区别. 这个时候问题来了,在Atlas收集Hive血缘的时候,由于部分版本问题 ...

  4. 火山引擎DataLeap:助你实现从数据研发1.0到数据研发3.0的跨越

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,火山引擎开发者社区 Meetup 第 12 期暨超话数据专场在深圳举办,本次活动主题为"数智化转型 ...

  5. ECS 挂载 OSS 多Bucket

    ECS 挂载 OSS,等同于在ECS 上使用内网的 Bucket 域名,不需要收取流量费用,减少接口代码的编写. CentOS系统 安装 wget http://gosspublic.alicdn.c ...

  6. 【MFC】CListCtrl 如何设置单元格颜色?

    CListCtrl默认可设置的内容很少,如单元格颜色默认无法设置.若想设置单元格颜色,需要对CListCtrl进行拓展,已有老外为我们写好demo,这里对其中原理.设置方法进行一个解析. 其原理是:设 ...

  7. POJ1426: Find The Multiple

    题目: 给定一个正整数n,请编写一个程序来寻找n的一个非零的倍数m,这个m应当在十进制表示时每一位上只包含0或者1.你可以假定n不大于200且m不多于100位. 提示:本题采用Special Judg ...

  8. Python pydot与graphviz库在Anaconda环境的配置

      本文介绍在Anaconda环境中,安装Python语言pydot与graphviz两个模块的方法.   最近进行随机森林(RF)的树的可视化操作,需要用到pydot与graphviz模块:因此记录 ...

  9. vue子页面给App.vue传值

    前端工程现在变成了单页面富文本的模式,整体布局定下来后,跳转只在<router-view>中展示,外层的布局不容易改变.最近发现有如下这个方法可以直接传值给App.vue,经过实践确实可以 ...

  10. 十、docker镜像的分层

    系列导航 一.docker入门(概念) 二.docker的安装和镜像管理 三.docker容器的常用命令 四.容器的网络访问 五.容器端口转发 六.docker数据卷 七.手动制作docker镜像 八 ...