1. IPC 개요
- IPC는 Inter Process Communication의 약자로 프로세스들 사이에 서로 데이터를 주고받는 행위 또는 방법이나 경로
- 앱이 신뢰할 수 없는 출처의 URL Schemes를 통해 요청을 수신하고 있으며, 이를 제대로 검증하지 않을 때 발생할 수 있음
- 다른 앱에서 들어오는 요청을 제대로 처리하지 못하면 보안 취약점으로 이어질 수 있음
- URL Schemes는 URL을 통해 정의한 프로토콜로 다른 앱과 통신할 수 있도록 해주는 통로
- http:// https:// ftp:// telnet:// ssh:// 등의 형태를 가짐
- IOS는 샌드박스 정책에 의해 다른 앱들과 정보를 주고받기 힘들기 때문에 URL Schemes를 이용
- Built-in URL Schemes(애플은 시스템 앱과 함께 통신할 수 있는 URL Schemes를 제공)
- Custom URL Schemes
- 사용자 앱에서 URL Schemes를 구현하여 처리하도록 생성
- Info.plist 파일에 CFBundleUrlSchemes 키를 활용하여 구성
- AppDelegate.swift 파일에서 URL Schemes를 수신하여 처리
2. 실습
임의의 전화번호 입력
Info.plist에서 2개의 스키마값이 사용중인 것을 확인
dvia 스키마 사용 시 dvia 앱에 잠깐 실행되다 꺼짐
Symbol Tree에서 appdelegate 파일을 필터
functions를 처음부터 하나씩 보면서 어떻게 수신하고 처리하는지 Decompile 창에서 확인
스키마를 통해 외부에서 호출할 수 있다고해서 무조건 취약한 것이 아니라 로그인 이후에 접근할 수 있는 곳이나 사용자에게 인증을 받아야 사용할 수 있는 기능일 경우에만 취약
3. 대응방안
- Custom URL Schemes를 사용할 때 사용자가 한 번 더 확인할 수 있는 로직 추가
- 중요한 기능/뷰에 대한 접근을 사용할 경우 사용자 인증 정보 확인이 필요한 로직 추가
[도움 및 출처]
보안프로젝트 김태영 팀장 해커를 위한 iOS 앱 모의 해킹 전문 과정
'IOS 모의해킹' 카테고리의 다른 글
11. Aplication Patching(1) - Login Method (0) | 2023.03.15 |
---|---|
10. Network Layer Security (0) | 2023.03.14 |
8. Side Channel Data Leakage (0) | 2023.03.14 |
7. Runtime Manpulation(3) (0) | 2023.03.13 |
6. Runtime Manpulation(2) (0) | 2023.03.13 |