2007년에 도입되어 2012년에 요구되는 샌드박싱은 하이재킹된 앱이 할 수 있는 피해를 제한하기 위해 macOS에서 사용하는 도구입니다. Apple은 "App Sandbox가 앱에 대한 공격을 방지하지는 않지만 성공적인 앱이 야기할 수 있는 피해를 최소화합니다. macOS 앱 샌드박싱은 애플리케이션에서 발생할 수 있는 문제의 정도를 제한하여 사용자를 보호합니다.
macOS 앱 샌드박싱이란 무엇입니까?
각 앱에는 '샌드박스'라는 고유한 영역이 있습니다. 애플리케이션이 샌드박스 외부에 도달하려면 운영 체제에 권한을 요청해야 합니다. 샌드박스 설정에 따라 OS는 요청을 완료하는 데 필요한 최소한의 구체적인 정보를 제공하면서 애플리케이션의 요청을 거부하거나 승인합니다.
자동차를 생각해 보세요. 운전자는 잠금 방지 브레이크, 에어백, 크럼플 존 등과 같은 다양한 보안 기능으로 보호됩니다. 2007년 앱 샌드박싱이 도입되던 당시에는 이와 유사한 컴퓨터 시스템이 존재하지 않았습니다. 소개 프리젠테이션의 질문처럼 컴퓨터의 안전벨트는 어디에 있었습니까? 샌드박싱은 자동차가 운전자를 보호하는 것처럼 사용자를 보호합니다. 손상 감소 시스템으로 장애를 해결합니다. 악의적인 행위나 코딩 오류로 인한 피해가 줄어듭니다.
샌드박싱은 앱이 수행할 수 있는 작업을 제한하기 때문에 개발자의 자유를 제한할 수 있습니다. 샌드박스 앱은 더 느리게 실행되고 개발하는 데 더 오래 걸립니다. Mac의 엄청난 기능 덕분에 샌드박스 제한은 다양한 앱의 호환성에 큰 영향을 미칠 수 있습니다. 결과적으로 고급 사용자는 성능이나 기능 문제로 인해 샌드박스 외부에서 실행되는 앱을 선택하게 되는 경우가 많습니다.
앱 샌드박싱은 어떻게 작동합니까?
샌드박싱은 최소 권한 원칙을 기반으로 합니다. 간단히 말해서 시스템은 필요한 작업을 수행할 수 있지만 더 이상은 수행할 수 없습니다. 시스템의 각 부분이 선언된 목표만 완료하도록 제한함으로써 앱이 하이재킹될 가능성을 줄일 수 있습니다. 예를 들어, 손전등 앱이 연락처 목록에 액세스할 이유가 없습니다.
앱은 샌드박스 외부에 연결할 수 있지만 운영 체제 권한이 있는 경우에만 가능합니다. macOS에서 "저장 및 열기" 대화 상자를 가져옵니다. 샌드박스 내부의 앱은 하드 드라이브의 파일 시스템 리소스에 직접 액세스할 수 없습니다. 예를 들어 "~/Documents"에서 열린 패널을 그릴 수 없습니다. 대신 앱은 NSOpenPanel
을 사용하여 Powerbox API에 요청해야 합니다. 및 NSSavePanel
패널에 액세스하는 클래스입니다.
응용 프로그램은 Powerbox 내부에서 일어나는 일을 직접 볼 수 없습니다. 열거나 저장된 파일만 앱에 액세스할 수 있습니다. 이렇게 하면 앱이 불필요한 위험 없이 중요한 기능을 수행할 수 있습니다.
해당 기능은 자격(구체적으로 com.apple.security.files.user-selected.read-write
). 앱 개발자는 앱이 수행하는 작업을 선언하는 권한을 설정합니다. 선언된 자격을 기반으로 운영 체제는 응용 프로그램에 적절하게 제한된 수준의 기능을 허용합니다.
이러한 사고 과정은 앱 샌드박싱 모델 및 메커니즘 전체의 기초가 됩니다. 앱은 위험한 작업을 수행하기 위해 의도를 선언하고 OS 수준 보스의 허가를 받아야 합니다.
샌드박스 앱과 비 샌드박스 앱
2012년 6월 1일부터 Mac App Store를 통해 배포되는 모든 타사 응용 프로그램은 샌드박스 처리되어야 합니다. 샌드박싱은 광범위한 앱 기능을 허용하지만 Mac App Store 앱은 종종 샌드박싱되지 않은 구성 요소보다 제한적입니다. 일부 개발자는 직접 다운로드를 위한 완전한 기능을 갖춘 앱과 Mac App Store용 김프 버전의 두 가지 버전을 유지하기도 합니다. 샌드박스 개발이 더 복잡하기 때문에 애플리케이션에 새로운 기능을 추가하는 것이 더 어렵습니다. 해당 기능이 OS에서도 허용된다면 말입니다.
샌드박스 앱은 Mac App Store 배포의 이점을 얻을 수 있지만 이것이 얼마나 가치있는지 짐작할 수 있습니다. 샌드박싱은 보안 권한으로 확장할 수도 있습니다. 앱은 자체적으로 접근성 권한을 켤 수 없지만 사용자에게 그렇게 하도록 요청할 수 있습니다.
샌드박스 처리된 앱을 확인하려면 활성 상태 보기를 열고 열 제목을 마우스 오른쪽 버튼으로 클릭하여 창에 "샌드박스"를 추가합니다.
샌드박스에는 절대 존재할 수 없는 앱이 있습니다. 실제로 샌드박싱을 통해 다양한 유용한 사용 사례를 방지할 수 있습니다. 샌드박싱은 애플리케이션 간 통신, 관찰 또는 수정을 방지하여 애플리케이션이 상호 작용하는 방식을 크게 제한합니다. TextExpander와 같은 시스템 전체 단축키는 샌드박스에서 해당 수준의 기능을 허용할 수 있으므로 완전히 금지됩니다.
결론
약속했지만 macOS 앱 샌드박싱은 제대로 실행되지 않았습니다. 속도 및 향상된 기능과 같은 Mac 앱의 고유한 판매 포인트를 제한했습니다. 샌드박스 외부에서 실행되는 앱은 거의 항상 더 강력하고 빠릅니다. 이 고급 사용자의 관점에서 가장 많이 사용하는 앱은 샌드박스가 적용되지 않습니다. TextExpander, SnagIt 및 TotalFinder와 같은 앱은 모두 제 일상 업무에 매우 중요합니다. 유사한 광범위한 회피를 피하기 위해 미래의 보안 시스템은 투명성과 균형을 이루는 유연성과 힘이 필요합니다.