随着软件产业的快速发展,现代软件大多数是被“组装”出来的,不是被“开发”出来的。各类信息系统的软件供应链也越发复杂多元,复杂的软件供应链会引入一系列的安全问题,导致信息系统的整体安全防护难度越来越大。如今软件供应链已经成为国内外对抗的焦点,直接影响关键基础设施和重要信息系统安全。
一、近期某软件供应链安全事件及原因分析
近期SonarQube软件供应链安全事件频发,充分揭露出软件开发使用第三方组件,带来了便利同时也带来了巨大的软件供应链安全风险,直接影响到各行业安全健康发展。在“无科技不软件”背景下,软件新业态对关键核心技术的依赖程度越来越高,一旦供应链某个环节出现问题,将对我国各行业的安全造成重大影响。
事件详情描述:
2021年10月,ATW黑客团伙在境外论坛第一次出售我国单位相关系统的源代码,并称能直接访问到内部系统。随后该黑客组织又陆续发布我国多家重要单位的系统源代码、用户数据、数据库,我们追踪ATW活跃记录,整理出以下时间轴:
深入分析ATW事件就会发现,此次持续性的源码泄露事件根本原因在于各企业的SonarQube平台被入侵。SonarQube系统在默认配置下,会将通过审计的源代码上传至SonarQube平台。攻击者利用该漏洞,可在未授权的情况下获取SonarQube平台上的程序源代码,轻松窃取项目源代码数据。
进一步讲,此次事件不只是单纯的代码泄露事件或是攻击事件,而是SonarQube平台安全事件、乃至供应链安全事件,这也再次反应了我国供应链安全的严峻现状。
事实上,长久以来,软件供应链安全的重要性和迫切性已逐渐被行业公认,主要体现在以下几个方面:
1)开源软件和第三方组件的使用遍布所有软件中,第三方库组件代码量占全部软件代码量的80%以上。然而,第三方组件却是黑客最容易利用的软件,一旦某一个第三方组件漏洞被利用,使用该第三方组件的所有软件都会被利用。
2)第三方组件库主要在美国,Github作为最大的第三方代码库,几乎囊括了90%以上的第三方开源组件,我国管理机构难以对其使用进行安全审计,并建立合理的分发监管制度。
3)源代码是软件的原始形态,位于软件供应链的源头。源代码安全已成为软件供应链安全的基础,然而面对源代码安全,主要依靠人工方式去检测软件供应链中的风险,导致效率低,漏报高,且过度依赖海外产品,国内缺乏可有效分析软件成分、测量供应链安全的技术和手段。
我国经数年发展在软件供应链方面已取得一定成果,如开源软件基金会、软件供应链安全标准和管理办法等。但目前我国在软件供应链安全方面的基础比较薄弱,更缺乏一套极为关键的软件供应链安全检测系统,能及时有效的发现、分析、处置、防护软件供应链安全风险,整体提升软件供应链安全水平。
二、国内外软件供应链安全检测技术研究进展
(一)美国在软件供应链安全检测技术上早有布局
美国国防部下属的DARPA(美国国防高级研究计划局)4年内投入$59,000,000(约3.5亿人民币),来尝试解决软件供应链安全检测问题。在2013 年,DARPA高调发布一项旨在针对关键系统、软件、固件进行恶意软件供应链中的后门自动检测的项目—VET,时长5年,参与方涵盖主要军工企业、高校。工业界近一两年也开始把目光投到软件供应链安全这个命题之上,虽然还没有规模化的研究体系,但是从业界动态上来看,主要大型研究机构和企业已经开始了自己的研究和实践。例如在作为安全行业业界风向标的美国RSA2018会议上,聚集了6场次关于软件供应链安全技术的主题演讲,可见对这个方向可能爆发新型、重大安全威胁事件的预判是一线研究与企业一致的看法。
(二)我国在软件供应链安全检测技术上有所尝试
尽管国内的安全对抗(CTF、DefCon)比赛层出不穷,比赛形式多种多样,比赛数以千计,但本质上都是手工方式的比赛,不是自动化的方法。人自身的能力是比赛最大竞争力,带来的问题是技术无法落地。为此,2018年阿里巴巴举办了软件供应链安全大赛,旨在通过自动化的方式发现软件中的后门,该比赛历时1年,汇聚了国内外多个著名战队,包括了中科院信工所的G15, 北京大学的SeBOT、北航的Lancet、国防科大的Holiday、360等,比赛中蓝军战队模拟软件供应链中的“黑客”经验在代码中故意植入后门,而红军必须要采用全自动的方法快速发现后门。该比赛受到了国内外广泛关注,是国内第一次也是目前唯一一次采用软件供应链安全检测的尝试。阿里巴巴软件供应链安全比赛之后,尽管掀起了一股软件供应链安全检测技术的热风,但由于在技术门槛高、完全自动化运行等特点,也导致了缺乏参与基础,只有十几个队伍在参与。由此目前的软件供应链检测技术还是停留在人工检测水平,与美国相比相去甚远。
(三)技术门槛相对较高,国外工具在该领域处于垄断
软件供应链安全检测技术本质上说是代码后门检测的技术应用,也就是代码分析技术的应用。代码分析技术作为软件编译技术的分支,多年来处于国外垄断状态,因为其对编译技术基础要求高,底层算法能力要求强。国内已出现了一些厂商,典型的如核心源于北京大学的鸿渐科技、中科院的中科天齐、港科大的源伞等,由于国内团队成立时间短,尚未形成足够的积累完全取代国外工具。如新思的Coverity、BlackDuck、Perforce的Klocwork等。
软件成分分析工具能够在一定程度上解决第三方组件的安全检测问题,但目前大多数软件开发企业并没有足够重视,相关的标准也没有强制实施。
从技术上看,目前国产软件成分分析工具也和国外同类工具无论从检测粒度、效率到库的积累数量,均存在差距,需要一段时间技术沉淀。相对于软件成分分析,代码后门检测技术我国基本处于起步阶段,也没有像美国DARPA这样专项基金投入。国内仅有的代码分析技术团队,由于市场和政策等原因没有在该方向发力,导致后门检测目前均为手动检测,存在非常大的不确定性。
三、供应链安全保障工作落地建议
当前,非常多的安全服务企业已经针对供应链安全保障工作提出了详细的可行建议,此处不再赘述基本流程,我们着重说明以下两点:
供应链安全下的DEVSECOPS和安全左移
实施任何工作和工具都不能独立于组织原有流程之外,理想的供应链安全保障工作应该是借助自动化工具,将工具工作流和安全管控工作流融入企业原有研发流程,从而实现安全左移达到安全问题早发现的目标,并支撑DEVSECOPS的建设以保障敏捷变更的安全。
大型企业建立自己的可信代码仓库
相对于检测工作,建立组织的可信代码仓库是一个夯实基础、意义深远、去除大量重复工作的过程,这就要求对应的自动化工具具备可信组件识别、相似漏洞分析、漏洞影响范围定位、洞悉组织资产清单、将漏洞发现和可信代码仓库识别进行整合闭环的能力。
四、相关政策
尤其是当下中美战略博弈越发复杂,国内急迫突破国外技术垄断。各单位部门也陆续出台相关政策,共同保障供应链安全工作,推进国内整个安全行业的高质量发展。
(一)《关于规范金融业开源技术应用与发展的意见》
近期中央网信办、工信部、人民银行等部门发布《关于规范金融业开源技术应用与发展的意见》,进一步规范金融机构合理应用开源技术,提高应用水平和自主可控能力。
(二)网络安全产业高质量发展三年行动计划(2021-2023年)(征求意见稿)
工信部网络安全管理局发布网络安全产业高质量发展的三年行动计划征求意见稿,意见稿指出,未来的网络安全行业发展目标包括技术创新和企业发展,重点任务之一是加强共性基础支撑,加快发展源代码分析、组件成分分析等软件供应链安全工具,提升网络安全产品安全开发水平。
(三)中国信通院《金融行业开源白皮书》
开源软件市场巨大,从基础软件到应用软件都充斥着大量的开源软件。受金融机构转型推动和生态合作伙伴影响,为满足金融用户的实际需求,开源技术已经逐步成为金融机构构建信息系统的重要选择。金融行业采用开源技术已经成为一种趋势,开源技术可以助力金融机构提高科技实力、协助保障信息系统安全、进一步推动企业科技创新和业务创新。
(四)公安部网络安全等级保护2.0
等保 2.0 标准首次提出安全开发流程的要求,应在软件开发过程中对安全性进行测试,在软件安装前对可能存在的恶意代码进行检测,应在软件交付前检测其中可能存在的恶意代码,应保证开发单位提供软件源代码,并审查软件中可能存在的后门和隐蔽信道。