VM환경 구성하기

김윤성·2026년 4월 21일

악성코드 분석

목록 보기
8/10

동적 분석을 진행하려면 악성코드를 실제로 실행할 수 있는 분리된 환경이 필요하다.
이번 편에서는 분석용 VM을 어떻게 구성했는지 정리했다.


동적 분석에서는 악성코드를 실제로 실행해봐야 한다. 하지만 실제 PC에서 돌리면 감염 위험이 있기 때문에, 호스트와 분리된 환경이 필요하다. 그 환경을 만드는 게 VM(Virtual Machine)이다.

이번 편에서는 VM이 뭔지, 왜 쓰는지, 어떤 VM을 골랐는지, 그리고 실제 분석 환경을 어떻게 구성했는지를 정리한다.


🔍 VM이란?

VM(Virtual Machine, 가상머신)은 내 컴퓨터 안에 또 하나의 가상 컴퓨터를 만들어 쓰는 기술이다. 하나의 PC에서 Windows, Linux 같은 다른 OS를 따로 실행할 수 있고, 실습·테스트·보안 분석처럼 실제 PC에 바로 영향을 주기 부담스러운 작업에 주로 활용된다.

쉽게 말해, 내 컴퓨터 안에 독립된 연습용 컴퓨터를 하나 더 만드는 개념이다.

💡 원래 쓰고 있던 컴퓨터를 호스트(Host), 그 안에 새로 만든 가상 컴퓨터를 게스트(Guest)라고 한다. 호스트와 게스트는 기본적으로 분리되어 있다.


🎯 왜 VM을 쓰나?

악성코드 분석에서 VM을 쓰는 이유는 크게 세 가지다.

① 격리된 환경에서 분석하기 위해

실제로 동작하는 악성코드를 안전하게 실행하려면 호스트와 분리된 공간이 필요하다. VM 안에서 실행된 악성코드는 기본적으로 호스트 PC에 영향을 주지 않는다.

② 스냅샷 기능으로 무한 복구

분석 중 오류가 나거나 감염됐을 때, 스냅샷을 찍어둔 시점으로 되돌릴 수 있다. 매 분석마다 깨끗한 상태에서 시작할 수 있어서, 같은 악성코드를 반복 분석하거나 여러 악성코드를 돌려봐야 할 때 필수적이다. 실전에서 VM을 쓰는 가장 큰 이유라고 할 수 있다.

③ 분석 환경 표준화 및 트리거 맞추기

일부 악성코드는 특정 조건에서만 동작한다. 예를 들어 특정 언어(한국어 등) 설정일 때만 실행되거나, 특정 Windows 버전에서만 동작하는 경우가 있다. VM으로 환경을 원하는 대로 구성하면 이런 트리거에 맞춰 분석할 수 있다.


🛠 어떤 VM을 사용할까?

대표적인 VM 소프트웨어는 VMwareVirtualBox 두 가지다.

항목VMwareVirtualBox
특징안정적이고 편의성 중심무료 오픈소스, 자유도 높음
사용 편의성UI 직관적, 입문자도 편함기능은 많지만 설정이 투박함
실습 사용감스냅샷·복원·장치 연결이 편함세밀한 조정은 직접 챙겨야 함
어울리는 사용자편한 사용 경험을 원하는 쪽비용 부담 없이 가볍게 시작하려는 쪽

나는 VMware를 선택했다. 스냅샷 관리가 편하고, UI가 직관적이어서 설정을 건드려야 할 때 헤매지 않아도 된다는 점이 컸다. 자료도 풍부해서 문제가 생겼을 때 검색이 쉬운 것도 장점이다.


⚠️ VM 사용 시 주의사항

① 가상화 소프트웨어는 항상 최신 상태로 유지

매우 드물지만, VM 안에서 실행된 악성코드가 취약점을 이용해 가상 환경을 뚫고 호스트로 빠져나올 가능성이 0은 아니다(이를 VM Escape라고 한다). 이런 취약점은 희소하고 발견 즉시 패치되기 때문에, 최신 상태를 유지하는 것만으로도 대부분 방어된다.

② VM 안에서 계정 로그인 주의

VM 안에서 어떤 계정에 로그인해둔 상태라면, 감염 시 그 세션이나 계정 정보가 유출될 수 있다. 분석용 VM에서는 개인 계정 로그인을 피하는 게 좋다.

③ 공유 폴더, 드래그앤드롭, 클립보드 공유 비활성화

이 기능들은 호스트와 게스트 사이의 연결 통로다. 악성코드가 이 통로를 타고 호스트로 넘어올 수 있기 때문에, 분석 중에는 반드시 꺼둬야 한다.

⚠️ VMware Tools를 설치하면 편의 기능(클립보드 공유 등)이 활성화되는데, 분석 환경에서는 오히려 위험 요소가 될 수 있다. 설치하더라도 공유 기능은 끄거나, 아예 설치하지 않는 선택도 고려할 만하다.


🌐 네트워크는 NAT으로 구성했다

VMware의 네트워크 모드는 크게 세 가지가 있다.

모드특징
Host-only호스트·외부와 완전 격리. 외부 통신 불가
NATVM이 호스트를 거쳐 외부 인터넷과 통신
BridgedVM이 호스트와 같은 네트워크에 직접 연결

처음에는 NAT으로 설정하면 악성코드가 VM 밖(외부 인터넷)으로도 나갈 수 있어서 위험한 것 아닌가 싶었다. 하지만 동적 분석에서 네트워크 활동을 관찰하려면 악성코드가 실제로 외부 서버와 통신하는 모습을 봐야 한다. C2 서버와의 통신, DNS 쿼리, HTTP 요청 같은 정보는 외부로 나가는 길이 열려 있어야 관찰할 수 있다.

그래서 NAT으로 구성하되, 다음 두 가지 안전장치를 함께 두는 방식으로 결정했다.

  • 호스트와의 공유 기능 전면 차단 — 공유 폴더, 드래그앤드롭, 클립보드 공유를 모두 꺼서 VM에서 호스트로 넘어오는 경로를 막는다. NAT은 외부 인터넷과의 통신이지, 호스트와의 파일 공유 경로는 아니다
  • 가상화 소프트웨어 최신 버전 유지 — VM Escape 취약점 대비

⚠️ NAT 방식은 분석 대상 악성코드가 공격자 서버에 실제로 신호를 보낸다는 의미다. 랜섬웨어나 전파형 웜처럼 영향이 큰 샘플을 분석할 때는 Host-only나 가짜 네트워크(INetSim 등)로 돌리는 것도 고려해야 한다.


💻 실제 VM 구성 과정

VMware에서 새 VM을 만드는 과정을 단계별로 정리한다. 게스트 OS는 Windows 11로 구성했다. Windows 10도 지원 종료 수순에 들어간 만큼, 이번에는 최신 버전으로 환경을 맞췄다.

1. VMware 설치 — 공식 사이트에서 다운로드

2. 새 VM 생성 마법사 실행

3. Windows 11 ISO 선택

4. VM 이름 및 저장 경로 설정

5. 디스크 용량 설정 (Windows 11 기준 80GB)

6. 하드웨어 커스터마이징 — 메모리, CPU 코어 수, 네트워크 어댑터(NAT) 설정

실제로 구성한 사양은 아래와 같다.

항목
OSWindows 11 x64
메모리약 10GB
CPU2코어
디스크80GB
네트워크NAT

7. Windows 11 설치 진행

8. 초기 설정 완료 (업데이트, 기본 설정 조정)

9. 🟢 스냅샷 #1 — OS 설치 직후 상태

이 시점은 OS만 깔려 있고 아무 도구도 설치되지 않은 원점이다. 도구 설치가 꼬이거나 OS 자체를 초기화해야 할 때 여기로 돌아온다.

10. 분석 도구 설치 (정적·동적 분석에 사용하는 도구들)

11. 🟢 스냅샷 #2 — 분석 환경 세팅 완료 상태

도구는 깔려 있지만 아직 어떤 악성코드도 들어오지 않은, 가장 깨끗한 분석 환경이다. 다른 악성코드 분석을 새로 시작할 때 이 지점으로 돌아온다.

12. 분석 파일 전달 + 공유 폴더, 드래그앤드롭, 클립보드 공유 차단

스냅샷 #2로 롤백한 뒤, 드래그앤드롭을 일시적으로만 활성화해서 분석 파일을 VM으로 옮기고, 다시 비활성화한다. 상시 공유 경로를 열어두지 않기 위한 방식이다.

13. 🟢 스냅샷 #3 — 실제 분석 직전 상태

분석 파일이 VM에 들어왔지만 아직 실행하기 전인 상태다. 같은 파일을 반복 분석할 때 매번 이 시점으로 롤백하면 깨끗한 실행 조건에서 다시 시작할 수 있다.

💡 스냅샷을 3단계로 나눈 이유
단일 스냅샷만 두면 롤백할 때마다 도구 재설치나 파일 재전송이 필요해진다. 3단계로 나눠두면 상황에 맞는 지점으로 돌아갈 수 있다. 특히 #2는 여러 악성코드를 바꿔가며 분석할 때, #3은 같은 악성코드를 반복 분석할 때 활용된다.


📝 마무리

VM 구성은 분석의 안전판이자 반복 가능성 확보 수단이다. 기준 스냅샷이 있어야 매 분석이 깨끗한 상태에서 시작할 수 있고, 네트워크 모드와 공유 기능 설정이 제대로 되어 있어야 호스트로의 감염 경로를 차단하면서도 필요한 분석을 수행할 수 있다.


profile
꾸준한 IT 공부

0개의 댓글