解决方案-漏洞心脏滴血严重吗-小白漏洞教学
由俄乌冲突一周年引发的思考
俄乌冲突持续已超过一年,在这场持续的地缘政治碰撞中,除物理战场之外,以俄乌美欧为主的多方势力在网络空间中也进行着激烈的竞争与较量,以软件技术为代表的关键基础设施供应链正面临随时断供风险,暴露出的软件供应链安全问题引发了圈内圈外的广泛关注和思考。
从 中“软件供应链( Chain)”主题可以看出在全球对于软件供应链安全的关注趋势正处于持续上升的过程中:
图1 数据来源于
软件技术无国界,但软件供应链安全需要自主。从局部地缘政治冲突到暗波涌动的国际大环境背景下,建设我国自主可控的软件供应链安全体系已成为业界共识。而RASP作为构建应用威胁自我免疫的关键技术,可以有效应对无处不在的应用程序漏洞与未知网络入侵威胁,为应用程序提供运行时的动态安全保护,在供应链风险缓解和治理方面具有不可替代的作用。关于RASP的技术原理已在RASP技术进阶系列(一):与WAF的“相爱相杀”一文中有过详细阐述,本文将从软件供应链安全风险治理的角度,浅析RASP在企业供应链安全建设中可提供的具体帮助。
何为软件供应链安全
软件供应链指为满足软件供应关系通过资源和过程将需方、供方相互连接的网链结构,可用于将软件产品和服务提供给需方,包括协商、生产、交付、获取、维护、废止等软件从生产到交付运营的全过程。因此,软件供应链安全则是指在这一过程中,包含软件生产和运营过程中编码、工具、设备、供应商及最终交付渠道所面临的安全问题,保障软件不受恶意攻击、篡改、窃取等安全威胁的诸多安全要素。
从“心脏滴血漏洞”到“事件”再到“ 漏洞”,软件供应链安全问题已经对用户隐私、企业资产乃至国家安全带来了巨大威胁。因此,保障软件供应链安全已成为全球亟待解决的问题。继欧美各国相继发布软件供应链安全相关行政令后,我国信通院也发布了软件供应链安全标准体系建设的相关指导文件,包括:《软件供应链安全管理能力成熟度模型》、《可信研发运营安全能力成熟度模型》、《软件物料清单建设总体框架》以及软件供应链安全工具标准体系等。其中最重要的是《软件供应链安全管理能力成熟度模型》,涉及软件供应链的交界面及其安全管理。
软件供应链的安全管理既包含在软件供应链的上游,针对商业软件、开源、外包服务以及云服务这四大引入方式,在代码来源、代码质量、知识产权合规、软件物料清单规范性、责任划分清晰度方面实现安全可控准入;也包含在软件供应链下游的发布投产阶段,针对最终形成的商业产品、云服务以及内部信息系统,进行交付物安全检查,而且同时建立一套持续性的服务支持机制和运行监控机制。与此同时,要求企业在内部建立管理机制,包括组织架构制定、人员配备、基础设施建设等。
图2 参考中国信通院软件供应链安全系列标准体系架构
在中国信通院提出的软件供应链安全管理体系建设中,在“引入”和“生产”阶段主要是针对已知供应链风险的筛查和过滤,目的是建立完整的软件物料清单(SBOM)来为每一个应用建立“身份信息库”,从而帮助企业厘清数字资产脉络,在风险来临时能及时定位处在“应用”阶段的关键资产,同时迅速采取行动,及时避损或止损。
那么当风险产生时,企业组织该如何保证处于“应用”阶段的软件资产不受损害呢?
如何让供应链安全共生自进化
“RASP在运营阶段可以应对无处不在的应用漏洞与网络威胁,为应用程序提供应用运行时的动态安全保护。其可以精准识别应用程序运行时暴露出的各种安全漏洞,进行深度且更加有效的威胁分析,快速定位应用程序漏洞,进行防护,从而大大提升修复效率,保障应用程序的安全性。”(积极防御体系进阶:《敏捷安全》)
当前,网络安全防护重心正从主机向应用转移,防御设施也经历了“边界网络安全->端点系统安全->应用敏捷安全”的演进阶段。在应用风险深度防护方面,最有效的手段非“RASP(运行时应用自保护)”莫属,有效解决了积极防御体系中业务安全检测防御最后一公里的安全共生和自进化问题。RASP深入应用内部的工作机制补充了WAF等边界防御设施“防不住”变形混淆的高阶攻击行为的不足,解决了需要理解应用逻辑上下文的特定业务场景下“拦不准”的问题,同时也弥补了在端点防御设施层面攻击手法“看不清”和攻击链路“追不到”的痛点。RASP可以为应用提供如下安全能力:
应用出厂免疫
应用运行感知
应急风险响应
应用出厂免疫
在应用需要紧急交付上线时,是否遇到过部分已知漏洞来不及修复的情况?是否存在包含已知漏洞的组件,且仍未找到替换方案?一边是交付上线的压力,一边是安全担责的风险,各个兄弟部门急得焦头烂额。针对已知漏洞,RASP不仅可以对引入的风险组件进行安全加固,也可以对供应商提供的商业软件或自研软件的已知问题进行动态修复。
1.1 组件安全加固
不同于EDR和HIDS等端点安全工具提供的主机加固能力,RASP和代码疫苗等敏捷安全技术可以提供应用内第三方组件的原生安全加固:
● 通过运行时SCA技术,RASP探针可以在应用程序运行过程中识别到其依赖的所有组件清单;
● 通过RASP云端组件漏洞数据库对比分析,可以自动下发组件漏洞修复热补丁,实现对组件风险的代码级加固防御,从根源上杜绝漏洞被利用的可能性。
以Java为例,当由用户代码、第三方组件等代码一起编译生成的混源应用制品与RASP探针共同加载到JVM虚拟机中时,在 API的阶段,我们不仅可以动态地修改目标Hook方法,同时也可以获取到所有加载到JVM的第三方组件信息。此时,借助云端SCA分析引擎,即可获得在运行阶段加载第三方组件的风险情况,借助热修复补丁库,云端可自动下发对应的热修复补丁,动态地将风险组件的风险方法屏蔽或注入额外的安全判断逻辑,在不直接修改源代码情况下实现对风险组件的代码级加固。
图3 Java插桩技术原理图
1.2 重大组件漏洞热修复
应用程序在上线前通过AST技术(如IAST、SAST、DAST)、或者人工渗透测试发现的通用类型漏洞,RASP的内置防护策略能实现基本全覆盖。当内置防护策略无法覆盖所有的缺陷时,可采取临时禁用功能(例如通过接口黑名单或阻断函数调用)的方式来进行保护;或者通过RASP热修复技术动态注入安全处理逻辑,使每一次调用都伴随热修复补丁的保护。
例如,当应用需要接收用户输入来执行特定操作系统命令时,由于在开发阶段未对用户输入内容进行限制,导致应用面临任意命令执行的风险。此时可以通过热修复补丁的能力,将安全处理逻辑注入到该方法实现内,而不需要修改源代码。
图4 重大组件漏洞热修复
图5 应用出厂免疫示意图
通过上述方式即可在不耽误应用上线进度的同时,为研发人员修复漏洞争取宝贵时间。
应用运行感知
通常情况下,HIDS和EDR技术都是有告警的,却找不到黑客入侵的有力证据?可以结合RASP在代码调用栈级别的行为监控能力,通过代码调用路径分析攻击者的入侵位置,一定程度上可实现对高级漏洞利用的实时情境感知和狩猎。
端点安全防御工具主要监控的目标是操作系统命令执行以及特定敏感文件的读写操作,防护维度在进程级别。这就使得HIDS、EDR的告警中只能包含敏感行为的用户组、进程ID、操作对象等信息。安全运营人员通常只能知道有异常行为,却无法知晓攻击者的入侵点。
以攻击手法为例,假设事先我们不知道log4j-core-2.x组件存在漏洞,当攻击者通过反射的方式执行恶意代码或植入内存马(无文件)后,HIDS、EDR等工具虽然能发现异常的命令执行行为,但却无法知道攻击从何而来。此时,即可通过RASP的代码调用栈分析能力,回溯攻击者的攻击路径。有了代码级信息后,安全运营团队可以根据堆栈信息对应用风险面进行加固,也可以借助RASP获得的运行时组件物料清单(SBOM)对使用类似逻辑或相同组件的应用进行全面筛查。
图6 利用原理
由于RASP对应用运行时底层函数Hook的特性,当黑客通过未知漏洞对应用进行攻击试探时,一定会触发RASP对特定函数的监控。此时,只需顺着代码调用栈回溯黑客的攻击路径,很快便可以收获一枚崭新的0-Day漏洞。因此,在攻防演练或企业日常安全运营工作中,作为积极防御体系的最后一公里,RASP可在一定程度上作为安全团队0-Day狩猎的辅助工具。
应急风险响应
收到了新的漏洞情报,但边界和端点防护策略效果有限,研发人员的修复周期又太长,窗口期该如何度过?
如RASP技术进阶系列(三):重大漏洞自动化热修复一文所述,针对此类风险,RASP可提供简单粗暴的将风险方法直接阻断操作,亦可提供细致入微的代码级处理逻辑:
● 如果实际业务不会使用到风险组件的风险方法,可采取简单粗暴的方法,直接将指定的方法屏蔽,不给投机者任何可乘之机。例如 方法、 反序列化等;
● 如果业务中需要使用风险方法,就可以采用代码级热修复补丁,对特定方法的参数、返回值或调用栈增加判断逻辑,通过正则、黑白名单、模糊匹配等方式或结合流量特征,综合判断触发风险方法的调用是否符合预期,从而保障应用和数据安全不受侵犯。例如 反序列化漏洞等。
对于发布和运营阶段的软件供应链风险治理,RASP深入工作于应用内部,从运行的应用中可以获得更多的上下文信息,意味着能够以更少的时间成本提供更深入的保护能力、更广泛的覆盖范围。
综上所述,RASP可以在软件供应链安全防护的应用阶段提供:
● 应用运行时软件物料清单(SBOM)梳理;
● 应用运行时风险检测感知与响应;
● 应用上线前第三方组件的安全加固以及应用风险出厂免疫;
● 应用安全运营重大风险积极响应。
总之,在软件供应链安全风险治理方面,RASP通过轻量级的单探针,在与企业现有的安全防御设施无冲突的情形下,能够为现代数字化应用提供积极防御的能力,是现代数字化应用安全的最优选择。在提供应用出厂加固和免疫的基础上,RASP也为安全运营工作带来了应用内部的视角,不仅能对重大漏洞进行实时拦截,还能利用代码级热修复补丁的能力为安全团队争取漏洞修复时间,为应用程序提供软件全生命周期的动态自我保护,进而为企业乃至国家的软件供应链安全建设提供有力的保障。
~
网络安全学习,我们一起交流
~