II. PROBLEM
Zero Trust Architecture (ZTA) is an Enterprise CyberSe-
curity Architecture based on Zero Trust principles. Extensive
guidance on transitioning to and implementing ZTA is covered
in [1]. The Istio Service Mesh is a fundamental component in
implementing ZTA for cloud-native applications. The Service
Mesh provides a multitude of functions, such as mutual au-
thentication and encrypted communication between services,
policy propagation and enforcement, certificate rotation, that
allow to filter out external attackers and threats.
However, the Service Mesh brings new security risks into
the system, as it does not provide adequate protection for an
Application Owner against the Cloud or Kubernetes admin-
istrators. Running each application pod in a security enclave
shields the pods from attacks originating from the host Oper-
ating System. However, as shown in Figure 1, insiders can use
the interface between the control and data planes of the Service
Mesh to escalate their privileges and abuse them by getting
insights into the current state of the Service Mesh, and then
misconfiguring it, to change the behavior of the connections,
and of the traffic that is routed along those connections. And
even if the insiders do not act maliciously, many regulations
prohibit the administrators and the operations personnel from
having access to the applications and their data.
In the rest of this section, we highlight the fundamentals of
the Service Mesh architecture with Istio and discuss the threat
model.
A. Service Mesh with Istio
Service Mesh provides a dedicated infrastructure for sup-
porting services in microservices-based applications. Cloud-
based and enterprise applications adopt the microservices
architecture because of its agility, scalability and increasing
availability of automation tools [2]. Service Mesh is designed
to standardize the run-time operations of an application such
as service discovery, load balancing, traffic management [3],
interoperability [4] and dependency control [5]. Istio [6],
started as a collaboration between IBM, Google and Lyft,
Linkerd [7] a 100% Apache-licensed open source product, and
Consul Connect [8], a Service Mesh from Hashicorp, are the
most popular service meshes in the market today.
The increased adoption of the microservices architecture
on a distributed system like Kubernetes results in increased
management complexities. Concepts such as service discovery,
routing, fail-over become prominent as distributed services
communicate with each other. Istio provides an efficient
mechanism to secure and monitor these microservices through
an array of Envoy proxies. Envoy is an OSI L3 and L4
network proxy that uses a chain of network filters to perform
connection handling. Envoy also supports L7 layer filters for
HTTP traffic. Many of Istio’s features are enabled by the
underlying built-in attributes of the Envoy proxies.
Istio consists of two components regardless of its deploy-
ment pattern: the data plane and the control plane. The data
plane is the network of microservices whose communication is
routed through Envoy proxies that run alongside the services.
These proxies create the mesh network for the services.
Envoy allows the application of HTTP, gRPC, WebSocket, and
TCP routing rules for fine-grained traffic control. Envoy also
supports security policies and access control for services.
The management of the proxies is done from the control
plane. Istiod dynamically configures the Envoy sidecar proxies
using a set of discovery APIs, collectively known as the xDS
APIs. The control plane provides configuration, discovery,
and certificate management for the Envoy proxies at runtime.
Istiod is the component that converts routing rules specified
in high-level formats such as YAML into Envoy-specific
configurations and propagates them to the sidecars. As part
of Istiod,Pilot is responsible for service discovery, Galley
for configuration, and Citadel for certificate generation. A
fourth component, Mixer, providing extensibility has been
deprecated. The functionality provided by Mixer is now of-
fered through WebAssembly, a sandboxing technology which
can be used to extend the Istio proxy (Envoy). The Proxy-
Wasm sandbox API replaces Mixer as the primary extension
mechanism in Istio.
Istiod provides end-user and service-to-service authenti-
cation with its built-in identity and credential management
component. Istio offers peer authentication and request au-
thentication. For peer authentication, Istio offers mutual TLS
for service-to-service authentication. Istio uses JSON Web
Token (JWT) validation for end-user authentication. Mesh,
namespace, and service-level access control to the Envoy
proxy inbound traffic is enforced using authorization policies.
B. The Threat Model
The adversary in our model is the Cluster Administrator.
Because the adversary has the administrative rights to the
cluster, they can create new objects, and delete or modify the
existing objects in the Kubernetes cluster. We assume that the
workload certificates are provisioned using a custom certificate
authority, not the Istio certificate authority, and the Envoy
proxies are configured to only accept certificates issued by the
custom certificate authority. The adversary cannot, therefore,
tamper with the certificate management. Also, because the
application pods run in security enclaves controlled by the
Application Owners, the adversary cannot see or modify the
contents of the application pods.
The adversary can interact with the application pods in three
ways. First, they can create, modify, or delete CRDs in the
cluster. The Istio daemon will be notified of actions and, as
a result, will send the service proxies messages (over their
xDS API interface) that will trigger the reconfiguration of the
service proxies. Second, the adversary can create new pods
inside the cluster, label them as application components, and
establish communication with the application pods through
these falsely advertised services. Third, the adversary can
poison the Domain Name System (CoreDNS) or the ARP
cache of the cluster.
We cover the first scenario described above, when the adver-
sary creates, deletes, or modifies CRDs. For this purpose, we
are using Cosign, a digital signing and verifying technology.