4월 11일 (SandBox)

이승원·2024년 4월 12일
0

TIL

목록 보기
61/75
post-thumbnail

SandBox

공식 문서

App Sandbox
Restrict access to system resources and user data in macOS apps to contain damage if an app becomes compromised

기본적으로 앱 마다 별도의 파일을 생성해서, 서로 공유하지 않도록 한다, 앱이 손상된 경우 시스템과 사용자의 데이터 피해를 최소화하기 위해서다.

  • 애플에서는 (App Store) 에서는 모든 앱들이 App SandBox를 적용해야한다. iOS가 보안이 좋다고 하는 이유? SandBox이 이유중 하나이다.
  • 보안 수업때 Capture the flag 했던것 처럼, SandBox를 사용하지 않는다면? 만약 다른 앱이랑 같은 메모리 및 데이터를 공유하게 되면, 일부러 OverFlow를 만들어서 다른 앱 혹은 시스템의 허점을 이용해서 공격을 할 수 있게 된다.
  • 그치만 우리가 앱을 사용할떄 카메라를 쓸수도 있고, 마이크를 쓸수도 있는데, 시스템 리소스를 사용하기 위해서는 그 의도를 명시해야한다고 한다.
  • 그래서 우리가 만날 허용하니 마니 그런 권한 허용 알림창이 계속 뜨는것이다!

  • 그러면 SandBox 내부는 어떻게 생겼을까?

Bundle Container

  • 앱의 Bundle 을 보유하는 컨테이너라고 한다.
  • 읽기 전용으로 저장이 되어 있으며, plist, 이미지,사운드 등등을 함께 저장한다.
  • 쓰기 (수정) 필요한 경우는 Data Container로 복사해서 작업을 한다.

Data Container

  • 크게 4개의 디렉토리로 나눠진다.
  • Documents, Library, Temp, System Data로 나눠진다.
  • 각각 디렉토리 및 하위 디렉토리의 용도는 아래와 같다.

참고 블로그 : [Hoojeong] [iOS] SandBox를 알아보자!

profile
개발자 (진)

0개의 댓글