나의 성장기 보안/코딩$

iOS 진단 - 탈옥에 관하여

App 진단
@2021-11-01 14:07:41

탈옥

iPhone, iPod touch, iPad와 같은 Apple 휴대용 기기에 사용되는 iOS 및 iPadOS의 제한을 임의로 푸는 행위를 탈옥이라 한다.

안드로이드에서의 루팅과 비교할 때 결과적으로 제한된 권한을 부여한다는 점은 동일할지라도 그 과정은 많이 다르다. 안드로이드의 경우 시스템, 혹은 커널에 Su 바이너리를 심고 Superuser 또는 SuperSU 등 퍼미션 컨트롤 앱을 이용하여 루트 권한을 주도록 OS에 간단하게 파일 몇 개 추가하는 정도로 끝나지만, iOS의 경우 자체 보안이 강력하기 때문에 이 보안을 뚫고 들어가 Cydia를 설치하고 커널을 패치하여 순정 펌웨어로 보이도록 부트ROM을 속인다.

 

A4칩 이전에는 부트롬이 별도로 설치되어 있어서 부트롬 익스플로잇이 한번 뚫리면 이후 iOS 버전에서는 무조건 반탈옥이 가능했으나, A5칩 이후로는 부트롬이 CPU 내부로 들어가게 되어 부트롬 익스플로잇이 불가능해졌다.

 

즉, A4칩 이전 기기는 탈옥 시 Pwned DFU모드로 진입해서 백도어를 열고, 탈옥툴을 돌려 시스템 내부에 접근해 탈옥하는 것이 가능했는데, A5칩이 탑재된 이후 기기는 전원이 꺼지면 부트롬 전원도 같이 꺼지므로 이것이 불가능하게 되었다.

A4 이전 기기도 저런식으로 뒷문을 따고 들어가서 탈옥에 성공했더라도 부팅 과정을 속이지 못하면 재부팅 시 벽돌 상태가 되는 이른바 반탈(Tethered Jailbreak)상태가 되는데, 이것이 패치되는데 까지는 시간이 꽤 소요된다.

 

사실상 Apple 기기의 역사는 탈옥과의 싸움이라고 할 수 있을 정도로, Apple에서 한 기기나 새로운 OS 버전을 출시하면 몇시간 내로 또 탈옥이 뚫리고, 다시 보안 업데이트로 이를 막으면 또 몇 시간 뒤에 뚫리는 식으로 이어져 왔다.

그러나 iPad2의 경우에 부트롬이 플래시 메모리가 아닌 프로세서 자체에 내장되어 있기 때문에 iPhone처럼 바로 뚫리진 않았지만, 2011년 7월 6일 JailbreakMe 3.0이 나오며 대 탈옥시대를 맞이하게 된다.

 

Apple은 탈옥된 제품에 대해서는 AS를 거부한다. 이건 Apple이 민감한 것이 아니고, 삼성이나 소니, LG도 원칙적으로 사용자가 임의로 OS를 수정한 경우 AS를 거부할 수 있다. Apple은 탈옥이 자사 OS에 대한 저작권 침해라는 근거를 내세우면서 불법이라고 주장해 왔으나 미 국회도서관 저작권 사무국 측에서는 관련법률을 개정하여 합법화 하였다.

하지만 이 법개정은 미국 영토 내에서 발생하는 탈옥 행위 자체에 대한 법적 문제 해소만 할 뿐 Apple 등 제조사가 탈옥된 기기에 대한 A/S를 거부하는 것에 대한 소비자 구제장치는 없다. 무엇보다 해당 법 개정은 미국의 영토에서만 영향을 받는 것이기 때문에 우리나라 등 미국 외의 Apple 제품 탈옥에 대해서는 해당이 없다.

즉, 우리나라 법률에 따라서는 법적으로 문제가 될 소지가 있다.

 

탈옥의 명분은 기본적으로 Apple이 제한하고 있는 기능을 가능하게 하는 것이다. 좀 더 상세히 말하자면 OS 차원에서 지원하지 않는 기능을 지원하게끔 개조하는 것이다. 예를들어, 폰트와 테마를 바꿀 수 있도록 한다거나 Cydia에서 Apple 정책 상 App Store를 통해 설치할 수 없던 유용한 트윅들을 찾아 설치하는 것이 주를 이룬다.

시스템 파일을 직접적으로 건드릴 수 있기 때문에 iFile이나 Filza같은 내부 파일 관리자 트윅을 통해 셔터음을 삭제한다던가 하는 행위가 가능하다.

사실 iPhone이 처음 나왔을 때 App Store는 존재하지 않았고, 기능도 많이 부족했고, 이를 보충하기 위해 프로그램을 설치하려면 반드시 탈옥을 거쳐야 했으며, 음지에만 서드파이 iPhone 프로그램이 존재했다. 그 당시의 Apple의 주장은 "웹 프로그램이 있는데 프로그램을 깔 필요가 있나?"였고, 최초의 iPhone 발매 키노트에 이런 사고방식의 내용이 있었다. App Store용으로 올라오는 앱도 Apple 정책상 추가될 수 없는 기능의 한계라는 게 존재한다. 때문에 이런 규제를 싫어하는 사람들은 탈옥용으로 프로그램을 만들게 되며, 이것이 탈옥의 기본적인 명분인 것이다.

 

수 많은 사용자들이 탈옥을 행하는 이유 중 하나가 Crack된 유료 앱을 공짜로 다운받아 무단으로 사용하기 위함 이었다는 사실을 부정할 순 없다. 하지만 PSP등에서도 볼 수 있듯, 홈브류와 불법 복제는 종이 한 장 차이의 기술이므로 개인이 탈옥하여 더 많은 기능을 사용하는 것은 자유인만큼 기기를 탈옥하는 행위 그 자체를 비판할 필요는 없다.

위에도 쓰여있지만 애초에 iOS에서 탈옥이라는게 처음 등장했던 당시에는 애플의 앱스토어가 개설되기 전이었으므로 불법 복제 운운하는 것 자체가 말이 안되기도 했었다.

 

탈옥하면서 잃는 것도 있는데, 가장 큰 것이 AS 불가능이 유일하지만 어차피 부품 이상과 액정 깨짐은 AS가능하며, 탈옥을 했더라도 DFU로 iOS나 iPadOS를 재설치하면 깨끗이 사리지기 때문에 상관 없다.

 

과거의 많은 블로그에서 탈옥 후 여러 소스를 추가하고 각종 트윅을 설치하고 뭐는 지우고 무슨 파일을 열어서 어떻게 고치고 하는 등 각종 설정을 해야 안정화가 된다는 내용들이 팁이라하고 많이 돌아다녔는데 이는 국내에 아이폰이 출시되지도 않았던 시절, 콘솔 화면에서 명령어 한줄 한줄 써가며 탈옥 하던 때에나 필요하던 것이므로 그러한 팁이 돌아다니는 시절이나 지금이나 사실상 별 의미없는 행동들이며 오히려 잘못 따라했다가는 멀쩡하던 시스템을 불안정하게 만들 수가 있다.

 

Root와 mobile계정의 기본 비밀번호(alpine)를 바꿔두라는 부분은 물론 보안에 도움이 되긴 하겠지만 Openssh관련 프로그램을 사용하는게 아니면 필수는 아니다. 그래도 정 원한다면 비밀번호 변경 후에 Open ssh와 관련된 패키지를 도로 삭제하는 편이 쓸데없는 용량 소모도 줄이고 그냥 남겨두는 것보다 보안 차원에도 도움이 될 것이다. 최적화는 iClener Pro하나로도 충분하다.

 

탈옥에는 iPhone Dev Team, Chronic Dev Team등의 해커들이 참여하고 있는데, 이런 여러 해커들이 누가 먼저, 그리고 안정적으로 탈옥을 공개하나 경쟁을 벌이고 있는 상황이다.

아무래도 아이폰 탈옥 개발자라고 하면 그 바닥에서는 상당한 유명세를 얻을 수 있으나 예전의 탈옥툴은 미국, 혹은 유럽쪽 개발자에 의해서 개발되고 발표되었지만 iOS 7을 기준으로 중국 개발자들 또한 탈옥툴 개발에 참여하고 있다.

탈옥툴이 나오는 주기가 예전에 비해 매우 짧아진 것은 덤이며 iOS 7과 8은 모두 중국 개발자들에 의해 발표되었다.

 

2016년 iOS 9를 기점으로 탈옥이 가능한 기기의 파편화와 탈옥툴 릴리즈 기간이 점점 길어지는 것을 알 수 있는데, 이는 iOS 탈옥으로 인해 유명세를 얻은 인원들이 애플에 채용되거나, Apple이 탈옥하는데 필요한 취약점을 제보하면 바운티를 지급하는 버그바운티 제도를 시행하고 있기 때문으로 추정한다.

Apple이 제공하는 취약점 보완 목록에서도 탈옥툴 개발에 참여했던 Pangu팀 등의 이름을 자주 발견할 수 있으며, Cydia를 개발한 Saurik이 올린 바운티 정책을 보면 바운티가 결코 무시할 수 없는 수준이라는 것을 알 수 있다.


탈옥의 흐름도

  • iOS 8.1.2.의 탈옥툴을 내놓은 이후 탈옥툴의 소식이 뜸하다가, 2015년 6월 23일 중국의 탈옥툴 개발 팀인 TaiG팀에서 8.3까지 탈옥이 가능한 탈옥툴을 내놓은 상태이다. TaiG팀은 8.4도 동일한 방식으로 탈옥할 수 있을 것이라고 했고, 결국 7월 1일 iOS 8.4가 배포되자마자 탈옥을 할 수 있는 탈옥툴이 나왔다.
  • iOS 8.4 탈옥이 하루만에 나올 수 있던 것은 Apple에서 Taig 8.3 Tool의 취약점을 iOS 8.4를 배포할 당시에 관련 취약점 패치를 안해서 그런것이다.  iOS 8.1.3에서 ios 8.3까지 지원되는 탈옥툴이 나오는데 반년이 넘는 시간이 걸린 것을 생각해보자.
  • 2015년 8월 22일 Pangu팀에서 8.4.1의 탈옥을 선보였다. iOS 9이 배포된지 얼마 안된 상태라 공개하지는 않다가 2015년 10월 14일 Pangu에서 iOS 9 탈옥툴을 공개했다.
  • 2016년 7월 중국의 Pangu팀에서 64비트 기기 한정 iOS 9.2에서 9.3.3까지 탈옥 가능한 툴을 내놓았다. 다만 아직 완전한 탈옥은 아니라 재부팅 후엔 탈옥이 풀려 기기 내에 설치된 앱을 실행해 재 탈옥 시켜줄 필요가 있다. 다만 Pangu팀에서 배포한 툴로 탈옥 후 페이팔 계정이 해킹당했다는 등의 보고가 이어지고 있다고 한다. 이 이슈에 대해 Cydia의 개발자로 유명한 iOS해커 Saurik이 reddit의 덧글을 통해 의견을 밝혔다. Pangu의 탈옥 툴로 인해 이러한 문제가 발생했을 것이라고 생각되지는 않으나, 중국의 사기업인 25PP에서 배포하는 툴로 인증하는 대신, Cydia Impactor를 이용해 애플 서버를 경유하여 인증하는 것을 권장한다고 한다.
  • 2016년 8월 30일 새벽 3시경에 iOS 9.2 - 9.3.3 탈옥 어플이 다른 곳도 아니고 App Store에 올라왔다! 한 시간도 안돼서 내려갔지만 레딧에서 계정 공유를 통해 구매이력에서 내려받는 방식으로 계속 다운로드가 이루어졌었고 결국엔 공유된 계정이 정지되었다.
  • 2017년 1월 26일 iOS 10.1.1-10.2 Version이 탈옥이 가능한 "Yalu"가 등장했다. 이유는 알 수 없지만, 이 탈옥 툴의 아이콘은 북측 체고존엄이다. 애초에 Yalu라는 게, 압록강의 중국어 발음이다.
  • 2018년 1월 13일, iOS 11.1.2 Version의 탈옥을 개발한 팀에서 11.3.1 Version까지 탈옥이 가능한 동명의 툴을 릴리즈 하였다.
  • 2019년 1월 30일, iOS 11.1.2, 11.3.1 Version의 탈옥을 개발한 팀에서 11.4.1 Version까지 탈옥이 가능한 동명의 툴을 릴리즈 하였다.
  • 2019년 2월 22일, pwn20wnd가 ios 11.0 - 11.4.1에서 더하여 12.0 - 12.1.2 Version까지 탈옥이 가능한 unc0ver를 출시했다. 아직까진 베타 버전이지만 안정성은 높다고 한다.
  • 2019년 08월 최신 버전인 ios 12.4에서 탈옥이 가능한 unc0ver과 Chimera 툴이 출시했다. 애플에서는 8월 말 이 탈옥에 관련된 보안 허점을 패치한 12.4.1을 출시했다.
  • 2019년 11월 10일 A7 - A11 Bionic칩을 탑재한 모든 디바이스가 iOS 12.3 이상이기만 하면 무조건 탈옥이 가능한 checkra1n이 출시되었다. 해당 탈옥툴은 하드웨어 취약점을 이용했기 때문에 Apple이 소프트웨어로 취약점을 패치할 수 없다.
  • 2020년 5월 말 최신 버전인 iOS/iPadOS 13.5에서 탈옥이 가능한 unc0ver툴이 출시 되었다. Apple은 이를 iOS/iPadOS 13.5.1에서 패치하였고, 13.5.5 Beta 버전에서는 탈옥이 가능하나 Apple이 사이닝 서버를 닫았다.
  • 2020년 11월 20일 iOS/iPadOS 13.5.1-13.7 탈옥이 Odyssey에 의해 가능해졌다.
  • 2021년 2월 말 iOS/iPadOS 14.0-14.3 Version 탈옥이 가능한 Unc0ver툴이 출시되었다.
  • 2021년 4월 초 iOS/iPadOS 14.0-14.3 Version 탈옥이 가능한 Taurine 툴이 출시되었다.
  • 2021년 4월 8일 reddit에 iOS/iPadOS 14.2 이하에서 iOS/iPadOS 사이닝 서버가 닫혔음에도 불구하고 iOS/iPadOS 14.3을 설치하는 방법이 올라왔다.
    https://www.reddit.com/r/jailbreak/comments/mm0g3f/news_new_method_of_updating_to_ios_143_if_you_are/
 

[News] New Method Of Updating to iOS 14.3 if you are on 14.2.1 or lower without blobs!

**Edit: It appears this does not work on A14 devices** **Make sure you are not blocking OTA updates for this to work** 1. (Optional) Rootfs &...

www.reddit.com

  • 2021년 10월 25일 twitter에 Linus Henze는 iOS/iPadOS 14.2-14.5.1 버전의 탈옥을 지원하는 스크립트를 완성하였음을 발표했다. 무려 Untethered, 즉 완탈이라고 한다. 다만 이 스크립트를 이용하여 탈옥하기 위해선 MAC이 필요하며, 14.2부터 14.3 미만의 버전에서 사용하기 위해서는 파일 2개의 수정이 필요하다.
    https://github.com/LinusHenze/Fugu14
 

GitHub - LinusHenze/Fugu14: Fugu14 is an untethered iOS 14.3-14.5.1 jailbreak

Fugu14 is an untethered iOS 14.3-14.5.1 jailbreak. Contribute to LinusHenze/Fugu14 development by creating an account on GitHub.

github.com


SHSH백업

탈옥툴은 각 프로그램 버전마다 지원하는 기기와 iOS 버전이 정해져 있다. 때문에 탈옥을 하지 못하는 버전이 있으며 최신 버전의 iOS를 쓰는 사람은 해당 버전을 지원하는 탈옥툴을 개발팀이 내놓을 때까지는 순정 상태로 기다리는 수밖에 없다.

하지만 iOS의 펌웨어는 현재 정상적인 방법으로 한 번 업데이트하고 나면 다운그레이드가 불가능하다.

Apple 사가 탈옥을 막는 방법 중 하나이긴 한데, 문제는 업그레이드한 펌웨어에 버그가 발생하더라도 순정 사용자 역시 다운그레이드가 불가능하다는 것이다.

iOS 펌웨어를 업데이트할 때 Apple의 서버에 접속을 해서 인증을 받기 때문에 그런 것이다.

탈옥 개발자들은 이를 일종의 프록시에 기기 인증코드를 저장해주는 방법으로 우회하였다. 이를 SHSH백업이라 부른다.

하지만 펌웨어 업데이트 전에 백업을 해야 하고, iOS 기기 자체에서 하는 무선 OTA 업데이트는 인증코드 오작동을 가져오므로 반드시 컴퓨터 기기로 업데이트해야 한다.

이는 기기를 탈옥하지 않더라도 사용 가능하니 순정 사용자도 사용을 권하며 기기에 문제가 생겨 DFU 모드 복원(공장 초기화)을 해야 할 경우 자동으로 최신 버전의 iOS가 설치되기 떄문에 만일을 대비하여서라도 필수적으로 하는 것이 좋다.

[링크 막힘] 방법 찾아야 함

Tinyumbrella를 다운받을 수 있다. 이 프로그램 말고도 SHSH 백업 툴이 몇가지 존재하니 찾아보자

 

언제부턴가 Apple의 인증 정책(?)이 APTicket으로 바뀌어서 기존의 SHSH Blobs(단, iOS 5.x이상 Version)는 더 이상 쓸 수 없게 되었다. 따라서 지금까지 백업했던 건 모두 버리고 TinyUmbrella나 iFath 등을 이용해 재작성해야 한다.(몇년 전 이야기니, 최근에 백업했다면 상관없다.) 물론 해당 버전으로 복원할 수 있을 때만 백업이 유효하므로 대부분은 할 수 없다.

 

그러나 SHSH백업을 철저히 해두었다고 해도, 실제로 iFaith를 통해 복원 시에는 일정의 하드웨어 취약점을 사용하기 때문에 해당 취약점이 없는 iPhone 4s 이상의 기기는 복원이 불가능했었다.

다만 최근에 탈옥된 iOS기기에서 kloader 바이너리를 통해 Pwned DFU모드로 진입하는 방법이 나오면서 SHSH 백업이 되어 있다면 A5칩 이상 기기에서 다운그레이드가 가능해졌다. (다만 이 바이너리의 업데이트가 안 되고 있는 상황이어서 언제 막힐지 모른다.)

 

2017년 현재, 64비트 기기의 다운그레이드를 지원하는 FutureRestore라는 툴킷이 릴리즈되어 있는 상태다. 다만 종전의 SHSH Blobs가 아닌 SHSH2 Blobs가 백업되어 있어야 하고, CLI툴이라 일반인의 접근이 어렵다.

또한 복원을 위해서는 ApNonce값을 백업된 SHSH2와 맞춰야 하는데, 순정에서는 이 값이 랜덤으로 나와 Noncesetter, noncereboot 계열의 툴을 이용해서 Apnonce값을 특정한 값으로 설정해야 한다. 문제는 해당 툴들이 취약점으로 동작하기 때문에 탈옥이 가능한 버전으로 업/다운그레이드를 하기 위해 탈옥을 하거나 최소한 탈옥이 가능한 버전이어야하는 웃지 못할 상황이 발생한다.

 

무엇보다 아이폰 5s 시리즈 이후부터 AP 내부에 SEP(Secure Enclave Process)가 들어갔는데, iOS가 새로 설치될 때마다 SEP의 펌웨어를 새로 설치한다. 문제는 이 SEP 펌웨어가 현재 사이닝이 열려 있는 iOS의 펌웨어와 FutureRestore툴을 사용해 업/다운그레이드할 iOS와의 호환성이 없는 경우, 일반적으로 복원 실패가 되며, 복원이 진행된다 해도 iPhone X를 11.3.x복원 할때 Face ID 사용이 불가능하게 되는 것처럼 정상적인 복원이 되지 않는다. 결국 SHSH2를 백업했더라도 제대로 써먹을 수 없는 것이다.

SEP 펌웨어 호환 현황 (iOS 14.6 기준)

iOS Version 호환 여부
iOS 14.0 ~ 14.6 호환
iOS 11.3 ~ 13.7 미호환

탈옥 종류

크게 재부팅 시 PC와의 연결이 필요한지, 그리고 탈옥이 작동하는지 여부에 따라 갈린다.

  • 반탈(Tethered): 반탈옥, BootRom 취약점을 이용한 탈옥 후 재부팅을 하게 되면 PC와 연결하여 탈옥 과정을 재실행해야 한다. 그렇지 않으면 흔히 무한사과라고 불리는 부팅 불가 상태가 된다. 현재는 사라진 탈옥 종류이다. 보통 반탈이라고 하면 이 탈옥이 아닌 준완탈을 부른다고 보면 된다.
  • 완탈(Untethered): 완전한 탈옥. 완탈은 재부팅 시 아무 문제 없이 탈옥 상태 정상 부팅이 된다. 가장 편리하고 이상적인 탈옥이지만 iOS 9.2 이후로 대폭 강화된 보안으로 인해 현재는 나오지 않고 있다가 Fugu14의 등장으로 오랜만에 완탈이 나왔다. 마지막으로 완탈을 지원한 Version은 iOS 9.1이었으나 Fugu14의 등장으로 iOS/iPadOS 14.5.1이 마지막 완탈 지원 버전이 되었다.
  • 커스텀 번들(Custom Bundles): 줄여서 커번이라고도 한다. 쉽게 말하자면 완탈에서 Cydia와 트윅들을 뺀 것. Root File System에 존재하는 파일들을 덮어씌우는게 가능하다. 즉, 테마를 제작하고 사용할 때 쓰이는 것이다. 주로 레드스노우(redsn0w)같은 툴이 이 기능을 내장하고 있다. 하지만 iOS의 디렉토리를 완전히 복제 해 놓아야 하기 떄문에 상당히 많이 번거롭다(...) iOS 6 탈옥까지 존재했으나, iOS 7부터는 나오지 않았다.
  • 준반탈(Semi-Tethered): 부트롬 취약점을 이용할 때 나오면, Tethered 탈옥은 재부팅을 하면 무한사과가 되어 PC에 연결하기 전까지 기기를 사용할 수 없게 되지만, Semi-Tethered탈옥은 재부팅 후에도 기기를 사용할 수 있어도 트윅이 작동하지 않는 순정 상태가 된다. 이후 PC에 연결하여 재탈옥 과정을 실행하면 다시 탈옥 상태가 된다. Checkra1n을 이용한 탈옥이 이런 종류이다.
  • 반탈(준완탈, Semi-Unththered): 보안 강화로 인해 나오지 않는 완탈을 대신하는, 현재 탈옥툴이 채택하는 방법으로, Kernel 취약점을 이용한다. 위의 Semi-tethered 탈옥과 비교하여, 재부팅 시 순정 상태가 되는 것은 같지만, 특정 앱을 실행하여 기기 내부에서 재탈옥 과정을 실행할 수 있다. 따라서 반드시 PC의 연결을 필요로 하지 않는다. 서양권에서는 Tethered 탈옥과 구분되는 Semi-Untethered 탈옥 이라고 부르지만, 한국에서는 구분 없이 똑같이 반탈로 불린다. 다만 Tethered탈옥이 사실상 없어진 현재로선 별 상관이 없다.

반탈과 완탈이 갈리게 된 이유

  • 해커들이 발견한 초기 취약점의 불안전성
    - 초기 터치 2세대의 경우 취약점이 완벽하지 않아 반탈이 등장했고 그 뒤로부터는 완탈이 되어서 문제가 되지 않았다. 그 후 신 부트롬을 쓰는 모델은 부트롬 상의 취약점은 존재하나 이것을 펌웨어 상에서 유지할 수 없어서 완탈이 불가능해도 반탈이 가능한 경우가 생겼다.
  • Apple의 대응
    - iPhone 3Gs에도 동일한 취약점을 가지고 있어서 출시된지 얼마 지나지 않아 완탈이 되기 시작했으나, Apple이 iOS가 수정되었다고 판단되면 부팅을 중단하게끔 부트롬쪽을 수정한 모델을 시장에 내놓으면서 문제가 발생하였다. 그후 iPhone 3GS와 iPod touch 2세대 8G MC모델들 간의 탈옥에 관한 문제가 부각되기 시작되었다.

탈옥이 가능한 Apple 제품 운영체제 버전

iOS 버전 탈옥여부
iOS 15.0 / ipadOS 15.0 불가능
iOS 14.4 ~ 14.7 beta 4 / iPadOS 14.4 ~ 14.7 beta 4 제한적 가능
iOS 10.0.1 ~ 14.3 / iPadOS 13.0 ~ 14.3 가능
iOS 9.0 ~ 9.3.6 제한적 가능
iOS 8.0 ~ 8.4.1 제한적 가능
iPhone OS 1.0 ~ iOS 7.1.2 가능

탈옥 프로그램 목록


시디아의 개발자인 제이 프리맨은 2017년 7월경 이제 iPhone 탈옥은 공식적으로 죽었다고 말했다. 또한, 알레그라는 이 시점에서 탈옥은 근본적으로 죽었다고 느낀다고 말했다. 탈옥 커뮤니티에서 가장 유망한 해커인 루카 토데스코는 금년에 자신이 이 일을 그만 두겠다고 발표했다. 전에는 탈옥을 통해 거의 경이적인 기능들을 갖곤 했지만 이제는 소수의 작은 수정만 얻을 뿐이라고 한다.

 

탈옥이 죽은 이유는 다음과 같다.

  • Apple이 탈옥을 어렵게 하기 위해 보안을 강화하고 있음
  • 만일 해커가 취약성을 발견하면 이를 100만 달러에 팔 수 있음
  • 대부분의 최고 탈옥 해커들은 고연봉의 보안 직장으로 자리를 옮김
  • iPhone을 탈옥하면 보안 취약성에 노출되기 떄문

그래도 탈옥 자체는 아직도 꾸준히 나오고 있다.

안드로이드 진단 - XAPK파일...

App 진단
@2021-11-01 10:17:05

보호글입니다.
비밀번호를 입력하셔야 내용을 보실 수 있습니다.


모바일 진단 - 휴대폰 본인 인증의 원리(CI, DI값)

App 진단
@2021-10-29 15:40:00

과거의 본인인증 방식의 문제점

옛날에는 본인인증을 주민등록번호로 하여 한창 이슈가 있었다. 하지만 지금은 대부분 사이트에서 주민등록번호 수집을 원칙적으로 금하고 있다.

대신 대부분의 사이트에서 휴대폰 본인인증으로 변경되어 사용하고 있다.


휴대폰 본인인증의 원리

※ 참고 사항 : 휴대전화 본인인증 등 개인정보 처리할때는 SSL/TLS를 사용하여 암호화 방식이 필수이다.

회원가입 등 개인정보를 다루는 사이트는 HTTPS를 필수로 이용해야 한다. 해당 사항을 준수하지 않을 시 5천만원 이하의 벌금 등 법률 위반 제재가 가능하다.

 

요즘에는 중복가입 차단, 쇼핑몰 등에서 만 14세 이상 연령 확인용, 성인인증 용도 등으로 대체하고 있는 휴대폰 본인인증 서비스에 대하여 알아보고 원리를 소개한다.

※ 참고

중복가입 차단, 쇼핑몰 등에서 만 14세 이상 연령 확인용도, 성인인증 용도를 받는 이유?

- 대한민국 법률상, 만 14세 미만의 '계약 등 동의를 한 행위'를 인정하지 않기 때문이다. 예를 들어 만 14세 미만이 게임에 수천만 원을 사용하거나, 기타 재화를 구매 후 부모가 환불 요청 시 손해를 감수하고도 환불해줘야 하기 떄문에 대부분의 쇼핑몰은 구매자가 만 14세 이상인지 확인하게 된다. 이는 해외에서도 비슷한 법률이 존재하며, 미국의 경우에는 아동의 개인정보를 혹시라도 수집한 경우 폐기하도록 하고 있다.

 

휴대폰 본인인증이란?

사용자의 휴대전화의 문자인증등으로 본인임을 확인하는 방법이다.

해당 인증과정에는 사람, 기관이 등장한다.

  1. 사용자
  2. 쇼핑몰 등 가입하려는 "웹 사이트"
  3. 이동통신사(SKT, KT, LG, 알뜰폰 등)
  4. 본인인증 회사(도는 신용평가 회사 별도)

본인 인증 회사에서 이동통신사에 휴대전화정보로 개인정보를 확인 요청하여 맞는지 확인 후 성공/실패 여부를 웹사이트로 전송해준다.

 

사용되는 개인정보는 아래와 같다.

  • 필수
    • 휴대전화 번호
    • 이름
  • 필수 아닌 항목
    • 생년월일
    • 성별

누가 해당 정보를 처리할까?

해당 정보는 신용평가 및 본인인증 회사들의 페이지에서 본인인증이 이루어지며, 맞는지 틀린지 확인한다.

가입하려는 웹사이트에는 일반적으로 CI/DI라고 하는 고유 인증코드, 성공 여부 등만 보내지고 경우에 따라 이름, 생년월일, 성별, 내외국인 정보, 이동통신사 정보, 휴대폰 번호 등을 추가로 제공한다.

ex) 연령인증 목적 - 생년월일 필요

정보는 일반적으로 팝업으로 열린 본인인증 회사와 사용자와 1:1로 통신하며, 웹사이트는 계약된 정보만 전달받는다.

 

주민등록번호 가입과 차이점은 관리의 책임은 전적으로 신용평가회사에 있으며 해독할 수 없는 암호화된 정보를 강제한다. 보안이 검증되지 않은 회사들에 무방비하게 개인정보가 저장되어 있는 것보다는 신용평가회사만 관리하는게 관리 및 보안측면에서 조금 더 이점이 존재한다.

 

보안이 검증된 회사?

1. 보안 전문 인력이 있거나 믿을 수 있는 보안 전문 회사에 의뢰하며, 주기적으로 보안검증을 받는 회사
2. 언제나 열어두며, 버그바운티를 투명하게 공개하는 회사
3. 버그 수정하고 투명한 보고서를 제공하는 회사

이러한 기준을 만족하는 대표적인 회사는 구글과 마이크로소프트 등이 존재한다.

CI값은?

주민등록번호를 추정할 수 없는(단방향)암호화한 88BYTE값이다.

DI값은?

주민등록번호와 사업자 고유번호(사업자 등록번호)를 암호화한 66BYTE값이다.


웹 사이트의 중복가입 방지?

해당 정보중 DI값을 사용할 경우 중복가입을 방지할 수 있다.

사업자등록번호와 개인의 고유번호를 합쳐서 암호화한 코드로서 이 값은 같은 사람인 경우에만 같은 코드가 나온다.

따라서 (같은 사람 + 사업자 등록번호)로 처리하므로 중복 회원가입이 불가능하게 된다.

인증을 실패하는 Case

만일 본명을 변경하여 신용평가회사에 등록된 내용과 다른 경우(수정 반영이 되지 않은 경우)에 실패할 수 있다. 정보가 맞는지 대조하는게 신용평가회사를 통해 진행되기 때문이다.


본인 인증을 제공하는 회사 목록

  • NICE 아이디
  • NHN KCP
  • KMC 한국모바일인증
  • 드림시큐리티
  • 다날
  • PASS
  • SCI Bizsiren

안드로이드 진단 - SQlite_Database_Brower_Portable

App 진단
@2021-10-28 16:33:27

보호글입니다.
비밀번호를 입력하셔야 내용을 보실 수 있습니다.


안드로이드 진단 - 10.26일짜 Magisk 탈옥

App 진단
@2021-10-26 23:45:56

보호글입니다.
비밀번호를 입력하셔야 내용을 보실 수 있습니다.


안드로이드 진단 - Rooting된 단말기 순정 펌웨어 설치하는 방법

App 진단
@2021-10-26 22:38:27

Odin에 대하여

삼성 갤럭시 스마트폰을 사용할 때 간혹 업데이트가 아닌 다운그레이드, 루팅 기기를 순정펌웨어로 복구할 때 주로 사용하는 프로그램이 Odin이다.

이 프로그램은 본래 서비스센터에서 고객을 위한 서비스 용도로만 사용되던 삼성 내부프로그램 이었으나 어느순간 루팅 및 순정펌웨어를 설치할 수 있는 삼성의 공식 펌웨어 설치 프로그램이다.

다운로드 사이트는 다음과 같다.

 

2020년도 7월 1일 기준으로 최신 버전은 3.14.4 Version이며 갤럭시 S20까지 이를 지원한다.

Odin을 사용할 경우 Smart Switch Process를 종료한 후 작업하는 것을 추천한다.(Windows 상에서)

 

오딘을 사용하여 커스텀 바이너리 등을 설치하여 Knox Warranty 무효 비트가 1(엑시노스 계열) 또는 0x01(스냅드래곤 계열)로 올라가면 삼성페이등의 Knox와 관련된 기능을 사용할 수 없으며, Knox 관련 기능을 다시 사용하기 위해서는 보증 기간이 지나지 않더라도 메인보드를 유상으로 교체해야 한다.

 

하지만 Knox관련 부분을 제외한 나머지는 보증 기간 내 무상 수리가 가능하다.

https://dl2018.sammobile.com/Odin3-v3.14.4.zip

위의 링크로 접속하게 되면 최신 Odin Version인 Odin3-v3.14.4 Version을 다운로드 받을 수 있다.


Odin 사용 방법

1. Odin Program과 설치할 펌웨어를 준비한다. 펌웨어 파일을 압축하여 공유하는 사이트도 존재하는데, 압축 해제하면 다음과 같은 파일을 얻게 된다.

  • BL (부트로더 파일)
  • AP (시스템 및 리커버리 파일)
  • CP (통신 모뎀 파일)
  • CSC 또는 HOME_CSC(지역 및 통신사 코드 파일)

2. Odin을 열고 오른쪽에서 파일 선택 버튼 중에서 위에서 아래로 차례대로 선택해주면 된다.

단, 커스텀 펌웨어 상태에서 순정 펌웨어로 돌아가는 경우 HOME_CSC 대신 CSC를 CSC버튼에 선택하여 넣어줘야 한다.

 

3. Phone을 다운로드 모드로 부팅한다. 거의 대부분 전원 + 빅스비 버튼 + 볼륨 상 키를 동시에 누르면 부팅하면서 경고화면이 발생하는데, 이때 Reboot Bootloader키를 누르면 다운로드 모드로 진입한다. 컴퓨터와 연결한 후, F. Rest Time과 Auto-Reboot가 선택되어 있는지 확인한 후 플래시를 시작하면 된다.

※ 만약 설치 중 오류가 발생하면 다른 케이블을 사용해보거나, 컴퓨터 뒷면에 연결을 시도하거나 기기가 지원하는 오딘 버전을 사용하는지 확인하자

※ 참고로 오래된 펌웨어는 압축파일을 해제했을 때 BL, AP, CP, CSC등 여러 개가 나오지 않고 1개로 통합되어 있는 경우가 있다. 이럴 경우 그냥 AP에 넣고 플래싱 진행하면 된다.


순정 펌웨어 다운로드 하는 방법

갤럭시를 사용하다보면 가끔씩 순정펌웨어를 사용할 일이 발생한다.

이럴때 사용해줄 수 있는 프로그램이 존재한다.

바로 Samfirm이란 프로그램인데, 해당 프로그램은 사실 예전부터 존재했지만 20년 말에 삼성 펌웨어 서버에서 펌웨어를 내려받는 방식의 변화가 생기면서 작동이 되지 않았다.

 

하지만 samfirm 제작자가 이를 확인하고, samfirm reborn이라는 이름의 프로그램을 새로 출시했다.

https://github.com/ivanmeler/SamFirm_Reborn/releases

 

Releases · ivanmeler/SamFirm_Reborn

Contribute to ivanmeler/SamFirm_Reborn development by creating an account on GitHub.

github.com

위의 Link를 접속하여 SamFirm_Reborn.zip를 다운로드 받는다.

그 후 SamFirm.exe를 다운로드 받으면 된다.

 

SamFirm Reborn

1. Model란에 기기의 모델명을 적어주면 된다.

- 기기의 모델명은 [설정] -> [휴대전화 정보]로 이동하면, [모델번호]에 기입된 항목을 찾아 입력해주면 된다.

2. Region은 기기의 CSC코드를 입력해주면 된다.

- 기기의 CSC번호는 [설정] -> [휴대전화 정보] -> [소프트웨어 정보] -> [서비스 공급자 소프트웨어 버전]에서 찾을 수 있다.

내 단말의 경우 SKC

※ 처음에 Manual 모드로 가있는 경우가 있다. 일반 사용자의 경우, 사용할 일이 거의 없으므로, Auto에 Check하고, Check Update버튼을 누르면 된다.

 

삼성은 서버에 펌웨어를 저장할때 암호화 해서 보관하기 때문에, 다운로드만 진행해서는 펌웨어를 사용할 수 없는 암호화된 파일만을 내려받게 된다.

 

따라서 암호화를 해제하는 작업을 진행해야 되는데, 게이지가 다차서 다운로드가 완료되면 잠시 프로그램이 아래의 문구를 표시하며, CRC32값을 확인한다.

Checking CRC32...

다소 시간이 걸릴 수도 있는 작업으로, 이 작업 도중 프로그램을 종료한다면 파일을 다시 다운로드 해야 할 수 있다.

Sucess: CRC match!

Decrypting firmware...

CRC32 값 확인이 끝나면, 위 문구가 뜨면서 게이지가 처음부터 다시 차오르는데 암호화된 .zip파일을 복호화하는 과정이다.

안드로이드 진단 - Rooting Device Detection

App 진단
@2021-10-26 17:38:25

보호글입니다.
비밀번호를 입력하셔야 내용을 보실 수 있습니다.


안드로이드 진단 - NOX Setting

App 진단
@2021-10-26 11:01:45

Nox 환경 Setting 수행하기

Nox 진단 Version 7.0.1.1

일반적으로 Nox를 설치한 후 ADB를 이용해서 Nox 에뮬레이터에 붙을때 에뮬레이터의 Port는 62001부터 시작한다.

 

adb connect 127.0.0.1:62001

adb shell

해당명령으로 Shell 떨어지는지 확인

에뮬레이터로 adb 붙기


NOX를 사용한 간단한 System영역 변조 루팅방법

루팅(Rooting)은 모바일 기기에서 구동되는 안드로이드 운영체제 상에서 최상위 권한(Root)권한을 얻음으로 해당 기기의 생산자 또는 판매자 측에서 걸어 놓은 제약을 해제하는 행위를 가르키는 말이다.

 

SU파일명 변경으로 우회하기

  • System 파티션 RW모드로 리마운트

adb shell mount -o rw,remount /system

-> 시스템 영역을 rw권한으로 Remount

adb shell로 접근하여 su로 시스템 권한 획득

1. mv /system/bin/su /system/bin/ssu

2. mv /system/xbin/su /system/xbin/ssu


 

App 진단 (21)

[1] [2] [3]