微软 Azure 在容器供应链安全的开源实践
点击上方蓝字
关注我们
(本文阅读时间:11分钟)
✦ 容器供应链安全在现代软件开发中的挑战
✦ CNCF 中的容器供应链安全开源项目与生态
✦ 微软 Azure 在容器供应链安全的实践与贡献
Microsoft/SBOM Tool 如何构建软件透明性
Notary v2 如何帮助实现镜像安全的一致性
ORAS 如何扩展 OCI 赋能供应链安全
Ratify 如何帮助 Kubernetes 验证应用的部署安全
✦ 展望
近两年,随着软件开发自身安全防御力度不断加大,攻击者把攻击目标由目标软件转移到软件供应链最薄弱的环节,软件供应链安全事件与漏洞频发,软件供应链安全的话题被越来越多的企业广泛关注。
事实上,现代软件开发与部署的流程其实与传统的生产制造行业是非常相似的,软件开发商在开发过程中会引入大量第三方组件以及开源软件,与自身业务开发组成一个完整的应用软件,构建流程会将这些组件最终打包成为可部署的软件包分发到不同的用户环境,然后被用户部署到生产环境中。这套流程就是我们常说的软件供应链,软件供应链安全的目标就是保软件从开发到部署上线的整个生命周期的安全性、一致性和可靠性。
在以 Kubernetes 为底座的容器微服务时代,容器成为了软件开发过程中打包与分发的标准,那么保障容器供应链安全也是企业面临的新的挑战。
如果说2020年是传统生产制造供应链安全被广泛关注的一年,那么2021年则是广大企业和开发者对软件供应链安全意识兴起的一年。在2021年发生多起让全行业都密切关注的网络攻击事件,比如美国一些政府机构在内的数以千计的客户下载了受损的 SolarWinds 更新软件而受到影响,以及在全球影响更为广泛的 Log4j 安全漏洞事件,造成了大量的流媒体网站、在线交易平台的日志系统阶段性地被停服。
在2022年初,专家预测2022年将成为开源软件供应链安全元年。我们在当前时间点,不妨来对目前业内的一些流行和新发起的供应链安全开源项目进行简单的回顾,并侧重介绍微软 Azure 在容器供应链安全的开源实践。
在开源社区中有大量的用于解决上述提到的容器与软件供应链安全相关问题的开源项目,例如 OpenSSF 基金会是 Linux Foundation 旗下在2020年成立的专为开源软件安全而创立的中立开源组织,专为孵化和托管开源安全领域的项目,以及跨行业连接上下游的厂商和最终用户的合作,建立更广泛的开源安全行业标准,旗下开源项目如 Sigstore 和 Alpha-Omega。
CNCF 云原生计算基金会具有更广泛的职能,其下也有多个开源项目是专为容器环境下的软件供应链安全与生态服务的,比如已经在 CNCF 毕业的The Update Framework (TUF)、Open Policy Agenda (OPA),还在 Incubating 阶段的项目 in-toto、Notary、Falco、Kyverno,并且 Sandbox 阶段也有11个新兴的开源项目是专注在 Security & Compliance 方向,比如 KubeArmor、Dex 、Confidential Containers、ORAS 等,详情可参考 CNCF Sandbox 项目。此外,在 CNCF 全景图中还列出了更多安全相关的开源项目和解决方案厂商。
CNCF Sandbox 项目:
https://www.cncf.io/sandbox-projects/
▍Microsoft/SBOM Tool 如何构建软件透明性
Microsoft/SBOM Tool 是微软近期开源的一个 SBOM 生成工具,使用标准的软件包数据交换 (SPDX) 格式,帮助企业了解帮助企业其软件供应链对第三方软件的依赖情况。SBOM Tool 可以被轻松集成,并自动检测 NPM、NuGet、PyPI、CocoaPods、Maven、Golang、Rust Crates、RubyGems、Docker 容器内的 Linux 软件包、Gradle、GitHub 代码仓库等,未来会支持更多软件包平台的 Detector。对 SBOM Tool 感兴趣的同学可以参考文末提到的 ORAS 技术博客中的示例来下载和体验完整的流程。
《关于改善国家网络安全的行政命令》:
https://www.whitehouse.gov/briefing-room/presidential-actions/2021/05/12/executive-order-on-improving-the-nations-cybersecurity/
Microsoft/SBOM Tool:
https://github.com/microsoft/sbom-tool
微软 Azure、Docker 和 AWS 联合发起的项目:
https://www.docker.com/blog/community-collaboration-on-notary-v2/
Docker官方博客:
https://www.docker.com/blog/community-collaboration-on-notary-v2/
▍ORAS 如何扩展 OCI 赋能供应链安全
OCI(Open Container Initiative)是 Linux 基金会下的轻量级开放容器标准的项目,致力于围绕容器格式和运行时创建开放的行业标准。在上述提到的 Notary v2 和 SBOM Tool 在软件供应链中会产生签名(Signature)和 SBOM 文件,以及像 Helm Chart 和 AI 模型等制品,这类文件都属于非 OCI 标准所支持的类型,而在实际的容器开发场景,要满足软件供应链安全的需求,开发者通常需要将生成的 Signature 和 SBOM 添加到容器镜像或制品中,与容器镜像建立依赖关系并形成一个新的制品,最终将制品推送到镜像注册表(Registry)供部署使用。
由于 OCI 此前尚未支持对 Signature和 SBOM 文件的声明式支持,同时 OCI 在 Distribution-spec 中也未声明支持存储包含 Signature和 SBOM 的软件制品,而这又是容器供应链安全的刚需。为了解决业内普遍存在的痛点和拓展 OCI 标准,ORAS (OCI Registry As Storage)项目应运而生。
ORAS 目前提供了 CLI、API/SDK for Golang & Python,以及新的软件制品标准 Artifact-spec。ORAS CLI 目前已支持对兼容 OCI 标准的镜像注册表和符合 OCI标准的文件内容进行细粒度的管理。最近刚发布的 ORAS CLI 0.15 提供了非常完善而易用的命令,在用户体验上跟大家熟悉的 Docker 类似,几乎没有额外的学习成本。
目前 ORAS 已被 AWS ECR、Azure ACR、VMware、Red Hat、Alibaba Cloud 所采用。对 ORAS 感兴趣的朋友可以参考 ORAS 两篇最新的技术博客快速体验 CLI 以及应用场景。
技术博客:
https://oras.land/blog/oras-0.14-and-future/
微软之所以选择发起 SBOM Tool、Notary v2、ORAS、Ratify 等开源项目,并将 Notary v2 和 ORAS 捐给 CNCF,目标是为了与业内更多组织进行合作以打造更加通用的标准与易用的工具,实现端到端的软件供应链安全环境。接下来,我们会针对以上提到的这几个开源项目提供更深度的技术解读与实践教程,期待对容器供应链安全有共同需求或痛点开发者朋友们进行探讨和交流。
Microsoft/SBOM Tool:
https://github.com/microsoft/sbom-tool
ORAS 0.14 and Future: Empower Container Secure Supply Chain:
https://oras.land/blog/oras-0.14-and-future/
Community Collaboration on Notary v2:
https://www.docker.com/blog/community-collaboration-on-notary-v2/
Notary v2 project:
https://github.com/notaryproject/notation
Ratify project:
https://github.com/deislabs/ratify
*未经授权请勿私自转载此文章及图片。
欢迎扫码访问 Azure 上的 Docker
进一步了解如何在云中保护和管理企业容器应用
点击「阅读原文」,了解更多内容~