作者:京东云 刘一鑫

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. 云图说|OLAP开源引擎的一匹黑马,MRS集群组件之ClickHouse

    摘要:ClickHouse是俄罗斯公司Yandex在2016年开源的高性能.开源联机分析列式数据库管理系统.开源后,凭借卓越的分析性能.极好的线性扩展能力和丰富的功能,被业界公认为实时分析领域OLAP ...

  2. GIS常用npm包:GeoJSON文件合并与元素过滤\属性过滤\图形合并

    GeoJSON文件合并 普通的geoJSON文件合并,只需geojson-merge插件就够了,https://www.npmjs.com/package/@mapbox/geojson-merge ...

  3. 如何删除PPT中工具栏口袋动画

    口袋动画官网无法打开 http://www.papocket.com/ 插件无法使用 卸载 在[程序和功能]中卸载后,打开PPT,菜单还是存在 选项--加载项,点击以p开头的一串代码(com加载项), ...

  4. PPT 文字穿插

    软件文字,添加一个形状 先选形状,再选文字 选择拆分 设置对象格式

  5. Kubernetes(K8S) 介绍

    Master Api Server 统一入口,以 Restful 方式,交给 etcd 存储 Scheduler 节点调试,选择 Node 节点,做应用部署 Controller Manager 处理 ...

  6. 负载均衡 —— SpringCloud Netflix Ribbon

    Ribbon 简介 Ribbon 是 Netfix 客户端的负载均衡器,可对 HTTP 和 TCP 客户端的行为进行控制.为 Ribbon 配置服务提供者地址后,Ribbon 就可以基于某种负载均衡算 ...

  7. 干掉大小流切换 I 帧!阿里云 RTC QoS 及视频编码联合优化之切流编码

    如果要在两条分辨率不同的视频流之间切换,尽管这两条流的画面内容基本一样,但是由于两条流的参考帧不同,分辨率不同,目前所有的视频编码标准都无法做到利用帧间预测编码得到编解码匹配的结果,而帧内预测编码即 ...

  8. 汇编 | 8086 DEBUG调试学习笔记

    在8086汇编中DEBUG是个非常实用的工具,并且可以非常明了的查看每一步指令每一个段的相对状态,有利于学习.下面列举一下DEBUG的一些使用方法: -A:可以开始在相应位置编写代码,其中后面可以接一 ...

  9. L1-046 整除光棍 (20分)

    问题描述 这里所谓的"光棍",并不是指单身汪啦~ 说的是全部由1组成的数字,比如1.11.111.1111等.传说任何一个光棍都能被一个不以5结尾的奇数整除.比如,111111就可 ...

  10. 元素可视区client系列

    client翻译过来就是客户端,我们使用client系列的相关属性来获取元素可视区的相关信息. 通过client系列的相关属性可以动态的得到该元素的边框大小.元素大小等. client系列属性 作用 ...