期刊介绍
期刊导读
2020软件供应链:开源带来的下一代软件供应链,
恶意网络攻击者对软件供应链的攻击,正向“上游”组件蔓延,再借助开源软件的“信任链”和影响力,导致的结果之一就是破坏性更大。
Sonatype 的《2020软件供应链报告》报告提出,下一代软件供应链攻击正在到来,显著特点就是刻意针对“上游”开源组件,进行更主动的攻击。而此类攻击出现的背景正是开源组件和容器的广泛采用。
软件供应链及攻击
软件供应链一词常出现在科技公司和研究人员的表述中,Dell EMC 的产品管理总监 John Mark Walker 曾通过对比硬件供应链,描述传统软件供应链。
他认为,硬件的供应链是来源于不同地区的、许多不同合作伙伴的零部件,传统软件供应链大多是定义企业内部制作软件,以及从第三方获得一些商业软件的过程。
在此模式下,供应链上的大部分来源于公司内部,可能来自多个工程团队,一小部分软件来源于公司外部,因此供应链主要由内部产品定义,工程团队负责管理。另外来自第三方供应商的软件在组合时需要做合规检查,获得许可。
(简单的、一般的传统软件供应链)
另一个流传较广的定义是按照阶段划分,认为软件供应链通常包括三个阶段:软件研发阶段、软件交付阶段、软件使用阶段。
这种划分通常也有助于区分不同种类的软件供应链攻击,许多大型科技公司对此都有专门的讨论。腾讯安全平台曾总结软件供应链攻击环节,阿里巴巴的工程师也曾例举不同阶段的攻击面:
一是生产节点被攻击,包括软件开发涉及到的软硬件开发环境、开发工具、第三方库、软件开发实施等等,软件开发实施的具体过程还包括需求分析、设计、实现和测试等,软件产品在这一环节中形成最终用户可用的形态。
软件研发阶段的攻击面包括 IDE 开发工具污染攻击、三方库漏洞和后门攻击、直接源码污染攻击。
二是交付阶段,交付节点被攻击,如软件上线的平台、硬件。用户通过软件官网、公共仓库、在线商店、免费网络下载、购买软件安装光盘等存储介质、资源共享等方式获取到所需软件产品的过程。
受攻击对象比如著名的软件下载站、Python 官方镜像源、Github 等。 攻击面如软件存储替换和篡改攻击、传输劫持和捆绑下载攻击。
三是软件使用阶段,使用节点即软硬件的使用者被攻击。使用软硬件产品的整个生命周期,包括产品更新升级、维护等过程。 攻击面包括升级劫持污染攻击、运行环境后门和了漏洞攻击、三方库 0Day 漏洞攻击。
以上是从定义方面,较为宽泛地看传统软件供应链以及一般软件供应链攻击。但随着云原生和开源的发展,一些新的看法与攻击出现了。
开源与云原生时代的软件供应链
前文 John Mark Walker 所说的传统软件供应链,是在对比包含更多开源组件的软件供应链。John Mark Walker 认为,随着开源软件应用在增多,情况已经变得混乱了:未经验证的许可证、未经测试的仓库、以及狂野的开发者,这些要素使得软件供应链看上去似乎不可管理。开源导致至少增加了一个额外的层次:
某个角度看,开源组件插入到产品中,和第三方商业组件插入到产品中,并没有本质差别。但实际上,关于上游开源组件,多数源代码仓库没有任何商业保证。
此时要么是建立自己内部的审核代码和应用产品管理流程的方法,或者是靠中间厂商,即采用开源软件的商业发行版,如 RedHat 和 SUSE 提供的 Linux 企业版产品。
与开源密切相关,并改变传统软件供应链的还有云原生。容器概念和 Docker、Kubernetes 等项目的出现,改变了软件的交付方式,进而影响到软件供应链。
阿里技术团队曾总结容器和 Kubernetes 的引入带来的安全软件供应链管理变化:
- 发布和迭代更加频繁,容器的易变性也使得安全风险稍纵即逝;
- 更多的不可控三方依赖,一旦一个底层基础镜像有了安全漏洞,会像病毒一样传递到上层;
- 更大范围的全球快速分发,在分发过程中的攻击也会使得在末端执行的时造成大规模安全风险。
《2020软件供应链报告》中提到的“下一代软件供应链”攻击的变化,也正是基于开源和与原生的发展——下一代软件攻击数量激增的背景是,开源加速了创新,也带来大规模的使用,到2020年,世界各地的开发者对开源软件组件和容器的需求,将超过1.5万亿个
文章来源:《下一代英才》 网址: http://www.xydbjb.cn/zonghexinwen/2020/0828/733.html