Last Updated on 6월 5th, 2023, By
 In AppSealing News, 앱실링 블로그

애플은 디바이스에 설치 가능한 앱을 제한합니다. 또한 권한이 없는 앱은 해당 디바이스의 데이터나 다른 앱에 접근할 수 없습니다. 즉 애플은 관리자 권한을 제한적으로 허용하여 앱의 기능 자체도 제한합니다. ‘탈옥’은 이러한 제한을 우회하여 관리자 권한에 접근하는 기법입니다. 해커는 이를 이용하여 아래와 같은 행위가 가능합니다.

  • 제조사가 애플리케이션에 적용하는 제한을 우회할 수 있습니다. 이 덕분에 원래 특정 앱의 설치가 불가능한 탈옥된 기기에 앱을 설치할 수 있게 됩니다.
  • 앱, 설정, 파일을 교체 및 수정할 수 있습니다.
  • Cydia와 같은 비공식 앱스토어를 통해 탈옥된 아이폰이나 아이패드에 테마나 비공식 앱을 설치할 수 있습니다.
  • 유료 앱과 앱 내 기능을 무료로 이용할 수 있습니다.
  • 게임에서 해킹과 치트가 가능합니다.

또한 iOS 개발자라면 탈옥을 이용하여 앱을 설치하고 보안을 시험할 수 있습니다.

동시에 탈옥이 개발자에게 얼마나 위험한지 체험할 수도 있습니다. 즉 공격자가 앱 개발에 소요된 모든 노력을 쉽게 우회할 수 있음을 알게 됩니다.

그렇다면 탈옥으로부터 앱을 보호하려면 어떻게 해야 할까요? 이것이 탈옥 감지 기능이 필요한 이유입니다.

탈옥 감지란?

탈옥 감지는 앱이 탈옥된 디바이스에서 실행되는지 파악하는 프로세스입니다. 간단해 보이지만 실제로는 상당히 복잡한 과정입니다. 탈옥된 디바이스에서는 그렇지 않은 디바이스와 달리 여러 복잡한 작업이 일어납니다. 이를 이용하여 탈옥을 감지합니다.

탈옥 감지가 어려운 이유

해커는 모든 수단을 동원하여 탈옥을 시도합니다. 또한 방법도 다앙하며 이를 감지하는 수단도 그에 따라 다양합니다. 감지 방법 자체도 발전하는 데 이를테면 재부팅 전과 후에 디바이스의 상태가 완전히 달라질 수 있지만 이를 감지해 낼 수 있습니다. 또한 iOS 버전에 따라서도 달라지므로 사용해야 할 감지 방법은 여러 요인에 따라 결정됩니다.

탈옥 감지의 원리

한가지 사실은 iOS의 탈옥 감지 기능이 iOS가 허용하는 것보다 많은 자원과 데이터를 앱이 요구하는 등의 상황에 따라 작동한다는 것입니다. 또한 이 앱은 탈옥된 디바이스에서만 사용할 수 있는 Cydia와 같은 애플리케이션을 찾을 수도 있습니다. 

탈옥 감지 방법

탈옥을 방지하기 위한 감지 기법은 여러 가지가 있습니다. 일부는 단순하며 해커들도 쉽게 우회할 수 있습니다. 그 외 아래와 같은 복잡한 방법은 우회가 쉽지 않습니다.

부팅

이 방법은 모든 iOS 디바이스에서 사용됩니다. 디바이스를 재부팅/재시동하면 전체 프로세스, 앱, 데이터가 애플의 지침 및 개인정보 보호 정책을 준수하는지 확인합니다. 이는 의무적인 탈옥 감지 과정이라 할 수 있습니다.

즉 애플의 관리자 규칙을 따르지 않는 앱은 작동할 수 없습니다. 그래서 일부 앱은 탈옥된 기기에서 작동할 시마다 탈옥 감지를 우회해야 합니다.

파일 시스템

시스템 내 파일과 데이터는 모두 특정한 이름을 가진 곳에 저장됩니다. 디바이스가 탈옥되면 저장된 파일에 변화가 일어납니다. 이름이 변경되거나 파일 자체가 바뀌거나 삭제되기도 합니다. 파일 시스템의 이러한 변화로 디바이스의 탈옥 여부를 감지할 수 있습니다. 보통 탈옥 시에는 시스템에 파일들이 추가됩니다. 이를테면 아래와 같은 파일들이 생성됩니다.

  • /private/var/tmp/cydia.log
  • /Applications/RockApp.app
  • /Applications/FakeCarrier.app
  • /usr/bin/sshd
  • /var/cache/apt

디렉토리 내 추가 권한

디바이스가 탈옥되면 일부 파일이나 폴더의 권한이 수정 또는 추가됩니다. 즉 이렇게 권한이 수정 또는 추가되었다는 것은 탈옥의 징후이기도 합니다.

대용량 /etc/fstab 파일

이 파일은 애플 디바이스의 마운트 지점 역할을 합니다. 디바이스가 탈옥되면 이 파일에 항목이 추가되면서 크기가 커집니다. 즉 대용량 /etc/fstab 파일은 탈옥된 기기를 감지하는 방법이 될 수 있습니다.

탈옥된 앱의 존재 여부

일부 앱은 탈옥된 기기에서만 사용 가능합니다. 탈옥 전용 앱스토어인 Cydia, 개발자가 리버스 엔지니어링에 사용하는 Frida 등이 있습니다.

경로를 벗어난 파일

일부 앱이 생성한 파일은 특정 폴더에만 존재할 수 있으며 이는 주로 ‘Applications’ 폴더입니다. 그러나 탈옥된 디바이스에서는 시스템 디렉토리의 다른 폴더에서도 데이터를 생성, 저장할 수 있습니다.

이는 iOS 디바이스의 탈옥 여부를 감지하는 방법 중 일부에 불과합니다. 다만 해커들은 항상 이를 우회하여 데이터에 접근하는 방법을 찾아내려 시도합니다. 이러한 우회가 일어나는 과정을 이해해야 앱의 탈옥을 방지할 수 있습니다.

탈옥 방지

iOS 앱 개발자라면 다양한 방법으로 탈옥을 방지할 수 있습니다. 탈옥이 감지될 시 앱에서 아래와 같은 조치를 취할 수 있습니다.

  • 앱이 탈옥되었음을 표시하면서 작동을 중단시킬 수 있습니다.
  • 메시지를 표시하지 않고 앱의 구동을 중단시킬 수 있습니다.
  • 탈옥 프로세스의 개입 없이 정상 작동을 계속할 수 있습니다. 이는 쉽지 않지만 불가능하지도 않습니다.

마무리하며

탈옥 자체는 불법이 아닐 수 있지만 그 목적은 디바이스의 사용자에게 심각한 위협일 수 있습니다. 특히 은행 정보 등 민감성 데이터를 저장하는 앱의 개발자에게 탈옥은 디바이스의 보안을 훼손하고 위협을 초래할 수 있습니다. 그러므로 보안을 위해 탈옥을 방지해야 합니다.

앱실링(Appsealing)은 iOS 애플리케이션을 위한 보안 솔루션입니다. 애플리케이션 코드를 조작하지 못하도록 막아주며 탈옥을 방지할 수 있습니다. 또한 안티 디버깅 및 안티 트레이스 기능을 제공하므로 누구도 앱을 추적하거나 오류를 찾아낼 수 없습니다.

모바일 환경에 완전 최적화된 SDK 기반 솔루션으로 아래와 같은 기능을 제공합니다.

  • 탈옥 감지
  • 무결성 보호
  • 안티 디버깅
Dustin Hong
Dustin Hong
Dustin은 잉카엔트웍스의 앱실링 비즈니스 개발을 이끌고 있습니다. 그는 사이버 보안, IT, 컨텐츠 및 애플리케이션 보안 분야의 소프트웨어 개발과 혁신에 많은 관심을 가지고 있습니다. 또한 사이버 보안 세계에서 주요 사건의 대상, 이유 및 방법에 대해 다양한 사람들에게 공유하고 토론하는 것을 좋아합니다. 업계 동향 및 모범 사례에 대한 그의 견해는 기사, 백서에 실려있으며, 여러 보안 행사에서 유사 주제로 발표를 하였습니다.