가상 머신은 컴퓨터를 에뮬레이팅한 것입니다.
가상 머신을 작동 시키는 컴퓨터를 호스트(Host) 라고 부르며, 가상 머신 안에서 작동하는 컴퓨터를 게스트(Guest) 라고 부릅니다. 가상 머신을 이용하면 호스트는 게스트에게 독립된 실행환경을 제공할 수 있습니다. 그 위에서 게스트는 윈도우, 리눅스, 맥 등의 운영체제를 구동할 수도 있고, 원하는 특정 프로그램만 실행할 수도 있습니다.
대표적인 가상화 소프트웨어로는 VMware, VirtualBox, Parallels, QEMU 등이 있습니다.
시스템 해킹을 위해 여러 운영체제의 프로그램을 분석하려면 우리가 원래 사용하던 호스트 머신에서 구동되는 게스트 가상 머신이 있는 것이 편리합니다. 시스템 해킹 기초를 배우며 가장 많이 사용하게 될 Ubuntu 22.04(x86-64) 를 기반으로 실습 환경을 구축해보겠습니다.
실행창을 Windows + R 로 연 다음, winver를 입력하여 윈도우의 버전을 확인할 수 있습니다. (winver ≥ 2004일 때 진행해주세요)
Powershell을 관리자 권한으로 실행하고, 다음 커맨드를 실행합니다
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --set-default-version 2
실패할 경우, 아래 링크의 WSL2 커널 업데이트 패키지를 설치하고 실행하신 뒤, 다시 1의 명령어를 실행하시거나, 재부팅 후에 재시도 해보시면 됩니다.
👉 https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
Microsoft store에서 Ubuntu 22.04를 설치합니다.
설치를 마치고 처음 실행 하게 되면, 간단한 설정 과정을 거칩니다. 설정이 끝나면 다음 명령어를 입력하여 Hello Ubuntu!가 출력되는지 확인해 보세요.
echo "Hello Ubuntu!"
Hello Ubuntu!가 제대로 출력됐다면, WSL2를 이용한 실습 환경 구축은 끝났습니다.
VMware Workstation Player는 윈도우에서 무료로 사용 가능한 가상화 소프트웨어입니다.
👉VMware: https://www.vmware.com/products/workstation-player/workstation-player-evaluation.html
👉Ubuntu 22.04 ISO: http://old-releases.ubuntu.com/releases/22.04.1/ubuntu-22.04.1-desktop-amd64.iso
🚩 Ubuntu 22.04 ISO 다운로드 링크가 작동하지 않는 경우, URL을 복사한 후 브라우저 주소창에 직접 붙여 넣어서 시도해 보시기를 바랍니다.
New Virtual Machine을 클릭하고, 위에서 다운받은 Ubuntu 22.04 이미지를 넣어서 Ubuntu를 설치합니다. 계정 설정은 원하시는 유저 명과 비밀번호로 하시면 됩니다.
초록색 실행 버튼을 클릭하여 가상 머신을 부팅합니다.
부팅이 되고 나면, Install Ubuntu를 클릭하고 필요한 설정을 합니다. 계정에 대한 부분 외에 다른 설정은 변경할 필요 없습니다.
기다리면 설치가 완료됩니다.
ctrl+alt+t로 터미널을 열고 echo “Hello Ubuntu!”를 입력해보세요. Hello Ubuntu!가 출력됐다면, VMware를 통한 환경 구축은 끝났습니다. 다음 강의로 진행해 주세요. 🎉
Virtual Box는 맥에서 무료로 사용 가능한 가상화 소프트웨어 입니다.
👉Virtual Box: https://download.virtualbox.org/virtualbox/7.0.8/VirtualBox-7.0.8-156879-OSX.dmg
👉Ubuntu 22.04 ISO: http://old-releases.ubuntu.com/releases/22.04.1/ubuntu-22.04.1-desktop-amd64.iso
🚩 Ubuntu 22.04 ISO 다운로드 링크가 작동하지 않는 경우, URL을 복사한 후 브라우저 주소창에 직접 붙여 넣어서 시도해 보시기를 바랍니다.
New 버튼을 클릭하고, 메모리를 2048MB이상으로 할당합니다. 위에서 다운받은 Ubuntu 22.04 이미지를 넣어서 Ubuntu를 설치합니다. 계정 설정은 원하시는 유저 명과 비밀번호로 하시면 됩니다.
생성된 가상머신 이름을 더블클릭하여 가상머신을 실행합니다.
부팅이 되고 나면, Install Ubuntu를 클릭하고 필요한 설정을 합니다. 계정에 대한 부분 외에 다른 설정은 변경할 필요 없습니다.
기다리면 설치가 완료됩니다.
ctrl+alt+t로 터미널을 열고 echo “Hello Ubuntu!”를 입력해보세요. Hello Ubuntu!가 출력됐다면, Virtual Box를 통한 환경 구축은 끝났습니다. 다음 강의로 진행해 주세요. 🎉
본 과정은 x86-64 아키텍처에서 작동하는 프로그램의 취약점과 공격 방법에 대해 학습하므로 x86-64 아키텍처 환경이 필수적입니다. 하지만 아쉽게도 M1 아키텍처를 탑재한 맥북에서 x86-64 아키텍처를 우수한 성능으로 에뮬레이션하는 방법이 아직까지는 존재하지 않아 환경 구축이 어렵습니다.
대안으로 클라우드 플랫폼이 있습니다. 근래에는 많은 클라우드 플랫폼이 최초 사용 시 무료 크레딧을 제공하기 때문에 이를 활용해보시는 것도 좋은 방법입니다. 다만 주의해야할 점은 대다수의 클라우드 플랫폼이 유료로 이용하는 경우 이용료가 적지 않고 네트워크 트래픽과 같은 부분에서 추가 사용료가 부과될 수 있기 때문에 잘 살펴보아야 합니다.