Hyperlight 是一个 Rust 库,意在帮助开发者利用基于内核的虚拟机(KVM)或微软原生的 Hyper-V 运行不受信任的代码,而无需加载完整的操作系统。
图源:B. Cameron Gain.
微软的 Azure Core Upstream 团队表示,Hyperlight 可将 无服务器 应用的冷启动延迟降低一倍以上的同时,也能享受 WebAssembly(Wasm)的沙箱安全机制。该项目现已开源,并计划捐赠给 CNCF。Hyperlight 依赖于小型的嵌入式函数,并通过基于虚拟化的保护机制,在大规模调用时为每个函数提供安全隔离。此外,每一个函数请求都有其独立的虚拟化层进行保护。
长期以来,虚拟机都是云原生基础设施的基石,被广泛用于安全隔离主机和客机环境。微软 Azure 首席工程师 Rita Zhang 在 11 月的 KubeCon+CloudNativeCon 大会上表示:“然而,在无服务器计算等事件驱动的场景中,传统虚拟机启动速度实在太慢。那么,我们如何在保证应用程序安全运行的同时减少这种延迟呢?”
Hyperlight 是一个 Rust 库,意在帮助开发者在不加载完整操作系统的同时,利用基于内核的虚拟机(KVM)或微软原生的 Hyper-V 运行不受信任的代码。Zhang 称,这些 microVM(微型虚拟器)可以在微秒级时间内创建。
在演示中,Zhang 展示了应用是如何从虚拟机中顺序调用主机功能,并将主机返回的值传回客机的。Hyperlight 为每次调用创建一个新的 microVM,平均每个请求仅耗时 900 微秒。Zhang 强调:“这是微秒级的,用时甚至不到一毫秒。”
利用 Wasm 模块所提供的轻量级沙箱安全机制,这种想法已经存在很久了。云服务商不同,microVM 的叫法也不同,但它们的作用都是用于在本地或云端环境中高效分发来自本地系统的大量数据流量。谷歌云预计会在 2025 年推出类似的标准化解决方案。
“我们现在可以利用这些轻量级沙箱,在网络流量进入系统时直接进行处理,”微软 Azure 首席技术官兼技术院士 Mark Russinovich 在微软 Ignite 用户大会上表示,“这为实时、高效的网络处理打开了全新的可能性。”
Adobe 和谷歌是推动 WebAssembly 标准发展的技术领军企业。此外,Netflix、Amazon Prime、Disney 等公司也在利用 WebAssembly 进行视频流媒体传输。
虽然微软鲜有公开讨论其在 WebAssembly 方面的早期工作(此前询问过微软但但未得到回应),但可以确认,该公司已在多个业务场景中使用 WebAssembly,并持续为 Wasm 社区的发展做出贡献。事实上,微软早在多年前就开始研究 WebAssembly。例如,《微软飞行模拟器》游戏一直在使用 WebAssembly 来保护游戏 Mod,这不仅提升了安全性,还增强了插件的可移植性。此外,Excel Online 也采用 WebAssembly 计算 Lambda 函数。
目前,微软的主要工作集中在推动即将到来的 WebAssembly 组件模型和 WASI(WebAssembly System Interface)。例如,微软正在扩展 Azure Kubernetes 服务的 WASI NodePool 预览版,并通过 Hyperlight 项目在 Wasm 沙箱基础上为每个请求提供额外的虚拟化保护。
除了 Edge 浏览器之外,微软的 WebAssembly 重点投资方向主要在服务器端 Wasm 及围绕 Bytecode Alliance 构建的 Wasm 组件生态,同时也在基础设施和语言工具方面进行投资,以促进 WASI 的高效应用。此外,微软还在开发 Containerd 相关项目 Runwasi,该项目是 SpinKube 计划的一部分。
“Hyperlight 是我们一直缺少的关键组件,它能真正隔离细粒度的轻量级代码片段。你可能会想,‘这不就是容器的作用吗?’但老实说,容器的开销并不小。”微软高级开发倡导者 Yosh Wuyts 和 Azure Core Upstream 负责人 Ralph Squillace 在博客中写道。
“在存储服务中的用户自定义函数或边缘网络流量处理等场景下,系统需要更轻量级的解决方案。同时,它还必须具备抗攻击能力,并还能支持多租户安全,以确保多个客户可以共享同一环境而不影响安全性。因此,我们开发了‘微型沙箱(micro sandbox)’或者说‘微型虚拟机(microVM)’。”
“那一刻的灵感来自于 Azure 的一位同事,他有一天走到我面前,说,‘嘿,我能使用 Hyper-V 的 API 创建一个虚拟机,除了要加载一小段代码外,其他的都不需要。它可以在微秒级时间内启动,并且同样快速关闭,’” Squillace 写道。“就这样,我们有了 Hyperlight——一个通过虚拟化隔离的微型虚拟机。”
微软推出了基于虚拟机的 Hyperlight 安全解决方案,并如前所述,已经将其开源。目前,Hyperlight 不仅与 Hyper-V 兼容,还支持 KVM。此外,微软还将 Hyperlight 贡献给 CNCF,正如 Wuyts 和 Squillace 所写:“我们的目标是提升整个社区,让每个人都能使用微型虚拟机技术。Hyperlight 是我们通过安全沙箱提供这一能力的方式。”
查看英文原文:
Microsoft’s Hyperlight WebAssembly for VMs Is Open Source(https://thenewstack.io/microsofts-hyperlight-webassembly-for-vms-is-open-source/)