2022-04-29
摘自:《网络安全技术和产业动态》2022年第4期,总第22期。
软件供应链是软件生产、使用及流通过程的上下游企业与用户所形成的网链结构。软件供应链安全可以理解为,在软件生产及流通的整个过程中与软件设计、开发、应用相关的编码设计、检测工具、运行载体、供应商和最终用户等各环节所存在的内外威胁和隐患,及其必须采取的相应对策。
软件供应链这一概念源于美国军方军用需求主导的编程服务供给模式。1942-1962的防空大型计算机项目(SAGE)率先对软件供应链体系进行实践,距今已有将近80年。
信息化时代开始至互联网时代早期,安全威胁主要以“木马蠕虫”形式通过储存介质进行传播,其更多的是针对个人终端及破坏性指令对操作系统及系统软硬件实施攻击。其传播范围及影响也相对较小,安全视角也未提升至整个供应链安全范畴。随着产业链逐渐发展,大量新技术的引入令软件风险防护范围从个体层面提升至供应链层面,安全视角发生了重大变化。
2021年5月,美国发布《改善国家网络安全》行政命令(Improving the Nation’s Cybersecurity),其中一项重点任务就是加强软件供应链安全,并提出了较为系统的指导建议。其中包括:建立专项工作组,确定“关键软件”定义及范围,建立关键软件清单,对清单涉及产品进行审查,完善对标达标产品清单的采购制度,发布相应指南及基本测试工具,要求相关机构针对软件供应链安全建立安全评级体系。
近年来,我国高度重视关键信息基础设施保护和数据安全工作,相关主管部门也已关注软件供应链安全问题并提出指导意见与要求,如针对关键设备软件采购建立准入机制与供应商审查机制;针对开源场景开展安全状况摸底;针对软件供应链安全管理规范和技术标准组织标准规范研究起草工作。监管单位从软件采购、开源技术引入、供应链整体安全等角度分别切入,不同程度地开展了对行业及产业的指导工作。但从整体来看,我国对软件供应链安全管理尚未形成完整链条的无缝连接,体系化的部署和指导还处在初期阶段。
软件供应链在不断的技术迭代与产业发展中逐渐形成了包含复杂技术体系、多元产品组件及各路开发者、供应者与消费者为一体的庞大产业生态,软件供应链中的关键“软件产品与组件”的组成成分中蕴含了大量未知的风险,导致软件供应链安全管理所面临的复杂性和难度非同一般,主要体现在:
1.软件供应链构成复杂。软件开发标准、版本、相关企业都处在高度的不确定中,不同时期开发的软件所遵循的标准、编译工具、运行环境等元素都处于动态的发展变化中,缺乏高效的梳理工具与手段,获取准确的资产清单难度较高。
2.对软件供应链安全核心技术缺乏管控能力。一是软件供应链底层组件自主可控度低。软件供应链最底层的编程软件、编程语言、开发环境、开源组件等软件开发基本要素几乎都被国外产品所垄断。二是我国企业在软件开发的主流开源社区缺乏主导技术发展的能力与话语权。一旦国外产品授权被封控,必将对我软件供应链造成巨大冲击。三是对于软件设计开发过程中被植入恶意代码及后门程序为软件产品埋下安全隐患,需要高人一筹的技艺对抗。这是软件供应链安全面临的长期挑战。
3.软件供应链安全预警体系未完全建立。美国已经提出建立统一的供应链安全预警平台与预警机制,确立了安全审查制度,对风险及时进行上报并在行业内统一指挥安全防护措施。我国起步较晚,未针对软件供应链形成预警机制。
美国最早提出宏观的供应链安全管理(SCRM),后细化到信息通信技术供应链安全管理(ICT-SCRM),又进一步提出软件供应链安全管理。
美国政府要求美国国家标准与技术研究院(NIST)牵头开展软件供应链相关标准的研究。要求标准应能够反映评估对象的基本安全水平,标准设计也应该对目标产品已通过的测试和评估进行统计与考量。指南建议供应商测试其软件源代码的最低标准。NIST应检查所有相关信息、标签和激励计划,采用最佳实践,并确定、修改或开发推荐的标签或分层软件安全评级系统。建立试点项目,并审查方案侧重于消费者的易用性和安全性。
我国软件供应链安全针对平台建设、制度保障、配套工具、政策引导等方面开展了相关工作。软件供应链安全制度建设逐步加强,有关行业管理部门依据国家网络安全法规针对性地制定和发布了一系列政策指导文件。在各方努力下涌现出一批国产开源社区,如木兰开源社区、Openl启智社区、华为openGauss等开源社区。通过对开源技术进行孵化,将技术领先国家优秀的开源理念及管理模式经验加以延续,并辅以符合我国自身发展特性的管理工具和方法,保证开源软件的自主可控。各大安全厂商也在加强配套工具建设,竞相推出各自的软件供应链安全保障方案,研发专用的代码扫描,组件成分分析工具,帮助用户对自身了解自身软件资产情况,提升软件资产透明度。
软件供应链安全问题所造成的影响已经不单纯局限在软件产品层面,而是会影响到软件供应链下游更广泛的领域。为进一步加强软件供应链安全保障,我们提出以下意见和建议:
1.健全软件供应链安全管理机制。在国家供应链管理体系中,加强软件供应链安全管理体系建设,推进软件供应链安全管理、技术的政策、法规、标准和方法研究,并组织实践指导落实。
2.建立软件供应链安全监测、评估、预警体系。开展软件供应链安全摸底检查,加强对软件供应链安全全链条的监测、风险评估和威胁预警,提升软件供应链安全风险发现、分析、处置、防护能力。
3.建立信创软件开源体系,形成自主可控的开源社区与平台,在重点行业和关键领域实施软件许可证机制,保证软件供应链关键环节核心技术自主可控。
微信公众号