iOS 바이너리 파일 패칭(앱 위변조) 취약점은 iOS 앱의 사용자(클라이언트) 코드에 대한 무결성 검증 로직이 구현되어 있지 않아 코드를 변경하여 비정상적인 작동을 유도 가능한 취약점이다.


서버 인증이 아닌 사용자 단의 인증을 우회함으로써 보안 솔루션 우회, 인증 절차 무력화, 악성코드 삽입 및 실행 등 여러가지 인증 절차를 무력화 시킬 수 있다.


iOS 바이너리 파일을 패칭하기 위해 사용할 도구는 Clutch2, 7zip 도구를 이용해 패칭을 수행한다.

 

설치된 iOS 앱의 바이너리 파일(payload/appname)은 애플 사의 암호화 방식으로 암호화되어 있고, 앱 구동 시 복호화를 수행한다. Clutch2를 탈옥 단말기에 설치하여 앱을 복호화를 해야 한다.


Clutch2 -b 1을 입력하면 Clutch2가 설치된 디렉토리에 복호화 된 파일이 저장된다.


Clutch2 –i : 복호화를 할 앱의 목록 출력

Clutch2 –b 1 : 지정된 앱의 숫자를 입력하면 알아서 복호화 진행하고, 복호화 된 결과를 저장

설치된 앱의 목록 : /private/var/containers/Bundle/Application



아이펀박스 프로그램은 윈도우 프로그램으로 탈옥된 아이폰 단말기의 시스템 디렉토리 접근, 시스템 디렉토리의 파일 다운로드 및 업르드, iOS 앱 설치 등 종합적인 관리를 해주는 프로그램이다.


아이펀박스 프로그램을 실행하여 원시파일 시스템 > var > tmp 디렉토리로 이동하여 복호화 된 파일을 로컬 PC로 다운로드한다.


이후 복호화 된 바이너리 파일을 핵사 에디터(winhex)로 열어 메인 페이지 주소를 임의의 페이지 주소로 변조한다. (aaa.com -> bbb.com)



7zip 프로그램으로 appname.ipa 파일을 열어 Payload\app_name.app 디렉토리로 이동하면 바이너리 파일(원본)이 존재한다. 해당 파일을 변조된 바이너리 파일로 맞바꾼다.



아이펀박스 프로그램으로 app_name.ipa 파일을 모바일 단말기에 설치한다. 설치가 완료되고, 앱을 실행하면 변조한 임의의 사이트로 이동된다.



iOS 앱의 위/변조를 탐지할 수 있는 상용 솔루션을 도입하면 좋겠지만, 비용적인 문제나 커스텀마이징의 문제 등이 발생하므로 자체적으로 최소한의 위/변조를 탐지할 수 있는 기능을 구현해야 한다.


※ 이미지 출처 : 앱 소스코드 검증 가이드라인



▶ iOS 탈옥 탐지 우회 (Frida, Ghidra)

▶ 아이폰 미러링 화면제어 (iPhone mirroring)

▶ 안드로이드 루팅 탐지 우회 (Frida Hooking)

▶ 안드로이드 디컴파일 방지 우회 (APK Protect)

  • 카카오톡-공유
  • 네이버-블로그-공유
  • 네이버-밴드-공유
  • 페이스북-공유
  • 트위터-공유
  • 카카오스토리-공유