1. iOS 탈옥이란?
애플의 iOS는 보안과 안정성을 최우선으로 하는 폐쇄적인 운영체제입니다. 기본적으로 사용자는 앱 스토어에서 승인된 앱만 설치할 수 있으며, 시스템 파일에 접근하는 것도 제한됩니다. 이러한 제한을 해제하고 사용자가 더 자유롭게 기기를 활용할 수 있도록 하는 과정이 바로 탈옥(Jailbreak) 입니다.
탈옥을 하면 사용자는 서명되지 않은 앱을 설치할 수 있고, 시스템 파일을 수정할 수도 있습니다. 그러나 탈옥은 단순한 개인화 도구가 아니라 보안 측면에서 큰 위험을 동반하는 행위이기도 합니다. 이번 글에서는 iOS 탈옥의 개념과 역사, 최신 탈옥 방법, 보안 위협, 그리고 개발자가 탈옥을 탐지하고 방어하는 방법까지 살펴보겠습니다.
2. iOS 탈옥을 통한 앱 해킹 사례
과거에는 탈옥이 복잡한 과정이었지만, 최근에는 몇 번의 터치만으로도 쉽게 iOS를 탈옥할 수 있는 도구들이 등장하고 있습니다. palera1n, unc0ver 등이 대표적인 예 입니다. 특히, 일부 웹사이트에서는 별도의 PC 없이도 iPhone에서 직접 탈옥할 수 있는 툴을 제공하며, 이를 통해 많은 일반 사용자들도 손쉽게 탈옥을 시도할 수 있습니다. 탈옥된 아이폰에서는 트윅(Tweak) 이나 모드 앱(Modified App) 을 아무런 제약없이 자유롭게 설치할 수 있습니다.
게임 앱의 피해 사례
이렇게 탈옥된 iOS 환경에서 최근 피해가 지속적으로 발생하는 분야는 바로 모바일 게임입니다. 과거에는 특정 사용자의 단독적인 해킹으로 피해가 크지 않았지만, 최근에는 조직적이고 상업적으로 특정 게임을 타겟으로 해커들이 게임 앱을 해킹하고 변조하여 이를 배포 사례가 많아지고 있습니다. 대표적으로 iOS 모드 앱 배포 사이트인 iOSGods.com과 같은 사이트들이 있습니다.
하지만 공개된 사이트에서 배포되던 것과 달 최근에는 텔레그램 등의 단체 대화방에서 은밀하게 거래가 이루어지기도 합니다. 때문에 개발사에서는 일일이 iOS 모드앱 대응이 쉽지 않습니다.
이렇게 손쉽게 모드앱을 설치하여 일부 유저가 게임 내에서 어뷰징을 하면 그 수가 적을지라도 게임사에게는 치명적인 피해를 입히 됩니다. 게이머들이 게임을 하는 목적은 경쟁에서 승리하는 경우가 많습니다. 하지만 어뷰징을 통해서 노력과 없이 한 번에 성과를 획득하는 일이 생기고 일부 유료 콘텐츠 정당한 지불없이 이용하기 합니다.
이렇게 되면 정당하게 엄청난 시간과 노력을 유저는 게임을 할 가치를 못 느끼게되고 게임을 떠나게 됩니다. 게임의 매출%는1~3%의 소수 유저들이 만들어 내기 때문입니다. 실제로 저희 NHN AppGuard의 한 조사에 따르면 대형 게임 해킹 사건 이후 매출이 하락하는 조사 결과가 있습니다.
결과적으로 매출하락과 앱 서비스에 대한 신뢰가 급락하게 되는 것입니다.
자세한 내용은 NHN Cloud On 웨비나 16|사례로 알아보는 NHN AppGuard 실전 A to Z | 모바일 앱 해킹 유형별 대응 방법 공개! 영상을 통해 보실 수 습니다.
3. iOS 탈옥의 역사와 동작 원리
JailbreakMe (iOS 1.x ~ 4.x)
JailbreakMe는 사파리 웹 브라우저를 이용해 탈옥하는 방식으로, 사용자가 특정 웹사이트를 방문하는 것 만으로도 탈옥이 가능했습니다. 이는 PDF 렌더링 엔진의 보안 취약점을 이용한 것으로, 사용자 입장에서 가장 간편한 탈옥 방법이었습니다.
그러나 애플이 보안 패치를 적용하면서 더 이상 사용이 불가능해졌습니다.
redsn0w & greenpois0n (iOS 4.x ~ 5.x)
이 시기의 탈옥은 USB를 통해 기기를 컴퓨터에 연결한 후, 전용 탈옥 프로그램을 실행하는 방식으로 이루어졌습니다. redsn0w와 greenpois0n은 각각 다른 커널 취약점을 이용하여 탈옥을 수행하였으며, tethered(재부팅 시 탈옥이 해제됨) 및 untethered(영구 탈옥)방식으로 나뉘었습니다.
evasi0n (iOS 6.x)
evasi0n은 iOS 6에서 사용된 탈옥 도구로, USB 연결을 통해 시스템의 여러 취약점을 연쇄적으로 이용하여 완전한 탈옥을 가능하게 했습니다. 당시 매우 높은 안정성과 호환성을 제공하여 널리 사용되었습니다.
Pangu & TaiG (iOS 7.x ~ 9.x)
Pangu와 TaiG는 중국 해커 그룹이 개발한 탈옥 도구로, iOS 7 이후 보안이 강화된 환경에서도 탈옥을 가능하게 했습니다. 특히, TaiG는 iOS 8에서 애플이 패치한 취약점을 우회하는 새로운 기법을 도입하여 탈옥을 성공시켰습니다.
Yalu (iOS 10.x)
Yalu는 iOS 10에서 사용된 탈옥 도구로, 개발자인 Luca Todesco가 만든 것으로 유명합니다. 그러나 이 탈옥은 semi-untethered 방식 이어서, 기기를 재부팅하면 탈옥이 해제되며, 다시 실행하려면 특정 앱을 실행해야 했습니다.
unc0ver & Electra (iOS 11.x ~ 14.x)
unc0ver와 Electra는 최근까지 사용되는 탈옥 도구로, 커널 취약점을 이용하여 탈옥을 수행합니다. 특히 unc0ver는 안정성이 높아 많은 사용자들이 선호하였으며, 탈옥 후에도 시스템 기능을 최대한 유지할 수 있도록 설계되었습니다.
checkra1n (iOS 12.x ~ 14.x)
checkra1n은 기존의 탈옥과 달리, checkm8이라는 하드웨어 부트롬(bootrom) 취약점을 이용한 영구 탈옥 방식입니다.
이로 인해 iOS 버전에 상관없이 특정 기기에서는 항상 탈옥이 가능하지만, 반대로 애플이 소프트웨어 패치를 통해 막을 수 없는 특성을 가집니다. 다만, checkra1n은 semi-tethered 방식으로, 재부팅 후에는 다시 탈옥 프로세스를 수행해야 합니다.
최근에는 애플이 보안 강화를 지속하면서 탈옥이 점점 어려워지고 있으며, 대부분의 탈옥이 semi-tethered(재부팅 시 탈옥이 풀림) 형태로 제공되고 있습니다.
4. 탈옥 된 iOS 장치의 보안 취약점
탈옥된 iOS 장치는 Apple이 제공하는 기본 보안 메커니즘을 우회하기 때문에 여러 가지 보안 취약점에 노출됩니다. 다음은 탈옥된 iOS에서 갖는 주요 취약점 입니다.
- 시스템 보안 우회: 탈옥된 기기는 Apple의 기본 보안 메커니즘을 우회하여 시스템 파일을 수정할 수 있습니다. 이는 악성 코드나 바이러스가 시스템에 침투하기 쉽게 만듭니다.
- 앱 간 데이터 접근: 탈옥된 기기에서는 앱 간의 데이터 접근이 가능해져, 민감한 정보가 유출될 위험이 높아집니다.
- 루트 권한 노출: 탈옥된 기기는 루트 권한을 얻을 수 있어, 시스템 파일을 자유롭게 변경할 수 있습니다. 이는 해커가 기기를 완전히 제어할 수 있는 가능성을 열어줍니다.
- 악성 코드 및 해킹 위험: 탈옥된 기기에서는 악성 소프트웨어나 해킹 툴이 쉽게 설치될 수 있습니다. 이는 사용자의 개인 정보와 금융 정보를 위험에 빠뜨릴 수 있습니다.
- 보안 업데이트 차단: 탈옥된 기기는 Apple로부터 자동 업데이트를 받지 못하게 되어, 중요한 보안 패치와 기능 업데이트를 놓칠 수 있습니다.
특히, 탈옥된 장치에서는 앱의 실행을 제한하는 보안 프로세스가 없기 때문에, 악성 소프트웨어가 시스템에 침투할 가능성이 높아집니다. 이러한 위험은 사용자의 개인 정보와 금융 정보를 보호하는 데 큰 위협이 될 수 있습니다. 예를 들어, 온라인 뱅킹 앱이나 결제 서비스 앱에 저장된 정보가 해커의 손에 넘어갈 수 있습니다.
5. iOS 탈옥이 배포하는 앱에 미치는 영향
5.1. 보안 취약점 증가
악성 코드 및 해킹에 노출
탈옥된 기기는 운영 체제의 보안 계층이 무너져 악성 코드나 해킹에 취약해질 수 있습니다. 이는 앱 내에서 수집되는 데이터나 사용자 정보가 유출될 위험을 증가시키며, 개발자의 신뢰도에도 부정적인 영향을 미칠 수 있습니다.
앱 무결성 손상
탈옥된 환경에서는 앱의 코드가 변조될 수 있어 앱의 무결성이 손상될 수 있습니다. 이는 앱의 정상적인 동작을 방해하고, 예기치 않은 오류나 버그를 유발할 수 있습니다.
5.2. 불법 복제 및 수익 손실
앱 불법 복제 증가
탈옥된 기기는 앱의 불법 복제나 유료 앱을 무료로 설치할 수 있는 환경을 제공합니다. 이러한 행위를 도와주는 모드앱 또한 증가합니다. 이는 개발자의 직접적인 수익 손실로 이어지며, 앱 비즈니스 모델에 큰 타격을 줄 수 있습니다.
인앱 결제 우회
탈옥을 통해 인앱 결제를 우회는 트윅을 설치하거나 앱 변조를 통해 유료 기능을 무료로 사용하는 사례도 많습니다. 이는 개발자의 추가 수익 창출 기회를 감소시키고, 공정한 수익 구조를 해칠 수 있습니다.
5.3. 사용자 경험 저하
앱의 안정성 문제
탈옥된 기기에서는 시스템 안정성이 떨어져 앱의 크래시(crash)나 프리즈(freeze) 현상이 빈번하게 발생할 수 있습니다. 이는 사용자에게 부정적인 경험을 주며, 앱에 대한 만족도를 크게 저하시킬 수 있습니다.
지원 불가능한 환경
탈옥 환경은 표준 iOS 환경이 아니기 때문에 개발자가 예상하지 못한 문제가 발생할 수 있습니다. 이러한 문제를 해결하기 위해 추가적인 자원을 투입하기 어려워, 사용자 지원에 한계를 겪을 수 있습니다.
6. iOS 탈옥 탐지 방법
앱 개발자는 탈옥된 기기에서 앱을 보호하기 위해 탈옥된 기기의 상태를 탐지해야 합니다. 탈옥된 기기를 탐지하는 데 사용되는 다양한 기법들이 있으며, 각 기법은 고유한 특징과 장단점을 가지고 있습니다. 주요 탐지 방법은 다음과 같습니다.
6.1. 시스템 파일 검사
탈옥된 기기는 시스템 파일에 변화를 일으키는 경우가 많습니다. 대표적인 예로 /private/var/lib/cydia나 /bin/bash 같은 파일들이 존재하는지 확인하여 탈옥 여부를 탐지할 수 있습니다. 이러한 파일들은 일반적으로 탈옥 도구를 설치할 때 생성됩니다.
func isJailbroken() -> Bool {
// 확인할 시스템 파일 경로들
let jailbreakPaths = [
"/private/var/lib/cydia", // Cydia 파일
"/bin/bash", // bash 파일
"/usr/sbin/sshd", // SSH 서버 파일
"/etc/apt" // APT 디렉토리
]
// 각 파일/디렉토리 존재 여부 체크
for path in jailbreakPaths {
if FileManager.default.fileExists(atPath: path) {
return true // 파일이 존재하면 탈옥된 기기
}
}
return false // 파일이 없으면 탈옥되지 않은 기기
}
6.2. API 호출 감지
탈옥된 기기에서 주로 사용되는 특정 API 호출을 감지하여 탈옥 여부를 판단할 수 있습니다. 예를 들어, fork(), sysctl() 등의 함수 호출은 탈옥과 관련된 행동을 나타낼 수 있습니다. 이러한 함수 호출을 모니터링하여 탈옥 여부를 탐지합니다.
func checkFork() -> Bool {
let pid = fork()
if pid == 0 {
// 자식 프로세스 종료 (fork가 성공하면 탈옥 가능성이 높음)
exit(0)
} else if pid > 0 {
print("fork() 호출 가능 - 탈옥된 기기일 수 있음")
return true
}
return false
}
6.3. 탈옥 도구 탐지
탈옥된 기기에서는 MobileSubstrate, Frida, Cydia 등과 같은 탈옥 도구들이 설치됩니다. 이러한 도구들이 설치되어 있는지 확인하여 탈옥 여부를 탐지할 수 있습니다. 예를 들어, Cydia 앱이 설치되어 있는지 확인하는 방법이 있습니다.
// 확인할 파일 및 디렉터리 목록
let jailbreakFilePaths: [String] = [
"/Applications/Cydia.app",
"/private/var/lib/cydia/",
"/private/var/tmp/cydia.log"
]
// 파일 존재 여부 확인 함수
func checkJailbreakFiles() -> Bool {
for path in jailbreakFilePaths {
if FileManager.default.fileExists(atPath: path) {
print("탈옥 관련 파일 발견: \(path)")
return true
}
}
return false
}
6.4. 비공식 앱 설치 탐지
탈옥된 기기에서는 애플의 공식 앱스토어 외에도 비공식 앱스토어를 통해 앱을 설치할 수 있습니다. 따라서 비공식적으로 설치된 앱들을 탐지하여 탈옥 여부를 확인할 수 있습니다.
6.5. 루트 접근 권한 검사
탈옥된 기기는 루트 권한을 얻을 수 있기 때문에, 루트 권한으로 실행된 프로세스나 파일들을 확인하는 방법이 있습니다. 시스템 내에서 루트 권한을 사용하는 프로세스나 파일 접근 시 이를 탐지할 수 있습니다.
탈옥된 기기에서 발생할 수 있는 보안 위험을 완전히 없애는 것은 불가능할 수 있지만, 여러 방어 기법을 결합하여 다층적인 보안을 구축하는 것이 중요합니다.
7. 마무리
iOS 앱 개발자는 사용자 데이터를 보호하고, 앱의 안전한 환경을 제공하는 중요한 책임을 지고 있습니다. 탈옥된 장치에서 발생할 수 있는 보안 위협을 사전에 탐지하고 방어하는 것은 필수적인 작업입니다. 탈옥 탐지 및 방어 기능을 통해, 앱의 보안을 강화하고, 사용자가 안전하게 앱을 사용할 수 있도록 보장해야 합니다.
글로벌 IT기업 NHN이 직접 만든 보안 솔루션 NHN AppGuard는 탈옥 기기에서 발생하는 다양한 보안 위협에 대응할 수 있는 필수적인 보안 솔루션입니다. NHN AppGuard를 적용하여 배포하면 아래와 같이 탈옥 환경을 탐지하고 차단 할 수 있도록 정책을 설정할 수 있습니다.
배포된 앱이 실행되는 중 탈옥이 탐지되면 곧바로 탐지에 대한 로그를 남기며 이를 추적할 수 있습니다.
이렇게 NHN AppGuard는 앱 운영자가 기기 보안에 대한 걱정 없이 안정적인 서비스 제공에 집중할 수 있도록 도와줍니다. 강력한 탈옥 탐지와 차단 기능을 통해, 앱의 무결성과 사용자 데이터를 완벽하게 보호할 수 있습니다.
'BLOG > 인사이드' 카테고리의 다른 글
모바일 앱 난독화란? (0) | 2025.03.11 |
---|---|
GPS 조작 어뷰징 탐지/차단 (0) | 2024.07.03 |
2024년 상반기 결산 및 로드맵 (0) | 2024.06.26 |
[칼럼] 모바일 생태계를 위협하는 변조앱(MOD)과 대응 방법 (0) | 2023.11.09 |
[영상] 개발자 없이도 3분 만에 모바일 앱 보호하기 (0) | 2023.10.10 |