커널을 건드리는 기술은 가상머신에서 테스트해야 합니다 (VMware 설정 가이드)

송연지·2025년 7월 15일
0


시스템 커널 단에 접근하거나 드라이버를 후킹하고, 보안 모듈을 붙이는 작업을 진행하다 보면 이런 생각이 듭니다.

“이 작업, 잘못 붙였다간 블루스크린(BSOD) 뜨는 거 아닌가요?”

실제로 커널 단 작업은 단 하나의 실수만으로도 시스템이 멈추거나 부팅이 불가능해질 수 있습니다. 그렇기 때문에 많은 개발자들이 가상머신(Virtual Machine, VM)을 사용하여 테스트를 진행합니다.

제 메인 PC가 무너지면 저의 하루는 끝이기 때문입니다.


🤔 가상머신을 사용해야 하는 이유

제가 진행하는 작업은 운영체제 깊숙한 곳, 즉 커널 레벨까지 접근하는 작업입니다.

예를 들어 드라이버를 설치하거나, 보안 소프트웨어처럼 시스템 콜을 가로채는 코드들은 예외 처리 한 줄이 누락되면 블루스크린이 발생할 수 있습니다.

  • 테스트 서명(bcdedit)을 잘못 켜거나 끄면 부팅 불가
  • 드라이버 서명 인증에 실패하면 OS가 실행되지 않음
  • 예외 없는 후킹 코드 테스트 시 전체 시스템이 중단

이러한 위험을 안전하게 분리된 공간에서 테스트할 수 있는 유일한 방법이 가상머신을 사용하는 것입니다.


🧾 주요 가상머신 종류 및 장단점 비교

가상머신 종류설명장점단점
VMware WorkstationWindows 기반 데스크탑 가상화 솔루션안정성 우수, 스냅샷 기능, 장치 연결 뛰어남상용(유료), 무겁고 리소스 많이 소모함
VirtualBoxOracle 제공 오픈소스 가상머신무료, 가볍고 빠름, 다양한 OS 지원GUI 불편, 드라이버 충돌 빈번, 3D 가속 취약
Hyper-VWindows Pro 이상에 내장된 가상화 도구Windows에 통합, 성능 우수, 스냅샷 가능설정 복잡, USB 직결 어렵고 일부 OS에서 오류 발생
QEMU + KVMLinux 기반 고성능 가상화 솔루션고성능, 자동화에 적합, 오픈소스CLI 중심, 설정 복잡, GUI 환경 구축 필요
ParallelsmacOS 전용 상용 가상머신macOS 호환 우수, 부드러운 UX유료, mac 전용, 고급 설정 제한

🛠 저는 VMware Workstation을 선택했습니다

제가 VMware를 선택한 이유는 다음과 같습니다.

  • Windows 커널 드라이버 테스트를 안전하게 진행할 수 있습니다.
  • 스냅샷 기능을 통해 커널 변경 전 상태로 되돌릴 수 있어 실수 복구가 쉽습니다.
  • USB 디바이스 테스트가 필요했는데, VMware의 USB passthrough 안정성이 매우 뛰어났습니다.
  • 무엇보다 UI가 직관적이어서 복잡한 설정 없이 가상머신을 구성할 수 있었습니다.

💻 VMware Workstation 설치 및 설정 방법

1. VMware 설치 파일 다운로드

  • 공식 웹사이트: https://www.vmware.com
  • “VMware Workstation Pro” 또는 비상업용 무료인 “Player” 중 선택하였습니다.

2. 설치

  • 다운로드한 .exe 파일을 실행하여 기본값으로 설치하였습니다.
  • 설치 후에는 시스템 재부팅을 한 번 진행하였습니다.

3. 가상머신 생성

  • VMware를 실행한 뒤, “Create New Virtual Machine”을 클릭하였습니다.
  • Typical 모드를 선택하였으며, 테스트용으로 Windows 10 ISO 이미지를 지정하였습니다.

4. 가상 디스크 및 저장 위치 설정

  • 가상머신 이름은 DriverTest_VM으로 지정하였고, 저장 위치는 SSD 드라이브로 설정하였습니다.
  • 디스크 용량은 60GB로 설정하였으며, 성능을 고려하여 “단일 파일로 저장” 옵션을 선택하였습니다.

5. 하드웨어 커스터마이징

  • CPU는 2코어 이상, 메모리는 4GB 이상 할당하였습니다.
  • USB 장치 연결을 위해 USB 컨트롤러를 활성화하였고, 네트워크는 NAT로 설정하였습니다.
  • 디버깅 중 발생할 수 있는 충돌을 방지하기 위해 3D 가속 기능은 비활성화하였습니다.

6. 운영체제 설치

  • ISO 이미지를 통해 부팅 후 일반적인 Windows 설치 과정을 진행하였습니다.
  • 설치 후 관리자 권한 계정으로 로그인하여 환경을 구성하였습니다.

🔐 커널 테스트를 위한 사전 준비

  • bcdedit /set testsigning on 명령어로 테스트 서명 모드를 활성화하였습니다. 이 명령은 테스트용 드라이버를 설치하거나 커널 레벨 코드를 실행할 수 있게 해줍니다. ⚠️ 명령 실행 후에는 가상머신을 재부팅해야 적용됩니다. (실제 PC는 절대 재부팅 금지!)
  • Windows Defender와 기타 실시간 보안 프로그램은 임시로 비활성화하였습니다. 커널 접근 시 과도한 보안 검사로 인한 충돌을 방지하기 위함입니다.
  • 시스템 설정 직전에는 반드시 스냅샷을 생성하여 복구 지점을 확보하였습니다. 문제가 발생할 경우 몇 초 만에 초기 상태로 복구할 수 있도록 준비해두는 것이 중요합니다.

✅ 마무리하며

가상머신은 단순히 보조적인 개발 도구가 아닙니다.

실수해도 안전하게 복구할 수 있는 실험실이자, 시스템 개발의 생명선입니다.

특히 커널 단 드라이버를 테스트하거나, 시스템 레벨에서 작동하는 후킹 또는 보안 코드를 개발하실 때는 반드시 가상머신에서 진행하시는 것을 추천드립니다.

그중에서도 VMware Workstation은 안정성, 편의성, 확장성 면에서 강력한 선택지였습니다.

profile
프론트엔드 개발쟈!!

0개의 댓글