안녕하세요!
가상머신의 사용 이유 중 가장 와닿을만한 소재를 가지고 왔습니다.
여러분은 인터넷에서 다운받은 파일을 의심해본 적이 있나요?
하지만 필요한 기능을 한다고 소개된 파일이라면?
근데 이 파일이 바이러스도 갖고 있을지 의심스럽다면…?
샌드박스
먼저 샌드박스 환경이라는게 뭔지 설명 드려야할 것 같습니다.
배경지식이 많고 사전적인 설명을 원한다면 위키백과의 설명
사전적인 설명 말고 좀 더 일반적이고 배경지식이 아예 없던 사람들을 위한 설명
이러한 샌드박스는 종류가 여러개로 나뉩니다.
1.
물리적 형태의 샌드박스
위의 샌드박스는 여러개의 OS를 각각 다른 저장장치에 설치하거나 애초에 본체가 여러개이거나 등등
OS외에는 아무것도 설치하지 않은 환경을 물리적 형태의 샌드박스라고 합니다.
(같은 PC에서 OS가 설치된 저장장치만 바꿔끼며 테스트하는 것도 포함입니다.)
장점으로는 VM 환경에서 작동하지 않는 파일들을 실행할 수 있고, 실제 작동을 확인할 수 있으며 주 PC와 완전히 같은 환경을 만들 수 있습니다.(파일의 작동에서 좀 더 정확한 관찰을 할 수 있는 것이죠)
단점으로는 비싼 비용, 재창조 과정의 번거로움이 있습니다.
2.
소프트웨어 형태의 샌드박스
사실상 이번편에서 다룰, 그리고 가장 많은 형태로 쓰이는 샌드박스입니다.
가상머신(이하 VM)의 경우 Host PC의 자원을 사용하는(상시 점유하는) Guest PC를 만들어서 소프트웨어적으로 하나의 컴퓨터를 만든 것과 같습니다. 물론 다른 머신(데몬툴 같은 것)으로도 활용할 수 있습니다만 이번 글에서는 가상머신을 VMWare, VirtualBox 등 컴퓨터 시스템을 가상으로 만든 환경을 얘기하는 것으로 하겠습니다.
그럼 제목이자 처음 질문으로 다시 돌아가서,
여러분은 인터넷에서 다운받은 파일을 의심해본 적이 있나요?
그렇다면, 어떤 방식으로 조치했나요?
‘이 파일은 게시자를 알 수 없습니다!’ 경고를 무시하고 실행했나요? 아니면.. 다른 파일을 찾아서 실행했나요?
이번 글에서는 소프트웨어 형태의 샌드박스를 통해 바이러스일지 아닐지 확인해볼 수 있습니다!
다만, 사용 이유를 좀 더 심층적으로 이해하기 위함이므로 자세한 과정은 생략하겠습니다.
Guest OS에 의문의 파일 하나를 다운 받아서 바이러스인지 확인해보겠습니다!
•
Guest OS, Windows 10을 통해 의문의(?) 파일 하나를 다운로드 한 뒤 바이러스 체크를 하는 모습입니다.
결과를 확인해보겠습니다.
•
Virustotal 이라는 사이트와 연동하여 ‘알려진 악성코드’에 해당하는 동작이 69개 중 58개로 벌써 바이러스 같긴 합니다.
•
Indicators에서 요약정보를 확인해보니
◦
Blacklist에 등록된 함수 45개를 사용하며
◦
Blacklist에 등록된 문자열 20개를 사용중입니다.
◦
주로 Kernal32.dll에서 함수를 사용하며 사용자의 각종 중요정보를 가져오는 것과 파일 작성, 그리고 프로세스 종료와 FatalExit을 사용하는 것들이 랜섬웨어를 의심스럽게 합니다.
•
하지만 해당 프로그램만으로 모든 정보를 알 수는 없고, 저는 스타크래프트 1.16.1 립버전이 필요하니(?) 직접 실행해보겠습니다!
•
앗! 갠드크랩 랜섬웨어였군요!! 당했습니다!
•
하지만 Host PC에는 아무런 영향이 없죠!
좀 많이 극단적으로 예시를 들긴 했지만
위와 같이 VM을 사용한다면
Host PC에 악영향을 주지 않고도 충분히 바이러스 파일인지를 확인할 수 있습니다.
요약하자면 샌드박스를 만들어서 Host PC에 영향을 주지 않는 선에서 무엇이든 테스트할 수 있다는 점!
샌드박스의 종류