14 条策略助力企业构建更安全的软件供应链
每个软件都存在供应链,然而现代软件大部分代码都是开源的,这意味着任何人都可以访问和编辑。但是软件平台的安全取决于其最薄弱的环节,安全漏洞可能随时出现,因此技术领导者必须建立监控和保护供应链中每个环节方案和动作。福布斯技术委员会给出应对软件供应链安全的 14 条明智的策略,为开发者、企业的安全建设带来思考和建议。
承包商在建造建筑物的时候,会按照计划和流程去采购使用预制和预切材料,同样如此,软件程序建立在开发实践和先前编写的代码基础上,其中一些并不是创建软件公司的唯一知识产权。事实上,现代软件大部分代码都是开源的,这意味着任何人都可以访问和编辑。
因此所有软件都有一个供应链,其所有组成部分还包括在其构思、创建、部署和维护过程中发生的一切。安全漏洞随时可能出现,因此技术领导者必须建立监控和保护软件供应链中每个环节的方法。福布斯技术委员会的 14 名成员讨论了建立安全软件供应链的明智策略,以及为何软件供应链安全如此重要。
![](https://static001.geekbang.org/infoq/ac/ac20b8ef52a9d303491c74ee88b57b2b.png)
照片由会员个人提供,图中成员从左至右排列。
1. 在整个价值流中强调安全
安全不能只属于企业的一部分或留到最后再做。安全需要成为战略计划的一部分,并贯穿整个价值流。安全不是在生产之前就可以扫描的东西。告诉您的团队为什么安全需要成为整个流程的一部分,而不仅仅是给他们发布标准。在“为什么”中包括他们。- Laureen Knudsen, Broadcom
2.确保对供应链的可见性
可观察性是必不可少的。如果您不能“看到”您的供应链——无论是通过实际的视觉表示还是数字面包屑路径——您将无法分析它,无法随着时间的推移监控它的健康状况。供应链本来就很复杂,但必须找到分析这些链条的方法,以支持它们的演变和发展,并确保它们的长期生存能力和安全性。- Lewis Wynne-Jones, ThinkData Works
3.建立软件供应链存储和管理系统
大多数组织对开发人员所做的选择及其软件中的依赖项的可见性很差。如果没有所有组件的预先存货清单,当下一个零日事件发生时,他们只能争先恐后地查明它们是否受到影响、受影响的地点以及影响的严重程度。那些拥有库存和管理供应链系统的人能够立即开始补救,从而避免危机。- Brian Fox,Sonatype, Inc.
4. 应用零信任策略
在保护软件供应链时,应用零信任策略是一种有用的缓解措施。这一战略很重要,因为它可以通过公司与其供应商进行的深度合规和信任来评估和检查。- Yair Kuznitsov, anecdotes
5. 根据供应商的 SBOM 制定不同应对计划
软件物料清单或 SBOM 最近受到广泛关注,但 SBOM 只是该过程的第一步。向软件供应商索取 SBOM 清单,可以更了解供应商产品的组成有哪些组件。下一步重要的是围绕已公布的漏洞分析和一套应对计划,并构建流程。- Vincent Berk, Quantum Xchange
6.及时跟进补丁和更新
定期使用安全补丁和更新软件是建立安全软件供应链的一个重要步骤。为确保该程序及其创建者值得信赖,除了部署安全修复程序和升级之外,对他们进行适当的审查和监控也至关重要。- Neelima Mangal,Nutcache
7. 利用 MFA 并任命首席安全官
确保软件供应链流畅的首要任务是制定严密的安全计划。一次违规可能会破坏数月的辛勤工作,并导致您的员工和客户感到沮丧。我建议使用多因素身份验证,并聘请首席安全官来维护和制定您的网络安全策略。- Thomas Griffin, OptinMonster
8. 投资于工程师的教育和发展
十年来,安全一直是一个热门话题。目前已经开发了多种工具、框架和方法来促进安全的软件供应链。然而,尽管取得了进步,但仍然是链条中最薄弱的部分。因此,投资于工程师的教育和发展对于帮助他们提高对新工具、技术和威胁的认识至关重要。- Roman Reznikov , Intellias
9.定期进行离线备份
确保你有备份!云计算是伟大的,至少目前来说。每年审查您的软件服务提供商——尤其是那些提供关键应用程序、销售点或创收系统的提供商。如果存在风险,请确保实施一种方法来定期进行手动离线备份。- Rhonda Dibachi, HeyScottie.com
10. 让网络安全检查成为开发人员工作流的一部分
认真对待 DevSecOps。一种方法是将网络安全工作作为开发人员必须完成的任务之一。是否为设计期间的威胁建模;修复 SAST、DAST、SCA 工具显示的错误;或者修复通过 bug 赏金计划发现的漏洞,需要优先考虑网络安全问题,并将其作为工作的一部分。这意味着如果没有完成,那么工作就是不完整的。- Christine Bejerasco,WithSecure
11.实施安全编码和测试实践
实施安全编码和测试实践是确保软件供应链安全的重要步骤,因为它有助于在开发过程的早期识别和缓解安全漏洞,保护整个系统免受攻击。这很重要,因为软件供应链有多个合作伙伴和第三方组件非常复杂。- David Bitton, DoorLoop
12.建立检查清单
了解供应链安全是否有效的最佳方法是建立检查清单。该清单允许每个人成为“医生”,以确保建立安全的软件供应链。以下是我的八个检查点,包括:访问控制、安全存储、加密、安全传输、漏洞管理、定期更新、每日绩效跟踪系统审查和纠正措施。- Chaitra Vedullapalli, Women in Cloud
13.投资安全协作平台
软件平台的安全取决于其最薄弱的环节。 随着供应链变得更加全球化,跨不同平台和多个数据集进行协作的需求呈指数级增长。虽然许多公司都采用了基于云的安全平台,但跨供应链的最常见沟通方式是通过电子邮件的方式发送电子表格,通过投资安全协作平台来消除这种需求是至关重要的。- Richard Lebovitz, LeanDNA
14. 审核、跟踪和审查进行中的软件组件
由于软件供应链是安全漏洞最新和最具影响的领域之一,因此确保您的软件构建过程的安全至关重要。最重要的事情是确保您知道正在构建和包含哪些组件的哪些版本,并进行审核、审查和跟踪以确保这些组件符合预期。- Michael Adler, N-able
使用墨菲安全的开源工具帮您快速检测、管理代码安全
开源地址:https://github.com/murphysecurity/?sf=cj2kfn
产品官网:https://murphysec.com/?sf=cj2kfn
一、墨菲安全开源 CLI 工具
使用 CLI 工具,在命令行检测指定目录代码的开源组件依赖安全问题
工具地址:https://github.com/murphysecurity/murphysec/?sf=cj2kfn
![](https://static001.geekbang.org/infoq/9f/9f97e32f40cc27059caae534e59f50dd.png)
二、墨菲安全 IDE 插件
在 IDE 中即可检测代码依赖的安全问题,并通过准确的修复方案和一键修复功能,快速解决安全问题。
使用方式:
IDE 插件中搜索“murphysec”即可安装
选择“点击开始扫描”,即可检测出代码中存在哪些安全缺陷组件
点击“一键修复”,即可对检测出来的漏洞进行一键修复
![](https://static001.geekbang.org/infoq/35/35391c21d92898b0b2f5c87d2581e2fb.png)
三、GitLab 全量代码检测
使用基于墨菲安全 CLI 的检测工具,快速对您的 GitLab 上所有项目进行检测
工具地址:https://github.com/murphysecurity/murphysec-gitlab-scanner/?sf=cj2kfn
以上几种检测方式均可在墨菲安全平台上查看详细的检测结果,并可以查看项目的直接或间接依赖信息。
![](https://static001.geekbang.org/infoq/f6/f6604625be893b20af1b01311258df39.png)
关于墨菲安全
墨菲安全是一家为您提供专业的软件供应链安全管理的科技公司,核心团队来自百度、华为、乌云等企业,公司为客户提供完整的软件供应链安全管理平台,围绕 SBOM 提供软件全生命周期的安全管理,平台能力包括软件成分分析、源安全管理、容器镜像检测、漏洞情报预警及商业软件供应链准入评估等多个产品。
目前墨菲安全已经服务包括蚂蚁、平安、快手等在内的数百家企业客户。墨非安全为客户提供从供应链资产识别管理、风险检测、安全控制、一键修复的完整控制能力。同时产品可以极低成本的和现有开发流程中的各种工具一键打通,包括 IDE、Gitlab、Bitbucket、Jenkins、Harbor、Nexus 等数十种工具无缝集成。
官网地址:https://www.murphysec.com/?sf=cj2kfn
开源项目:https://github.com/murphysecurity/murphysec/?sf=cj2kfn
转载请注明出处。
版权声明: 本文为 InfoQ 作者【墨菲安全】的原创文章。
原文链接:【http://xie.infoq.cn/article/7e4111e18bbe498440a657b08】。文章转载请联系作者。
评论