一句话:提出微服务树形策略语言 SafeTree,并基于可见下推自动机在服务网格上非侵入式动态执行。
微服务应用由多个自包含服务组成,控制服务间通信对安全至关重要。现有部署工具仅支持单跳策略,忽略微服务调用的树形结构,往往过于宽松。本文设计了一种可表达服务树结构的策略语言 SafeTree,并基于 visibly pushdown automata(可见下推自动机)实现动态执行机制,无需修改服务实现或访问微服务代码。作者在服务网格 Istio 上构建运行时监视器,利用其可编程流量过滤能力实现在线分布式监控。实验表明,该监视器能执行丰富的安全属性,且仅引入毫秒级延迟开销。
A microservice-based application is composed of multiple self-contained components called microservices , and controlling inter-service communication is important for enforcing safety properties. Presently, inter-service communication is configured using microservice deployment tools. However, such tools only support a limited class of single-hop policies, which can be overly permissive because they ignore the rich service tree structure of microservice calls. Policies that can express the service tree structure can offer development and security teams more fine-grained control over communication patterns. To this end, we design an expressive policy language to specify service tree structures, and we develop a visibly pushdown automata -based dynamic enforcement mechanism to enforce service tree policies. Our technique is non-invasive: it does not require any changes to service implementations, and does not require access to microservice code. To realize our method, we build a runtime monitor on top of a service mesh , an emerging network infrastructure layer that can control inter-service communication during deployment. In particular, we employ the programmable network traffic filtering capabilities of Istio, a popular service mesh implementation, to implement an online and distributed monitor. Our experiments show that our monitor can enforce rich safety properties while adding minimal latency overhead on the order of milliseconds.
@article{paperbot3017,
title = {SafeTree: Expressive Tree Policies for Microservices},
author = {Karuna Grewal and Brighten Godfrey and Justin Hsu},
journal = {Proceedings of the ACM on Programming Languages},
volume = {9},
number = {OOPSLA2},
year = {2025},
doi = {10.1145/3763127}
}