VMware vSphere는 UEFI Secure Boot, 가상화 기반 보안(Microsoft Device Guard & Credential Guard 사용), vTPM, 암호화된 vMotion, VM 암호화, vSAN 암호화 등과 같은 게스트 운영 체제의 보안을 개선하기 위한 다양한 툴을 제공한다. VMware Tools를 통해 사용 가능한 몇 가지 옵션에 대해 게스트 OS 안쪽을 살펴봅시다.
보안은 과정이자 사고방식이며, 우리가 공격자의 관점을 고려해야 할 것은 무엇이든 확보하기 위해서입니다. 공격자는 누구인가? 멀웨어 또는 기타 방법을 통해 조직의 네트워크에 액세스할 수 있는 사용자일 수 있다. 또한 악의적인 직원, 협박을 당하는 직원, 심지어는 조직의 리소스에 계속 접근하는 전직 직원일 수 있는 ‘내부 위협’으로 알려진 것일 수 있다. 두번째로 생각해야 할 질문은 공격자가 무엇을 원하는가 입니다. 가상 머신에 보안된 데이터에 대한 액세스를 원할 가능성이 높다. 또한 가상 머신을 사용하여 다른 가상 머신에 액세스하려고 시도하고 있을 수 있다.
공격자가 조직 환경에서 더 오래 근무할수록 VMware Carbon Black의 툴, vRealize Log Insight와 같은 제품에서 로그 검토 및 경보를 통해 더 많이 발견될 가능성이 높거나, 단지 호기심 많은 관리자가 비정상적인 행동(예: “The Cuckoo’s Egg“)을 찾아낼 수 있을 뿐이다. 이를 피하기 위해 공격자는 전체 가상 머신에서 “특히 위험한 위치에서 은밀히 철수”를 선택할 수 있다. 이는 가상화된 마이크로소프트 Active Directory 도메인 컨트롤러의 경우 특히 일반적인 목표다. 공격자는 단순히 가상 시스템의 복사본을 자신의 인프라에 가져갈 수 있으며, 여기서 침입을 시도하여 검색이나 잠금에 대한 두려움 없이 암호를 해독할 수 있다.
우리가 그것에 대해 무엇을 할 수 있을까? 예를 들어 vCenter Server 역할 기반 액세스 제어를 사용하여 VM 복제 및 암호 해독 권한이 있는 사용자를 제한할 수 있으며, 또한 내가 포스트 “The Importance of Isolation for Security“에 쓴 기법을 사용하여 흔히 “심층 방어”라고 불리는 방어 층을 추가하여 공격자들에게 추가적인 장애물을 만들 수 있다. VMware Tools에는 흥미로운 옵션도 몇 가지 있다.
시작하기 전에
이 게시물은 VMware Tools 11.1.0을 염두에 두고 작성되었다. 이러한 아이디어의 대부분은 CLI 명령을 보여주며 다음과 같은 실행 파일을 사용할 수 있다.
C:\Program Files\VMware\VMware Tools\VMwareToolboxCmd.exe(Windows)
/usr/bin/vmware-toolbox-cmd(Linux, open-vm-tools 패키지 사용)
이 예제는 윈도우즈 실행 파일을 참조하지만, 리눅스 명령으로 대체하고 동일한 매개 변수를 사용할 수 있다.
이러한 옵션의 대부분은 vSphere Client에서도 구성할 수 있다. 그러나 격리를 추가하기 위해 작업하는 경우 게스트 OS 수준에서 설정하면 이러한 제어 기능이 강화된다. vSphere 인프라에 액세스할 수 있는 공격자는 vSphere 인프라에 다시 액세스할 수 있지만 게스트 OS에서 이를 사용하지 않도록 설정하면 공격자가 더 어려워질 수 있다.
경고의 몇 마디
모든 것과 마찬가지로, 변화를 시험해 보고, 이와 같은 변화의 단계별 롤아웃을 한다(한 대의 기계, 그 다음에 5, 15, 그리고 150 등, 하루나 이틀 사이에 기다림). 무언가를 할 수 있다고 해서 반드시 해야 한다는 의미는 아니라는 점을 기억하기 바란다. 보안과 사용 편의성이 의도적으로 서로 상충되는 경우가 많으며 필요하지 않은 곳에 제어 기능을 추가하면 VM을 쉽게 관리하거나 도구를 구현하는 기능이 제한될 수 있다는 점을 명심하자. 예를 들어, vRealize Operations Manager는 모니터링이 보안에도 매우 중요하기 때문에 이러한 여러 기능을 사용하여 VM을 모니터링하고 관리하는데, 이는 순이익이다(CIA 3중창의 ‘A!’). 항상 트레이드오프와 예외가 있으니 현명하게 선택하기 바란다.
마찬가지로 VM에 대한 관리자/루트 권한이 있는 경우 vSphere 관리자에게 먼저 문의한 후 이러한 권한을 차단한다. 이러한 방식으로 사용할 수 있지만 이 게시물이 vSphere 관리자를 방해하기 위한 가이드가 되지는 않는다. 그들에게 미리 예의를 갖추기 위해서라면 먼저 말을 걸어라. 조직의 요구가 바뀌면 미래에 그것들을 바꿀 수 있는 방법이 있는 한, 당신은 그것들이 아이디어에 수용적이라는 것을 발견할 수 있을 것이다. vSphere 관리자가 감사, 패치 적용, 보고 등의 작업을 돕기 위해 이러한 기능 중 일부를 사용하고 있지만 개인적으로 관여하고 싶지는 않을 수도 있다.
마지막으로, 우리가 항상 정확성을 위해 노력하는 동안, 이것은 지침으로 의도된 것이다. 환경 보호와 관련하여 자체 전문 보안 및 컴플라이언스 감사 담당자를 참여시킨다. 모든 환경은 다르고, 구현의 구조와 세부사항은 엄청나게 중요하다.
시간 동기화 확인
시간 동기화는 보안을 위해 매우 중요하다. 암호화 운영은 다른 호스트에 연결하기 위한 정확한 시간이 필요하며, 정확한 시간은 로그의 정확한 타임스탬프를 의미하며, 이는 위반이 발생해야 하는 경우 진단 및 시간표 개발에 중요하다. 게스트 OS 시간을 ESXi 호스트에 동기화하지 않고 VM을 NTP 또는 다른 시간 소스와 동기화하도록 하는 것이 가장 좋은 방법으로 간주된다. N+1 이중화를 달성하기 위해 최소 4개의 NTP 소스를 사용하는 것도 모범 사례로 간주된다(최소 소스가 3개, 이중화를 위한 추가 소스가 1개). 어떤 소스가 올바른지 알 수 없으므로 두 소스를 구성하지 마십시오!
시간 동기화가 게스트 내에서 비활성화되도록 하려면 다음 명령을 사용하십시오.
VMwareToolboxCmd.exe timesync disable
VMware 툴에 대한 업데이트 제어
다른 소프트웨어를 업데이트하는 것처럼 VMware Tools를 업데이트하는 것이 중요하다. 문제가 고정되고 개선되며 특징이 추가된다. vSphere Administrator는 인프라 자체에서 VMware Tools 업그레이드 프로세스에 영향을 미칠 수 있으며, 이는 시간을 크게 단축할 수 있다. 그러나 이러한 작업은 인프라 자체에서 가상 머신에 실행 파일을 로드하고 있음을 의미하며 이는 VM 또는 애플리케이션 관리자가 제어할 수 있는 것일 수 있다. 마찬가지로 vSphere 관리자는 관심이 있을 수도 있고 없을 수도 있는 일부 VMware Tools 기능을 제어할 수 있다.
vSphere 인프라를 통하지 않는 VMware Tools를 조직에서 공식적으로 업데이트 및 구성할 수 있는 방법이 있다면(예: 별도의 시스템 관리 툴을 사용) 이러한 인프라 기능을 사용하지 않도록 설정하는 것이 좋다.
VMwareToolboxCmd.exe config set autoupgrade allow-upgrade false VMwareToolboxCmd.exe config set autoupgrade allow-add-feature false VMwareToolboxCmd.exe config set autoupgrade allow-remove-feature false
VM 사용자 지정 방지
VM을 복제하고 VM에 사용자 지정 규격을 적용하는 것을 고려할 때 휴먼 오류와 공격자 모두에게 몇 가지 흥미로운 기회가 있다. 사용자 지정 규격을 사용하면 관리자 암호를 변경하고, 네트워크 설정을 재설정하고, 도메인 구성원 자격을 변경하며, 심지어 누군가가 처음 로그인할 때 한 번 실행되도록 명령을 설정할 수 있다. VMware Tools를 사용하면 사용자 지정을 사용하지 않도록 설정할 수 있으며, 템플릿에서 VM을 구현한 후에는 이를 사용하지 않도록 설정하여 다른 사용자가 사용자 지정 기능을 사용자 환경이나 사용자 환경에 적용할 수 없도록 하는 것이 일반적으로 좋은 방법일 수 있다.
VMwareToolboxCmd.exe config set deployPkg enable-customization false
AppInfo를 통해 제공되는 제어 정보
Appinfo는 VMware Tools를 통해 애플리케이션 검색을 수행하는 방법이다. 실행 중인 프로세스에 대한 정보를 얻을 수 있는 좋은 방법이며, vRealize Operations Manager와 같은 툴은 이를 사용하여 환경을 모니터링하는 데 도움이 된다(vSphere Cloud Community 블로그에 해당 프로세스 사용에 대한 게시물이 있음). 또한 VM 자체에 대한 액세스 권한이 없는 공격자가 액세스 권한을 얻기 위해 사용할 취약성을 쉽게 결정할 수 있으므로 패치 상태를 평가하는 데 사용할 수도 있다. 사용하지 않는 경우 비활성화를 고려하십시오.
VMwareToolboxCmd.exe config set appinfo disabled true
게스트 작업 사용 안 함(Invoke-VMScript)
게스트 운영은 vSphere 내에서 vSphere 관리자가 PowerCLI cmdlet 호출-VMScript를 사용하여 인프라 자체에서 게스트 운영 체제와 상호 작용할 수 있는 강력한 관리 기능이다. Invoke-VMScript는 이를 적용하기 위해 게스트 인증을 사용하므로 이를 사용하려는 사용자는 호스트에 대한 액세스 권한이 있는 계정을 알아야 한다(그러나 도메인 가입 게스트 고려). 조직에서는 이미 관리 게스트 OS에 ad-hoc 명령을 실행할 수 있으며, 이 경우 다음 명령을 사용하여 이 기능을 사용하지 않도록 설정하는 것을 고려할 수 있다.
VMwareToolboxCmd.exe config set guestoperations disabled true
설치된 모듈 고려
VMware Tools는 Workstation, Fusion, ESXi 및 VMware Cloud에서 VM을 실행하는 광범위한 VMware 고객 커뮤니티에 서비스를 제공하기 위한 것으로, 어디에서나 기능이 다르다. 예를 들어 Workstation은 Service Discovery 기능을 사용하지 않으며, ESXi는 공유 폴더를 구현하지 않는다. 이에 대처하기 위해 VMware Tools 개발자는 고객이 설치 대상을 세분화할 수 있도록 많은 Tools를 모듈화했다.
vSphere에서는 성능상의 이유로 반가상화 디바이스 드라이버(vmxnet3 및 pvscsi)를 적극 권장하며, 다른 드라이버는 보안에 대한 절충 없이 더 나은 성능을 제공하는 다른 기능을 제공한다. 그러나 이러한 기능을 사용하지 않는 경우 Service Discovery, App Defense, Shared Folders 등과 같은 다른 모듈들은 필요하지 않을 수 있다(VMCI 구성 요소 자체는 버전 보고, Tools 상태 등을 포함한 하이퍼바이저 대 게스트 통신을 처리하므로 설치된 상태로 두는 것이 좋다). VMware Tools Installer GUI에서 또는 자동 설치를 위한 명령줄 플래그를 통해 기능을 사용자 지정할 수 있다.
설치에 대한 기본값을 수락하는 것이 나쁜가? 아니오. 대부분의 고객은 해당 수준의 세분화를 처리할 필요가 없으며, VMware Tools를 적시에 업데이트하면 대부분의 상황에 대해 다룰 수 있습니다. 더 높은 수준의 보안에 관심이 있는 고객에게는 복잡성을 더 많이 희생시키더라도 이러한 고려사항을 고려할 수 있다. 처음에 말씀드렸듯이, 보안을 너무 멀리하고 자신의 삶을 스스로 만드는 것, 그리고 모든 종류의 IT 직원의 삶이 어려운 것이 가능하다. 현명하게 선택하고, 의사소통을 잘하며, 테스트하고, 단계별 롤아웃을 실행하기 바란다.
행운을 빌고 안전하게 지내세요.
출처 : https://blogs.vmware.com/vsphere/2020/07/security-with-vmware-tools.html