본문으로 바로가기

Webkit Caching 란?

- 웹 페이지를 로드하기 위해 UIWebView를 사용하는 애플리케이션은 응답 시간을 단축하기 위해 Caching을 사용.
- UIWebView는 앱에 웹 컨텐츠를 포함하는 뷰로 경우에 따라 중요한 정보를 응답하는 Caching을 할 수 있음.
- 요청과 응답 데이터가 로컬 저장소에 평문으로 저장되는지 확인해야함.

- App Store에서는 2020년 4월부터 UIWebView를 사용하는 새로운 앱과 2020년 12월부터 UIWebView를 사용하는 앱 업데이트를 수락하지 않아 과거의 App에서만 해당 취약점이 발생함.

 

DVIA-v2 앱을 통한 실습

로컬 시스템(iOS 설치기기) 내에 중요 정보가 평문으로 저장되는지 확인하기 위해 DVIA-v2 앱을 실행.

 

DVIA-v2 앱 설치방법은 아래의 글을 참고하길 바람.

2022.07.01 - [Mobile App 취약점 진단/iOS App 진단] - [iOS App 진단] 04강 - 진단 대상 설치

 

[iOS App 진단] 04강 - 진단 대상 설치

iOS 앱 진단을 위해 설치 파일을 요청하면, 대개 아래 3가지 방법 중에 하나의 방법으로 전달해준다. 1. 앱 스토어를 통해 설치 이미 앱 개발이 완료되어 앱스토어에 등록되어 있을 경우, 앱스토어

hagsig.tistory.com

 

메인메뉴 좌측 상단 메뉴 클릭 > Local Data Storage 클릭 > Webkit Caching 클릭

 

3uTools Files에서 Applications (User) 클릭 또는 탐색창에 /var/containers/Bundle/Application 을 입력.

DVIA-v2 폴더의 수정 시간 확인.

 

/private/var/mobile/Containers/Data/Application 에서 위에서 확인한 DVIA-v2 폴더와 수정 시간이 같은 폴더를 찾음.

 

/private/var/mobile/Containers/Data/Application/$uuid/Library/Caches/com.highaltitudehacks.DVIAswiftv2

위 경로로 이동하여 Cache.db, Cache.db-shm, Cache.db-wal 파일을 선택한 다음 우클릭하여 Export 한다.

 

추출한 Cache.db 파일을 DB Browser for SQLite.exe 으로 연다.

DB Browser for SQLite.exe 설치 방법 및 사용방법은 아래의 글을 참고하길 바란다.

2023.01.16 - [Mobile App 취약점 진단/iOS App 진단] - [iOS App 진단] 05강 - 저장소 내에 중요 정보 평문 저장(Core Data)

 

[iOS App 진단] 05강 - 저장소 내에 중요 정보 평문 저장(Core Data)

Core Data 란? - Core Data는 애플리케이션의 모델 객체를 관리(model-view-controller)하기 위한 프레임 워크. - Core Data는 SQLite를 영구 저장소로 사용할 수 있지만, 프레임워크 자체는 데이터베이스가 아님.

hagsig.tistory.com

 

추출한 Cache.db 의 내용을 살펴본다. DVIA-v2 앱에서는 UIWebView 가 동작하지않아 데이터가 저장되지 않는다.

 

데이터 평문 저장 대응방안

아래의 게시글을 참조하여 데이터가 평문으로 저장되지 않도록 한다.

2022.06.28 - [Mobile App 취약점 진단/iOS App 진단] - [iOS App 진단] 03강 - 진단 도구 설치

 

[iOS App 진단] 03강 - 진단 도구 설치

1. Cydia(시디아) - 탈옥을 성공하면 자동으로 설치되며, 앱 스토어에서 지원하지 않는 앱을 다운로드할 수 있다. - iOS가 지원하지 못하는 기능을 Cydia를 이용하여 설치할 수 있는데 이를 Tweak(트윅)

hagsig.tistory.com