近期,应中国信息通信研究院特邀,悬镜安全高级解决方案架构师凌云于2022年首届软件供应链安全论坛暨3S CON上发表了题为“浅谈软件供应链安全治理趋势与最佳实践”的主题演讲,对软件供应链安全风险面、风险事件、风险治理、技术发展进行了系统的梳理并提出了创新观点。
以下为演讲实录:
软件供应链安全风险面分析
由最早期的原始组件组装成集成组件到形成软件产品,最终对产品进行线上运营,软件供应链可以理解为一个链条,而在链条的每一个环节都可能会产生风险。在软件供应链生命周期里产生的漏洞会沿着链条,从上游往下游扩散,从而扩大了软件供应链的安全风险。
在早期的设计阶段,开发团队没有进行全面的威胁分析,就会加大软件的攻击面;在编码阶段,软件的编译器、开源软件以及源代码的恶意植入都可能成为风险;在发布阶段,错误的架构设计或程序编码因安全检测不足而未被识别、软件捆绑下载以及开发人员遗忘或故意留下的“后门”,这些都将为攻击者提供机会;在运营阶段,攻击者可以劫持软件更新的渠道,也可以利用中间人攻击替换升级软件或补丁包,抑或直接诱骗用户从非官方渠道下载软件的某个版本或者更新包,都会造成安全风险。
- 合法供应商引入的漏洞;
- 篡改或伪造组件的漏洞;
- 编码过程中引入的漏洞;
- 开源组件引入的漏洞和许可证合规风险。
软件供应链安全风险事件总结
列举近年来发生的几起影响深远的软件供应链安全风险事件。
第一个是2015年爆发的的苹果开发工具XcodeGhost事件。攻击者利用当时通过官方渠道获取Xcode官方版本困难的情况,在非官方渠道发布的版本中注入病毒,导致2500多款使用该工具开发的苹果APP被植入恶意代码,受影响的苹果IOS用户达到1.28亿。
第二个是2020年爆发的SolarWinds事件。攻击者在SolarWinds Orion软件2019.4-2020.2.1版本中植入了恶意的后门应用程序。这些程序能利用SolarWinds的数字证书绕过验证,将与攻击者的通信伪装成Orion Improvement Program(OIP)协议并将结果隐藏在众多合法的插件配置文件中,从而隐藏自身恶意目的。据SolarWinds统计,大约有18000名用户安装了带有后门程序的Orion软件。
第三个是2021年爆发的SonarQube事件。攻击者利用SonarQube存在的漏洞通过API设置值URI,造成明文的SMTP和GitLab凭证(tocken)等敏感信息泄露,从而致使GitLab中项目的代码可以被任意克隆下载。
软件供应链风险治理思路
从XcodeGhost、SolarWinds、SonarQube等软件供应链攻击事件可以得知,在软件供应链的每个阶段都有可能形成风险事件,并影响下游大量的用户。因而当进行软件供应链风险治理时,可以分为两个方面:软件开发生命周期的治理和软件生存运营周期的治理。
1. 软件开发生命周期的治理
分为两个思路:SDL(软件开发生命周期)和DevSecOps。
SDL是将整体的开发生命周期分为7个阶段,从要求、设计一直到发布、响应,要求每个阶段都有相应的安全活动,以减少软件中漏洞的数量并将安全缺陷降低到最小程度。
DevSecOps是一种全新的安全理念和模式,于2017年美国RSAC大会上被提出。与SDL相比,相同之处在于两者都要求在每个阶段进行安全活动,不同之处在于DevSecOps更多是提倡将安全工具和技术嵌入DevOps流程,形成自动化的安全检测和保障,实现开发、安全、运营一体化。
图1 DevSecOps流程工具链
DevSecOps软件供应链风险治理流程分为以下几个阶段:
第一步建立标准,结合企业自身实际情况构建软件供应商评估模型,制定软件供应商考核评估标准及安全框架。
第二步资格评估,根据制定的评估标准和安全框架,对初步符合要求的软件供应商进行多维度的综合性资格评估,从而选出匹配度最高的供应商。
第三步风险评估,对通过资格评估的软件供应商进行安全风险评估,根据软件供应商面临的潜在安全风险、存在的弱点以及有可能造成的影响综合分析其可能带来的安全风险。
第四步风险监控,对软件供应商实施长期性的安全风险监控,持续识别和管理软件供应商的安全风险,根据监测结果实时更新对软件供应商的风险管理策略。
软件供应链安全始于对关键环节的可见性,所以在编码阶段,企业要为每个硬件、应用程序持续构建详细的SBOM(Software Bill of Material,软件物料清单),从而全面洞察每个应用软件的组件情况。
企业可以利用工具和技术对应用进行检测分析。比如SCA(Software Composition Analysis,软件成分分析)是一种对软件组成成分进行识别、分析和追踪的技术,可以协助企业生成完整的SBOM,从而分析开发人员所使用的各种源码、模块、框架和库,以识别和清点开源软件(OSS)的组件及其构成和依赖,并精准识别系统中存在的已知安全漏洞或者潜在的许可证授权问题。
企业可以使用IAST(Interactive Application Security Testin,交互式应用安全测试)技术,利用运行时探针将应用程序存在的安全漏洞以及开源组件风险进行识别,并将结果反馈给研发人员,进行快速修复。
2. 软件生存运营周期的治理
分为两个部分:体系建设和工具搭建。
发布运营阶段包括监测告警、应急响应、事件处置、持续跟进等关键活动。
在日常的运营管理中,企业可以采用自动化分析技术对数据进行实时统计分析,发现潜在的安全风险,并自动发送警 信息。
通过这样的流程,一方面可以迅速定位运营阶段的风险并快速修复,另一方面可以根据运营数据对体系进行持续改进。
BAS(Breach and Attack Simulation,入侵与攻击模拟)可以通过模拟对端点的恶意软件攻击、数据泄露、恶意软件攻击和复杂的APT攻击,测试 络安全基础设施的安全可靠性。在执行结束时,系统将生成关于企业组织安全风险的详细 告,并提供相关解决方案。同时结合红队和蓝队的技术使其实现自动化和持续化,实现实时洞察组织的安全态势。
图2 BAS工作流程示意图
WAF(Web Application Firewall,Web应用防火墙)通过增强输入验证,可以在运营阶段有效防止 页篡改、信息泄露、木马植入等恶意 络入侵行为,从而减小Web服务器被攻击的可能性。同时,WAF还可以判断用户是否是第一次访问,将请求重定向到默认登录页面并且记录时间,通过检测用户的整个操作行为可以更容易识别攻击。
图3 WAF作用位置示意图
RASP(Runtime Application Self-Protection,运行时应用自防护)是一种提高应用程序自身对威胁免疫力的技术,能将保护代码如疫苗般注入到应用程序中,与应用程序融为一体,使其具备自我保护能力。RASP结合应用的逻辑及上下文,对访问应用系统的每一段堆栈进行检测。当应用程序遭受到实际攻击和伤害时,RASP可以进行实时的检测和阻断,无需人工干预,确保软件应用的安全运行。
TIP(Threat Intelligence Platform,威胁情 平台)可以帮助安全人员明确企业的在线资产和安全状况,根据企业自身资产的重要程度和影响面,进行相关的漏洞修补和风险管理,同时可以帮助安全人员了解企业自身正在遭受或未来面临的安全威胁,提供解决建议。
容器安全工具可以自动化构建容器资产相关信息,提供容器环境中各类资产的状态监控,包括容器、镜像、镜像仓库和主机等基础资产信息,使资产拥有较强的可扩展能力;通过建立智能应用补丁扫描工具,为安全人员提供镜像管理、镜像检测以及自动化补丁修复建议。
软件供应链安全技术发展趋势
关于悬镜安全
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!