设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 云计算 > 正文

聊聊我对云原生与软件供应链安全的思考

发布时间:2022-08-23 14:17 所属栏目:124 来源:互联网
导读:互联网技术先驱 Marc Andreessen 宣称,软件正在吞噬世界(Software is eating the world)。由软件驱动的行业创新正在颠覆着传统业务模式,推动着全球经济实现数字化连接。随着互联网的快速发展,数字化转型已经成为每一个企业的关键战略。但是现代软件开发
  互联网技术先驱 Marc Andreessen 宣称,软件正在吞噬世界(Software is eating the world)。由软件驱动的行业创新正在颠覆着传统业务模式,推动着全球经济实现数字化连接。随着互联网的快速发展,数字化转型已经成为每一个企业的关键战略。但是现代软件开发涉及到多方协作,大量应用依赖开源代码或者三方组件。在上游开源软件的安全问题会传递到下游应用方并被放大,有可能给企业造成重大的安全风险和业务损失。
 
  软件生产的过程与传统制造业在很多方面是相似的。软件制造商将自研业务代码和第三方组件组合成完整的软件,构建流程会将这些组件打包成为可部署的软件制品,然后被企业客户部署到生产环境中。这个过程被形象地称为“软件供应链”。而软件供应链安全的目标是保软件从开发到部署的整个生命周期的安全、可信赖。

  1.应用的 SBOM 信息
  下面我们以一个 Golang 的 HTTP Server 示例应用为例,了解一下 SBOM 的的概念和使用方式。

  熟悉 Go 语言的开发者一定对 go 模块概念非常熟悉。应用所依赖的模块,都通过 go.mod 文件声明。go mod tidy 命令可以用来更新 go.mod 文件,并”锁定“所依赖的模块和版本信息,这大大提升了构建的确定性、可重现性和可验证性。为了确保第三方无法篡改所依赖的模块版本, 在 go.sum 文件记录了每个模块依赖的加密哈希值。当利用go命令将模块代码下载到本地时,就会计算其哈希值,如果计算结果与 go.sum 记录的数据不符就意味着存在篡改的风险。更近一步,Google 运营着一个 Go 模块校验数据库服务,它记录了 go 模块版本的加密哈希值,进一步提升了 Go 基础设施的安全性。

  2.容器镜像的 SBOM 支持
  容器技术重塑了整个软件供应链。容器镜像将应用及其所有依赖项打包,从而使应用可以在不同的计算环境之间快速、可靠地运行。容器镜像已经成为了应用分发的标准,而 Kubernetes 成为了分布式资源调度和编排的事实标准。那么如何保障容器镜像在构建、分发和运行时的完整性、安全性呢?
 
  我们继续以上面的 Golang 应用为例,介绍一下现容器化软件供应链安全的最新实践和工具链。
 
  Ko 是 Google 开源的一个简单、快速的 Go 应用程序容器镜像构建器。今天我们只聚焦于 Ko 在软件供应链的一些设计,大家可以举一反三,应用在自己的语言和项目中。
 
  无需编写 Dockerfile,利用 Ko build 我们可以将一个 Golang 项目构建成为一个 Docker 镜像。

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读