关于安全:从概念到安全实践软件供应链基础指南

46次阅读

共计 3172 个字符,预计需要花费 8 分钟才能阅读完成。

转载自 SEAL 平安

时至今日,绝大多数的开发者并不是从零开始进行软件开发,而是在创立软件时依赖第三方资源。通过应用事后构建的库和开源组件,工程师们能够放慢开发过程并且降低生产老本,从而疾速将产品推向市场。

因而,企业须要意识到软件并不齐全在他们的掌控之中。那么是哪些流程、组件和工具形成了你所部署的软件呢?

什么是软件供应链?

“供应链”这一术语通常用于制造业,是指制作和散发一个产品的人员和流程。例如,一家造飞机的公司会本人制作一些部件,也会从其余公司购买和组装部件。他们依据设计规格组装整机,而后对新飞机进行测试。通过测试后,新飞机会被交付到航空公司和飞行员手中。

古代软件的开发流程与此相似:一个软件是由多个组件组成,波及到多个开发人员、团队和某家公司的外部与内部零碎。并且像飞机一样,软件也须要通过压力测试。

因而,咱们将 软件供应链定义为在软件开发中所波及到的组件、开发流程以及投入生产和最终软件产品散发的过程

软件供应链由什么形成?

上文中咱们曾经探讨了软件供应链的定义。形成软件的诸多组件中,有局部依赖项并非由你的团队开发:

  • 硬件和基础架构
  • 操作系统
  • 编译器和编辑器
  • 驱动和依赖项
  • 开源脚本和打包好的软件
  • 代码仓库引擎、测试套件以及 CI/CD 工具
  • 云服务和数据中心

同时,供应链会蕴含公司内部的人员配置,比方外包公司、咨询师以及供应商等。因而,软件供应链平安的首要关注点是将风险管理和网络安全准则相结合,这一做法能够检测到第三方组件给软件带来的危险,并将其最小化。

软件供应链治理

在大型软件的开发过程中会波及到成千上百个组件、多个团队的协同单干,因而会遇到诸多平安问题。进而可见性、明确的标准以及依据软件开发进度进行继续的改善对于大型软件开发至关重要。

1. 软件资料清单

撰写一份优良的文档绝非易事,但列出代码中的第三方成分列表则是必须的,这能够让开发人员对软件中可能存在的危险有根本的理解。通过这一列表,可能分明地晓得最新的平安新闻是否与软件中的组件相干。

这些列表被称为软件资料清单,或 SBOM(另一个取自制造业的术语),它们由官网公布并且计算机能够间接对其进行解决。这些清单里具体阐明了软件中的各种组件和依赖项。

除了可见性这一劣势外,构建这份清单还可能与客户建设信赖,证实企业具备安全意识以及确保许可证的合规性。基于此,你不须要向客户凋谢所有源代码,同时能够依据须要与客户分享他们所须要的信息。

2. 信息拜访治理(IAM)和数据治理

目前,软件开发还是一个高度线性且相似于生产线的碎片化过程。当初,企业们正试图打消这一阻碍,并跨团队整合工作流程,即 DevOps。开发和运维之间的合并意味着团队之间的合作将继续减少,目前这样的整合已在业界获得初步成效。

在急速变动的环境中,防止数据泄露或敏感信息的失落比以往任何时候都更加重要。为了爱护数据,公司须要施行强有力的 IAM 策略和数据治理程序。局部企业甚至采纳 DevSecOps 的形式来确保合作中的安全性。

首当其冲:软件供应链是歹意攻打的首要指标

因为软件由第三方组件形成,因而对软件的攻打曾经转移到对供应链的攻打。针对 SolarWinds 的攻打事件是绝佳佐证——通过对多个组件施行攻打进入该公司的网络和应用程序监控平台,从而对应用该零碎的 30000 多个组织造成影响。在进入零碎之后,攻击者将恶意代码插入该公司的软件中。

当 SolarWinds 向其客户发送更新时,无心中授予了对客户账户的后门拜访权限,这使得黑客不仅能够拜访属于 SolarWinds 的零碎,还能够拜访每个装置该更新的公司的零碎。

1. 针对开源我的项目的攻打呈上升趋势

钻研显示,黑客正踊跃瞄准开源组件以伺机进入软件供应链。在过来的 12 个月内,针对开源工具的网络攻击减少了 650%。Sonatype 在《2021 年软件供应链的现状》报告中指出,传统软件供应链攻打集中在公开披露的破绽。在过来 3 年里攻击者曾经扭转了攻打策略并且频繁向连贯寰球供应链的开源我的项目注入恶意代码。

换言之,他们的指标是“上游”组件,或者是散发软件工作流程和更新的服务。这会影响到大量位于上游的终端用户,最终会牵涉到多家组织。

2. 毁坏软件更新成为次要攻打伎俩

通过毁坏曾经广泛传播的软件更新,攻击者能够获取大量的零碎拜访权限。例如,许多公司每月会定期公布新的安全补丁,这些补丁会被成千上百万的开发者下载用于开发他们的我的项目或利用于 CI/CD 流水线中。如果攻击者能够操纵其中一个更新,那么他们就能够轻松地获取部署了该补丁的零碎的拜访权限。

如何保障软件供应链平安?

1. 疾速响应破绽

传统软件供应链攻打依然是一个令人担忧的问题,公司在破绽披露后处理破绽的窗口期越来越窄。在破绽呈现后未能及时更新其应用程序的企业很有可能会输给竞争对手。因而,IT 团队必须利用 SCA 测试工具来发现第三方代码中的破绽,并提出补丁和更新等修复措施。依据 Veracode 近期的《软件平安情况:开源软件版本》报告发现,92% 的库缺点都能够通过更新来修复。

2. 放弃高度的供应链可见性

发现破绽仅仅是胜利的一半。在理解平安问题之后,开发者须要更新应用了该代码的软件,这须要放弃对整个软件供应链有高度的可见性。为了使你的应用程序的依赖关系有残缺的可见性,你须要问本人一些问题:

  • 开发生命周期的每一步都波及什么?
  • 外包员工是否领有代码权限?
  • 谁装置了软件更新并且是如何装置的?

企业应该审计其所有的应用程序以及授予外部和内部各方的拜访权限。现实状况下,这所有应该是有据可查的,并且是自动化的,所以当一个破绽产生时,你能够迅速找出领有该拜访权限的人员。

3. 组件黑名单机制

及时的沟通是避免攻打的要害。一旦开发人员和社区成员发现无害的组件,这些我的项目就不能进入生产。团队能够标记出问题组件,并建设一个框架来跟踪和避免它们从新进入软件开发流程中。

4. 更新和监控代码

当代码进行更新或处于 EOL(end-of-life)阶段时,就无奈将其留在应用程序中。因而,必须保障软件所采纳的组件代码依然被社区宽泛应用并且有技术支持。

将过期的代码留在应用程序中会导致破绽,进而影响整个软件供应链。因而,一旦你得悉某个代码库或我的项目要敞开或进行保护,就必须将其移除或应用代替我的项目。

5. 确保特权拜访治理的平安

一旦攻击者取得零碎拜访权限,他们将会试图通过网络横向挪动来找到特权账户。一旦胜利,他们将应用该账户来拜访敏感数据或管制其余零碎。

因而,平安团队应该亲密监控特权账户的异样流动——明码变更、登录流动以及权限更改等,并且应该及时响应。假如一个域名管理员账户屡次尝试输出谬误的明码,那么平安团队应该立刻开始进行考察并且锁定该账号,直到他们确定这只是一次非法的行为。

管理员应该采纳最小权限准则——只有在必要时才应授予高等级的拜访权限。系统管理员应该应用自动化和配置管理工具来管制和监控账户治理。这就使得人为干涉的空间大大放大了。

总结

企业必须意识到当初他们时刻生存在网络攻击的威逼中,这是以后环境下的全新挑战。而软件供应链一旦遭逢攻打,将会为企业带来重大的损失。要防止此类攻打,须要企业平安团队理解整个软件供应链,审计软件所依赖的第三方,扫描软件组件的破绽,并且有一个强有力、可执行的软件供应链治理打算。

参考链接:

1.State of Software Security v11: Open Source Edition, https://info.veracode.com/fy2…

2.Software Supply Chain Management: An Introduction, https://www.sonatype.com/reso…

3.2021 State of the Software Supply Chain Report, https://www.sonatype.com/reso…

正文完
 0