开源带来新风险,软件供应链溯源技术需加强

作者:中国信通院泰尔系统实验室 秦书锴 张治兵 倪平 责任编辑:吕萌 2020.10.22 08:14 来源:通信世界全媒体

通信世界网消息(CWW)随着软件规模的扩大,自行编写全套软件变成了越来越困难的事情,而开发过程的分散、软件模块化,更是加大了自行编写的难度,于是大量引入开源软件成为了主流的解决方案。现在软件的实体可以理解为一个软件包的总和,这些软件包由各种上游的供应商提供,而这些供应商既包括了大型公司的开源项目,也包括了大量的业余开发者,这使得软件供应链越来越复杂,而开源软件本身的安全问题也随着软件供应链的传递,快速地传递到各个软件当中,造成巨大的影响。

为了解决这种随着软件供应链引入带来的问题,针对软件中所采用的供应链溯源技术也愈加重要,对于存量代码如何进行溯源分析,在引入新的开源软件时如何评判界定引入风险等都需要供应链溯源技术。

开源软件快速增长,风险逐渐凸显

开源软件使用范围广泛,Gartner调查显示,全世界超过95%的IT组织在关键任务中使用开源软件,开源代码在新代码开源软件中的占比高达90%。据预测,到2022年,IT产品中开源软件的比例将以每年30%的复合增长率增长。而近期发布的《开源产业白皮书》和《中国开源项目Grank分析报告(2019)》也表示开源软件在中国受到了极大的关注。

但是开源软件在为开发者提供便利的同时,引入了大量潜在的漏洞、许可证风险等,增大了漏洞爆发的影响范围,也增加了管理成本。据WhiteSource调研数据,2019年公开的开源软件漏洞数已激增至6000多个,同比增长了近50%,而随着软件供应链中开源软件规模越来越大,潜在的漏洞数量会越来越多。由于开源软件的特性,开源软件的漏洞更加容易被写成自动化的攻击工具,给软件行业带来了巨大的安全风险。2015年到2020年开源软件中漏洞武器化的数量一直居高不下,而对软件供应链的溯源技术,在面对已经开源漏洞武器化的网络攻击中,提供了强有力的保障。

困扰着开源软件行业的不仅仅是漏洞,还有许可证安全风险,因为引用开源代码而带来的相关许可证的法律问题、商业侵权的问题也越来越突出。所以对开源软件的供应链追本溯源就成为了各个公司、团体最棘手的问题,也逐步成为了学术界研究的热点。

而软件供应链的多层引用足够复杂、引用颗粒度不同导致了对溯源技术的准确度、效率有较高的要求,很多代码堆由于管理者长期不重视供应链的安全风险,编码也不够规范,导致供应链问题堆积,很多开源软件来源已经不可考据,也极大地增加了溯源的难度。同时,常见的商业软件均会有加固、混淆等保护措施,也给溯源技术带来了很大的挑战。

总的来说,一个好的软件供应链溯源技术要能够满足以下3个要求:一是能够分析软件引用开源软件的版本;二是能够分析引用的开源软件中是否有交叉引用、嵌套引用等情况;三是能够在溯源过程中对抗混淆、加固等技术。

现有的三种溯源技术

随着开源软件的快速发展,开源软件供应链的引用错综复杂,按颗粒度区分,有代码级引用、开源软件级引用、应用级引用等,如何溯源一个软件中所有引用的开源软件,并分析其版本逐步成为了业界研究的热点和难点。目前供应链溯源技术大致有3种不同类型:基于基准库的溯源技术、基于特征码的溯源技术、基于机器学习的溯源技术。

基于基准库的溯源技术

基准库中包含常见软件供应链中的软件及其各个历史版本,在对被溯源对象进行拆解、反编译等分析之后,收集到被溯源对象中使用的软件的名字,再与基准库中的软件进行比较,分析出被溯源对象软件供应链的整体情况及版本。

基于基准库的供应链溯源技术存在以下问题:首先,基准库需要经常更新,且越全面越好,这就给基准库造成了很大的运维压力;其次,基准库的技术对于版本号的支持并不十分友好,很难溯源出某一个出问题的版本的使用情况,只能筛查出是否使用过某个软件,再进行人工判断是否为有问题的版本;再次,基准库溯源技术不能解决引用嵌套的问题;最后,该技术并不能解决混淆、加固等技术给软件供应链溯源带来的问题。

基于特征码的溯源技术

该技术建立在基准库溯源的技术的基础上,基于大量的关于软件供应链特征的相关研究,使用指定的特征码提取技术,对常见的候选开源软件及不同的版本进行特征码提取,因此能解决基准库溯源技术存在的问题。2016年ACM SIGSAC 会议的一篇文章对Android的SDK进行了深入研究,提出了一种能够抵御混淆的特征码提取技术,该技术除了加入软件的相关特征之外,也加入了对使用该软件的层级结构的特征,提高了检测效率,为每个包提供了一个电子指纹特征,能够将软件中引入的包划分为官方、私人、第三方等,同时也将溯源结果和漏洞开源软件关联起来,提供了部分检测已知漏洞的能力。2017年《密码学与安全》杂志发表的一篇文章提出的OSSProlice将归一化类签名和函数质心作为特征,与基准库中源文件的特征进行比对达到溯源的目的,且可以对开源协议进行违规检测。

该技术因为准确、快速,能够溯源软件供应链版本,能够溯源混淆、加固后的代码等特点,成为了最流行的检测方法,但是由于特征码高度依赖于软件的语言、编译环境等外部因素,所以需要前期投入大量的研究实践,且不同的语言需要重新研究,同时该方法对于开源软件的嵌套引用问题并不能很好的解决,所以目前只在局部地区使用,如何能做到快速泛化是该技术目前的主要研究方向。

基于机器学习的溯源技术

该技术属于较新的研究领域,目前的研究仍然集中在广告开源软件的溯源,IEEE第九届智能化国际会议提出的AdDetect将开源软件文件分解成单个模块,然后通过神经网络算法分层特征识别进行解耦,提出特征向量构建检测模型。《国际环境研究与公共卫生》杂志一篇文章提出的PEDAL对软件的开源软件提取语义特征,训练分类算法。

该技术有较好的泛化与迁移能力,也能够满足供应链检索技术的要求,但是入门门槛较高,且目前的研究集中在广告开源软件的溯源,拓展到其他的软件供应链仍需进行后续研究,且对抗随机性混淆技术效果并不明显。

现有的开源软件供应链溯源技术虽然已经取得进展,但均存在一些不足之处,基于基准库的检测效率虽然高,但是对混淆后的代码支持并不好;基于特征码检测的方案能够很好地应对混淆代码,但是依赖特定的语言,对不同的开源软件和更新的版本需要持续投入,所以仍有研究空间;基于机器学习的溯源技术检测范围小,但有很大的研究潜力。

随着开源软件规模越来越大,安全问题也愈加严峻,对于开源软件供应链溯源技术的需求也越来越迫切,需要通过管理和技术相结合的方式做大、做全基准库,对不同基准库的特征提取更加准确、更加快速。

未来针对供应链溯源技术的发展将主要针对两个方向:一是提高准确率和覆盖面,降低误报率;二是与供应链漏洞预警、漏洞持续跟踪、安全开发生命周期(Software Develop Lifetime)、漏洞态势感知技术相结合,形成综合性供应链管理平台,不止要更快地对供应链进行溯源,更要结合溯源结果实现真正的全生命周期的管理和安全保障。

通信世界网版权及免责声明:
1、凡本网注明“来源:通信世界全媒体”及标有原创的所有作品,版权均属于通信世界网。未经允许禁止转载、摘编及镜像,违者必究。对于经过授权可以转载我方内容的单位,也必须保持转载文章、图像、音视频的完整性,并完整标注作者信息和本站来源。
2、凡本网注明“来源:XXX(非通信世界网)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
3、如因作品内容、版权和其它问题需要同本网联系的,请在相关作品刊发之日起30日内进行。
发表评论请先登录
...
热点文章
    暂无内容