Windows·설치·관리

Windows Sandbox로 의심스러운 exe 확인하기

Windows Sandbox를 켜고 의심스러운 exe를 분리된 환경에서 확인하는 흐름, .wsb 설정과 기본 공유 제한을 정리했다.

Windows Sandbox로 의심스러운 exe 확인하기
목차

예전에 인터넷에서 받은 정체가 애매한 .exe를 별다른 확인 없이 본 Windows에서 실행한 적이 있다. 그 뒤 Discord에서는 내 계정으로 @everyone 멘션이 전송되고 비트코인 홍보 이미지가 게시됐다. Instagram 스토리에도 같은 성격의 이미지가 올라갔다.

당시 확인한 범위에서는 별도의 새로운 로그인 기록이 보이지 않았다. 실행 시점과 이후 증상 때문에 저장된 로그인 세션이나 인증 정보가 유출됐을 가능성을 의심했다. 다만 악성코드 샘플 분석이나 포렌식을 한 것은 아니어서 그 .exe가 원인이었다고 확정할 수는 없다.

이 일을 겪은 뒤에는 수상해 보이는 실행 파일을 본 Windows에서 바로 열지 않고 Windows Sandbox에서 한 번 더 확인하고 있다.

Windows Sandbox를 쓰게 된 이유

Windows Sandbox는 호스트와 분리된 일회성 Windows 환경이다. 별도 가상 머신을 직접 구성하지 않아도 시작 메뉴에서 열 수 있고, 창을 닫으면 그 세션에 설치한 프로그램과 파일이 삭제된다.

Microsoft도 테스트, 디버깅, 알 수 없는 파일 확인 같은 용도로 안내한다. 내가 사용하는 범위도 전문적인 악성코드 분석이 아니라, 수상한 .exe를 본 Windows에서 바로 실행하기 전에 눈에 띄는 동작을 살펴보는 정도다.

공식 문서: Windows Sandbox | Microsoft Learn

Windows Sandbox 기능 켜기

현재 Microsoft 문서 기준으로 Windows Sandbox는 Windows 10과 Windows 11의 Pro, Enterprise, Pro Education/SE, Education 에디션에서 지원되며 Home 에디션은 지원하지 않는다. BIOS에서 가상화를 켜야 하고, 최소 RAM 4GB, 여유 공간 1GB, CPU 2코어가 필요하다. Microsoft 권장치는 RAM 8GB, SSD, 하이퍼스레딩을 지원하는 CPU 4코어다.

Windows 11 24H2에서는 Microsoft Store로 업데이트되는 새 Windows Sandbox도 제공된다. 같은 기능이라도 화면이나 실행 중 설정 메뉴는 이 글의 캡처와 다를 수 있다.

내가 활성화한 순서는 Windows 기능 켜기/끄기 → Windows Sandbox 체크 → 재부팅 → 시작 메뉴에서 Windows Sandbox 실행이었다.

Windows 실행 창에서 optionalfeatures를 입력하는 화면
Win + R로 실행 창을 연 뒤 Windows 기능 설정으로 들어간다.
optionalfeatures 명령으로 Windows 기능 창을 여는 화면
optionalfeatures를 입력하면 Windows 기능 켜기/끄기 창을 연다.
Windows 기능에서 Windows Sandbox를 체크하는 화면
Windows Sandbox를 선택하고 설치가 끝나면 재부팅한다.

재부팅 뒤 시작 메뉴에서 Windows Sandbox를 검색해 실행한다.

Windows Sandbox 실행 중 로딩 화면
Windows Sandbox를 처음 실행할 때의 로딩 화면
Windows Sandbox가 열린 뒤 보이는 기본 Windows 화면
호스트 PC와 분리된 임시 Windows 바탕화면

설치 조건 공식 문서: Install Windows Sandbox | Microsoft Learn

지금까지 사용한 방식

지금까지는 Windows Sandbox를 실행한 뒤 .exe 파일을 복사해서 넣고 직접 실행해봤다. 별도 분석 도구를 쓰기보다는 실행하면서 눈에 띄는 변화가 있는지만 확인했다.

  • 브라우저가 갑자기 열리는지
  • 작업 관리자에 이상한 프로세스가 생기는지
  • Microsoft Defender에서 탐지하는지
  • 설치 후 모르는 프로그램이 추가되는지
  • 그 밖에 수상한 동작이 보이는지

패킷 캡처나 Procmon, 메모리 포렌식 같은 분석까지 해본 것은 아니다. 이 정도부터는 단순한 실행 확인보다는 악성코드 분석에 가까운 영역이다.

앞으로 사용할 exe 확인 절차

이번에 글을 다시 정리하면서 실행 전에 거칠 절차도 정했다.

Microsoft Defender 검사 → VirusTotal SHA-256 조회 → .wsb로 실행

1. Microsoft Defender로 먼저 검사

먼저 파일 탐색기에서 .exe를 우클릭하고 더 많은 옵션 표시 → Microsoft Defender로 검사를 실행한다.

여기서 아무것도 탐지되지 않았다고 바로 실행하는 것은 아니다.

Defender 검사는 첫 번째 확인 단계 정도로 사용한다.

2. VirusTotal에서 SHA-256 해시 검색

파일 자체를 바로 업로드하기 전에 SHA-256 해시로 기존 분석 결과가 있는지 확인한다. Windows PowerShell에서 다음 명령을 실행하면 된다.

Get-FileHash "C:\경로\파일.exe" -Algorithm SHA256

출력된 Hash 값을 복사해 VirusTotal 검색창에 넣는다. VirusTotal 공식 문서에 따르면 MD5, SHA-1, SHA-256으로 이미 저장된 파일 분석 보고서를 검색할 수 있다.

VirusTotal에서 SHA-256 해시 검색한 결과

탐지 결과가 0이라고 해서 바로 안전한 파일로 보면 안 된다.

반대로 한두 개 엔진에서만 잡혔다고 해서 곧바로 악성 파일이라고 단정할 수도 없다. 파일 출처와 탐지명, 다른 엔진 결과를 같이 보는 게 좋다.

파일 업로드를 기본으로 사용하지 않는 이유?

VirusTotal에 파일을 직접 올리면 분석 결과가 보안 업체 등 파트너와 공유될 수 있다. 회사 내부 파일이나 비공개 프로그램처럼 외부로 나가면 곤란한 파일은 바로 업로드하지 않는 게 좋다.

그래서 먼저 SHA-256 해시로 기존 분석 기록이 있는지 확인한다. 이미 등록된 파일이라면 원본 파일을 다시 올리지 않고도 결과를 볼 수 있다.

3. 그래도 수상하면 .wsb로 격리 실행

Defender와 VirusTotal 결과만으로 판단하기 어렵고 꼭 실행해봐야 한다면 Windows Sandbox를 사용한다. 본 Windows에서 직접 실행하는 것보다 노출 범위를 줄이는 방법이지, 안전을 보장하는 절차는 아니다.

.wsb로 조금 더 제한해서 실행

.wsb는 Windows Sandbox의 실행 설정을 저장하는 파일이다. 네트워크나 클립보드 공유 같은 옵션을 미리 정해두고 해당 설정으로 Sandbox를 실행할 수 있다.

기존에는 기본 Sandbox를 열고 .exe를 복사·붙여넣기했다. 이번에 글을 정리하면서 더 수상한 파일에는 네트워크와 클립보드를 끄고, 테스트 파일 폴더만 읽기 전용으로 연결하는 방법을 추가했다.

기본 Windows Sandbox는 네트워크와 클립보드 리디렉션이 모두 켜져 있다. 클립보드를 끄면 기존처럼 파일을 붙여넣을 수 없으므로 호스트의 C:\SandboxTest 폴더를 읽기 전용으로 매핑한다.

safe-test.wsb 파일을 메모장에서 작성 후 실행
<Configuration>
  <Networking>Disable</Networking>
  <ClipboardRedirection>Disable</ClipboardRedirection>

  <MappedFolders>
    <MappedFolder>
      <HostFolder>C:\SandboxTest</HostFolder>
      <SandboxFolder>C:\Users\WDAGUtilityAccount\Desktop\Test</SandboxFolder>
      <ReadOnly>true</ReadOnly>
    </MappedFolder>
  </MappedFolders>
</Configuration>

safe-test.wsb 내용

C:\SandboxTest 폴더를 먼저 만들고 테스트할 .exe 파일만 넣어둔다. Networking은 인터넷 연결을 끄고, ClipboardRedirection은 본 Windows와 Sandbox 사이의 복사·붙여넣기를 막는 설정이다. ReadOnlytrue로 두면 Sandbox에서 C:\SandboxTest 안의 파일을 수정하거나 새 파일을 쓸 수 없다.

그 다음 safe-test.wsb를 더블클릭하면 지정한 설정으로 Windows Sandbox가 열린다. 바탕화면의 Test 폴더에서 .exe를 실행한 뒤 브라우저가 갑자기 열리는지, 이상한 프로세스가 생기는지, Defender 경고가 뜨는지, 모르는 프로그램이 추가되는지 확인하면 된다.

.wsb 설정 공식 문서: Use and configure Windows Sandbox | Microsoft Learn

마지막 판단은 사용자가 해야 한다

Windows Sandbox나 VirusTotal에서 별다른 이상이 없었다고 해서 파일이 안전하다고 단정할 수는 없다.

VirusTotal은 여러 보안 엔진의 탐지 결과를 한 번에 확인하기에는 유용하지만, 모든 악성 파일을 잡아내는 것은 아니다. 이미 널리 유포돼 분석된 악성코드는 비교적 잘 탐지될 수 있지만, 개인 개발자나 공격자가 소수에게만 조용히 배포한 파일처럼 샘플이 거의 알려지지 않은 경우에는 탐지되지 않을 수도 있다. 새로 만들어진 악성코드, 기존 코드를 조금 변형한 파일, 실행 조건에 따라 동작을 숨기는 경우도 마찬가지다.

그래서 0/70처럼 모든 엔진에서 탐지되지 않았다는 결과만 보고 바로 실행하는 것은 좋지 않다. 반대로 한두 개 엔진만 탐지한 경우에는 오탐 가능성도 있어서 결과를 같이 봐야 한다.

보안이나 개발 지식이 있다면 파일 출처, 디지털 서명, 해시, 실행 후 프로세스나 네트워크 동작 등을 직접 확인할 수 있다. 외부 AI 서비스에 확인을 요청할 때는 실행 파일 자체, 사내 자료, 개인 정보가 포함된 URL을 바로 올리지 않는다. 가능한 한 SHA-256, 공개된 배포처, 디지털 서명자, 제품·버전처럼 외부에 공개해도 되는 정보만 제공한다.

해시와 공개 배포처를 기준으로 확인 항목을 정리해야 한다면 다음처럼 요청할 수 있다.

실행 파일은 업로드하지 않는다. 아래 SHA-256 해시와 공개된 배포처를 기준으로 확인할 항목을 정리해줘.

- 파일명과 제품·버전
- SHA-256 해시
- 디지털 서명 유무와 서명자
- VirusTotal에 이미 있는 분석 결과
- 파일명, 서명, 배포처 사이에 이상한 점
- 알려진 정상 프로그램을 사칭한 가능성

탐지가 없다는 이유만으로 안전하다고 판단하지 말고, 추가 확인 항목과 격리 실행이 필요한 조건을 설명해줘.

공개 배포처: [공식 URL 또는 공개 다운로드 페이지]

댓글