가. 애플리케이션 패칭이란?
- 애플리케이션 패칭(Application Patching)은 애플리케이션의 바이너리 파일이 영구적으로 변경되는 것을 말하며 애플리케이션 위·변조라고도 부른다.
- 바이너리 파일에는 앱 실행 및 동작에 필요한 모든 데이터들이 들어가 있으므로 바이너리 파일을 수정하여 로그인 메소드, 탈옥 탐지 메소드 등을 우회할 수 있다.
* 바이너리(Binary) 파일이란 실행 가능한 형식의 데이터 파일을 말하며, 쉽게 윈도우즈의 exe 파일이라 생각하면 된다.
나. 대응방안
- 애플리케이션 바이너리 파일의 해시 값을 검증(코드 무결성 검증)하여 앱이 위·변조되었는지 체크한다.
다. DVIA-v2 앱을 통한 실습
1. 분석 대상 앱 실행
- 어플리케이션 패칭 실습을 위해 DVIA-v2 앱을 실행한다.
※ DVIA-v2 어플이 설치되어있지 않은 사람은 아래의 글을 참고하여 앱을 설치하길 바란다.
2022.07.01 - [Mobile App 취약점 진단/iOS App 진단] - [iOS App 진단] 04강 - 진단 대상 설치
- 메인메뉴 좌측 상단 메뉴 클릭 → Application Patching 클릭 → START CHALLENGE 클릭 → Show Alert 클릭
- "I love Google"라는 문구가 적힌 메시지가 출력된다.
- 본글에서는 위 문구를 변조할 것이다.
2. 바이너리 파일 추출
- 바이너리 파일을 변조하기 위해서는 앱내부에 존재하는 바이너리 파일을 추출해내야 한다.
- 3uTools Files에서 Applications(User) 클릭 또는 탐색창에 /var/Containers/Bundle/Application 입력한다.
- 분석 대상 앱 이름과 동일한 폴더를 더블클릭한다.
- Size 클릭하여 파일을 크기순으로 정렬한다.
- 폴더를 제외하고 크기가 제일 큰 파일이 바이너리 파일이다.
- 바이너리 파일을 우클릭한 뒤 Export 버튼을 눌러 PC로 추출한다.
3. 바이너리 파일 변조
- 바이너리 파일의 문구를 변조하기 위해 아래의 사이트에서 HxD를 다운로드한다.
* HxD : 무료 헥사 코드 편집기(Hexa code editor)로, 파일의 데이터를 헥사(16진수)로 읽어드리고 편집할 수 있는 프로그램.
- 위에서 추출한 바이너리 파일을 HxD로 읽어드린다.
- Show Alert 클릭 시 출력되었던 메시지의 문구를 '검색 대상'에 입력 → 검색 방향을 '전체'로 선택 → '모두 검색' 클릭
- 검색결과 중에서 분석하고자 하는 행(아이템)을 더블클릭 → 메인창의 커서가 더블클릭한 문구가 위치한 곳으로 이동되어 있다.
- 기존 문구를 변조하고 싶은 문구로 수정 → 파일 클릭 → 저장 클릭
※ 문자수정 시 띄어쓰기(스페이스 키)나 삭제(백스페이스 키)를 눌러 문자열의 주소가 변경되면 바이너리 파일이 깨지기 때문에 해당키를 누르지 않고 문자열을 수정하여야 한다.
- 3uTools를 통해 앱의 바이너리 파일을 위에서 변조한 파일로 교체(덮어쓰기)
-앱을 재실행 한 뒤 다시 시도해 보면 " "I love Google"대신 변조한 문구가 출력되는 것을 볼 수 있다.
'Mobile App 취약점 진단 · 모의해킹 > iOS App 취약점 진단 · 모의해킹' 카테고리의 다른 글
바이너리 ASLR 적용유무 확인방법 - otool (0) | 2023.10.03 |
---|---|
[iOS App 진단] 11강 - 애플리케이션 패칭(앱 위·변조) 실습 4 (0) | 2023.09.10 |
[iOS App 진단] 11강 - 어플리케이션 패칭(앱 위·변조) 실습 2 (0) | 2023.09.10 |
[iOS App 진단] 11강 - 애플리케이션 패칭(앱 위·변조) 실습 1 (0) | 2023.06.22 |
페어플레이 DRM 복호화 방법 - Clutch (0) | 2023.02.26 |