1. iOS 구조 이해
[목차]
1. iOS 애플리케이션 구조
2. iOS 보안모델
3. iOS 부트체인
4. iOS 샌드박스
5. iOS 코드서명
6. iOS 생명주기
7. iOS 배포방식
8. iOS 개발언어
1. iOS 애플리케이션 구조
![](https://blog.kakaocdn.net/dn/UHRuo/btrPg1CegVP/vsshGrVZmqThCDwCdTBVJ1/img.png)
![](https://blog.kakaocdn.net/dn/LUdDU/btrPjltcluC/ysDhdRY2KiebRJVNK6WEL1/img.png)
2. iOS 보안모델
![](https://blog.kakaocdn.net/dn/bo8f2l/btrPjHQs5Ao/QzmsEsCBrzSFIhmVksIhn1/img.png)
- 보안 구조를 하드웨어, 운영체제, 애플리케이션 레벨로 계층화
- 하드웨어/펌웨어 레벨에서 바로 암호화가 진행되기 때문에
변조하기가 상당히 까다롭다.
3. iOS 보안 부트 체인
![](https://blog.kakaocdn.net/dn/k21et/btrPhmzhFkW/rU3ZPrKy4PwPkriSzrGC0k/img.png)
![](https://blog.kakaocdn.net/dn/bcLCkE/btrPfDI8Mmx/k1bl8cfeb65vmwZTf822D1/img.png)
![](https://blog.kakaocdn.net/dn/dpecvE/btrPjlGJudE/Ad52ahtQsxk9xArri1kak0/img.png)
![](https://blog.kakaocdn.net/dn/58MTV/btrPfpj6Oa5/cDGpk7hrsbSMz9T8Vkn8nk/img.png)
4. iOS 앱 샌드박스
![](https://blog.kakaocdn.net/dn/mkzGc/btrPfn0Tz4g/EZyVZf9K2VffssykfQKBf0/img.png)
Sandbox가 적용이 되더라고
디바이스가 탈옥된 경우에는
Sandbox 메커니즘의 제한 없이
접근이 가능해 취약한 상태가 됨
> 탈옥을 하면 보안상 취약하게 되는 이유 중 하나.
![](https://blog.kakaocdn.net/dn/bcuFcF/btrPjGRysG5/mzeU3kFwuYu1XpkioKLxHK/img.png)
5. iOS 코드서명
![](https://blog.kakaocdn.net/dn/TNTcj/btrPe9oa19x/ro9P964GZouL1tH7RG5GyK/img.png)
위 과정을 거치지 않고 앱에 사이닝 하는 방법이 있는데
무료 개발자 계정이 있으면 사이드 로드, 사이드 로딩이라고
하는 방법으로 앱 스토어에 등록 및 배포는 불가능,
사이드 로딩은 USB를 통해 앱을 설치하는 방법 정도로 이해!
탈옥하면 위 과정 없이 손쉽게 설치 가능!
6. iOS 생명주기
![](https://blog.kakaocdn.net/dn/bIy1De/btrPgCo5mps/3qZZIcr53Ynli1826xffEk/img.png)
7. iOS 앱 배포방식
![](https://blog.kakaocdn.net/dn/bFYkLf/btrPjGxgshg/0bWIEoCw6ofgHhk1GQl9C0/img.png)
> 일반적으로 정식 배포된 앱의 경우
암호화가 되어있어 바이너리를 보고 싶어도 못 보는데
Frida(frida-ios-dump) 등 의 툴로 복호화가 가능하다.
> 실제 프로젝트에서 개발 버전을 제공 받는 경우
Fairplay DRM 암호화가 적용되어 있지 않은 경우가
종종 있다.
![](https://blog.kakaocdn.net/dn/cvj7jU/btrPgfgFyzg/rA899IZcen4MR9v3Pk2CyK/img.png)
![](https://blog.kakaocdn.net/dn/dSx1Xv/btrPfpj6OcZ/OMisxkwHambXBmtDhve3Z1/img.png)
> itms-services 라는 URL 스키마를 사용해 앱 다운이 가능
> 간혹 다운이 안될 경우가 있는데 이런 경우
url의 plist 파일 주소에 직접 접근하면
해당 경로를 통해 직접 받을 수 있다.
(추후 바이너리 분석할 때도 해당 ipa를 받아
압축 풀고 사용하면 됨)
![](https://blog.kakaocdn.net/dn/dtD7SU/btrPfoMdYzO/BH3ANmWw20vHXGUgvOHyg0/img.png)
> 개발자에게 단말기 가져다 주면
xcode(사이드 로딩)를 통해 설치해 줌.
8. iOS 개발언어
![](https://blog.kakaocdn.net/dn/blMnJR/btrPgoY3HJF/vEAYnbrho4qIV1IJehird0/img.png)
> Swift : 재빠른, 신속한
> 최신 개발되는 앱은 Swift로만 개발을 진행하는데
그렇게 않은 앱도 많으며 Swift + Objective-C
두 개를 공존해서 사용하기도 함
![](https://blog.kakaocdn.net/dn/cIGyOe/btrPgeaVLY2/YKRMBLGqzKCDrhfZZEec01/img.png)
* 모든 이미지 출처
: 보안프로젝트 김태영 팀장 iOS 모바일 앱 모의해킹(기초) 강의 PDF