Core Data 란?
- Core Data는 애플리케이션의 모델 객체를 관리(model-view-controller)하기 위한 프레임 워크.
- Core Data는 SQLite를 영구 저장소로 사용할 수 있지만, 프레임워크 자체는 데이터베이스가 아님.
- SQLite는 관계형 데이터베이스로 모바일 디바이스와 같은 시스템에 적합한 경량 데이터베이스 엔진을 구현함.
- Core Data는 모델을 만들고, 서로 다른 유형의 개체 간의 관계를 관리하고, 데이터를 로컬로 저장하고, 쿼리를 원할 때마다 로컬 캐시에서 가져오는 기능을 함.
- SQLite와 다른 점은 데이터베이스 테이블명 앞에 Z 문자가 붙는 것만 다름.
- Core Data에 저장된 데이터는 암호화되지 않아 중요한 정보를 저장하면 안됨.
- 중요한 정보를 저장하려면 암호화된 데이터 저장을 할 수 있는 라이브러리를 사용해야 함.
DVIA-v2 앱을 통한 실습
로컬 시스템(iOS 설치기기) 내에 중요 정보가 평문으로 저장되는지 확인하기 위해 DVIA-v2 앱을 실행.
DVIA-v2 앱 설치방법은 아래의 글을 참고하길 바람.
2022.07.01 - [Mobile App 취약점 진단/iOS App 진단] - [iOS App 진단] 04강 - 진단 대상 설치
메인메뉴 좌측 상단 메뉴 > Local Data Storage > Core Data
평문 저장 테스트를 위한 가상의 개인정보 입력(ID, Password, 전화번호, 이메일주소) > Save in Core Data 클릭 > OK 클릭
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/Application Support
위 경로로 이동하여 Model.sqlite, Model.sqlite-shm, Model.sqlite-wal 파일을 선택한 다음 우클릭하여 Export 한다.
추출한 sqlite 파일 안에 저장된 내용을 보기 위해서는 DB Browser for SQLite 프로그램이 필요하다.
아래의 게시글을 참고하여 DB Browser for SQLite 를 설치한다.
2022.06.28 - [Mobile App 취약점 진단/iOS App 진단] - [iOS App 진단] 03강 - 진단 도구 설치
DB Browser for SQLite 실행 > 파일 클릭 > 데이터베이스 열기(O) 클릭
추출한 Model.sqlite 를 클릭
테이블(T)의 콤보박스를 클릭 > ZUSER 선택
※ 입력한 텍스트가 보이지 않을 경우
1. Model.sqlite, Model.sqlite-shm, Model.sqlite-wal 3개의 파일이 하나의 폴더에 있지 않을 경우 데이터가 보이지 않음.
2. 입력한 데이터가 제대로 입력이 되지 않을 수 있으니 텍스트를 다시 입력 후 저장, 위 과정을 반복한다.
데이터 평문 저장 대응방안
아래의 게시글을 참조하여 데이터가 평문으로 저장되지 않도록 한다.
2023.01.15 - [Mobile App 취약점 진단/iOS App 진단] - [iOS App 진단] 05강 - 저장소 내에 중요 정보 평문 저장(저장 위치)
'Mobile App 취약점 진단 · 모의해킹 > iOS App 취약점 진단 · 모의해킹' 카테고리의 다른 글
[iOS 취약점 진단] 05강 - 저장소 내에 중요 정보 평문 저장(Realm) (0) | 2023.01.23 |
---|---|
[iOS 취약점 진단] 05강 - 저장소 내에 중요 정보 평문 저장(Webkit Caching) (0) | 2023.01.23 |
[iOS 취약점 진단] 05강 - 저장소 내에 중요 정보 평문 저장(Keychain) (0) | 2023.01.16 |
[iOS 취약점 진단] 05강 - 저장소 내에 중요 정보 평문 저장(NSUserDefault) (0) | 2023.01.16 |
[iOS 취약점 진단] 05강 - 저장소 내에 중요 정보 평문 저장(Plist) (0) | 2023.01.15 |