当今网络安全攻防较量已进入深水区,纵深防御体系已经成为基础。在HW场景下,关于应用漏洞攻击响应和恶意流量溯源分析的安全工作一直被视作重点,但是在实际事件处理过程中仍存在巨大的技术挑战。RASP技术作为新一代突破性的应用层积极防御技术,可在东西向Web流量自动化检测防御中起到关键作用。
1.技术挑战分析
1.1HW场景
HW场景工作阶段可分为HW前、HW中、HW后。防守方在前期主要开展已有资产清点、漏洞风险检查、主动加固、环境隔离等工作;在中期主要进行检测防御、监控告警、事件响应、问题修复、同步情报等;在后期主要进行HW工作总结、问题处置、体系优化等。
实战中,攻击方主要会集中寻找突破点,往往聚焦在应用漏洞、0day漏洞的准备上。而对于防守方,存在技术挑战之处除了在于如何快速进行漏洞攻击响应外,也包括事后进行攻击路径溯源、事中进行攻击流量精准分析和防御。
1.2纵深防御
安全建设是一场动态化、持久化的运动,纵深防御体系将安全建设变得更加系统化,旨在变被动为主动,基于木桶理论,从物理层到应用层提供层层防御机制。常规纵深防御有以下三处短板:
1)应用漏洞止步于漏扫,缺乏漏洞及时修复和0day漏洞免疫的机制;
2)东西向流量检测交由主机EDR和容器安全产品的微隔离技术,对于微服务间RPC协议及加密流量内容无法监测,并且无法追踪其在程序内的真实行为;
3)云原生环境下,内外网边界逐渐模糊,会暴露更多的API应用且微服务之间的访问调用关系更加复杂。
2.RASP东西向流量检测防御实践应用
关于流量访问的模式,南北向流量通常指外部客户端对内部服务器的访问流量,东西向流量通常指内部环境下不同服务器间的访问流量。
图1主机间的南北向流量和东西向流量说明
在以往传统纵深防御体系里,通过EDR主机微隔离技术来跟踪描绘主机之间的流量访问关系如下图所示:
图2主机东西向流量监控随着容器化架构的普及,南北向流量和东西向流量新增了应用容器间的访问场景,如下:
图3容器架构下南北向流量和东西向流量说明
但从入侵风险真实性判断和执行操作完整性审查的角度看,主机和容器间的流量监控还无法分析到具体应用程序解析请求后的真实执行情况。RASP技术则很好地补充了对应用容器内部程序间的流量访问和程序内部上下文执行过程的监控信息。
2.1攻击流量内容可见
RASP基于其技术原理,可从某个Web应用或微服务应用获取到请求并分析其数据内容和函数执行过程。相对于网络边界设备对于加密流量无法审计的问题,RASP可从应用程序内部获取到完整解密后的请求数据。
图4HTTP请求数据内容
并且,传统安全设备主要以HTTP/HTTPS流量分析为主,随着云原生技术的发展,微服务架构普及,以及各类API接口逐渐转为各类RPC接口协议(如Dubbo、二开RPC框架协议等)。传统安全设备几乎不对这类流量进行监控和解析,通过RASP技术则可模拟企业RPC协议解析过程进行适配,解决该类型流量内容无法可视的问题。
图5Dubbo框架协议请求数据内容
2.2程序内部上下文分析
审计东西向流量的目的是为了观察应用间是否存在恶意操作。由于传统安全技术的限制,当应用程序接收到请求后无法审计内部具体函数操作。而RASP可跟踪程序执行上下文信息,延展了东西向流量到应用程序内部的行为可视能力。
图6东西向流量及代码执行过程跟踪
从外部入侵攻击的结果看,最终执行并达到攻击目的的位置,往往是程序对资源访问过程中存在缺陷的位置,如数据库访问、命令执行、网络请求、文件操作等。通过对程序内部函数堆栈及函数变量进行审查,可为安全人员补充应用层面的安全运营数据及可供审计的内容,包括具体访问的webshell后门、恶意命令、SQL注入语句、敏感数据内容及存储方式等。
2.3微服务调用链路追踪
随着分布式、微服务架构、多语言、前后端分离模式的应用普及,溯源微服务间的攻击入侵路径存在难度。通过追踪机制,则可便捷地关联入侵请求所经过的微服务应用,提供精准的溯源数据。
图7微服务链路追踪过程
用户通过浏览器发出HTTP请求,HTTP应用内部处理请求时由Dubbo服务消费方调用服务提供方触发一次DubboRPC调用,再逐层返回给用户层。在这次操作过程中,若在Dubbo服务提供方检测到漏洞信息,希望可以向上溯源,找到触发本次Dubbo调用漏洞的源头调用信息,如:HTTPGET/user/xmirror。从而溯源绘制调用链路路径,如下效果:
图8溯源链路路径
2.4攻击入侵响应和防护
纵深防御体系的最终目的是保障业务本身安全性。RASP技术原理核心在于可对最终应用进行输入流量检测,并在代码函数级别对变量进行检查跟踪、过程污点分析、恶意执行阻断,在应用漏洞和流量行为分析上具有明显优势。
经常暴露且危害较大的应用漏洞,大多存在于开源软件和第三方组件。黑客可以通过源码分析发现其中的漏洞,进而当发现攻击目标使用该开源软件或第三方组件时,便可以发起0day攻击。常态化安全运营下,对应用漏洞的修复或者补偿措施通常会采用如下三种方式:
1)更新升级有漏洞的组件。这是主流推荐的修复方式,但为了不影响业务,这种方式需要有较长评估测试周期。如果是0day漏洞,可能官方还未提供更新版本或者补丁;如果是老旧系统,存在版本已经停止维护的情况。
2)使用漏洞情报中的临时修复方案。这属于非官方修复方式,可能存在某些二次开发应用不适用情况,且如果涉及修改源码,需要有同时具备安全和研发能力的人员储备,不适合小型团队。
3)添加防御攻击流量的WAF策略。WAF属于边界防护,应用资产覆盖面广,易于操作。但如果规则策略严苛,容易造成无关应用流量的误拦截,影响正常业务请求。
漏洞在被发现并被攻击者利用产生危害时,被定义为一次完整的风险入侵事件。也就是说,如果应用存在漏洞,但攻击者无法利用该漏洞进行下一步操作,则该漏洞风险就不产生危害。RASP的基本原理是利用HOOK技术,通过替换函数体或在函数前后插入检测代码,实现在风险操作执行时进行阻断等。
图9对Java中JDBCexecuteQuery方法插桩效果
对于一些经常爆发漏洞的开源软件和第三方组件而言,漏洞存在位置和利用方法可能不同,但是在进行利用时,执行到应用代码底层,往往都会聚集到一些“敏感”函数上,如反序列化、数据库执行、命令执行、文件操作、响应返回等相关函数。如果通过RASP技术对这些底层“敏感”函数调用做一定识别阻断,即可免疫大部分0day攻击。甚至在攻击利用时,如同WAF一般,对攻击请求流量进行过滤,但RASP相对WAF的优势在于更加具有颗粒度(可设置对某个应用进程生效)且流量内容透明。因此,从此类实践应用出发,RASP天然可作为漏洞热修复和免疫0day漏洞的应用安全疫苗。
3.攻防角度下积极防御体系的协同
以EDR技术为例,其作为传统纵深防御体系下主机安全层面防御方案,特点是采用自适应安全体系的架构,覆盖防御、监控、回溯和预测这四项关键能力,各项安全能力以智能、集成和联动的方式应对各类攻击。
图10传统EDR部署图
一般而言,EDR主要在主机层面提供资产清点、风险发现、入侵检测、安全基线、病*查杀等安全运营能力,对于应用微服务相关以及内存马都无力覆盖,对于反序列化攻击、代码注入等攻击类型也难以防御。但是在与悬镜云鲨RASP协同联动后,可在应用层面建立积极防御能力,并切实反馈东西向流量防护效果。
图11悬镜云鲨分布式RASP部署图
从攻防角度看,应用层面积极防御的建立可促进纵深防御体系更加深入,推进业务应用实质性安全落地,主要包含以下方面:
1)应用资产管理:借助插桩节点推广覆盖,可梳理微服务应用IP、URL地址、API接口、第三方组件等,并绘制资产关联图谱;
2)运行时入侵检测:基于应用污点分析和上下文分析技术,实时检测应用漏洞利用、webshell访问执行、内存马执行等,并实时预警高危组件风险,定位具体应用;
3)攻击威胁疫苗:免疫通用Web应用漏洞及第三方组件安全漏洞,并对EDR难以防御的反序列化、代码执行等攻击进行更加有效的阻断;
4)应用安全基线:符合性应用层基线配置检测,覆盖中间件、单应用、微服务等;
5)敏感数据审查:基于可获取应用内部数据输入、操作、内容的先天技术优势,可针对业务侧