기술[iOS 취약점 점검] 2. iOS 탈옥

문성준
2025-09-29
조회수 669

86017ba61ccad.png


앞서 iOS의 보안 구조와 Chain of Trust에 대해 살펴보았습니다.

 

Chain of Trust는 전원이 켜지는 순간부터 커널, 런타임까지 이어지는 신뢰 사슬로, 애플이 서명하지 않은 코드는 단 한 줄도 실행되지 않도록 보장합니다.

 

이 체계 덕분에 일반 사용자는 높은 수준의 보안을 누릴 수 있습니다. 그러나 보안 점검을 수행하는 입장에서는 이러한 보호 장치 때문에 앱 내부 동작을 분석하거나 런타임을 조작하는 것이 사실상 불가능합니다.

 

따라서 실무에서 모의해킹이나 보안 연구를 하려면 탈옥(Jailbreak) 이라는 절차를 거쳐야 합니다.

 

결국 탈옥은, Chain of Trust의 특정 단계에서 강제되는 검증(코드 서명·샌드박스·AMFI 정책 등)을 우회하거나 무력화하는 과정이라고 이해할 수 있습니다.

 

탈옥의 방법과 특성은 iOS 버전, 하드웨어 세대(SoC), 그리고 사용된 취약점 종류에 따라 달라집니다.


탈옥 유형 개요

탈옥은 크게 다음과 같은 방식으로 나눌 수 있습니다.

  • 완전 탈옥 (Untethered) — 재부팅 후에도 항상 유지되는 탈옥
  • 반탈옥 (Semi-tethered / Semi-untethered) — 재부팅 시 일반 모드로 돌아가지만, 특정 절차로 다시 활성화 가능
  • 루트리스 탈옥 (Rootless) — 시스템 파티션을 건드리지 않고 대체 경로를 활용하는 최신 방식
  • 테더드 탈옥 (Tethered) — 재부팅마다 PC 연결이 필요한 초기 방식

아래에서는 각 유형을 Chain of Trust와 연결해 설명합니다.


1. 완전 탈옥 (Untethered Jailbreak)

 

정의

 

완전 탈옥은 기기를 재부팅해도 탈옥 상태가 그대로 유지되는 방식입니다. 전원이 꺼졌다 켜져도 별도의 조작 없이 항상 탈옥 환경으로 부팅됩니다.

 

기술적 의미: Chain of Trust 관점

  • 우회/무력화 범위: Boot ROM → iBoot → Kernel → AMFI로 이어지는 체인 전체가 사실상 무력화됩니다.
    • Boot ROM에서 iBoot를 검증하지 않거나 iBoot가 검증하는 이미지를 변조 없이 통과시키도록 만들고, 결과적으로 커널 및 런타임 검증까지 모두 우회합니다.
  • 이로 인해 기기는 항상 루트 권한 상태로 동작하며, 애플의 서명·무결성 보장은 더 이상 시스템을 제어하지 못합니다.

 

역사적 맥락 및 구현 방식

  • 과거(예: iOS 5~9)에는 완전 탈옥 도구들이 존재했으며, 이들은 커널 권한 획득과 시스템 파티션의 영구적 수정(예: 시스템 바이너리 패치, 런치데몬 설치, 서명 모듈 변경 등)을 통해 재부팅 후에도 지속되는 탈옥 상태를 제공했습니다.
  • 그러나 애플이 보안을 강화하면서 현대 iOS에서는 완전 탈옥을 구현하기가 극히 어려워졌습니다. 구체적으로는 아래 공식 • 연구 자료에 설명된 요소들이 도입되어 방어력을 강화했습니다:

 

Chain of Trust와의 관계

  • Boot ROM → iBoot → 커널 → AMFI로 이어지는 검증 체인이 모두 무력화됩니다.
  • Boot ROM이 iBoot를 검증하고, iBoot가 커널 캐시를 검증하고, AMFI가 런타임 바이너리를 검증하는 흐름이 더 이상 작동하지 않습니다.
  • 따라서 기기는 항상 루트 권한 상태로 시작합니다.

 

역사적 맥락

  • iOS 9 이전 시기에는 완전 탈옥이 종종 가능했습니다. 예: evasi0n 도구.
  • 그러나 iOS 10 이후 애플의 보안 아키텍처가 강화되면서 사실상 더 이상 등장하지 않습니다.

 

장단점

  • 장점: 항상 탈옥 상태를 유지하므로 연구 환경이 안정적입니다.
  • 단점: 보안 위험이 크며, 오늘날에는 현실적으로 매우 어렵고, 최근 탈옥 성공 사례가 없습니다.

참고: Apple Platform Security — Code Signing & Runtime Protections


2. 반탈옥 (Semi-tethered / Semi-untethered)

 

정의 및 주류화 이유

 

반탈옥은 재부팅 시 기기는 일반 모드로 복귀하나, 특정 절차를 통해 탈옥을 다시 활성화할 수 있는 방식입니다.

완전 탈옥이 현대 아키텍처에서 어려워짐에 따라, 반탈옥 계열은 실무적으로 합리적 타협점을 제공하여 주류가 되었습니다.

즉, 필요할 때만 런타임 권한을 얻어 작업을 수행하고, 재부팅 시에는 기기를 정상 상태로 되돌려 리스크를 상시로 낮추는 접근법입니다.

 

기술적 구조

  • 부팅 시점(Boot ROM / iBoot)은 기본적으로 체인을 유지합니다.
  • 런타임 단계에서(커널/AMFI 등) 취약점·exploit을 통해 일시적으로 검증을 우회하거나 커널 권한을 획득합니다.
  • 재부팅하면 이러한 임시 우회는 제거되어 기기는 정상 모드로 돌아갑니다.

 

세미-테더드 (Semi-tethered)

  • 동작 원리: 기기를 재부팅하면 일반 모드로 부팅됩니다. 탈옥 모드로 전환하려면 반드시 PC를 연결해 툴을 실행해야 합니다.
  • Chain of Trust 우회 지점:
    • Boot ROM 취약점(checkm8) 등을 활용해 iBoot 단계 검증을 우회하고 커널 실행을 제어합니다.
  • 예시 탈옥 도구: palera1n (checkm8 기반, GitHub 저장소).
  • 장단점:
    • 장점: Boot ROM 취약점 기반은 하드웨어적 한계이므로 소프트웨어 업데이트로 막을 수 없습니다. 특정 기기에서는 연구용으로 영구 활용 가능.
    • 단점: PC 연결이 필요해 현장 분석에는 불편합니다.

 

세미-언테더드 (Semi-untethered)

  • 동작 원리: 재부팅 후에는 일반 모드로 시작하지만, 기기 내 설치된 앱을 실행하여 탈옥 상태를 복구할 수 있습니다.
  • Chain of Trust 우회 지점:
    • 초기 부팅 과정은 그대로 유지되지만, 런타임에서 커널 취약점을 활용해 AMFI나 코드 서명 강제를 일시적으로 무력화합니다.
  • 탈옥 도구 예시: unc0ver, Taurine.
  • 장단점:
    • 장점: PC 연결이 필요 없으므로 일반 사용자와 연구자 모두 활용하기 쉽습니다.
    • 단점: 앱 자체가 코드 서명 정책을 따라야 하므로 인증서 만료, 서명 제한 등 부수적 문제가 자주 발생합니다. 최신 기기와 최신 iOS에서는 제한적입니다.

참고: Wikipedia — iOS Jailbreaking


3. 루트리스 탈옥 (Rootless Jailbreak)

iOS 15 이후, 애플은 루트 파티션을 읽기 전용으로 봉인하는 Sealed System Volume(SSV) 을 도입했습니다.

 

SSV는 파일 시스템 전체를 암호화 해시로 봉인하여 단 한 파일이라도 변조되면 무결성 검증이 실패하고 부팅이 거부되는 구조입니다. 이 메커니즘은 macOS와 iOS에서 공통으로 적용되어 운영체제의 핵심 파일 및 바이너리를 보호합니다.

참고: Apple Platform Security — Sealed System Volume

 

전통적 탈옥 방식의 한계

 

과거의 전통적 탈옥은 주로 루트 파일 시스템을 직접 수정하는 방식으로 동작했습니다.

예를 들어 /System/Library/ 아래의 시스템 바이너리를 패치하거나, 서명 검증 모듈을 교체하거나, 시스템 파티션에 트윅과 런치데몬을 설치하는 식입니다. 이러한 접근은 부팅 과정 이후에 시스템 전역에 영구적 변화를 만들기 때문에, SSV가 도입된 이후에는 루트 파티션의 무결성 검사에서 즉시 차단됩니다. 결과적으로 기존의 루트 기반 탈옥 기술은 SSV 환경에서는 더 이상 유효하지 않습니다.

 

루트리스 탈옥이 등장한 이유

 

SSV 도입으로 인해 루트 파티션 변조가 원천 차단되었으므로, 연구자들은 기존 방식 대신 루트 파티션을 건드리지 않고 필요한 환경을 별도 위치에 올리는 전략을 개발하게 되었습니다. 이 대체 전략이 바로 루트리스 탈옥입니다. 요지는 다음과 같습니다.

  • 문제: SSV 때문에 /System 또는 루트 파티션을 수정하면 부팅이 실패하거나 무결성 검증에 걸림.
  • 해결책: 루트 대신 /var/jb 등 시스템 외부의 대체 경로에 부트스트랩, 트윅, 바이너리 등을 배치하여 동작시킴. 시스템 핵심을 건드리지 않으므로 SSV 검증을 우회하는 대신 비껴가서(avoid) 동작함.
  • 결과: Chain of Trust(부팅·서명 검증)는 유지되지만, 런타임에서 확보한 권한을 이용해 대체 경로에서 원하는 기능을 제공할 수 있게 됨.

즉, 루트리스 탈옥은 “체인을 깨는 대신 체인을 비껴가는 방식”으로 요약할 수 있습니다.

 

기술적 • 실무적 의미

  • 장점: 시스템 파티션을 변경하지 않으므로 안정성 및 복구 용이성이 높고, 최신 iOS 버전에서도 적용 가능성이 큽니다.
  • 단점: 루트 파티션에 직접 의존하던 기존 트윅은 동작하지 않으며, 시스템 전체를 자유롭게 조작하는 전통적 탈옥보다 접근 범위가 제한됩니다. 또한 루트리스 환경을 지원하도록 트윅·도구를 재작성해야 하는 부담이 있습니다.

 

Chain of Trust와의 관계

  • 부팅 및 서명 검증 체인은 그대로 유지됩니다.
  • 런타임에서 커널 권한을 얻은 뒤, 루트 대신 대체 경로를 사용해 기능을 확장합니다.
  • 즉, 체인을 깨뜨리는 대신 체인을 비켜가는 방식이라 할 수 있습니다.

 

탈옥 도구 예시

 

장 • 단점

  • 장점:
    • 루트 파티션을 수정하지 않으므로 안정성과 복구 용이성이 높습니다.
    • 최신 iOS 버전에서도 가능.
  • 단점:
    • 기존 루트 기반 트윅은 동작하지 않으며, 대체 경로 지원 업데이트가 필요합니다.
    • 여전히 시스템 전체 접근에는 한계가 있습니다.

4. 테더드 탈옥 (Tethered)

테더드 탈옥은 iOS 초창기(3.x~4.x) 시절에 주로 쓰였던 방식입니다.

재부팅할 때마다 반드시 PC와 연결해야 하며, 연결하지 않으면 기기가 부팅되지 않았습니다.

 

Chain of Trust와의 관계

  • Boot ROM 이후 단계(iBoot, 커널 로딩) 검증을 매번 깨뜨려야 했습니다.
  • 따라서 PC가 없으면 Chain of Trust를 넘을 수 없어 기기 부팅 자체가 불가능했습니다.

 

현실적 의미

  • 현재는 역사적 의미만 있으며, “초기 탈옥의 불편함”을 보여주는 사례로 의마가 있습니다.

참고: Wikipedia — Jailbreak History


실무적 · 법적 주의사항

  1. 법적·정책적 책임
    • 탈옥은 기기 보증에 영향을 미칠 수 있으며, 일부 관할 구역에서는 법적 문제가 발생할 수 있습니다.
    • 기관에서 점검을 수행할 때는 반드시 내부 규정과 법적 자문을 구해야 합니다.
    • 참고: Apple — Unauthorized modification of iOS
  2. 공식 대안 — SRD (Security Research Device)
    • 애플은 보안 연구자를 위해 SRD 프로그램을 운영합니다.
    • SRD는 연구 목적의 기기 접근을 공식적으로 제공하므로, 가능하다면 SRD 신청을 통한 연구가 권장됩니다.
    • 참고: Apple Security Research Device Program
  3. 도구 호환성 확인
    • 각 탈옥 도구는 지원하는 iOS 버전·SoC(Axx)가 다릅니다.
    • 예: checkm8은 특정 SoC(A5–A11)에 영향을 주는 Boot ROM 취약점입니다.
    • 도구 사용 전 반드시 공식 리포지터리의 호환성 표를 확인해야 합니다.
  4. 안전한 테스트 관행
    • 테스트는 반드시 전용 장비, 네트워크 격리, 백업·복구 절차를 갖춘 환경에서 진행해야 합니다.
    • 실사용 기기에서 직접 점검하는 것은 권장하지 않습니다.

참고 문헌

카카오톡 채널 채팅하기 버튼