软件供应链安全
2022-08-29 12:24:36
# 网络安全
1. 概念
供应链攻击是一种危害和破坏性极强的网络攻击,是针对组织供应链(上游、中游、下游)中的薄弱环节实施的网络安全攻击,涉及范围广,且难以检测。
如今,软件的依赖关系非常普遍。 经常见到项目使用数百个开源依赖项来实现某种功能,而项目作者不必亲自编写该功能。这可能意味着大多数应用程序都包含并非项目作者创作的代码。第三方或开源依赖项中可能存在的漏洞多半是依赖项,因为项目作者不能像自己编写的代码那样严格控制这些依赖项,可能会在软件供应链中产生潜在的安全风险。
举个软件供应链攻击的例子:当恶意代码被故意加入依赖项中,使用该依赖项的供应链将代码分发给受害者时,就会发生这种攻击。 供应链攻击是真实存在的。攻击供应链的方法有很多:从直接以新贡献者的身份插入恶意代码到在别人不注意的情况下接管贡献者的帐户,甚至破解签名密钥来分发不属于正式依赖项的软件。软件供应链攻击本身很少是最终目标,但提供了一个让攻击者插入恶意软件或为将来的访问提供后门的机会。
2. 软件供应链阶段
软件供应链包括三个阶段:软件研发阶段、软件交付阶段、软件使用阶段,不同阶段的攻击面如下:
阶段 | 攻击面 |
---|---|
软件研发阶段 | - IDE开发工具污染攻击 - 三方库漏洞和后门攻击 - 直接源码污染攻击 |
软件交付阶段 | - 软件存储替换和篡改攻击 - 传输劫持和捆绑下载攻击 |
软件使用阶段 | - 升级劫持污染攻击 - 运行环境后门和漏洞攻击 - 三方库0Day漏洞攻击 |
3. 漏洞来源类型
- 合法供应商引入的漏洞
- 篡改或伪造组件的漏洞
- 编码过程引入的漏洞
- 开源组件引入的漏洞
4. 软件供应链的攻击类型
攻击类型 | 事件 |
---|---|
预留后门 | 2013 年 6 月 棱镜门事件 |
开发工具污染 | 2015 年 9 月 14 日 XcodeGhost 事件 |
升级劫持 | 2017 年 6 月 27 日 NotPetya 勒索病毒事件 |
捆绑下载 | 2017 年 8 月 17 日 WireX BotNet 事件 |
源代码污染 | 2020 年 12 月 13 日 SolarWinds Orion 攻击事件 |
5. 软件供应链安全治理方法
阶段 | 方法 |
---|---|
体系构建阶段 | - SDL 软件安全开发生命周期 - DevSecOps ( 核心理念:安全是整个 IT 团队每个人的责任,需要贯穿从开发到运营整个业务生命周期每一个环节才能提供有效保障) |
设计阶段 | - 软件供应商风险管理流程 - 软件供应商评估模型 - 软件供应商风险管理的作用 |
编码阶段 | - 构建详细的软件物料清单 - 使用基于 SCA 技术(软件成分分析)的工具 |
发布运营阶段 | - 建立成熟的应急响应机制 - 构建完善的运营保障工具链 |
6. 软件供应链安全应用实践
应用 | 含义 |
---|---|
可信研发运营安全能力成熟度模型 | 汲取 SDL 与 DevSecOps 体系的优点,优化具体安全实践要素,是一种贯穿研发运营全生命周期的安全理念 |
云安全共享责任模型 | 云安全共享责任模型指出,在基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)三种不同的云服务模式下,云服务提供商(Cloud Service Provider,CSP)和客户之间需要分担的安全责任不同。CSP 需要承担客户在使用云服务时保障物理安全的责任,客户需要负责确保其解决方案及其数据被安全地识别、标记和正确的分类,以满足任何合规义务的责任,其余的责任则由 CSP 和客户共同承担。 |
Grafeas 开源计划 | Grafeas 定义了一个 API 规范,用于管理软件资源,例如容器镜像、虚拟机镜像、JAR 文件和脚本。组织可以使用 Grafeas 来定义和聚合有关项目组件的信息。Grafeas 为组织提供了一个中央事实来源,用于在不断增长的软件开发团队和管道中跟踪和执行策略。构建工具、审计工具和合规性工具都可以使用 Grafeas API 来存储和检索有关各种软件组件的综合数据 |
法律声明
文章部分引用自悬镜安全与中国信息通信研究院联合制作的报告,转载或引用文章内容,不得进行如下活动:
不得擅自同意他人转载、引用本报告内容。
不得引用本报告进行商业活动或商业炒作。
本报告中的信息及观点仅供参考,悬镜安全及中国信息通信研究院对本报告拥有最终解释权
ENDฅฅ