SELinux를 사용하여 KVM/QEMU의 0day VM 이스케이프 공격에 대한 추가 보호 계층을 추가할 수 있습니까?

SELinux를 사용하여 KVM/QEMU의 0day VM 이스케이프 공격에 대한 추가 보호 계층을 추가할 수 있습니까?

내 호스트는 Fedora이고 호스트에서 코드 실행을 허용하는 0day KVM/QEMU 취약점에 대한 추가 보호 계층을 추가하고 싶습니다. 예를 들어, 일부 CVE에서는 특별히 제작된 악성 Windows 실행 파일을 Windows 가상 머신에서 관리자 권한으로 실행하면 호스트 머신에서 코드가 실행됩니다.

가끔씩 악성코드를 분석하고 알려지지 않은 악성코드를 실행해야 하기 때문에 할 수 있는 게 별로 없고, 별도의 컴퓨터를 구입하고 싶지도 않습니다.

내 질문은 SELinux를 사용하여 이러한 유형의 공격으로부터 자신을 보호할 수 있느냐는 것입니다. 아니면 KVM/QEMU가 이러한 공격으로부터 보호하기 위해 이미 SELinux를 사용하고 있습니까? 아니면 이러한 공격으로부터 보호할 수 있는 더 좋은 방법이 있습니까?

편집하다:

semanage boolean -l | grep virt업데이트된 Fedora 39의 출력 은 다음과 같습니다 .

virt_lockd_blk_devs            (off  ,  off)  Allow virt to lockd blk devs
virt_qemu_ga_manage_ssh        (off  ,  off)  Allow virt to qemu ga manage ssh
virt_qemu_ga_read_nonsecurity_files (off  ,  off)  Allow virt to qemu ga read nonsecurity files
virt_qemu_ga_run_unconfined    (off  ,  off)  Allow virt to qemu ga run unconfined
virt_read_qemu_ga_data         (off  ,  off)  Allow virt to read qemu ga data
virt_rw_qemu_ga_data           (off  ,  off)  Allow virt to rw qemu ga data
virt_sandbox_share_apache_content (off  ,  off)  Allow virt to sandbox share apache content
virt_sandbox_use_all_caps      (on   ,   on)  Allow virt to sandbox use all caps
virt_sandbox_use_audit         (on   ,   on)  Allow virt to sandbox use audit
virt_sandbox_use_fusefs        (off  ,  off)  Allow virt to sandbox use fusefs
virt_sandbox_use_mknod         (off  ,  off)  Allow virt to sandbox use mknod
virt_sandbox_use_netlink       (off  ,  off)  Allow virt to sandbox use netlink
virt_sandbox_use_sys_admin     (off  ,  off)  Allow virt to sandbox use sys admin
virt_transition_userdomain     (off  ,  off)  Allow virt to transition userdomain
virt_use_comm                  (off  ,  off)  Allow virt to use comm
virt_use_execmem               (off  ,  off)  Allow virt to use execmem
virt_use_fusefs                (off  ,  off)  Allow virt to use fusefs
virt_use_glusterd              (off  ,  off)  Allow virt to use glusterd
virt_use_nfs                   (on   ,   on)  Allow virt to use nfs
virt_use_pcscd                 (off  ,  off)  Allow virt to use pcscd
virt_use_rawip                 (off  ,  off)  Allow virt to use rawip
virt_use_samba                 (off  ,  off)  Allow virt to use samba
virt_use_sanlock               (off  ,  off)  Allow virt to use sanlock
virt_use_usb                   (on   ,   on)  Allow virt to use usb
virt_use_xserver               (off  ,  off)  Allow virt to use xserver

Windows VM을 사용할 수 없게 만들지 않고 KVM/QEMU 취약성에 대한 추가 보호를 추가하기 위해 이들 중 어느 것을 켜거나 꺼야 하는지 설명할 수 있습니까? Windows VM의 기본 사용법은 일부 VM에서는 코드를 작성하고 분석을 위해 다른 VM에서는 맬웨어를 실행하며 VM에서 인터넷 연결이 필요하지 않다는 것입니다. 이러한 규칙이 해당 시나리오에 작동합니까? 올바르게 구성되어 있습니까? 아니면 어떻게 할 수 있습니까? 좀 더 안전하게 만들까요?

기본적으로 SELinux 규칙을 사용하여 KVM/QEMU를 보호하는 임무를 맡은 경우 보안을 강화하기 위해 어떤 SELinux 규칙을 끄거나 켜시겠습니까?

Allow virt to rw qemu ga data위의 규칙 중 일부에 대한 정보(예: " "가 정확히 무엇을 의미합니까?) 에 대한 정보는 인터넷에 거의 없습니다. 가데이터??

답변1

내 호스트는 Fedora이고 호스트에서 코드 실행을 허용하는 0day KVM/QEMU 취약점에 대한 추가 보호 계층을 추가하고 싶습니다.

우와! 이것들은 모두희귀한. 그럼에도 불구하고, 0days의 특성은 메커니즘을 미리 알 수 없다는 것입니다. 따라서 실제로 해야 할 일은 a) 해당 기능을 사용하지 않거나 b) 해당 기능을 버전과 동기화하는 것입니다.

내 질문은 SELinux를 사용하여 이러한 유형의 공격으로부터 자신을 보호할 수 있느냐는 것입니다.

의지하다! qemu 실행 파일은 SELinux 컨텍스트에서 실행되므로 허용된 작업만 수행할 수 있습니다.

그러나 0day가 KVM, 커널 등에 영향을 미치는 경우에는 보안 경계가 없습니다.

아니면 이러한 공격으로부터 보호할 수 있는 더 좋은 방법이 있습니까?

솔직히 말해서, 국가 예산 규모의 전문가가 고가치 목표에 대해 어떤 활용을 하고 있는지 분석하는 것이 아니라면 걱정하지 말고 최신 버전의 Linux를 사용하는 것이 좋습니다. Linux는 악용될 수 있거나 악용된 기능에 대한 패치를 정기적으로 릴리스할 수 있기 때문에 정기적으로 릴리스합니다.

전체 AWS 또는 NSA 등과 같은 고가치 대상을 대상으로 국가 예산 규모의 전문가 그룹이 활용하고 있는 내용을 분석할 수 있다면 Air-Gap 네트워크의 특수 컴퓨터를 사용하여 작업을 수행하지 않는 이유는 무엇입니까?

관련 정보