Android SDK개발을 하다가 (
인력이 없어서..) IOS SDK를 개발해야 되는 일이 생겨 열심히 개발을 하다가 IOS는 Installed App에 대한 정보를 가져올수 없어 이것에 대해 공부해보고 기억하기 위해 작성하게 되었습니다.
우선 AOS든 IOS든 샌드박스(Sandbox)에 대한 개념을 알아야 installed app의 정보를 왜 서로 지키려고 하는지에 대해 알수있습니다. 샌드박스는 프로그램을 격리된 환경에서 실행하여 시스템을 보호하는 보안 메커니즘입니다.
프로그램이 파일 시스템, 네트워크, 다른 프로세스에 직접 접근하지 못하도록 제한
악성 코드나 보안 취약점을 방지
특정 권한만 허용하여 안전한 환경에서 실행
즉, 쉽게 말해:
"외부에서 가져온 프로그램을 가상 울타리(Sandbox) 안에서 실행해서 내 컴퓨터를 보호하는 것!"
✔ 격리 환경(Isolation) → 앱이 시스템의 다른 부분에 영향을 주지 못함
✔ 제한된 권한(Limited Access) → 파일, 네트워크, 프로세스 접근을 제한
✔ 안전한 테스트 환경(Security Testing) → 악성 코드 실행 시에도 시스템 보호
✔ 가상화(Virtualization) 지원 → 가상 환경에서 실행 가능
샌드박스는 운영체제(OS) 또는 가상 환경에서 실행되는 격리된 공간입니다.
앱이 실행될 때 다음과 같은 제약이 적용됨:
📌 즉, 샌드박스는 프로그램이 함부로 시스템을 건드리지 못하게 막는 역할!
✅ iOS (Apple) 샌드박스
모든 앱이 기본적으로 샌드박스 환경에서 실행됨
앱은 자신의 디렉터리 외에 다른 앱의 데이터에 접근 불가
특정 기능(카메라, 마이크 등) 사용 시 사용자 동의 필요
✔ iOS 샌드박스 경로 예시:
/var/mobile/Containers/Data/Application/{APP_ID}/Documents/
🔹 앱마다 독립적인 공간 제공 → 다른 앱 데이터에 접근 불가능!
✅ Android 샌드박스
✔ Android 샌드박스 경로 예시:
/data/data/com.example.myapp/files/
앱이 허용된 폴더 외에는 접근 불가!
📌 즉, iOS와 Android 모두 샌드박스를 통해 보안을 강화하지만, Android는 일부 루팅하면 우회 가능!
✅ (1) 웹 브라우저 샌드박스
웹 브라우저(Chrome, Safari 등)는 샌드박스를 활용하여 악성 사이트로부터 시스템을 보호
✔ Chrome에서 실행되는 웹사이트는 JavaScript가 시스템 파일에 접근할 수 없음
✔ Flash, PDF 뷰어 같은 플러그인도 샌드박스 내에서 실행하여 보안 강화
✅ (2) 모바일 앱 샌드박스
✔ iOS, Android에서 앱이 다른 앱 데이터에 접근하는 것을 방지
✔ 앱이 중요한 시스템 파일을 수정하지 못하도록 제한
✅ (3) 보안 연구 및 악성 코드 분석
✔ 보안 전문가들은 샌드박스 환경에서 바이러스를 실행하여 안전하게 분석
✔ 예: Windows Sandbox, Cuckoo Sandbox
🚀 5. 샌드박스의 장점과 단점
✅ 장점
✔ 보안 강화 → 앱이 다른 앱/시스템에 영향을 주지 않음
✔ 격리된 환경 → 악성 코드 감염 방지
✔ 안전한 테스트 가능 → 보안 연구, 악성 코드 분석 활용
❌ 단점
✖ 일부 기능 제한 → 샌드박스 내에서는 파일 시스템 접근이 어려움
✖ 일부 성능 손실 → 가상 환경 실행 시 속도 저하 가능
✖ 우회 가능성 → 루팅, 탈옥 시 샌드박스 보호 약화
🎯 최종 정리
샌드박스란?앱을 격리된 환경에서 실행하여 시스템을 보호하는 기술
주요 기능 파일/네트워크 접근 제한, 보안 강화, 가상 실행 지원
iOS 샌드박스 앱 간 데이터 공유 불가능, 권한 필요
Android 샌드박스 각 앱은 독립적인 UID로 실행, 데이터 접근 제한
활용 사례 웹 브라우저 보호, 모바일 앱 보안, 악성 코드 분석
샌드박스는 앱이 시스템을 함부로 건드리지 못하게 하여 보안을 강화하는 중요한 기술!