본문 바로가기
Technology Study/2. Virtualization Security

[가상화] 보안팀이 바라보는 가상화 운영 보안

by 행태정보수집가 2024. 8. 21.
※ 서론

 

회사에서 IDC센터를 통해 물리 서버를 운영하고 있다. 해당 서버들은 대부분 가상화하여 유동적으로 서버를 생성하고 폐기하고 있다. 서버와 DB에 대한 접근통제는 하고 있는데 서버를 생성하는 순간부터 폐기하는 과정까지 많은 보안 홀들이 존재하지 않을까 생각했다. 그런데 가상화 개념조차 알지 못해서... 학습해본다.

물론 모든 영역을 딮하게 이해하는 것도 중요하지만 언제나 시간은 부족하고 공부해야할 건 많다. 이론은 찍먹만하고 보안관점에서 바라보겠다. 따라서, 왜 이러한 기술들이 나왔는지는 생략하겠다. 알아서 찾아보도록.

 

* 개인적인 학습을 위해 작성된 글이며 팩트와 글의 내용이 다를 수도 있습니다.


※ 요약

[가상화 도식화]

 

대충 어떤 구조인지 파악하자. 내가 다니고 있는 회사에서는 2가지 하이퍼바이저 가상화 서비스를 운영하고 있다.

  1. 신규 서비스 Open을 위해 IDC센터에 있는 하이퍼바이저 가상화 서버를 통해 신규 서버를 구축한다. (MS-Hyper-v)
  2. 개인정보처리시스템에 접속하기 위해 하이퍼바이저 가상화 서버에서 VDI를 생성한다. (Citrix XenServer)

내가 공부해야하는 부분은 하이퍼바이저를 운영하며 어떤 보안 리스크가 존재하는지 인지하는 것인데, 간단하게 가상화 종류별로 어떤 차이가 있는지만 알아보겠다. (시스템 or 하드웨어 단위에서 학습하지는 않을 예정임.)

 


※ 가상화 종류별 구조 및 특징

분류 내용
OS 가상화 하이퍼바이저 가상화
(Type 1)
전 가상화 1. 하드웨어를 완전히 가상화하는 방식이다.
2. System Call(Application → Kernel → H/W)을 Hypervisor 단에서 처리한다.
3. 서로 다른 OS를 지원한다.
4. Trap&Emulate 또는 Binary Translation 과정에서 발생하는 리소스를 Hypervisor가 처리하므로 오버헤드가 발생한다.(성능이 느려진다)

* Trap&Emulate : 도메인이 특권명령을 실행하면 Hypervisor 단에서 실행하도록 처리하는 과정
* Binary Translation : 다양한 OS의 데이터 이동(System Call)을 Hypervisor 단에서 하나의 형식으로 처리해주는 과정
반 가상화 1. 전 가상화의 Hypervisor 오버헤드 발생을 보완하기 위한 방식이다.
2. Hyper Call을 통해 System Call과 동일하게 작용하도록 한다.
(Geust OS → Hypervisor)
3. Hyper Call을 날릴 수 있도록, Guest OS 커널을 수정해야 한다.
호스트 가상화
(Type 2)
1. Host OS 위에 Guest OS가 구동되는 방식이다.
2. 가상화 소프트웨어를 사용하는 방식이다.
컨테이너 가상화 1. 프로세스를 격리된 환경에서 실행하는 기술이다.
(커널은 공유하나, 프로세스를 격리된 환경에서 실행한다.)
2. Hypervisor 환경보다 가볍고 빠르다.
(보안리스크는 커진다.)

* 전 가상화에서의 Guest OS는 자신이 Guest OS라고 인지하지 못하나, 반 가상화에서의 Guest OS는 자신이 Guest OS라고 인지한다.(Hyper Call을 날리기 위해)

* 전 가상화는 모든 명령어를 가상화해야 하나, 반 가상화는 꼭 필요한 명령어만 가상화 한다.

 


※ 보안 관점 : Hypervisor 보안?

 

하이퍼바이저는 어떻게 보안해야할까 고민을 많이 했다..... 나는 개발자가 아니기에 하드웨어 단에서 보안할 수 없다는 것을 깨달았다. 결국 하이퍼바이저 운영단에서 보안해야 한다....

 

하이퍼바이저 운영은 콘솔을 대부분 사용한다. 즉 콘솔을 사용에 있어서 보안해야한다..? (진짜 모르겠음)

 

 

VMWare에서 ESXi Console 보안방법 같은데... 운영 안해봐서 이해안되는 것도 있다.

대부분의 보안시스템 Console에서 적용되고 있는 보안 정책과 비슷한 수준이다.

  1. 엑세스 제한 : 접근통제 - 권한 있는 사용자만 콘솔 접근 가능
  2. 명명된 사용자 및 최소 권한 사용 : Root 권한 사용 금지 / 명명된 관리자 생성 및 역할별 권한 부여
  3. Open된 방화벽 포트의 수 최소화 : 방화벽 포트 관리...
  4. 호스트 관리 자동화 : 스크립트를 통해 호스트를 관리하란 소리인데.. 이해안됨 
  5. 잠금 모드 이용 : 계정에 대해 잠금모드를 활성화하란 소리 같다....
  6. 무결성 검사 : 각 패키지에 무결성 검사를 하란다... 호스트의 허용 범위가 있어서 무결성 검사..?
  7. 인증서 관리 : 루트 인증 기관이 서명된 인증서를 프로비저닝 해야한다
  8. 스마트 카드 인증 고려 : 대충 MFA 사용하란 뜻 같음.
  9. 계정 잠금 고려 : 로그인 시도 실패 시, 잠금 설정해야 한다.

 

 

 

출처 : 
https://suyeon96.tistory.com/53#Trap%--%--%--Emulation

https://kubernetes.io/ko/docs/concepts/overview/

https://docs.vmware.com/kr/VMware-vSphere/7.0/com.vmware.vsphere.security.doc/GUID-E9B71B85-FBA3-447C-8A60-DEE2AE1A405A.html