论文标题

土拨鼠:在FAA中有效隔离请求

Groundhog: Efficient Request Isolation in FaaS

论文作者

Alzayat, Mohamed, Mace, Jonathan, Druschel, Peter, Garg, Deepak

论文摘要

安全是功能服务(FAAS)提供商的核心责任。流行的方法使每个函数都在其自身的容器中执行,以隔离不同函数的并发执行。但是,相同函数的连续调用通常重复使用先前调用的运行时状态,以避免在调用函数时容器冷启动延迟。尽管有效,但该容器重用对代表不同特权用户或管理域调用的功能具有安全性影响:函数实现,第三方库中的错误或语言运行时可能会将私有数据从函数的一个调用中泄漏到同一功能的后续起诉。 每次调用后,土拨鼠通过有效地恢复到没有任何私人数据的清洁状态来隔离功能的顺序调用。该系统利用了典型FAAS平台的两个属性:每个容器一次执行一个功能,合法功能并不能在调用中保留状态。这使土拨鼠能够以独立于编程语言/运行时的方式在调用之间有效快照和恢复功能状态,并且不需要对现有功能,库,语言运行时间或OS内核的任何更改。我们描述了土拨鼠的设计及其在OpenWhisk中的实现,这是一个流行的生产级开源FAAS框架。在三个现有的基准套件上,土拨鼠分离了端到端潜伏期的临时开销(中位数:1.5%,95p:7%)和吞吐量(中位数:2.5%,95p:49.6%),相对于不安全的基线,将容器和运行时状态重用。

Security is a core responsibility for Function-as-a-Service (FaaS) providers. The prevailing approach has each function execute in its own container to isolate concurrent executions of different functions. However, successive invocations of the same function commonly reuse the runtime state of a previous invocation in order to avoid container cold-start delays when invoking a function. Although efficient, this container reuse has security implications for functions that are invoked on behalf of differently privileged users or administrative domains: bugs in a function's implementation, third-party library, or the language runtime may leak private data from one invocation of the function to subsequent invocations of the same function. Groundhog isolates sequential invocations of a function by efficiently reverting to a clean state, free from any private data, after each invocation. The system exploits two properties of typical FaaS platforms: each container executes at most one function at a time and legitimate functions do not retain state across invocations. This enables Groundhog to efficiently snapshot and restore function state between invocations in a manner that is independent of the programming language/runtime and does not require any changes to existing functions, libraries, language runtimes, or OS kernels. We describe the design of Groundhog and its implementation in OpenWhisk, a popular production-grade open-source FaaS framework. On three existing benchmark suites, Groundhog isolates sequential invocations with modest overhead on end-to-end latency (median: 1.5%, 95p: 7%) and throughput (median: 2.5%, 95p: 49.6%), relative to an insecure baseline that reuses the container and runtime state.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源