Securing intra-pod communication in Kubernetes
Loading...
URL
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu |
Master's thesis
Unless otherwise stated, all rights belong to the author. You may download, display and print this publication for Your own personal use. Commercial use is prohibited.
Authors
Date
2023-12-11
Department
Major/Subject
Computer Science
Mcode
SCI3042
Degree programme
Master’s Programme in Computer, Communication and Information Sciences
Language
en
Pages
54+16
Series
Abstract
The microservice architecture has lately increased in popularity. These services are made of software containers that are managed by an orchestrator. Kubernetes is the most prevalent among them. Due to its popularity, Kubernetes is also a potential target for malicious parties. Therefore, it is important to secure Kubernetes deployments, preferably by using a defense-in-depth approach. One option is represented by service meshes such as Istio. A service mesh is an infrastructure layer that is responsible for managing and securing communication between microservices. While securing inter-microservice communication strengthens security, service meshes provide no additional means for securing communication inside a given microservice, i.e., between the containers therein. A defense-in-depth approach demands securing communications inside a microservice as well. Therefore, this thesis proposes a solution to automatically apply network access control rules between containers inside a Kubernetes microservice, namely a pod. The proposed solution utilizes a combination of Kubernetes admission webhooks, init containers and iptables. This approach allows specifying service local access control rules directly in the Kubernetes object file definition. The access control rules are then automatically applied when the object is deployed to a Kubernetes cluster. The proposed solution is evaluated and determined to fulfill the requirements of blocking the communication between a pair of containers. It is also demonstrated to be compatible with pre-existing methods for access control between microservices. Thus, it is possible to combine the proposed solution with existing ones to achieve access control both inside and outside a microservice.Mikrotjänstarkitektur har blivit populärt under de senaste åren. Dessa tjänster byggs upp av containrar som hanteras av en orkestrator. Kubernetes är den populäraste orkestratorn. På grund av Kubernetes popularitet har den också blivit ett potentiellt mål för angriparna. Därför är det viktigt att säkra Kubernetes kluster. Flernivåförsvar är ett bra princip. Som en lösning for att säkra kluster har tjänstnät så som Istio, utvecklats. Ett tjänstnät är ett infrastrukturlager som ansvarar för att säkra kommunikationen mellan mikrotjänster. Även om tjänstnät hjälper med att säkra kommunikationen mellan mikrotjänster, ger tjänstnät inga ytterligare medel för att säkra kommunikation inuti mikrotjänsten; mellan containrarna som utgör tjänsten. När man tillämpar flernivåförsvarprincipen bör man även säkra kommunikationen inuti mikrotjänsten. Därför föreslår denna avhandling en lösning för att tillämpa åtkomstkontroll för kommunikationen mellan containrar inuti en Kubernetes mikrotjänst, nämligen en pod. Lösningen använder sig av Kubernetes admission webhooks, containrar och iptables för att möjliggöra automatisk åtkomstkontroll. Detta gör det möjligt att specificera åtkomstkontrollregler för tjänster direkt i Kubernetes objektfilen. Åtkomstkontrollreglerna tillämpas sedan automatiskt när objektet förs till ett Kubernetes kluster. Lösningen utvärderas och påvisas uppfylla kraven på att möjliggöra blockering av kommunikationen mellan två containrar. Den demonstreras också vara kompatibelt med redan existerande åtkomstkontrollmetoder mellan mikrotjänster. Därmed är det möjligt att kombinera denna lösning med befintliga lösningar för att uppnå åtkomstkontroll både innanför och utanför en mikrotjänst.Description
Supervisor
Di Francesco, MarioThesis advisor
Bufalino, JacopoMartin Navarro, Jose Luis
Keywords
Kubernetes, containers, microservices, network security, container-to-container, intra-pod