이번엔 iOS에서 소스코드 난독화 및 암호화 취약점에 대해 분석해보고 대응 방안을 수립해보도록 하겠다.
iOS에서 소스코드를 분석하기 위해서는 먼저 파일을 만들기 위해 앱을 IPA로 추출하는 과정이 선행되어야하며 그 후 IDA나 GHIDRA와 같은 툴을 사용해 내부 소스코드 로직을 분석하게 된다.
IPA를 추출했으면 IPA 파일의 압축을 해제한다.
IPA 압축을 해제하고 내부를 확인하면 ‘파일’ 유형을 가진 가장 용량이 높은 파일이 존재한다.
이 파일을 Ghidra에서 호출하면 되는 것이다.
불러오기 후 Analyze 작업이 뜨는데 Analyze까지 끝나게 되면 그때부터 정상적으로 분석이 가능해진다.
여기서 메뉴 상단의 Search - For Strings 메뉴에 접근함으로써 String을 검색할 수 있게 된다.
탈옥 탐지 등 로직 우회를 위해 Jailbreak 등의 문자열을 검색할 수 있다.
어떠한 방식으로던 이렇게 소스코드를 확인하여 로직의 분석이 가능하다면 해당 취약점이 존재하게 된다.
대응 방안
iOS 앱은 기본적으로 배포할때 AppStore에 배포하는 것을 알고있을 것이다.
AppStore에 앱을 배포하면 기본적으로 FairPlay DRM으로 인해 암호화가 적용된다.
※ FairPlay는 애플이 소유하고 있는 디지털 권리 관리(DRM) 기술
AppStore를 통해 배포하는 것이 아닐 경우 다음과 같은 대응 방안을 고려할 수 있다.
- X-Code로 난독화를 진행 → 컴파일 되고 난 후 난독화 및 평탄화 되는 것이 중요하며, 대표적인 오픈소스 도구로는 ollvm이 존재
* ollvm 설치 - https://github.com/obfuscator-llvm/obfuscator/wiki/Installation
* 사용법 - https://yonniii.github.io/mogakco/mogakco-0202/
2. ASCII로 모두 난독화 작업을 진행한다.
3. AppIron 솔루션 사용 (유료 난독화 도구)
ㄴ AppIron을 사용하면 함수명을 다른 함수명으로 변경하거나 아랍어와 같은 코드로 난독화됨, 개발자는 평문 개발하고 난독화 플러그인을 돌려 생성한다.
'4. 모바일 앱 취약점 진단 > iOS' 카테고리의 다른 글
앱 소스코드 내 중요 정보가 노출되는 경우 (0) | 2024.07.17 |
---|---|
Zadig 같은 툴을 잘못 사용하여 iOS 아이폰 단말기 USB 인식이 안될때 해결법! (0) | 2024.07.15 |
iOS 15~17 이상 버전 탈옥하기 - Winra1n, Palera1n (3) | 2024.07.09 |
[iOS] 1.3. 디바이스 임의 개조 탐지 취약점 (0) | 2024.06.19 |
[iOS] IPA 추출하기 (0) | 2024.06.19 |