APP 진단/iOS

iOS 탈옥 기초

takudaddy 2022. 1. 18. 18:17

 

 

 

 

[목차]

 

1. 탈옥(Jail Break)

2. 탈옥 툴

 

 

 


 

 

[탈옥 (Jail Break)]

 

 

1. 정의

: 제조사가 막아둔 하드웨어의 여러 기능 제한을 푸는 행위로

UNIX로 만들어진 iOS의 샌드박스 제한을 풀어 임의로

시스템 상의 코드를 수정하거나 변경할 수 있게 해준다.

 

iOS 운영체제의 제한이 풀리게 되면 사용자가 기능을 추가하거나

타 회사에서 사용하는 서명되지 않은 코드를 실행할 수 있게 되는 등

일반 모바일 사용자의 권한으로 할 수 없는 작업들이 가능해진다.

 

시스템 권한을 부여한다는 점에서 안드로이드의 루팅과 비슷하나

오픈소스인 안드로이드와는 다르게 iOS는 자체 시스템 보안이

더욱 강력하게 되어있고, 부팅 시 시스템 변조를 확인하며,

새로운 iOS 버전을 업데이트할때마다 이전 서버들의 APTicket,

Apple Signing 과정을 통해 다운그레이드를 일시적으로 허용하나

해당 APTicket Signing 서버를 금새 닫아버리기 때문에

탈옥하기가 더욱 어렵다.

 

때문에 여러 보안을 뚫고 들어가 Cydia(시디아)를 설치하고

커널을 패치하여 순정 펌웨어로 보이도록 부트롬을 속여야 하는

과정으로 탈옥작업은 진행된다.

 

Apple은 탈옥 행위가

OS에 대한 저작권 침해라는 근거를 내세우며 불법이라 주장했으나

미 국회도서관 저작권 사무국 측에서 관련 법률을 개정하여

합법화 하였다고 한다. (우리나라 법률은 별도로 확인 필요)

 

탈옥 자체는 해당 제품을 구매한 소비자의 권리라

불법이 아니라는 의견이 제법 있는데 Apple은

탈옥된 제품에 대해 AS를 거부한다.

 

 

 

 

2. 탈옥 종류

: 반탈, 완탈, 커스텀번들, 준반탈, 준완탈이 있다.

 

2-1) 준반탈(Semi-Tethered)

: 부트롬 취약점을 이용할 때 나오며, 반탈(Tethered) 탈옥은 재부팅을 하면 무한사과가 되어 PC에 연결하기 전까지 기기를 사용할 수 없게 되지만, Semi-Tethered 탈옥은 재부팅 후에도 기기를 사용할 수는 있어도 트윅이 작동하지 않는 순정 상태가 된다. 이후 PC에 연결하여 재탈옥 과정을 실행하면 다시 탈옥 상태가 된다.

 

2-2) 준완탈(Semi-Untethered)

: 보안 강화로 인해 나오지 않는 완탈을 대신하는, 현재 탈옥툴이 채택하는 방법으로, 커널 취약점을 이용한다. 위의 Semi-Tethered 탈옥과 비교하여, 재부팅 시 순정 상태가 되는 것은 같지만, 특정 앱을 실행하여 기기 내부에서 재탈옥 과정을 실행할 수 있다. 따라서 반드시 PC의 연결을 필요로 하지 않는다. 서양권에서는 Tethered 탈옥과 구분되는 Semi-Untethered 탈옥이라고 부르지만, 한국에서는 구분 없이 똑같이 반탈로 불린다. 다만 Tethered 탈옥이 사실상 없어진 현재로선 별 상관은 없다.

 

2-3) 가장 최신의 완탈

(완전한 탈옥, Untethered : 재부팅 시 아무 문제 없이

탈옥 상태로 정상 부팅되는 탈옥)은 Fugu14로

IOS/IPadOS 14.5.1 버전까지 지원되며

현재 제공되어 있는 15버전의 탈옥은

불가능한 상태였으나 중국에서 처음 성공 사례가 나왔다.

 

현재 탈옥툴이 채택하는 방법은

준완탈(Semi-Untethrered)로

재부팅 시 순정 상태가 되지만

특정 앱을 실행하여 기기 내부에서

재탈옥 과정을 실행할 수 있어

PC 연결이 필요없다.

 

 

 

 

3. 탈옥 관련 툴 설명 

 

3-1) 시디아(Cydia)

: 사과(Apple)를 갉아먹는 애벌레(worm)의 학명인

Cydia Pomonella에서 따온 단어로

 

Jay Freeman(a.k.a. Saurik)이 2008년 2월 28일에 개발한

탈옥용 앱 스토어이다.

 

애플은 앱 스토어에 써드 파티 조정을 허용하지 않기 때문에

탈옥폰 사용자들은 앱 스토어 대안으로 시디아를 사용해야 하는데

 

새로운 Jailbreak apps / tweaks를 다운로드하고

관리하기 위한 앱 스토어라고 보면 된다.

 

시디아의 역할은 저장소에 있는 소프트웨어 패키지를 찾아서

앱을 설치해주는 것이다. 그러므로 저장소를 추가할수록

내려받을수 있는 앱은 많아진다. 저장소는 URL 형식으로 되어 있어

이것을 추가하면 해당 저장소에서 앱을 받을 수 있다.

(무슨 저장소에서 어떤 앱을 설치하느냐에 따라 앱의 형태도 천차만별)

 

초기에는 탈옥시 함께 설치되는 앱을 통해 Cydia를 직접 설치했어야

했지만 이제는 탈옥하면 자동으로 설치된다.

 

* Cydia를 대체하는 탈옥 스토어로 Sileo가 개발 되었다.

 

 

 

3-2) 실리오 (Sileo)

: iOS 11/12 개발팀인 Electra 팀에서 개발한 Cydia를 대체하는 앱으로 

APT(Advanced Packaging Tool)을 GUI(Graphical User Interface)

방식으로 만든 프로그램이다.

 

실리오는 저장소(Repository)를 통해 트윅(Tweak)을 설치, 삭제, 관리하며

전용 APT와 DPKG를 탑재해 unc0ver 탈옥툴 체제에서는 사용할 수 없다.

 

대신 Coolstar가 개발한 탈옥툴인

Electra(iOS 11), Chimera(iOS 12)에서 사용할 수 있다.

 

 

 

3-3) Tweak (트윅)

: '비틀기'라는 뜻의 단어이자

iOS 탈옥 하면 가장 먼저 떠오르는 단어로

 

시스템 상의 특정 기능을 변조하거나 바꾸기 위해서

시디아(Cydia)에서 설치하는 응용 프로그램 개념이다.

 

일반적으로 휴대폰(시스템)에 프로그램을 설치할 때

앱(App)을 설치한다고 하듯,

시스템 상의 특정 코드를 바꾸어 주는 프로그램을 설치할 때

트윅(Tweak)을 설치한다라고 하는데

 

사용자들은 트윅을 설치함으로 탈옥의 기능을 누릴 수 있으며

보다 다양한 기능을 제공하는 트윅을 설치하기 위해 탈옥을

한다고 말할 수 있겠다.

 

트윅(Tweak)은

특정 앱의 클래스(class)를 후킹해 메서드를 만들거나 수정한 뒤

변조된 메서드를 실행시킴으로 동작하게 되는데

 

이렇게 클래스 후킹을 돕고 변조된 메서드를 실행시킬 수 있게 해주는

탈옥 필수 기본 트윅을 Substrate라고 한다.

 

 

 

3-4) Substrate

: 위에 잠깐 언급했듯,

substrate는 트윅을 실행시킬 때 필요한 필수 트윅이며,

탈옥을 한 뒤 Substrate를 설치해야만 다른 트윅을 설치/실행

할 수 있게 된다.

 

대표적인 Substrate의 종류로는

Cydia Substrate, Substitute가 있는데

 

대표적인 탈옥툴 중

checkra1n은 Cydia Substrate 기반이고

unc0ver는 Substitute에 기반을 두어 제작 되었다.

 

 

 

 

 

 

[탈옥 툴]

 

 

0. Altstore

https://altstore.io/

개인 개발자 Riley Testut가 만든 iOS/iPadOS 용의 작은 앱 스토어로

Apple 측에서 허용하지 않은 앱들을 설치하기 위한 도구이다.

 

탈옥 없이 사용자의 애플 ID를 이용해 iOS 앱(.ipa) 파일을 사이닝한 후

사용자의 휴대 기기에 사이드 로드하여 설치해주는 앱으로

 

altstore 통해 대표적인 탈옥 툴 unc0ver 설치가 가능하다.

 

 

 

1. Unc0ver

https://unc0ver.dev/

언커버는 pwn20wnd라는 해커가 발표한 탈옥툴로,

bazad 개발자가 만든 oob_timestamp 익스플로잇(~ v4.0)과

jakeashacks 개발자가 만든 time_waste 익스플로잇(v4.1 ~)을 기반으로 만들어졌다.

현재 다운로드 가능한 버전은 v8.0.2 버전이며 iOS 11.0-14.8 까지 사용 가능하다.

 

 

2. CheckRa1n

https://checkra.in/

: axi0mX라는 해커가 발표한 탈옥툴로

2019년 8월 발표된 checkm8(체크메이트) 부트롬 취약점을 기반으로 만들어 졌다.

 

CheckRa1n 툴을 사용하기 위해서는

macOS나 Linux의 환경에서 부팅이 진행되어야 하는데

가상 머신을 통해 진행할 경우 exploit 중간에 연결이 중도 해제되기 때문에

해당 운영체제의 부팅 USB를 만들어 진행해야 한다.

 

예) 우분투를 사용하는 경우 Ubuntu 18.04를 부팅 USB로 만들어 진행

https://old-releases.ubuntu.com/releases/18.04.5/

 

 

 

 

[참고] CheckRa1n vs Unc0ver

: 탈옥방법 차이

 

: 체크레인과 언커버 탈옥툴 각각 

탈옥의 방식, Substrate의 방식, 서로 다른 점과 장단점이 존재하는데

이를 감안해서 본인이 선호하는 탈옥툴을 사용하면 된다.

 

 

출처: 클리앙 Jailbreak 님

https://www.clien.net/service/board/cm_iphonien/14648508

 

 

 

 

 

3. Odyssey 팀 Taurine

https://taurine.app/

https://github.com/Odyssey-Team/Taurine

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90