다음은 evasi0n 탈옥의 작동 방식입니다

evad3rs 팀은 거의 1 주일 전에 evasi0n을 릴리스했습니다. 이제 iOS 기기를 모두 탈옥하고 최상의 조정을 설치 했으므로 외부에서는 믿을 수 없을만큼 간단하지만 내부에서는 탈옥이 어떻게 작동하는지 살펴 보겠습니다.

Apple이 iOS의 보안을 강화함에 따라 해커는 더 이상 이전과 같은 단일 익스플로잇을 찾아 장치에 대한 루트 액세스 권한을 얻는 데 사용할 수 없습니다. evasi0n은 5 가지 버그로 구성되어 있으며, 대부분 버그는 개별적으로 무해하지만 오픈 iOS를 크랙 할 수 있습니다.

evasi0n은 iOS의 iTunes 백업 시스템 인“MobileBackup”데몬을 이용하여 시작합니다. iTunes 프로토콜을 사용하여 iOS 장비와 통신하는 PC / Mac의 프로그램 인 "libmobiledevice"를 실행하면됩니다.

evasi0n은 탈옥에 필요한 몇 개의 파일이 포함 된 백업을 복원합니다. MobileBackup은 /var/Mobile/Media 외부에 파일을 저장할 수 없으므로 evasi0n은 /var/Media 를 가리키는 .haxx라는 이름의 "symlink"또는 바로 가기를 /var/Mobile/Media 하여이 문제를 해결합니다. MobileBackup은 이제 .haxx 심볼릭 링크를 통해 /var/mobile 파일을 쓸 수 있습니다. 복사 된 파일은 전체적으로 탈옥 프로세스 도중에 실행하라는 앱을 구성합니다.

심볼릭 트릭을 사용하여 evasi0n은 시간대 파일에 액세스 할 수 있으며, 이 파일은 "루트"권한으로 프로세스를 실행하는 데몬 인 시작을 가리 키도록 다시 심볼릭 링크됩니다. 이제 시작된 액세스 권한이 악용되고 권한을 변경하여 모든 사용자 (루트 만이 아닌)가 시간대 파일에 액세스 할 수 있습니다. iOS의 모든 앱이 실행되는 모바일 사용자가 액세스 할 수있는 시작된 프로세스와 다른 프로세스 간의 통신을 처리하는 소켓을 만드는 데 유사한 트릭이 사용됩니다.

이제 사용자는 이전 단계에서 iOS 파일 시스템에 복사 된 앱을 시작하라는 메시지가 표시됩니다. 노출 된 시작 소켓을 사용하는이 앱은 읽기 전용 시스템 파티션을 쓰기 가능하게 만듭니다.

이제 시스템 파티션이 쓰기 가능해 졌으므로 evasi0n은 다시 MobileBackup을 실행하고 많은 파일을 작성합니다. 그 중 하나는 exploit을 구성하는 많은 명령을 포함하는 launchd.conf입니다. 이 파일은 부팅 할 때마다 실행되므로 탈옥이 지속됩니다.

launchd.conf의 명령 중 하나는 동적 라이브러리를로드하여 AppleMobileFileIntegrity의 검사 코드 서명 검사를 회피하는 책임이 있습니다. 동적 라이브러리는 내장 된 검사 기능을 항상 true를 리턴하는 것으로 대체합니다.

evasi0n은 또한 플래시 메모리 주소에 임의성을 도입하여 예측하기 어려운 ASLR (Address Space Layout Randomization)을 앞두고 또 다른로드 블록을 가지고 있습니다. 그러나 ARM 칩에는 여전히 찾기 쉬운 위치가 있으며이 evasi0n을 사용하면 전체 메모리를 매핑 할 수 있습니다. 여기서부터 iOS의 USB 인터페이스에있는 버그를 이용하여 evasi0n은 장치의 커널에 들어가게됩니다.

Via : Forbes, Acuvant Labs



인기 게시물