1. iOS 구조 이해
[목차]
1. iOS 애플리케이션 구조
2. iOS 보안모델
3. iOS 부트체인
4. iOS 샌드박스
5. iOS 코드서명
6. iOS 생명주기
7. iOS 배포방식
8. iOS 개발언어
1. iOS 애플리케이션 구조


2. iOS 보안모델

- 보안 구조를 하드웨어, 운영체제, 애플리케이션 레벨로 계층화
- 하드웨어/펌웨어 레벨에서 바로 암호화가 진행되기 때문에
변조하기가 상당히 까다롭다.
3. iOS 보안 부트 체인




4. iOS 앱 샌드박스

Sandbox가 적용이 되더라고
디바이스가 탈옥된 경우에는
Sandbox 메커니즘의 제한 없이
접근이 가능해 취약한 상태가 됨
> 탈옥을 하면 보안상 취약하게 되는 이유 중 하나.

5. iOS 코드서명

위 과정을 거치지 않고 앱에 사이닝 하는 방법이 있는데
무료 개발자 계정이 있으면 사이드 로드, 사이드 로딩이라고
하는 방법으로 앱 스토어에 등록 및 배포는 불가능,
사이드 로딩은 USB를 통해 앱을 설치하는 방법 정도로 이해!
탈옥하면 위 과정 없이 손쉽게 설치 가능!
6. iOS 생명주기

7. iOS 앱 배포방식

> 일반적으로 정식 배포된 앱의 경우
암호화가 되어있어 바이너리를 보고 싶어도 못 보는데
Frida(frida-ios-dump) 등 의 툴로 복호화가 가능하다.
> 실제 프로젝트에서 개발 버전을 제공 받는 경우
Fairplay DRM 암호화가 적용되어 있지 않은 경우가
종종 있다.


> itms-services 라는 URL 스키마를 사용해 앱 다운이 가능
> 간혹 다운이 안될 경우가 있는데 이런 경우
url의 plist 파일 주소에 직접 접근하면
해당 경로를 통해 직접 받을 수 있다.
(추후 바이너리 분석할 때도 해당 ipa를 받아
압축 풀고 사용하면 됨)

> 개발자에게 단말기 가져다 주면
xcode(사이드 로딩)를 통해 설치해 줌.
8. iOS 개발언어

> Swift : 재빠른, 신속한
> 최신 개발되는 앱은 Swift로만 개발을 진행하는데
그렇게 않은 앱도 많으며 Swift + Objective-C
두 개를 공존해서 사용하기도 함

* 모든 이미지 출처
: 보안프로젝트 김태영 팀장 iOS 모바일 앱 모의해킹(기초) 강의 PDF