Virtualization is a technique that allows multiple instances typically running different guest operating systems on top of single physical hardware. A hypervisor, a layer of software running on top of the host operating system, typically runs and manages these different guest operating systems. Rather than to run different services on different servers for reliability and security reasons, companies started to employ virtualization over their servers to run these services within a single server. This approach proves beneficial to the companies as it provides much better reliability, stronger isolation, improved security and resource utilization compared to running services on multiple servers. Although hypervisor based virtualization offers better resource utilization and stronger isolation, it also suffers from high overhead as the host operating system has to maintain different guest operating systems.
To tackle this issue, another form of virtualization known as Operating System-level virtualization has emerged. This virtualization provides light-weight, minimal and efficient virtualization, as the different instances are run on top of the same host operating system, sharing the resources of the host operating system. But due to instances sharing the same host operating system affects the isolation of the instances. In this paper, we will first establish the basic concepts of virtualization and point out the differences between the hyper-visor based virtualization and operating system-level virtualization. Next, we will discuss the container creation life-cycle which helps in forming a container threat model for the container systems, which allows to map different potential attack vectors within these systems. Finally, we will discuss a case study, which further looks at isolation provided by the containers.
가상화 기술은 단일 물리 하드웨어에서 일반적으로 서로 다른 게스트 운영체제를 가진 여러 인스턴스를 실행할 수 있게 한다. 하이퍼바이저 기반 가상화는 더 나은 리소스 활용률과 강력한 격리를 제공하지만, 호스트 운영체제가 서로 다른 게스트 운영체제를 유지해야 하기 때문에 높은 오버헤드 문제가 존재한다. 이 문제를 해결하기 위해 OS 레벨 가상화가 등장했으며, 경량화되고 최소화되며 효율적인 가상화를 제공한다. 그러나 인스턴스들이 동일한 호스트 운영체제를 공유하기 때문에 인스턴스 간 격리성에 영향을 미친다. 본 논문은 가상화의 기본 개념을 수립하고, 하이퍼바이저 가상화와 OS 레벨 가상화의 차이를 분석하며, 컨테이너 생성 생명주기를 논의하고, 컨테이너 위협 모델을 구축하며, 사례 연구를 통해 컨테이너가 제공하는 격리성을 분석한다.