RASP恰好处在应用访问流量中东西向与南北向的交叉点,因此以RASP作为能力切入点,ADR 应当具备以下几个关键技术能力:
在主机安全层面,探针技术已经开始被多数用户接受。因此在应用安全领域,用户对Agent的考量主要在于性能、兼容性、是否重启等要点。
业务连续性
早期的RASP部署之后,需要重启应用环境,对用户的业务连续性会有较大影响。近年来,随着技术发展,ADR已经有采用“attach”等方式注入Agent,无需重启直接更新,以减少对业务运行的干扰。
对应用性能的影响
RASP技术实现的实质是在不接触应用源码的情况下,对函数进行Hook操作。因此不可避免的Agent对原有的应用性能会有影响。在PoC试用时查看Agent对性能的影响,用户一般关注内存占用、RT(Response Time)等关键指标。
兼容性
首先是对多开发语言的支持,Java、Golang、PHP、Python、Nodejs等主流开发语言,Agent探针都应当支持。再就是除了对应用环境中典型中间件、第三方组件、通用类和框架类的函数等兼容外,还要能够对自研代码部分进行Hook。
ADR应当具备较强的应用资产发现与管理能力,这是后续检测与响应的基础。
持续资产发现
ADR所覆盖的资产主要为应用资产、组件库资产、API资产三大类。资产发现手段可采用第三方导入+持续发现相结合的方式。一方面导入已有的应用资产信息、第三方组件信息、所属业务信息等资产数据,另一方面,通过具备资产信息更新的接口,便于随时从自有的资产发现模块,或EDR、HDR等外部端侧资产信息,定期接入更新的应用资产数据。特别针对应用框架中大量的API资产,可通过插桩方式对应用流量进行全量采集并持续分析,持续发现API资产。
应用资产管理
ADR应针对应用的框架、组件、业务属性、时间线等具备细粒度的资产管理能力、可视化的资产信息展示能力。除此之外,对于应用框架中的第三方组件库,ADR应当具备动态采集加载组件库信息的能力。也就是说,针对组件库资产,要能区分在全量组件中哪些是应用已经加载的组件,以便后续环节中,对其能够优先进行检测与响应。特别是当供应链出现严重漏洞的时候,可以快速定位到组件使用情况,加强对供应链管理能力。
形成运行基线
通过持续的资产发现与管理,结合应用、中间件的配置检查能力,由此,ADR即可形成应用安全运行基线。无论是实网攻防演练,还是日常安全运营,结合不同的业务场景,安全团队可对应用和中间件的资产完整性、策略配置、异常行为等进行针对性的监测、检测、响应。
ADR的能力建设到这一步,可以满足大部分针对应用的攻击检测与响应需求。接下来,还需要对更高级别的攻击行为构筑威胁检测能力。
基于RASP的技术实现特性,ADR应当具备对0day漏洞、内存马等高级威胁的检测能力。
0day漏洞
对nday漏洞的PoC检测基于漏洞的已知特征实现。区别于此,ADR是对应用中关键执行函数进行Hook监听,同时采集上下文信息结合判断。因此能够覆盖更加全面的攻击路径,进而从行为模式的层面,对0day漏洞实现有效感知,弥补传统流量规则检测方案所无法实现的未知漏洞攻击防御。
前段时间造成大范围影响的Log4j漏洞事件中,就已经有ADR代表企业以上述思路成功阻断了当时以0day身份出现的Log4j漏洞在客户侧的蔓延。因此,对0day漏洞的检测与响应已经成为ADR的关键能力之一。
内存马
应用内存马的攻击实现方式是,攻击者通过应用漏洞结合语言特性在应用中注册包含后门功能的API。此类API在植入之后并不会在磁盘上写入文件,代码数据只寄存在内存中,此类无文件攻击特性可以很好的隐藏后门,攻击者可长期控制业务系统或将其作为进入企业内部的网络跳板。
针对应用内存马,ADR首先可通过建立内存马检测模型,持续检测内存中可能存在的恶意代码,覆盖大部分已知特征的内存马;其次,基于RASP的技术特点,ADR可以对内存马注入可能利用到的关键函数,进行实时监测,从行为模式层面以“主被动结合”的方式发现内存马,以此覆盖剩余的未知特征的内存马。
因为是在内存中进行检测与判断,因此,对内存马的攻击行为一经发现并结合上下文确认,就可以实时进行阻断并清除,实现自动化的检测与响应。相比之下,其他响应阻断都会有一定的滞后性。因此可以说这是ADR的核心关键能力之一。
ADR需要具备较强的数据建模与分析能力。
鉴于Agent不能过高占用应用环境资源,ADR数据建模与分析应由专门的服务端引擎来承担,将Agent采集数据、安全日志数据、外部威胁情报数据等有序调度汇总后,进行威胁建模与分析研判。
数据的建模与分析应当兼顾成本与效率,数据模型要考虑资产优先级、业务场景等,原则是提高对常见威胁的分析效率与准确率,降低自动化响应的失误率。
对于高级别威胁的数据分析,引擎中的场景剧本,要能够随时增加或更新,分析结果在管理平台可视化呈现或以可编辑报告的形式导出,为高级别威胁所需的人工研判提供支持依据。
不同于边界设备基于特征匹配检测攻击,对于扫描器的踩点、扫描行为,⼀般会产⽣⼤量误报,RASP 运⾏在应⽤内部,失败的攻击不会触发检测逻辑,所以每条告警都是真实正在发生的攻击,这就为ADR自动化的阻断响应提供了天然的技术基础。
首先,基于应用访问关系,梳理应用的拓扑关系与数据流,逐步形成应用的安全运行基线,然后利用微隔离,降低攻击者在不同应用区域间潜在的横向移动风险;然后在此基础上,如前所述,针对0day漏洞、内存马等高级威胁,结合上下文进行自动化的阻断响应。最后,为避免再发生类似攻击,ADR还应具备临时修复加固功能。例如通过弹性补丁或虚拟补丁,对漏洞进行临时修复,待将来某个时刻,应用升级或重启时,再交由研发、运维等兄弟部门处置。
需要注意的是,虽然 RASP 几乎没有误报,但自动化阻断始终不能影响应用的业务连续性,应当具备一定的自查自保护机制。例如针对上述各响应各环节,在管理平台侧提供完备的隔离策略、阻断控制、补丁分发等功能的完整日志记录,从而为运营人员进一步的重放、分析、溯源、报告等操作提供支撑。