8.3. SELinux
필수 액세스는 QEMU 프로세스의 권한을 필요한 항목으로만 제한하여 시도한 공격에 미치는 영향을 제어합니다. Red Hat OpenStack Platform에서 SELinux는 각 QEMU 프로세스를 별도의 보안 컨텍스트에서 실행하도록 구성되어 있습니다. Red Hat OpenStack Platform 서비스를 위해 SELinux 정책이 미리 구성되어 있습니다.
OpenStack의 SELinux 정책은 하이퍼바이저 호스트와 가상 시스템을 두 가지 주요 위협 요인으로부터 보호하는 데 도움이 됩니다.
- 하이퍼바이저 위협 - 가상 시스템 내에서 실행되는 손상된 애플리케이션이 하이퍼바이저를 공격하여 기본 리소스에 액세스합니다. 예를 들어 가상 시스템이 하이퍼바이저 OS, 물리적 장치 또는 기타 애플리케이션에 액세스할 수 있는 경우. 이 위협 벡터는 하이퍼바이저가 물리적 하드웨어를 손상시키고 다른 가상 시스템 및 네트워크 세그먼트를 노출할 수 있기 때문에 상당한 위험을 나타냅니다.
- 가상 시스템(다중 프로젝트) 위협 - VM 내에서 실행되는 손상된 애플리케이션이 하이퍼바이저를 공격하여 다른 가상 시스템과 해당 리소스에 액세스하거나 제어합니다. 이는 가상화에 고유한 위협적 벡터이며 단일 애플리케이션의 취약점으로 인해 여러 개의 가상 시스템 파일 이미지가 손상될 수 있기 때문에 상당한 위험을 나타냅니다. 실제 네트워크를 보호하기 위한 관리 기술이 가상 환경에 직접 적용되지 않으므로 이 가상 네트워크 공격은 주요 우려 사항입니다. 각 KVM 기반 가상 시스템은 SELinux에서 레이블이 지정된 프로세스로, 각 가상 시스템 주변의 보안 경계를 효과적으로 설정합니다. 이 보안 경계는 Linux 커널에서 모니터링 및 시행하므로 호스트 시스템 데이터 파일 또는 기타 VM과 같은 경계 외부 리소스에 대한 가상 시스템의 액세스를 제한합니다.
Red Hat의 SELinux 기반 격리는 가상 시스템 내부에서 실행되는 게스트 운영 체제와 관계없이 제공됩니다. Linux 또는 Windows VM을 사용할 수 있습니다.
8.3.1. 레이블 및 카테고리 링크 복사링크가 클립보드에 복사되었습니다!
KVM 기반 가상 머신 인스턴스는 svirt_image_t
라는 자체 SELinux 데이터 유형으로 레이블이 지정됩니다. 커널 수준 보호는 웨어웨어와 같은 무단 시스템 프로세스가 디스크에서 가상 시스템 이미지 파일을 조작하지 못하도록 방지합니다. 가상 머신의 전원이 꺼지면 이미지는 다음과 같이 svirt_image_t
로 저장됩니다.
system_u:object_r:svirt_image_t:SystemLow image1 system_u:object_r:svirt_image_t:SystemLow image2 system_u:object_r:svirt_image_t:SystemLow image3 system_u:object_r:svirt_image_t:SystemLow image4
system_u:object_r:svirt_image_t:SystemLow image1
system_u:object_r:svirt_image_t:SystemLow image2
system_u:object_r:svirt_image_t:SystemLow image3
system_u:object_r:svirt_image_t:SystemLow image4
svirt_image_t 레이블
은 디스크에서 이미지 파일을 고유하게 식별하여 SELinux 정책에서 액세스를 제한할 수 있습니다. KVM 기반 컴퓨팅 이미지의 전원이 켜지면 SELinux는 이미지에 임의 숫자 식별자를 추가합니다. SELinux는 하이퍼바이저 노드당 최대 524,288개의 가상 시스템에 숫자 식별자를 할당할 수 있지만 대부분의 OpenStack 배포에서는 이러한 제한사항이 발생하지 않습니다. 이 예에서는 SELinux 범주 식별자를 보여줍니다.
system_u:object_r:svirt_image_t:s0:c87,c520 image1 system_u:object_r:svirt_image_t:s0:419,c172 image2
system_u:object_r:svirt_image_t:s0:c87,c520 image1
system_u:object_r:svirt_image_t:s0:419,c172 image2
8.3.2. SELinux 사용자 및 역할 링크 복사링크가 클립보드에 복사되었습니다!
SELinux는 사용자 역할을 관리합니다. 이러한 항목은 -Z
플래그를 통해 확인하거나 semanage
명령을 사용하여 볼 수 있습니다. 하이퍼바이저에서 관리자만 시스템에 액세스할 수 있어야 하며 관리 사용자와 시스템에 있는 기타 사용자 모두에 적절한 컨텍스트가 있어야 합니다.