查看原文
其他

应信通院特邀,悬镜凌云于软件供应链安全论坛发表主题演讲

悬镜安全 悬镜安全 2022-12-29


近期,应中国信息通信研究院特邀,悬镜安全高级解决方案架构师凌云于2022年首届软件供应链安全论坛暨3S CON上发表了题为“浅谈软件供应链安全治理趋势与最佳实践”的主题演讲,对软件供应链安全风险面、风险事件、风险治理、技术发展进行了系统的梳理并提出了创新观点。


演讲实录

点击播放➡浅谈软件供应链安全治理趋势与最佳实践


软件供应链安全风险面分析

由最早期的原始组件组装成集成组件到形成软件产品,最终对产品进行线上运营,软件供应链可以理解为一个链条,而在链条的每一个环节都可能会产生风险。在软件供应链生命周期里产生的漏洞会沿着链条,从上游往下游扩散,从而扩大了软件供应链的安全风险。

在早期的设计阶段,开发团队没有进行全面的威胁分析,就会加大软件的攻击面;在编码阶段,软件的编译器、开源软件以及源代码的恶意植入都可能成为风险;在发布阶段,错误的架构设计或程序编码因安全检测不足而未被识别、软件捆绑下载以及开发人员遗忘或故意留下的“后门”,这些都将为攻击者提供机会;在运营阶段,攻击者可以劫持软件更新的渠道,也可以利用中间人攻击替换升级软件或补丁包,抑或直接诱骗用户从非官方渠道下载软件的某个版本或者更新包,都会造成安全风险。

从漏洞来源侧分析,软件供应链安全风险面包括:

1. 合法供应商引入的漏洞;

2. 篡改或伪造组件的漏洞;

3. 编码过程中引入的漏洞;

4. 开源组件引入的漏洞和许可证合规风险。


软件供应链安全风险事件总结

列举近年来发生的几起影响深远的软件供应链安全风险事件。

第一个是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,威胁情报平台)可以帮助安全人员明确企业的在线资产和安全状况,根据企业自身资产的重要程度和影响面,进行相关的漏洞修补和风险管理,同时可以帮助安全人员了解企业自身正在遭受或未来面临的安全威胁,提供解决建议。

容器安全工具可以自动化构建容器资产相关信息,提供容器环境中各类资产的状态监控,包括容器、镜像、镜像仓库和主机等基础资产信息,使资产拥有较强的可扩展能力;通过建立智能应用补丁扫描工具,为安全人员提供镜像管理、镜像检测以及自动化补丁修复建议。


软件供应链安全技术发展趋势

前文提到的BAS技术有助于打破攻防不对等现状,可以通过对网络层、主机层和应用层防御设备的有效性验证,来评估企业目前整体的安全架构和安全框架的效果,从而对薄弱侧进行补足。而对于应用本身,需要形成内生安全,对威胁自我免疫。悬镜原创专利级的新一代代码疫苗技术就能通过探针在不同阶段解决对应问题,帮助应用实现出厂自免疫。悬镜认为,以上是软件供应链安全技术未来发展的两个方向。


推荐阅读







关于悬镜安全

悬镜安全(北京安普诺信息技术有限公司),由北京大学网络安全技术研究团队“XMIRROR”于2014年创立,创始人子芽。作为DevSecOps敏捷安全领导者,悬镜专注于以代码疫苗技术和积极防御体系为核心的DevSecOps软件供应链持续威胁一体化检测防御,结合多年的敏捷安全落地实践经验和软件供应链安全研究成果,探索出基于原创专利级“敏捷流程平台+关键技术工具链+组件化软件供应链安全服务”的第三代DevSecOps智适应威胁管理体系。该体系主要涵盖从威胁建模、开源治理、风险发现、威胁模拟到检测响应等关键环节的开发运营一体化敏捷安全产品及以实战攻防对抗为特色的软件供应链安全服务,覆盖DevSecOps敏捷安全、软件供应链安全、云原生安全等关键应用场景,已成功帮助金融电商、泛互联网、车联网、电信运营商、能源电力等行业上千家企业构筑起一套适应自身业务弹性发展、面向敏捷业务交付并引领未来架构演进的内生积极防御体系。更多信息请访问悬镜安全官网:www.xmirror.cn


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存