Edge-cloud computing offloads parts of the computations that traditionally occurs in the cloud to edge nodes,e.g., CDN servers, in order to get closer to the users and reduce latency. To improve performance even further, WebAssembly is increasingly used in this context. Edge-cloud computing providers, such as Fastly or Cloudflare, let their clients deploy stateless services in the form of WebAssembly binaries, which are then translated to machine code and sandboxed for a safe execution at the edge. In this context, we propose a technique that (i) automatically diversifies WebAssembly binaries that are deployed to the edge and (ii) randomizes execution paths at runtime, turning the execution of the services into a moving target. Given a service tobe deployed at the edge, we automatically synthesize functionally equivalent variants for the functions that implement the service.All the variants are then wrapped into a single multivariant WebAssembly binary. When the service endpoint is executed,every time a function is invoked, one of its variants is randomly selected. We implement this technique in the MEWE tool and we validate it with 7 services for cryptography and QR encoding. MEWE generates multivariant binaries that embed hundreds of function variants. We execute the multivariant binaries on the worldwide edge platform provided by Fastly. We show that,at runtime, the multivariant exhibit a remarkable diversity ofexecution traces, across the whole edge platform.
翻译:在云层中通常会出现的计算结果部分的边端节点(例如CDN服务器), 以自动潜水, 以便更接近用户, 并降低延缓性。 为了进一步提高性能, 正在越来越多地在此背景下使用WebAssels。 快速或云法雷等边缘- 宽度计算提供者, 让他们的客户以 WebAsy 的二进制部署无国籍服务, 然后将其转换成机器代码和沙盒, 以便在边缘安全执行。 在此情况下, 我们提议一种技术, (一) 自动潜水到边缘的WebAssembrial二进制, 并 (二) 随机地将运行路径转换成运行路径, 将服务执行变为移动目标。 鉴于即将在边缘部署的服务, 我们自动合成功能等效等效的计算器。 所有变式随后被包成一个单一的多变式网络大会二进制。 当服务执行时, 每当一个函数被引用, 一个变式是随机选择的。 我们在运行时, MIWE 的多端端端端端端端端端端平台中执行这项技术, 我们在 IM版本 版本的版本工具中执行该工具, 以100 版本版本版本版本运行中, 我们将运行的版本版本版本运行的版本版本的版本运行的版本的版本。