새소식

인기 검색어

iOS/iOS

[iOS] App Sandbox

  • -

App Sandbox

App Sandbox는 커널 수준에서 강제 적용되는 접근 제어 기술

macOS 앱의 시스템 리소스와 유저 데이터에 대한 접근을 제한하여 앱이 손상되었을 피해를 최소화

앱 샌드박스는 권한 부여를 통해 요청된 리소스에 대한 앱의 액세스를 제한하여 시스템 리소스 및 사용자 데이터에 대한 보호를 제공

Mac APP Store로 배포되는 모든 app 들은 App Sandbox를 적용

흔히 iOS는 보안이 좋다라고 나오는 말이 App Sandbox 때문

Without App Sandbox & With App Sandbox

App Sandbox가 적용되지 않는 앱은 모든 유저 데이터와 시스템 리소스에 접근 가능하기 때문에 보안 취약점이 발생한다면 모든 데이터 및 리소스를 해커가 가져갈 수 있게 됨.

그래서 apple은 AppSandbox를 통해 앱이 접근할 수 있는 유저 데이터와 시스템 리소스를 제한하여 보안 취약점이 발생하더라도 App Sandbox를 벗어난 데이터와 리소스에 접근 자체가 불가능하기 때문에 피해를 최소화 할 수 있게되는 것

비유하자면 은행 전체가 털리냐 vs 은행내에 있는 금고 하나만 털리냐의 문제

Sandbox가 없다면 은행 전체를 돌아다닐 수 있어 모든 곳을 털 수 있지만

Sandbox가 있다면 하나의 금고만 돌아다닐 수 있어 해당 금고외에 다른 금고는 못 텀

앱은 손상될 수 있지만 App Sandbox를 통해 그 피해를 최소화 하는 것이지

App Sandbox를 적용한다고 해서 보안 취약점이 없어지는게 아님 !

은행의 보안이 아무리 높더라도 강도나 도둑이 아예 안오는것이 아닌것과 동일

App Sandbox 전략

위와 같은 취약점을 완화하도록 설계된 App Sandbox 전략은 두 가지

  1. App Sandbox는 개발자가 App과 시스템이 어떤식으로 상호작용하게 할 것인지 설정 그러면 시스템은 App이 작업을 완료하는데 필요한 권한만을 부여하고 그이상은 부여하지 않음
  2. App Sandbox를 사용하면, 열기 및 저장, 드래그 앤 드롭 및 친숙한 사용자 상호 작용을 통해 앱에 투명하게 추가 접근 권한을 부여할 수 있도록 함

App Sandbox 원칙

App Sandbox는 각 앱 마다 접근을 제한함 특히 아래 4가지 자원 중 하나를 사용하려면 그 의도를 명시적으로 명시하고 사용자에게 해당자원에 대한 접근 허용 요청을 해야함

App Sandbox 구조

사용자의 device엔 다양한 App이 있기 때문에 각 App마다 App Sandbox가 존재

각각 개별적으로 존재하기에 App은 자신의 App Sandbox에 있는 데이터 및 리소스만 접근 가능

App Sandbox의 외부에 있는 데이터 및 리소스에 접근하려면 Sandbox 정책에 따라 접근 권한을 부여받아야 함

 

App을 사용하다보면 접근 권한을 허용해달라는 Alert이 바로 그것

Sandbox 내부 구조

앱의 설치 시점에 각각의 SandBox Directory에 위치, 이 Directory는 각 앱의 Home Directory가

보안을 위해 App과 시스템의 상호 작용은 App의 SandBox Directory로 제한

Bundle Container

  • App의 Bundle을 보유하여 파일, info.plist, Resource등을 그룹화
  • 소스파일이 바이너리 형태의 실행 파일로 변환
  • 라이브러리는 프레임 워크로 그룹화
  • Storyboard, Xib, strings등이 변환

Data Container

 

  • 하위 디렉토리로 Documents, Library, Temp, System Data가 있음
    • Documents: 앱을 통해 생성한 문서나 데이터 등을 저장
    • Library: 유저 데이터 파일 및 임시 파일을 제외한 모든 파일을 관리
    • Temp: 현재 앱을 실행하는 동안만 필요하고 다음 앱 실행시까지 유지할 필요 없는 임시 파일 저장 공간
  • 사용자가 직접 디렉토리나 파일을 추가할 수 없으며, 하위 디렉토리를 통해 관리

iCloud Container

  • 런타임에 접근을 요청할 수 있는 추가 컨테이너 디렉토리

참고

App Sandbox | Apple Developer Documentation

 

App Sandbox | Apple Developer Documentation

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

developer.apple.com

[iOS] App SandBox란?

 

[iOS] App SandBox란?

아이의 보호를 위한 SandBox, 내 app은 누가 보호해 주나...?? 안녕하세요. 오딘(Odin)입니다. 여러분 SandBox가 무엇인지 아시나요?? 미국에서 어린 아이를 모래통(SandBox)안에서 놀도록하여 외부적인 위

odinios.tistory.com

[iOS] 앱 샌드박스와 iOS의 파일 시스템

 

[iOS] 앱 샌드박스와 iOS의 파일 시스템

App Sandbox + File System 오늘은 앱 샌드박스에 대한 개념을 정리해보고 앱 샌드박스 내부에서 파일들을 어떻게 관리하고 있는지 공식문서를 통해 정리해보려고 합니다. 살펴보려고 하는 문서는 File

jeonyeohun.tistory.com

[iOS] SandBox를 알아보자!

 

[iOS] SandBox를 알아보자!

저는 선바 팬입니다.. ㅠㅠ

velog.io

[Swift] iOS 파일구조 알아보기 Sandbox, Bundle - 파일시스템(APFS)

 

[Swift] iOS 파일구조 알아보기 Sandbox, Bundle - 파일시스템(APFS)

iOS의 파일시스템(APFS)은 기본적으로 앱마다 별도의 파일을 생성하고 Sandbox안에서만 접근이 가능해요 따라서 외부로부터 접근에 보호되서 조작되는것을 막는 보안형태죠 그렇기 때문에 옛날에

nsios.tistory.com

https://jinnify.tistory.com/26#hELLO

 

[iOS] 앱 샌드박스(App Sandbox)와 Container Directory

앱 샌드박스(App Sandbox)와 Container Directory개념에 대해 알아 보겠습니다. Sandbox 샌드박스(Sandbox)란 미국에서 어린아이를 보호하기 위해 모래통(Sandbox)에서만 놀도록 하는데서 유래한 보안 모델을 말

jinnify.tistory.com

File System Programming Guide

 

File System Programming Guide

File System Programming Guide를 공부해봅시댜.도큐먼트는 여기를 참고 할거에요. File System Programming Guide 파일시스템은 데이터 파일, App 및 OS와 관련된 영구 저장소를 처리합니다. 따라서 파일 시스템은

zeddios.tistory.com

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.