2025-11-20T01:55:14.885016

Analysis of Security in OS-Level Virtualization

Ketha, Song, Zhu
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.
academic

OS 레벨 가상화의 보안 분석

기본 정보

  • 논문 ID: 2501.01334
  • 제목: Analysis of Security in OS-Level Virtualization
  • 저자: Krishna Sai Ketha, Guanqun Song, Ting Zhu (오하이오 주립대학교)
  • 분류: cs.CR (암호화 및 보안), cs.OS (운영체제)
  • 발표 시간: 2025년 1월 2일 (arXiv 사전인쇄본)
  • 논문 링크: https://arxiv.org/abs/2501.01334

초록

가상화 기술은 단일 물리 하드웨어에서 일반적으로 서로 다른 게스트 운영체제를 가진 여러 인스턴스를 실행할 수 있게 한다. 하이퍼바이저 기반 가상화는 더 나은 리소스 활용률과 강력한 격리를 제공하지만, 호스트 운영체제가 서로 다른 게스트 운영체제를 유지해야 하기 때문에 높은 오버헤드 문제가 존재한다. 이 문제를 해결하기 위해 OS 레벨 가상화가 등장했으며, 경량화되고 최소화되며 효율적인 가상화를 제공한다. 그러나 인스턴스들이 동일한 호스트 운영체제를 공유하기 때문에 인스턴스 간 격리성에 영향을 미친다. 본 논문은 가상화의 기본 개념을 수립하고, 하이퍼바이저 가상화와 OS 레벨 가상화의 차이를 분석하며, 컨테이너 생성 생명주기를 논의하고, 컨테이너 위협 모델을 구축하며, 사례 연구를 통해 컨테이너가 제공하는 격리성을 분석한다.

연구 배경 및 동기

문제 정의

  1. 리소스 활용 효율성 문제: 서로 다른 서비스를 다양한 서버에 배포하는 전통적 방식은 신뢰성과 보안을 향상시키지만 비용이 높고 리소스 활용률이 낮다
  2. 가상화 오버헤드 문제: 하이퍼바이저 기반 가상화는 리소스 활용률을 개선하지만, 여러 게스트 운영체제를 유지하는 데 따른 높은 오버헤드가 발생한다
  3. 컨테이너 보안 격리 문제: OS 레벨 가상화는 오버헤드 문제를 해결하지만, 운영체제 커널을 공유하기 때문에 보안 격리에 영향을 미칠 수 있다

연구의 중요성

  • 상업적 필요성: 기업은 단일 서버에서 여러 서비스를 안전하고 효율적으로 실행해야 한다
  • 클라우드 컴퓨팅 추세: 1990년대 이후 가상화 기술이 클라우드 환경에서 광범위하게 적용되고 있다
  • 보안 위협: 컨테이너 기술의 광범위한 채택으로 인한 새로운 보안 문제와 공격 벡터가 발생한다

기존 방법의 한계

  • 전통적 가상화: 하이퍼바이저 가상화는 오버헤드가 크며, 각 가상 머신은 완전한 게스트 운영체제가 필요하다
  • 보안 분석 부족: OS 레벨 가상화의 보안성과 격리성에 대한 분석이 충분하지 않다
  • 위협 모델 부재: 잠재적 공격 벡터를 식별하기 위한 체계적인 컨테이너 위협 모델이 부족하다

핵심 기여

  1. 가상화 기술 비교 프레임워크 수립: 하이퍼바이저 가상화와 OS 레벨 가상화의 장단점을 체계적으로 비교
  2. 상세한 컨테이너 생성 생명주기 모델 구축: Docker 컨테이너의 구축부터 실행까지의 완전한 프로세스 분석
  3. 포괄적인 컨테이너 위협 모델 제시: 컨테이너 시스템의 9가지 주요 공격 벡터 식별 및 분류
  4. 실제 취약점 사례 분석 제공: CVE-2024-21626과 CVE-2022-0847 두 가지 실제 취약점을 심층 분석
  5. 컨테이너 보안 강화 권장사항 제시: 분석 결과를 바탕으로 실용적인 보안 모범 사례 제안

방법론 상세 설명

작업 정의

본 연구는 OS 레벨 가상화(특히 Docker 컨테이너)의 보안성과 격리성을 체계적으로 분석하고, 위협 모델을 구축하여 잠재적 공격 벡터를 식별하며, 보안 강화 권장사항을 제공하는 것을 목표로 한다.

연구 아키텍처

1. 컨테이너 생성 생명주기 분석

연구는 Docker 컨테이너 시스템의 네 가지 핵심 구성 요소에 초점을 맞춘다:

  • Docker Engine: 오픈소스 컨테이너화 기술로, 애플리케이션 구축 및 컨테이너화 능력 제공
  • Docker Daemon (dockerd): 백그라운드에서 실행되는 프로세스로, Docker 명령을 모니터링하며 CLI와 컨테이너 런타임 간의 인터페이스 역할
  • Containerd: 고급 컨테이너 런타임 시스템으로, 이미지 전송 관리, 컨테이너 생명주기 관리, 스토리지 및 네트워크 기능 제공
  • Runc: 경량화되고 안전한 저수준 컨테이너 런타임으로, 기본 운영체제와 직접 상호작용

2. 컨테이너 생성 프로세스

Dockerfile → Docker Build → Docker Daemon → Containerd → Runc → Container
  1. 시스템 관리자가 Docker CLI를 통해 "docker build" 명령 실행
  2. Docker CLI가 Docker Daemon을 호출하여 요청 처리
  3. Docker Daemon이 요청을 Containerd로 전달하여 컨테이너 생성
  4. Containerd가 이미지를 가져와 Runc로 전달
  5. Runc가 기본 운영체제와 상호작용하여 이미지 구성을 기반으로 컨테이너 생성 및 관리

위협 모델 구축

공격 분류

외부 공격: 네트워크를 통한 원격 컨테이너 시스템 접근 내부 공격: 공격자가 이미 컨테이너 내 사용자로서 공격 시작

9가지 주요 공격 벡터

  1. 저장소 이미지 조작: 공격자가 저장소의 컨테이너 이미지 변조
  2. 애플리케이션 코드 취약점: 애플리케이션 코드 및 제3자 의존성의 취약점 악용
  3. 컨테이너 이미지 설정 오류: 이미지 설정 시 불필요한 과도한 권한 부여
  4. 컨테이너 설정 오류: 공개 디렉토리에서 악성 코드가 포함된 이미지 가져오기
  5. 호스트 취약점: 컨테이너를 실행하는 호스트 운영체제 취약점 악용
  6. 시스템 내 정보 전달: 공격자가 컨테이너 간 정보 공유 모니터링
  7. 컨테이너 탈출 취약점: containerd 또는 runc 등 런타임 시스템 취약점을 이용한 탈출
  8. 안전하지 않은 네트워크 통신: 공격자가 컨테이너 간 통신 모니터링으로 정보 획득
  9. 통제되지 않은 리소스 소비: 악성 스크립트가 과도한 리소스를 소비하여 다른 컨테이너의 리소스 부족 야기

실험 설정

사례 연구 방법

본 연구는 실제 취약점 사례 분석 방법을 채택하여 대표성 있는 두 가지 보안 취약점을 심층 분석한다:

  1. Runc 컨테이너 탈출 (CVE-2024-21626)
  2. Dirty Pipe 취약점 (CVE-2022-0847)

분석 프레임워크

  • 취약점 메커니즘 분석: 취약점의 기술적 원리 상세 해석
  • 영향 범위 평가: 영향을 받는 소프트웨어 버전 범위 결정
  • 공격 시나리오 재현: 실제 명령을 통한 공격 프로세스 시연
  • 심각도 평가: 취약점의 보안 영향 정도 평가

실험 결과

사례 1: Runc 컨테이너 탈출 (CVE-2024-21626)

취약점 상세 정보

  • 발견 시간: 2024년 1월 31일
  • 영향을 받는 버전:
    • runc: v1.0.0-rc93부터 v1.1.11까지
    • containerd: v1.4.7부터 v1.6.27까지 및 v1.7.0부터 v1.7.12까지
    • docker: <v25.0.2
  • 심각도: 높음

공격 메커니즘

  1. 컨테이너는 호스트 운영체제 관점에서 프로세스이며, chroot를 통해 독립적인 파일시스템을 루트 파일시스템으로 마운트
  2. 공격자가 파일 디스크립터 7과 8을 가리키는 심볼릭 링크 생성
  3. sudo docker exec -it -w /foo <container-name> sleep 500 명령 실행
  4. runc가 호스트 파일시스템을 컨테이너에 마운트하여 공격자가 호스트 파일시스템 접근 가능

공격 특징

  • 낮은 권한 요구: 공격자가 악성 코드를 실행하거나 높은 권한 없이도 성공적으로 공격 가능
  • 직접 파일시스템 접근: 호스트 운영체제 내 파일에 직접 접근 가능

사례 2: Dirty Pipe 취약점 (CVE-2022-0847)

취약점 상세 정보

  • 발견 시간: 2022년 3월 7일
  • 영향을 받는 버전: Linux 커널 >v5.8.0
  • 심각도: 높음

공격 메커니즘

  1. Linux 커널의 새로운 파이프 버퍼 구조의 "flags" 멤버 초기화 오류
  2. "copy-page-to-iter-pipe"와 "push-pipe" 함수의 결함으로 인한 오래된 값 포함 가능성
  3. 권한 없는 로컬 사용자가 읽기 전용 파일과 연관된 페이지 캐시의 페이지 수정 가능
  4. 공격자가 /etc/passwd 같은 읽기 전용 파일을 수정하여 권한 상승 실현

실험 발견

보안 위협 특징

  1. 지속적 위협: CVE-2024-21626은 첫 번째 사례가 아니며, 이전의 CVE-2019-5736도 유사한 runc 탈출 취약점
  2. 시스템 수준 영향: 두 취약점 모두 공격자가 호스트 운영체제 권한을 획득할 수 있음
  3. 광범위한 영향: 취약점이 프로덕션 환경에서 사용되는 대량의 컨테이너 시스템에 영향

격리성 분석

컨테이너의 보안 격리는 다음과 같은 문제가 존재한다:

  • 공유 커널 위험: 모든 컨테이너가 동일한 운영체제 커널을 공유하며, 커널 취약점이 모든 컨테이너에 영향
  • 런타임 취약점: 컨테이너 런타임 시스템(예: runc)의 취약점이 컨테이너 탈출 야기 가능
  • 설정 오류 위험: 부적절한 권한 설정이 보안 위험 증가

관련 연구

가상화 보안 연구

본 논문은 가상화 기술 발전의 기초 위에 구축되었으며, 가상화 개념은 1960년대부터 존재했지만 1990년대에 주류 기술이 되었다.

컨테이너 보안 위협 분석

관련 연구는 주로 다음에 집중한다:

  1. 컨테이너 격리 메커니즘: 컨테이너와 전통적 가상화의 격리 차이 분석
  2. 공격 벡터 식별: 컨테이너 환경의 특유 공격 방식 식별
  3. 보안 강화 방법: 컨테이너 보안 모범 사례 제시

본 논문의 기여 비교

  • 체계적 위협 모델: 기존 연구 대비 더욱 포괄적인 컨테이너 위협 분류 제공
  • 실제 사례 분석: 실제 CVE 취약점 분석을 통한 구체적 보안 위협 증거 제공
  • 생명주기 관점: 컨테이너 생성 생명주기 관점에서 보안 문제 분석

결론 및 논의

주요 결론

  1. OS 레벨 가상화의 양날의 검 특성: 경량화되고 효율적인 가상화 솔루션을 제공하지만, 운영체제 커널 공유로 인한 보안 격리 문제 야기
  2. 위협 벡터의 다양성: 컨테이너 시스템은 이미지 저장소부터 런타임 환경까지 전체 생명주기의 보안 위협에 직면
  3. 실제 보안 위험: CVE 사례 분석을 통해 컨테이너 탈출 및 권한 상승 등 심각한 보안 위협의 현실적 존재 입증
  4. 지속적 보안 문제: 컨테이너 보안은 지속적으로 진화하는 문제로, 방어 조치의 지속적 업데이트 필요

보안 모범 사례 권장사항

  1. 이미지 보안: 공개 저장소에서 가져온 컨테이너 이미지 검사 및 잠재적 취약점 스캔
  2. 권한 최소화: 컨테이너에 불필요한 권한 부여 회피
  3. 정기적 업데이트: 컨테이너 엔진, 런타임, 도구 및 제3자 구성 요소의 최신 버전 유지
  4. 의존성 관리: 의존성이 알려진 취약점을 포함하지 않도록 보장
  5. 안전한 통신: 안전한 연결을 통한 컨테이너 간 정보 전달
  6. 보안 스캔: 보안 스크립트를 사용한 정기적 컨테이너 취약점 스캔

한계

  1. 연구 범위 제한: 주로 Docker 컨테이너에 초점을 맞추며, 다른 컨테이너 기술(예: FreeBSD Jails, Solaris Zones) 미포함
  2. 위협 모델 깊이: 주요 공격 벡터를 식별했지만, 각 공격에 대한 구체적 방어 조치 논의 부족
  3. 실험 사례 수 부족: 두 가지 CVE 사례만 분석하여 컨테이너 보안 위협의 복잡성을 완전히 반영하기에 부족할 수 있음
  4. 정량 분석 부족: 서로 다른 공격 벡터의 위험 수준에 대한 정량적 평가 부재

향후 방향

논문은 다음과 같은 연구 방향을 제시한다:

  1. AI 기반 위협 탐지: 인공지능 기술 통합으로 컨테이너화 시스템의 신흥 취약점 대응 능력 강화
  2. 안전한 통신 프로토콜: 더욱 안전한 컨테이너 간 통신 프로토콜 개발
  3. 무선 환경 최적화: 무선 환경을 위한 컨테이너 네트워크 최적화
  4. 시스템 수준 혁신: 시스템 수준 혁신을 통한 리소스 할당 개선으로 동적 분산 인프라에서의 성능 및 보안 보장

심층 평가

장점

  1. 체계적 분석: 기본 개념부터 실제 위협까지의 완전한 분석 프레임워크 제공
  2. 높은 실용 가치: 위협 모델과 보안 권장사항이 실제 배포에 지도적 의미 제공
  3. 심층 사례 분석: 실제 CVE 취약점을 통한 구체적 기술 세부사항 제공
  4. 명확한 구조: 논문 조직이 합리적이며 이론에서 실무로 단계적 진행
  5. 높은 시의성: 최신 보안 취약점(CVE-2024-21626) 분석

부족한 점

  1. 제한된 이론적 기여: 주로 기존 지식의 정리 및 분석으로 원창적 이론적 기여 부족
  2. 불충분한 실험 검증: 위협 모델의 효과성에 대한 대규모 실험 검증 부재
  3. 정량 분석 부재: 서로 다른 공격 벡터의 위험 정량화 평가 미제공
  4. 해결책 깊이 부족: 보안 권장사항 제시는 있으나 구체적 기술 솔루션 부족
  5. 비교 분석 약함: 다른 컨테이너 보안 연구와의 비교 분석 미흡

영향력

  1. 학술적 기여: 컨테이너 보안 연구에 체계적 위협 분석 프레임워크 제공
  2. 실용적 가치: 기업 및 개발자의 컨테이너 보안 실무에 지도적 의미 제공
  3. 교육적 가치: 컨테이너 보안 교육의 참고 자료로 적합
  4. 연구 기초: 후속 심층 컨테이너 보안 연구의 기초 마련

적용 시나리오

  1. 기업 컨테이너화 배포: 기업의 컨테이너 보안 전략 수립에 참고
  2. 보안 감사: 컨테이너 시스템 보안 평가의 체크리스트로 활용
  3. 교육 훈련: 컨테이너 보안 인식 교육 및 기술 교육에 활용
  4. 연구 시작점: 심층 컨테이너 보안 기술 연구의 기초 프레임워크 제공

참고문헌

논문은 38편의 관련 문헌을 인용하며, 주요 내용은 다음을 포함한다:

  • 고전 운영체제 교재 (Tanenbaum & Bos, Modern Operating Systems)
  • 컨테이너 보안 전문서 (Rice, Container Security)
  • 중요 보안 취약점 보고서 (CVE-2024-21626, CVE-2022-0847)
  • 저자 팀의 보안, AI 및 IoT 분야 관련 연구 논문

종합 평가: 본 논문은 OS 레벨 가상화 보안에 대한 비교적 포괄적인 분석 프레임워크를 제공한다. 이론적 혁신은 제한적이지만, 실용성과 체계성 측면에서 높은 가치를 가지며, 컨테이너 보안 분야의 입문 및 참고 자료로 적합하다.