코딩은 마라톤

[Security] 샌드박스(Sandbox) 본문

CS/운영체제

[Security] 샌드박스(Sandbox)

anxi 2025. 11. 27. 20:51

내가 알고 있는 샌드박스..
나만 몰랐던 샌드박스...

 

최근에 샌드박스(Sandbox)라는 단어를 듣게 되었다.

내가 아는 샌드박스는 도티가 운영한다는 MCN 회사인데.. 알고 보니 보안에서도 샌드박스라는 게 쓰인다고 한다.

 

샌드박스를 알아보니 꽤 재밌어서 글을 작성하게 되었다.

 

샌드박스 (Sandbox)

놀이터

 

샌드박스는 단어 그대로, 모래 상자, 모래로 가득 채워진 공간을 의미한다.

 

모래로 가득 채워진 공간을 상상해 보자.

나 혼자 그 공간에 있다면, 땅을 온종일 파서 지하수를 구하거나, 개미집과 같이 나만의 공간을 만드는 등,

남 눈치 안 보고 상상 조차 하지 못한 일을 할 거 같다.

 

보안에서의 샌드박스도 마찬가지다.

모래뿐인 공간에서 개발자가 상상력을 펼치며 놀 수 있는 곳.

그래서 모래뿐인 공간에서 보안에서의 공간으로 확장되었다.

 

위 내용을 토대로 샌드박스가 무엇인지 어느 정도 파악할 수 있을 것이다.

 

보안에서의 샌드박스란

"다른 프로그램에 영향을 끼치지 않고 (외부 자원 접근 X) 프로그램을 안전하게 실행할 수 있는 격리된 환경"

을 의미한다.

 

예시 : iOS APP

가장 흔히 접할 수 있는 샌드박스의 예시가 바로 iOS APP이다.

보통 아이폰의 장점을 이야기할 때, 가장 많이 나오는 게 보안에 관한 내용이다. 아이폰은 해킹하기 어렵다는 말들이 많았고, 샌드박스를 알기 전에는 그 이유에 대해 알지 못했다.

 

iphone Sandbox

 

사진에서와 같이, 아이폰의 모든 앱들은 각자의 샌드박스를 갖는다. (App Sandbox)

샌드박스 내부에 앱에 대한 파일, 하드웨어(카메라, 마이크), 네트워크 등 여러 리소스를 격리하여 저장한다. 따라서 샌드박스의 외부의 데이터를 접근할 수 없게 된다.

만약 하나의 앱에서 문제가 발생하더라도, 샌드박스 외부에선 시스템 리소스와 사용자 데이터에 접근할 수 없어 보호할 수 있게 된다.

 

이 밖에도, 알고리즘 문제 풀 수 있는 사이트로 유명한 백준도 샌드박스에서 채점을 했다고 한다.

https://www.slideshare.net/slideshow/ss-51001155/51001155

 

샌드박스 vs 가상 머신 (VM)

샌드박스를 알게 되면서 유사하다고 느낀 건 바로 가상머신이다. 가상머신도 호스트와 격리된 환경을 제공하는데 과연 무슨 차이가 있을까?

 

Hypervisor

 

가상 머신에서는 단일 물리적 머신에서 여러 가상 머신을 실행하는 데 사용할 수 있는 소프트웨어인 하이퍼바이저(Hypervisor)가 필요하다. 사진에서 보면 Type1의 경우, 하이퍼바이저가 하드웨어 위에서 동작함을 볼 수 있다. 하드웨어를 하이퍼바이저를 이용해 가상화함으로써 하드웨어 수준에서 격리를 제공한다.

 

다만 샌드박스는 호스트 OS의 커널을 이용해 호스트 위에서 격리 환경이 구성되기 때문에, 빠르게 환경을 구성하고 있고, OS 또한 따로 설치할 필요가 없다. 

 

Windows에서는 샌드박스(WSB)와 가상 머신(Hyper-V) 둘 다 제공하고 있다. MS에서 말하는 차이는 다음과 같다.

 

위 내용을 표로 정리해 봤다.

구분 Windows Sandbox (WSB) Hyper-V 가상 머신 (VM)
목적/특징 경량 및 일시적(Lightweight & Temporary) 무겁고 영구적인 환경(Heavyweight & Persistent)
설정 시간 빠른 실행 가능 (Quickly launch) 설정에 더 많은 시간 소요 (Longer to set up)
자원 효율성 고효율적 (More resource efficient), 요구에 따라 메모리 조정, 호스트의 읽기 전용 OS 파일 재사용 고정 자원 할당 (Fixed resource allocations), 시스템 성능에 영향 가능
격리 및 보안 보안 격리 제공. 닫으면 모든 변경 사항이 폐기됨 (Disposable) 격리 제공. 수동으로 복원하지 않는 한 변경 사항이 영구적으로 저장됨 (Persistent)
사용 편의성 사용이 간단 (Simple to use), 복잡한 설정 불필요 더 많은 구성 필요 (More configuration), 가상 스위치, 네트워크 어댑터, 스냅샷 관리 등
기술적 배경 호스트 OS 커널 활용 (경량 격리 환경) 하이퍼바이저를 통한 하드웨어 가상화 (완벽한 시스템 격리)

 

참고