文│王嘉捷 辛伟 管志斌

在国际竞争关系错综复杂、网络空间安全对抗日益加剧的新形势下,竞争的战场已不再仅是企业之间的业务竞争,而是延伸到重要领域信息技术供应链之间的竞争。继美国总统特朗普于2019年5月签署第13873号政令,禁止“对美国国家安全或国民安全造成不可接受的风险”之后,美国商务部陆续宣布将华为集团、大华科技、海康威视、商汤科技、科大讯飞等中国公司列入出口管制实体名单,禁止其与美国企业合作,这将严重扰乱相关公司的信息技术供应链和竞争力,从而打击和抑制中国科技发展进程。不难发现,信息技术供应链的竞争和保障,不仅影响着企业的生存和发展,同时也成为大国之间相互竞争与制约的重要手段。由于软件供应链是信息技术供应链中的重要一环,如何在新的发展阶段保障软件供应链安全,对于我国营造安全、可控的网络空间环境具有重要作用。

一、软件供应链现状

开源网站的普适化趋势,使众多软件开发人员在软件产品的开发过程中,通常参考或基于已有开源项目的实现框架进行二次开发;而大多数软件开发人员缺少识别和处理代码安全风险的意识及能力,因此,开源软件模块或组件的重复使用势必会导致代码中的漏洞、恶意代码、“后门”等潜在隐患被广泛传播,对国家信息安全带来严重危害,从而造成难以估量的损失。

1.美国对软件供应链风险的担忧及应对举措。出于对供应链完整性和脆弱性的担忧,美国政府制定了多项政策或措施,用以保障信息通信技术(ICT)供应链安全。在供应链安全的保护和控制方面,为阻止美国公司使用源自外国对手的电信技术,如华为5G等,美国总统特朗普于2019年5月签署了关于名为《确保信息和通信技术及服务供应链安全》的行政令,该行政令的核心目的在于保护美国关键基础设施安全,防范间谍渗透美国供应链。此外,在2019年9月举行的CyberCon大会上,美国联邦政府官员表明美国防部早已将五角大楼供应链安全纳入重点关注范围,其发言指出:“只凭软件从美国公司购买的,并不意味着所有的代码都是在美国编写的。”因此,美国五角大楼正致力于开发能够审查软件来源的工具,从而保障软件供应链安全。2019年11月27日,美国商务部发布了《确保信息通信技术与服务供应链安全》的法规草案,该草案旨在对某些可能危及美国关键基础设施或数字经济、美国国家或公民安全的信息通信技术和服务交易进行识别和评估,规避软件供应链风险。不难发现,软件供应链安全是信息时代背景下保障国家机构和企业安全可持续运行的基础;切实保障软件供应链安全既体现了国家在技术层面的领先,也有效避免了非法组织或个人滥用信息技术所带来的潜在风险。

2.开源软件代码的使用所面临的风险不容忽略。软件开发人员从开源库中下载或直接使用已有代码组件,并不检查代码的来源是否安全、可靠,若是年代较为久远的代码且近年来未经过更新,则此开源组件的漏洞极有可能被不法分子利用,造成巨大的损失。由美国Synopsys公司的网络安全研究中心发布的《2019年开源代码安全和风险分析报告》中,基于2018年审计的1200多个商业代码库中的匿名数据,对软件产品所调用开源组件的安全性进行了讨论。报告指出多个行业的代码库中包含超过50%的开源代码,然而能够准确找出开源代码使用情况的企业却寥寥无几。许多软件所使用的开源组件并未保存准确、全面、最新的清单。此外,开源软件的特点在于其更新速度较快,由于开源社区的支持,开源软件的补丁发布速度要快于专有软件供应商,而多数企业或机构所使用的开源软件产品,很可能并没有安装相应的补丁。

3. 软件供应链成为信息时代背景下不同组织和个人的新型攻击工具。软件供应链的安全问题在当今网络信息时代具有较强的隐蔽性,因此,软件供应链攻击作为复杂网络环境下的一种新型攻击工具,已成为各个国家、组织或个人防范竞争对手危害己方基础设施或企业的重点关注对象之一。美国担心其对手通过将供应链泄漏掺杂于网络入侵中威胁美国金融部门或关键基础设施,或利用供应链泄漏等“非传统”方法进行情报活动。作为一种较为隐蔽的新型攻击手段,软件供应链攻击能够绕开传统安全产品的防护,通过侵入合法软件并篡改数据的方式进行伪装,实现大范围的传播并攻击合法软件的用户,造成巨大损失。

二、新时代背景下的软件供应链安全防护

确保软件供应链安全至关重要。从多个角度来看待软件供应链存在的不同安全风险,有针对性地采用多种方法或技术手段来确保软件供应链安全,维护网络空间安全,对于保障国家信息安全、企事业单位稳定运行具有重要意义。

1.采用专业工具和服务实现对软件产品的代码审查和缺陷检测。从技术防范的角度来看,软件产品的代码审查目标纷繁复杂,如代码的缺陷检测、漏洞挖掘、漏洞危险性识别、软件许可证鉴别、所有权验证、代码克隆检测等。

在当前开源软件普遍使用的环境下,需重点关注被调用开源代码的组件情况和重要性、开源许可证类型及使用风险以及未经修补的软件种类和数量等。相关机构或企业可考虑开发某类能够检测软件产品并报告其代码来源的工具,即通过该类软件工具,用户能够了解所使用的软件产品中调用开源组件的情况及风险等级。

由于职能分工不同,部分机构或企业很可能不具备专业的软件工具开发能力,此时可考虑采购专业公司或企业的产品或服务,通过查找上千万行源代码或二进制代码中存在的安全缺陷并进行深入分析和确认,得到软件代码构成和包含的开源软件,发现源代码或二进制软件中存在的第三方组件及包含的安全漏洞等,实现对金融、能源、电子政务等重要行业的软件代码检测,帮助用户从根源上减少30%〜70%的软件安全问题,从而保障软件供应链安全。当前典型的软件供应链安全检测系统能够从以下四个方面分析软件供应链安全保障能力,包括:1)软件供应链成分分析(图1),能够分析软件供应链中涉及的源代码种类及对应的文件数量;2)软件源代码克隆分析(图2),能够检测软件内部的原创代码分布,以及引用代码的文件级克隆和代码级克隆情况;3)开源组件漏洞分析(图3),能够检测软件供应链使用的开源组件内隐藏的安全漏洞情况,并进行安全风险等级评估;4)组件许可证兼容风险分析(图4),能够检测因软件供应链整体或部分引用开源组件会涉及的GPL、BSD、MIT、Mozilla、Apache和LGPL等软件许可证情况,分析软件许可证的兼容性和限制条件,揭示相关知识产权风险。

2.加强对软件供应链攻击的分析和防范。在常见的软件供应链攻击中,间谍组织或黑客等不法分子实现恶意软件传播的手段主要有两种,一种是在用户进行软件下载和安装时进行攻击,另一种则是在用户进行软件升级和维护时进行攻击。例如,通过在软件中进行广告推送的方式,诱导用户下载已植入恶意代码的“合法软件”。虽然付费软件的质量、服务及安全性等具有较高的保障,但多数企业的员工所使用的软件产品是通过互联网自行安装的免费软件。由于免费软件的安全性差异较大,造成软件供应链攻击的风险相对较高。因此,部分企业尝试在内部自建限定官方来源和加密同步协议的软件源,通过快速收敛源头的方式实现对软件供应链攻击的防范。

3.应用人工智能技术开展软件代码漏洞挖掘和缺陷检测的探索。开源软件开放、共享、自由的特性,势必会为软件供应链带来新的安全风险。各个企业、研究机构等均加强了对新技术手段在各自业务领域的应用研究探索。在软件供应链安全防护领域中,各个高校早已开展了将人工智能技术应用于软件代码漏洞挖掘和缺陷检测领域的探索。例如,中科院软件所、华中科技大学、中国人民大学等科研院校尝试将人工智能的深度学习技术应用于软件漏洞挖掘领域,用于保障软件供应链安全。人工智能的概念由来已久,软件漏洞挖掘领域中的传统机器学习技术即为人工智能的一个子分支领域,而从2014年开始便逐渐火热的深度学习技术则分属于机器学习领域的一个子分支领域。传统机器学习技术与深度学习技术的区别在于,深度学习更适用于从大规模数据中自动或半自动地进行缺陷特征提取,其对数据的学习能力更强。针对当前软件类型和数量成倍增长、软件种类庞杂且规模庞大的软件供应链市场现状,人工智能技术与保障软件供应链安全的需求更为贴合,相信会在软件代码漏洞挖掘和缺陷检测的研究探索和应用中取得更好的成绩。

三、总结与展望

面临数量繁多、涉及领域广泛、与用户信息接触最为直接的各类软件产品,目前尚未形成一套防御理论完备、技术手段长久有效的软件供应链防护体系。因此,在国家层面已高度重视软件供应链安全防护的前提下,相关研究机构、企业单位和部门应该尽可能早的做好预防手段和应对措施,以便应对软件供应链安全防护领域未知的技术变革所带来的冲击。

1. 加强软件供应链的安全审查力度,落实软件供应链的安全保障责任。开展软件供应链安全审查,能够从技术和管理层面上有效地监督和推动重要企业持续提高软件供应链安全保障程度。在审查过程中,应重点关注软件产品开发生命周期中,是否制作了完整、准确、即时的开源软件组件调用清单;是否掌握软件组件隐藏的安全漏洞或缺陷;是否调用没有许可证或使用自定义许可证的开源组件;是否使用已停止开发和维护的代码等。落实软件供应链的安全性、透明性、可控性审查,切实保障软件供应链安全,落实软件供应链的安全保障责任。

2.在软件供应链安全防护领域,加强对新代码防护手段和技术的应用探索。互联网技术的高速发展,在为软件供应链安全防护带来新风险的同时,也为重要行业及专业软件代码审查人员带来了新的挑战。在恶意代码数量呈指数级增长的态势下,可应用人工智能技术对恶意代码及其变种进行特征提取和分析,实现恶意代码指纹库的构建,以及病毒变种和木马变种的检测。或借鉴区块链应用中智能合约的隐私保护技术,如环签名、同态加密等,实现软件产品中隐私数据的保护。因此,需加强新代码防护手段和技术的应用探索,对可能的软件供应链安全风险进行提前预知,将不法侵害及早扼杀,保障软件供应链安全。

3.加强开源软件资源管理,推动构建安全可靠的软件供应链可信组件资源平台。开源软件资源共享使用导致的风险扩散是威胁软件供应链安全的主要隐患之一,构建安全可靠的软件供应链可信组件资源平台,可有效避免大型软件中恶意代码、后门软件和缺陷代码的引入和扩散。国家有关主管部门、权威测评机构、大型互联网企业等应加强合作,共同推动该资源平台的建设和应用,充分利用数字技术和网络技术,最大限度地保障软件供应链可信组件资源的维护和监督,增加软件供应链攻击成本和难度,实现软件供应链资源的自主和可控。

(本文刊登于《中国信息安全》杂志2020年第3期)

声明:本文来自中国信息安全,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。