[CS] 가상화란 무엇인가? : 가상화 기술들의 차이와 주요 개념 및 활용 사례

Cookie·2025년 7월 23일
0

ComputerScience

목록 보기
7/9
post-thumbnail

보안을 공부하다 보니 자연스럽게 가상화 기술을 접하게 되었음
대략적인 개념에 대한 이해만 알고 넘어갔던 부분들이 많아서 이번 기회에 정리해보고자 함
특히 가상머신VM, 컨테이너(Docker) 같은 환경이 실습이나 샌드박스 분석 등에서 자주 쓰이다보니, 기본 개념과 차이점, 그리고 보안 관점에서 왜 중요한지를 중심으로 다뤄 보고자 함




가상화란 무엇인가❓

가상화Virtualization란 물리적인 자원(CPU, 메모리, 저장소 등)을 소프트웨어적으로 추상화하여 하나의 자원을 여러개처럼 나누어 쓰거나, 반대로 여러 자원을 하나처럼 통합해서 사용할 수 있게 만드는기술.

ex) 하나의 컴퓨터(호스트) 안에 여러 개의 가상 컴퓨터(게스트)를 만들어 운영할수 있게 해주는 기술


대표적인 예시

하나의 서버에 여러 운영체제를 설치해 테스트 환경을 구성하거나 격리된 공간에서 악성코드 분석 등

  • 클라우드 인프라 : ex) AWS EC2는 물리 서버를 여러 VM으로 나눠서 고객에게 제공함
  • 스토리지 가상화 : 여러 물리 디스크를 하나의 논리 볼륨처럼 사용하는 LVM 등
    • LVM(Logical Volume Manager) : 리눅스에서 하드디스크나 파티션을 논리적으로 묶어서 유연하게 관리할 수 있게 해주는 기술
  • 네트워크 가상화 : VLAN, VXLAN 등으로 하나의 네트워크를 논리적으로 분리

이처럼 가상화는 IT 인프라의 유연성을 크게 높여주기 때문에, 개발/보안/운영 등 거의 모든 분야에서 활용됨




가상머신과 컨테이너

가상화 기술은 대표적으로 두 가지 방식으로 가상머신VM: Virtual Machine과 컨테이너Container가 있음
두 방식 모두 애플리케이션을 격리된 환경에서 실행하기 위한 기술이지만, 동작 방식과 목적에 차이가 있음


🖥️가상 머신 (VM, Virtual Machine)

하드웨어 전체를 가상화하여 운영체제를 포함한 전체 시스템을 소프트웨어로 에뮬레이션

"완전한 운영체제를 포함한 격리된 환경"

  • 하이퍼바이저를 통해 물리 자원을 분할하고 각 VM은 자체 OS(게스트 OS)를 가짐

예시ℹ️

  • 서로 다른 OS에서 악성코드 테스트
    : Windows 7 vs 10에서의 실행 차이 확인
  • 클라우드에서 VM 단위로 서버 관리
    : 웹 서버용 VM, DB용 VM분리

  • 대표 기술 : VMware, VirtualBox, Hyper-V

장점✅

  • 호환성과 격리성이 뛰어남
  • 보안상 더 강한 경계 제공

단점❌

  • 게스트 OS까지 구동하므로 무겁고 리소스 사용이 많음
  • 부팅 시간 느림



📦컨테이너 (Container)

애플리케이션과 필요한 라이브러리만 패키징하고 커널은 호스트 OS와 공유, OS 수준에서 가상화함

"빠르고 가볍지만, OS 커널을 공유하기 때문에 보안 격리는 비교적 약함"


예시ℹ️

  • Docker로 웹 앱 + DB를 컨테이너 두 개로 나눠서 실행
    : nginx + mysql
  • CI/CD 파이프라인에서 컨테이너 이미지 빌드 후 테스트 자동 실행

  • 대표 기술 : Docker, Podman, LXC

장점✅

  • VM보다 가벼움
  • 실행 속도가 빠름
  • 배포와 확장성이 좋음

단점❌

  • 보안 격리는 VM보다 약함
  • 호스트 커널에 영향을 받을 수 있음



👥핵심 차이

항 목가상 머신(VM)컨테이너(Container)
가상화 범위하드웨어 전체운영체제 수준(커널 공유)
OS 포함 여부포함 (게스트 OS)미포함 (호스트 OS 공유)
리소스 사용높음 ⬆️낮음 ⬇️
실행 속도느림 🐢빠름 🐎
보안 격리강함상대적으로 약함
대표 기술VMware, VirtualBoxDocker, Podman




하이퍼바이저(Hypervisor) 개념🔎

가상화를 실현시키는 핵심 기술

하이퍼바이저는 물리적인 컴퓨터(Host Machine) 위에서 여러 개의 가상 머신(Guest VM)을 실행하고 하드웨어 자원을 동적으로 분배하고 관리하는 소프트웨어 계층

CPU, 메모리, 디스크, 네트워크 등 물리 자원을 가상화하여 각 가상 머신이 독립적인 시스템처럼 동작하게 해줌

VM간 네트워크는 가상 스위치(Virtual Switch)로 구성됨
CPU나 메모리는 하이퍼바이저가 스케줄링해서 각 VM에 배정함
→ 자원 경합 상황 예시 가능


구조 및 작동 원리

  • 하이퍼바이저는 가상 머신이 실제 물리 하드웨어에 직접 접근하는 것을 통제 및 중재
  • 각 VM은 자신만의 운영체제(OS)와 애플리케이션을 갖지만, 실제로는 하이퍼바이저를 통해 물리 자원에 접근
  • 하드웨어하이퍼바이저가상 머신 순으로 자원 흐름이 구성됨



종류⚙️

1️⃣ Type 1 (Bare-metal)

: 하드웨어 위에서 직접 설치되어 동작하는 하이퍼바이저

운영체제 없이 바로 부팅되고(BIOS → 하이퍼바이저) 하이퍼바이저 위에 가상 머신(VM)들이 직접 올라감

  • 서버 환경에서 자주 사용
    • 기업 서버에 VMWare ESXi 올리고, 그 위에 웹 서버/DB 등 분리 운영
    • ex: VMware ESXi, Microsoft Hyper-V, Xen

  • 👍 성능 우수, 리소스 효율적, 보안성 높음
  • 👎 설치 및 관리 난이도 높음

2️⃣ Type 2 (Hosted)

: 기존 OS 위에서 애플리케이션 형태로 동작하는 하이퍼바이저

일반 소프트웨어처럼 설치됨 (OS → 하이퍼바이저 → VM)

  • 데스크탑 환경에서 테스트 용으로 많이 사용됨
    • 사용자가 자신의 윈도우에 VirtualBox 설치 후 리눅스 실습 환경 세팅
    • ex: Oracle VirtualBox, VMware Workstation

  • 👍 설치 쉬움, 사용자 친화적
  • 👎 성능 저하, 보안/격리 한계 존재



보안 분야에서는 악성코드 분석용 샌드박스 환경을 만들거나, 다양한 보안 테스트 환경을 구축하는데 주로 Type 2 하이퍼바이저가 쓰임




샌드박스와의 차이점❗

가상화와 헷갈릴 수 있는 개념중 하나가 샌드박스(Sandbox)
샌드박스는 엄연히 다른 개념임


샌드박스(Sandbox)란❓

샌드박스는 시스템으로부터 격리된 가상의 실행 환경으로, 애플리케이션이나 코드가 시스템 전체에 영향을 주지 않도록 보호하는 기술.

모래상자(Sandbox) 처럼, 아이들이 자유롭게 놀되 울타리 안에서만 활동하는 것

  • 보안에서는 주로 의심스러운 코드나 파일을 안전하게 실행·분석하기 위해 사용
  • 일반 OS나 하드웨어 수준까지 가상화하지 않고, 프로세스 수준에서 격리하는 방식이 많음

샌드박스는 가볍고 빠르게 격리 환경을 만들 수 있어서 브라우저, PDF 리더기, 안티바이러스 제품에서 자주 사용됨


예시ℹ️

  • 애플리케이션이 시스템 호출을 시도할 경우, 샌드박스는 이를 감시 및 제한
  • 임시 가상 파일 시스템, 네트워크 격리, 가짜 레지스트리 등을 제공해 실제 시스템을 보호



☑️핵심 차이

가상화는 완전한 시스템 분리, 샌드박스는 '일시적'이고 '제한된' 격리 공간.

항 목가상화(Virtualization)샌드박스(Sandbox)
목 적완전한 OS/자원 격리제한된 실행 공간 제공
기술 기반하이퍼바이저, 컨테이너소프트웨어적 격리, 커널 기능(AppArmor, SECCOMP 등)
자원 사용상대적으로 큼비교적 적음
격리 수준전체 시스템 수준프로세스/애플리케이션 수준
지속성재부팅 후에도 유지됨대부분 일시적(재시작 시 초기화)
예 시개발 환경, 서버 분리, 클라우드악성코드 분석, 브라우저 보안, 앱 권한 제어



두 가지 모두 격리된 공간을 제공하지만 격리하는 기준/수준이 다르고 실제 구현 목적이 다름

가상화는 완전히 독립된 시스템을 복제한 것이고,
샌드박스는 일시적으로 제한된 환경을 만들어 위험한 행동만 차단하는 기술




실무에서의 활용 사례📜

🛠️개발 & 테스트

가상화의 컨테이너는 개발 환경을 격리하거나 운영체제별 호환성 테스트에 자주 사용됨

예를 들어 Docker를 이용하면 프로젝트마다 다른 라이브러리 버전을 독립적으로 유지할 수 있고, VirtualBox에 다양한 OS를 설치해 플랫폼별 실행 결과를 비교할 수도 있음

  • 다양한 OS에서 프로그램 테스트
  • 프로젝트별 환경 분리
  • CI/CD 파이프라인에 격리된 테스트 환경 구성



🧪보안 분석

보안 분석에서는 의심스러운 파일을 안전하게 실행하거나 침해사고를 재현하는 환경이 필수임

VM 기반의 동적 분석 환경이나 Docker 기반 취약 시스템(DVWA)을 통해 실습과 검증을 반복

  • 악성코드 동적 분석용 가상환경 구축
  • 침해사고 재현 및 로그 분석, 대응 시뮬레이션
  • 취약 시스템 테스트 환경 구성



🔧시스템 운영

운영 측면에서는 서버 자원을 효율적으로 나누고, 서비스 간 영향을 최소화하는 격리 수단으로 활용됨

VM단위로 서비스 역할을 분리하면 장애 전파를 막을 수 있고, 컨테이너는 빠른 배포와 확장에 유리함

  • VM으로 서버 통합 및 역할 분리
  • 컨테이너 기반 마이크로서비스 운영
  • 장애 시 VM 스냅샷을 활용한 빠른 복구



🎓교육 및 실습

교육에서는 격리성과 복제 가능성이 중요한데, VM이나 컨테이너를 통해 동일한 실습 환경을 여러 명에게 제공할 수 있음

CTF대회나 모의 해킹 훈련에서도 공격과 방어 시나리오를 안정적으로 구현할 수 있음

  • 동일 환경의 실습 VM 배포
  • CTF 대회 운영시 격리된 컨테이너 제공
  • 취약점 분석 실습 및 버그바운티 제공
profile
나만의 공부 일지... [임시 休]

0개의 댓글