Computer >> 컴퓨터 >  >> 시스템 >> Windows

Sandboxie 리뷰 – 전문가를 위한 애플리케이션 격리 도구, 제대로 써볼 가치가 있을까?

시스템 샌드박싱 소프트웨어를 마지막으로 테스트해본 것은 XP 시대였습니다. 기억이 정확하다면 ShadowGuard와 Deep Freeze 같은 프로그램들이 있었는데, 이들은 가상 파일시스템 레이어를 생성해 활성 세션 동안 발생하는 변경 사항을 임시로 기록하고, 재부팅 시 모든 내용을 깨끗한 상태로 되돌리는 방식으로 동작했습니다. 요약하면, 선택적 수정만 허용되는 읽기 전용 시스템이라 할 수 있죠.

개별 애플리케이션에는 이보다 덜 복잡한 방식이 필요했습니다. 그런 수요를 위해 등장한 것이 바로 Sandboxie입니다. 아이러니하게도 저는 초기 버전이든 인수 합병 이후든 이 프로그램을 제대로 써본 적이 없었습니다. 하지만 최근 Windows 10 Home에서 Windows Defender Application Guard(실패했지만)를 사용해본 경험을 계기로, 이 프로그램을 다시 한번 들여다보기로 했습니다. 자, 그럼 Sandboxie를 테스트하고 리뷰해 보겠습니다. 우리만의 보안 성채를 지어봅시다!

Sandboxie 리뷰 – 전문가를 위한 애플리케이션 격리 도구, 제대로 써볼 가치가 있을까?

설치 및 구성

설치 과정 자체는 어렵지 않지만, 진행 중에 무엇을 하는지 주의 깊게 살펴야 합니다. 설치의 핵심은 백그라운드에서 모든 '마법'을 수행하는 Sandboxie 드라이버입니다. Windows 10 Home 머신에서, 기본 완화 보호(Mitigation Protections) 외에 별도 보안 소프트웨어 없이도 아무 문제 없이 설치를 마칠 수 있었습니다.

Sandboxie 리뷰 – 전문가를 위한 애플리케이션 격리 도구, 제대로 써볼 가치가 있을까?

첫 실행 시 Sandboxie는 시스템에 설치된 소프트웨어를 스캔하고 여러 구성 설정을 적용할지 물어옵니다. 이 단계에서 무엇을 하는지 정확히는 알 수 없지만, 일단 완료하도록 두었습니다. 확인(OK)을 누르지 않을 선택권이 있는 건 아니고, 표시된 항목들을 삭제할 수는 있습니다.

Sandboxie 리뷰 – 전문가를 위한 애플리케이션 격리 도구, 제대로 써볼 가치가 있을까?

튜토리얼

Sandboxie 사용법이 간단하지 않기 때문에 프로그램은 튜토리얼로 시작합니다. 몇 가지 단계를 따라가며 애플리케이션이 어떻게 작동하는지 익히게 됩니다. 개인적으로 이 마법사가 다소 투박하다고 느꼈고, 완료한 후에야 무슨 의미인지 파악했습니다. 간단히 요약하면, 데스크톱에 기본 웹 브라우저의 '샌드박스 처리된' 바로 가기가 생기고, 이를 실행하면 브라우저(이 경우 Firefox)가 격리 상태로 실행됩니다.

메인 프로그램 인터페이스는 일종의 작업 관리자 역할을 하며, 샌드박스로 실행 중인 모든 애플리케이션을 컨테이너별로 묶어 보여줍니다(나중에 서로 다른 샌드박스를 구성할 수도 있습니다). 프로그램이 Sandboxie 하에서 실행 중일 때는 제목에 [#] 접두사와 접미사로 식별할 수 있고(모든 프로그램이 제목을 표시하지는 않아 간단하지 않습니다), 마우스를 애플리케이션 창 위에 올리면 노란색 테두리가 나타납니다.

Sandboxie 리뷰 – 전문가를 위한 애플리케이션 격리 도구, 제대로 써볼 가치가 있을까?

Sandboxie 리뷰 – 전문가를 위한 애플리케이션 격리 도구, 제대로 써볼 가치가 있을까?

모래밭에서 놀기

프로그램을 사용하기 시작하자마자 즉시 복구(Immediate Recovery)라는 기능이 있다는 것을 알게 되었습니다. 미리 정의된 폴더 중 하나로 파일을 복사하면, 해당 파일을 샌드박스에서 꺼내 실제 시스템으로 '복구'할 수 있습니다. 기본적으로 Sandboxie는 내부에서 실행되는 애플리케이션을 외부 파일시스템으로부터 격리하기 때문에, 프로그램을 닫으면 모든 변경 사항이 사라집니다(예: 다운로드한 파일). 리눅스 라이브 세션에서 브라우저를 실행하는 것과 같아서, 영속성이 없고 재부팅하면 변경 사항이 모두 사라집니다. 리눅스가 무엇인지 모른다면 이 문장은 무시하세요.

Sandboxie 리뷰 – 전문가를 위한 애플리케이션 격리 도구, 제대로 써볼 가치가 있을까?

Sandboxie 리뷰 – 전문가를 위한 애플리케이션 격리 도구, 제대로 써볼 가치가 있을까?

닫기를 선택한다는 것은 단순히 파일을 샌드박스 세션 안에 유지한다는 뜻입니다. 직관적이지 않네요.

기본적으로 기본 브라우저용 바로 가기가 제공되지만, 우클릭을 통해 어떤 프로그램이든 실행할 수 있습니다. 이후 원하는 샌드박스를 선택하는 옵션이 나타납니다.

Sandboxie 리뷰 – 전문가를 위한 애플리케이션 격리 도구, 제대로 써볼 가치가 있을까?

프로그램은 전반적으로 잘 작동했습니다. 예를 들어 샌드박스 상태에서 실행한 Firefox나 Chrome 모두에서 방문 기록이나 북마크를 볼 수 없었으며, 플러그인·확장 기능·미디어 재생과의 충돌이나 성능 저하는 눈에 띄지 않았습니다. 다만 Chrome은 창 제목이 없어, 마우스 커서를 올리기 전까지는 샌드박스에서 실행 중인지 알 수 없다는 점은 아쉬웠습니다.

설정, 그리고 또 설정

곧바로 Sandboxie 구성을 조정할 수 있는 방법이 여러 가지라는 사실을 알게 되었습니다. 샌드박스 안에 나열된 프로세스를 우클릭하면 동작 방식을 일부 변경할 수 있지만, 이는 현재 세션에만 적용됩니다. 그리고 전역 설정도 별도로 존재합니다. 이 부분은 다소 혼란스럽습니다.

Sandboxie 리뷰 – 전문가를 위한 애플리케이션 격리 도구, 제대로 써볼 가치가 있을까?

샌드박스별 전역 설정을 찾는 것은 조금 어려웠지만, 결국 찾았습니다. 그 다음에는 끝없이 긴 옵션 목록이 펼쳐집니다. UI 디자인, 파일 복구 및 삭제 방식, 프로그램 그룹화(Firefox 또는 Chromium 기반 브라우저 등), 샌드박스로의 파일 마이그레이션 등을 조정할 수 있습니다. 일부 옵션은 상당히 난해한데, 설명문이 '~않음(not)' 형식으로 작성되어 있기 때문입니다. 실제로 어떤 일이 벌어질지 이해하려면 뇌를 거꾸로 돌려야 합니다.

Sandboxie 리뷰 – 전문가를 위한 애플리케이션 격리 도구, 제대로 써볼 가치가 있을까?

Sandboxie 리뷰 – 전문가를 위한 애플리케이션 격리 도구, 제대로 써볼 가치가 있을까?

Sandboxie 리뷰 – 전문가를 위한 애플리케이션 격리 도구, 제대로 써볼 가치가 있을까?

Sandboxie 리뷰 – 전문가를 위한 애플리케이션 격리 도구, 제대로 써볼 가치가 있을까?

Sandboxie 리뷰 – 전문가를 위한 애플리케이션 격리 도구, 제대로 써볼 가치가 있을까?

다음으로는 매우 길고 상세한 제한 사항과 접근 권한 목록이 있습니다. 특정 샌드박스의 애플리케이션이 어떤 종류의 리소스에 접근할 수 있을지 결정할 수 있습니다. 어떤 파일을 읽거나 쓸 수 있는지, 어떤 파일에 접근 불가능한지, 네트워크 포트 등 매우 세밀한 권한 목록을 사용할 수 있습니다. 리눅스에 비유하자면 AppArmor나 SELinux 규칙을 작성하는 것과 비슷한데, 이는 결코 만만치 않은 작업입니다. 보안을 해치거나 애플리케이션, 심지어 시스템까지 망가뜨리지 않으려면 시스템 내부 구조에 대한 깊은 이해가 반드시 필요합니다. 그렇습니다. 주의하지 않으면 Windows에서 스스로 잠겨 나갈(lock out) 수도 있습니다. 예컨대 아래 나열된 DLL들이 평범한 사용자에게 무슨 의미일까요?

Sandboxie 리뷰 – 전문가를 위한 애플리케이션 격리 도구, 제대로 써볼 가치가 있을까?

Sandboxie 리뷰 – 전문가를 위한 애플리케이션 격리 도구, 제대로 써볼 가치가 있을까?

레지스트리, IPC, COM 영역으로 들어가면 상황은 더욱 복잡해집니다. 이곳은 진정한 괴짜들의 영역이며, 일반적인 Windows 프로세스 메모리 매핑이 무엇인지 완전히 이해하지 못한다면 이 섹션은 아예 들여다보지 않는 것이 좋습니다.

애플리케이션(Applications) 옵션은 방대한 카테고리 목록으로 열리며, 추가하거나 제거할 수 있는 다양한 기본 규칙이 포함되어 있습니다. 브라우저, 이메일 클라이언트, PDF 소프트웨어 등 수많은 애플리케이션과 도구를 개별적으로 구성할 수 있습니다. 하지만 여기서도 많은 규칙과 설명이 이해하기 어려웠습니다. 예를 들어, 규칙이 작성되어 있는데 아무 표시가 없다면 차단된 것일까요? 아니면 단순히 설정 가능한 규칙일까요? '즉시 복구 기본 제외 항목'은 또 무슨 의미일까요? 복구될 파일 유형이나 위치일까요, 아니면 제외될 대상일까요?

Sandboxie 리뷰 – 전문가를 위한 애플리케이션 격리 도구, 제대로 써볼 가치가 있을까?

Sandboxie 리뷰 – 전문가를 위한 애플리케이션 격리 도구, 제대로 써볼 가치가 있을까?

또한 ini 파일을 통해 프로그램 구성을 직접 편집할 수도 있습니다. 다소 올드스쿨 느낌이 들지만, 빠르고 기술적인 작업을 선호하는 사람들에게는 유용하게 마련되어 있습니다. 전반적으로 구성 부분은 아쉬운 점이 많고, 동시에 얼마나 복잡한지를 여실히 드러냈습니다.

다른 방법과 비교하면 어떨까?

App Guard 관련 글에서 던졌던 것과 똑같은 질문을 다시 던져봅니다. 이미 샌드박싱 기능을 갖춘 브라우저를 사용하고, Exploit Protection을 활성화했고, NoScript 같은 확장 기능을 쓰며, 표준(제한된) 계정으로 실행 중이라면, 이런 프로그램에게 남은 가치는 얼마나 될까요?

먼저 떠오르는 것은 '임의 코드 실행' 방어이지만, 위에 언급한 방어책들이 이미 그 적용 범위를 상당히 좁혀 줍니다. 두 번째, 그리고 훨씬 중요한 질문은 이렇습니다. 샌드박스 모델은 어디에서 한계에 부딪히는가? 그 답은 바로 '사용자'입니다. 실제 테스트에서도 샌드박스가 적용되지 않은 폴더에 파일을 저장할 수 있는 옵션이 있었고, 문제는 바로 여기에 있습니다. 잘못된 파일을 통과시키면 결국 제한 없는 환경에서 그것을 사용하게 됩니다. 격리된 세션에서는 피해가 없을지 몰라도, 나중에는 반드시 문제가 됩니다. 특히 '나쁜' 증상을 알아차리지 못하고 안전하다고 믿게 되면 더욱 그렇습니다. 강력한 보안 도구가 존재한다는 사실 자체가 오히려 자기 보존 본능을 떨어뜨릴 수도 있습니다.

또한 샌드박스 설정을 직접 조정할 수도 있습니다. 파일 및 레지스트리 접근을 추가하거나 제거하고, 즉시 복구 폴더를 정의하는 등의 작업 말입니다. 충분히 숙련되지 않았다면 샌드박스에 구멍을 만들 가능성이 있습니다. 보안 제한으로 인한 사용성 문제가 발생하고 이를 우회하려고 할 때 이런 위험은 더욱 커집니다. 물론 이것은 Sandboxie만의 문제가 아니라 일반적인 문제이며, 소프트웨어 보안의 역설입니다. 소프트웨어를 온전히 활용할 만큼 숙련되지 않았다면 그 혜택을 받기 어렵고, 그만큼 숙련되었다면 굳이 필요하지 않을 가능성이 큽니다.

이런 이유로 저는 EMET나 Exploit Guard가 극히 유용하다고 생각합니다. 적용된 완화 정책 때문에 일부 경우 사용이 제한될 수 있지만(매우 드물지만 가능합니다), 이는 소프트웨어를 좋고 나쁘다고 분류하는 방식이 아닙니다. 대신 훨씬 하위 수준인 '올바른 명령어인지, 올바른 메모리 접근인지'로 판단합니다. Exploit Guard는 나쁜 소프트웨어와, 잘못 작성된 좋은 소프트웨어를 구분하지 않습니다.

비슷하게, 표준 계정을 사용하면 할 수 있는 일 자체가 제한됩니다. 이는 해커가 당신을 공격하려 드는 것과 무관한, 훨씬 더 근본적인 이야기입니다. 시스템 설정 대부분을 변경할 권한이 없습니다. 고의든 실수든 상관없습니다. 그냥 불가능한 겁니다.

다시 Sandboxie로 돌아가겠습니다. 기본값 그대로 사용하면 많은 부분에서 훌륭하게 작동하며, 함부로 설정을 만지지 않는다면 합리적인 수준의 추가 보안 계층을 얻을 수 있습니다. 하지만 Sandboxie는 샌드박스 내부에서 일어나는 일을 제한하지 않으며, 코드 실행을 막거나 데이터를 샌드박스 밖으로 복사하는 것을 방지하지도 않습니다. 게다가 설정을 직접 변경할 수 있기 때문에 격리 메커니즘에 구멍이 생길 가능성도 있습니다. 제가 테스트한 범위에서는 Sandboxie가 인터넷 연결 프로그램을 시스템으로부터 격리하는 데는 효과적이었지만, 탐색 활동 같은 인터넷 데이터 접근 자체를 제한하지는 않았습니다.

결론

Sandboxie는 훌륭하고 견고한 프로그램입니다. 신뢰할 수 없는 소프트웨어와 인터넷 연결 프로그램을 위한 저권한 컨테이너를 구성할 때 고급 사용자에게 높은 수준의 유연성을 제공합니다. 모바일 운영체제가 작동하는 방식과 어느 정도 유사한 형태로 이런 애플리케이션들을 격리할 수 있습니다. 단, Sandboxie는 그보다 훨씬 오래전에 이런 일을 해왔다는 차이점이 있죠. 게다가 격리 메커니즘이 마음에 들지 않거나 특정 프로그램이 제대로 작동하지 않을 때, 샌드박스 밖에서 간단히 실행하면 그만입니다.

하지만 Sandboxie에도 한계는 있습니다. 설치와 구성이 결코 쉽지 않으며, 시스템·디바이스·접근 권한에 대한 탄탄한 이해를 필요로 합니다. 이는 Sandboxie 사용을 하나의 부담으로 만들 수 있습니다. 마지막으로, Sandboxie는 권한을 제한할 뿐 정화(sanitize)하지 않습니다. 즉, 실행 중인 애플리케이션 컨텍스트 안에서 메모리 누수(일종의 불법 명령 실행)가 발생해도 Sandboxie는 이를 막지 못합니다. 웹에서 다운로드한 파일을 컨테이너 밖으로 복사하는 것도 막을 수 없습니다. 이는 Sandboxie가 '내가 하고 있는 일을 신뢰할 때'가 아니라 '신뢰할 수 없을 때' 의미가 있다는 뜻입니다. 저는 그 가치가 애플리케이션 테스트, 그리고 검증되지 않은 인터넷 세계를 탐험해야 할 때 발휘된다고 생각합니다. 전반적으로 추천할 만하며 사용해볼 가치가 충분합니다. 향후 버전에서는 더 단순한 인터페이스와 더 직관적인 접근 제어 흐름이 제공되기를 바랍니다. 항상 건강하세요.

감사합니다.