2장. sVirt
sVirt는 Red Hat Enterprise Linux 6에 포함된 기술로, SELinux 및 가상화를 통합한 것입니다. sVirt는 게스트 가상 시스템을 사용할 때 보안을 강화하기 위해 MAC(Mandatory Access Control)를 적용합니다. 이 통합 기술은 보안이 향상되고 하이퍼바이저의 버그와 비교하여 시스템을 강화합니다. 호스트 물리적 시스템 또는 다른 게스트 가상 시스템에 대한 공격을 방지하는 데 특히 유용합니다.
이 장에서는 VMDK가 Red Hat Enterprise Linux 6의 가상화 기술과 통합되는 방법에 대해 설명합니다.
비가상화 환경
가상화되지 않은 환경에서는 호스트 물리적 시스템이 서로 분리되어 있으며 각 호스트 물리적 시스템에는 웹 서버 또는 DNS 서버와 같은 서비스로 구성된 자체 포함 환경이 있습니다. 이러한 서비스는 자체 사용자 공간과 물리적 시스템의 커널 및 물리적 하드웨어와 직접 통신하여 네트워크에 직접 서비스를 제공합니다. 다음 이미지는 가상화되지 않은 환경을 나타냅니다.
- ??????
- 사용자 공간 - 모든 사용자 모드 애플리케이션과 일부 드라이버가 실행되는 메모리 영역입니다.
- ???
- 웹 앱(웹 애플리케이션 서버) - 브라우저를 통해 액세스할 수 있는 웹 콘텐츠를 제공합니다.
- ??????
- 호스트 커널 - 호스트 물리적 시스템의 권한 있는 커널, 커널 확장 및 대부분의 장치 드라이버를 실행하기 위해 엄격하게 예약되어 있습니다.
- ???
- DNS 서버 - 사용자가 IP 주소 대신 논리 이름을 사용하여 웹 페이지에 액세스할 수 있도록 허용하는 DNS 레코드를 저장합니다.
가상화된 환경
가상화 환경에서 호스트 물리적 시스템에 상주하는 단일 커널에서 여러 가상 운영 체제를 실행할 수 있습니다. 다음 이미지는 가상화된 환경을 나타냅니다.
2.1. 보안 및 가상화
서비스가 가상화되지 않으면 시스템은 물리적으로 분리됩니다. 모든 익스플로잇은 일반적으로 영향을 받는 시스템에 포함되며 네트워크 공격을 명백하게 제외합니다. 서비스가 가상화 환경에서 함께 그룹화되면 시스템에서 추가 취약점이 발생합니다. 게스트 가상 머신에서 악용할 수 있는 보안 취약점이 있는 경우 이 게스트 가상 머신은 호스트 물리적 시스템을 공격할 뿐만 아니라 해당 호스트 물리적 시스템에서 실행되는 다른 게스트 가상 머신도 공격할 수 있습니다. 이러한 공격은 게스트 가상 머신 이상으로 확장될 수 있으며 다른 게스트 가상 머신도 공격에 노출될 수 있습니다.
pkexec는 게스트 가상 머신을 분리하고 악용된 경우 추가 공격을 시작하는 기능을 제한하기 위한 것입니다. 이는 다음 이미지에서 설명됩니다. 공격이 게스트 가상 머신에서 벗어나 다른 게스트 가상 머신을 분리할 수 없는 경우 다음과 같습니다.
SELinux는 MAC(Mandatory Access Control)를 구현할 때 가상화된 인스턴스를 위한 플러그형 보안 프레임워크를 도입합니다. KnativeServing 프레임워크를 사용하면 게스트 가상 머신과 해당 리소스에 고유한 레이블이 지정될 수 있습니다. 레이블이 지정되면 다른 게스트 가상 머신 간 액세스를 거부할 수 있는 규칙을 적용할 수 있습니다.