查看原文
其他

谈谈现代软件供应链的发展及攻击应对方法

Mic McCully 代码卫士 2022-06-21

 聚焦源代码安全,网罗国内外最新资讯!

编译:代码卫士



专栏·供应链安全

数字化时代,软件无处不在。软件如同社会中的“虚拟人”,已经成为支撑社会正常运转的最基本元素之一,软件的安全性问题也正在成为当今社会的根本性、基础性问题。


随着软件产业的快速发展,软件供应链也越发复杂多元,复杂的软件供应链会引入一系列的安全问题,导致信息系统的整体安全防护难度越来越大。近年来,针对软件供应链的安全攻击事件一直呈快速增长态势,造成的危害也越来越严重。


为此,我们推出“供应链安全”栏目。本栏目汇聚供应链安全资讯,分析供应链安全风险,提供缓解建议,为供应链安全保驾护航。


注:以往发布的部分供应链安全相关内容,请见文末“推荐阅读”部分。


软件供应链攻击发生得越来越频繁并造成越来越大的后果,说明政策制定者和安全社区需要提供结构化响应,不过组织机构也能执行自身的软件供应链安全战略什么是软件供应链?

软件供应链由构建、封装和部署应用程序的代码和二进制、开发团队、工具和进程组成。现代软件开发使得供应链越来越复杂,原因包括:

  • 产品创新:当代消费者希望获得前沿产品,这就要求软件厂商交付更大的创新作品。

  • 外部服务:当前,组织机构将非业务核心的元素如支付、导航等外包出去。

  • 新技术:新的操作系统、处理器和显卡芯片增加了软件的复杂程度。

  • 实践:当代实践如敏捷开发、CI/CD和DevOps 共同推动了生产交付的速度。

  • 代码:用于构建应用程序的代码中包含很多成分,如自定义代码、开源依赖、构建和封装脚本、容器和基础设施。

这些元素共同创造了复杂的软件供应链,成为具有吸引力的攻击向量和恶意人员的目标。


软件供应链攻击


攻击者利用软件供应链“上游”组件中恶意代码的目的是攻陷攻击目标:“下游”组件。软件供应链中的任何一环虽然可被攻陷,但当前研究强调三个主要目标:依赖、管道以及二者的结合即管道依赖。

(1)   依赖

应用依赖即开源程序包或容器镜像引入漏洞。攻击者将恶意代码插入公开可访问的程序包,而毫不知情的开发人员自动下载该恶意代码。

(2)   管道

开发管道用于构建和发布软件,也可遭攻陷。攻击者将恶意代码注入定义构建过程(如CI脚本)的代码或构建工具的配置中。之后,攻击者可利用构建管道将恶意代码分发到下游消费者。

(3) 管道依赖

构建管道中的外部依赖如第三方插件、工具二进制或构建环境本身也可遭攻击。


软件供应链安全的最佳实践


如下最佳实践可提升软件供应链的安全。

(1) 使用SCA和SAST工具

软件成分分析 (SCA) 工具有助于提前且在整个软件开发进程中集成安全测试,从而缓解被拉取到应用中的开源程序包风险(包括间接依赖)。SCA工具还能检测开源软件许可证,帮助组织机构确保合规法律要求。

静态应用安全测试 (SAST) 工具检查定制化代码中的安全问题。使用SAST工具可告知用户供应链组件和定制化代码中的风险。

(2) 确保容器安全

源自可信提供商的基图像应当免遭恶意软件感染,但它们提供的Linux 程序包和开发者工具中常常含有漏洞。容器安全工具有助于缓解容器镜像中的风险,而且还应当能够识别容器中的应用组件,尤其是在无法直接访问源代码的情况下。

(3) 应用软件物料清单 (SBOM)

SBOM 提供了所提供的产品中包含的所有组件详情:开源依赖、容器和构建工具。生成并维护SBOM 来追踪第三方依赖、工具和来源。在采购新软件之前或在采购过程中要求提供SBOM并定期扫描其中的安全风险。

(4)仔细管理源代码

源代码管理系统 (SCM) 如 GitHub 或 Atlassian Bucket 是组织机构软件开发的中心枢纽。当代SCMs 提供具体的特性和配置设置如访问策略控制和分支防护,从而加固安全。这些机制并非总是默认启动的,必须明确设置。

(5) 机密信息和凭据

当前的工作流使用不同类型的访问控制凭据,包括加密密钥、SSH密钥和API令牌。如这些凭据遭暴露,则可遭攻击者利用。为缓解风险,使用机密管理工具来存储并加密机密和执行访问控制。扫描源代码仓库,确保不会错误地提交机密、自动化服务账户的凭据更改并对令牌实施权限限制。

(6) 执行DevSecOps 实践

DevSecOps 将安全实践集成到DevOps 模型中。DevSecOps 的关键元素是尽早并在整个软件开发生命周期中集成安全性。DevSecOps 是一项持续的跨团队工作,组织文化如无法深入改革,则无法实现。


维护软件供应链的安全性


软件供应链攻击发生的频率和具备的复杂度很可能将增加,影响更多的组织机构并造成不断增长的成本。然而,通过仔细规划和执行最佳实践,组织机构可向更加安全的软件供应链方向前进。




代码卫士试用地址:https://codesafe.qianxin.com
开源卫士试用地址:https://oss.qianxin.com








推荐阅读

在线阅读版:《2021中国软件供应链安全分析报告》全文

美国商务部机构建议这样生成软件供应链 “身份证”

《软件供应商手册:SBOM的生成和提供》解读

和GitHub 打官司?热门包 SheetJS出走npmjs.com转向自有CDN

不满当免费劳力,NPM 热门库 “colors” 和 “faker” 的作者设无限循环

NPM流行包再起波澜:维护人员对俄罗斯用户发特定消息,谁来保证开源可信?

NPM逻辑缺陷可用于分发恶意包,触发供应链攻击

攻击者“完全自动化”发动NPM供应链攻击

200多个恶意NPM程序包针对Azure 开发人员,发动供应链攻击

哪些NPM仓库更易遭供应链攻击?研究员给出了预测指标

NPM 修复两个严重漏洞但无法确认是否已遭在野利用,可触发开源软件供应链攻击

热门NPM库 “coa” 和“rc” 接连遭劫持,影响全球的 React 管道

速修复!热门npm 库 netmask 被曝严重的软件供应链漏洞,已存在9年

25个恶意JavaScript 库通过NPM官方包仓库分发

Pwn2Own大赛回顾:利用开源服务中的严重漏洞,攻陷西部数据My Cloud PR4100

开源网站内容管理系统Micorweber存在XSS漏洞

热门开源后端软件Parse Server中存在严重的 RCE ,CVSS评分10分

开源组件11年未更新,严重漏洞使数百万安卓按设备易遭远程监控

开源工具 PrivateBin 修复XSS 漏洞

奇安信开源组件安全治理解决方案——开源卫士




原文链接

https://www.darkreading.com/application-security/the-modern-software-supply-chain-how-it-s-evolved-and-what-to-prepare-for


题图:Pixabay License



本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。




奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的产品线。

    觉得不错,就点个 “在看” 或 "赞” 吧~

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存