본문으로 바로가기

NSUserDefault 클래스란?

- 사용자 기본 설정 및 속성을 저장하는 가장 일반적인 방법 중 하나.
- 애플리케이션을 종료하고 재시작하여도 저장된 정보는 계속 유지됨.
- 로그인 상태 저장에 사용될 때도 있음 (계정정보, 접근 토큰 등).
- 해당 클래스로 저장한 데이터는 암호화되지 않은 상태로 plist 파일에 저장됨.

 

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 > UserDefaults

 

평문 저장 테스트를 위한 Text 입력 > Save in NSUserDefaults 클릭 > 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/Preferences

위 경로로 이동하여 com.highaltitudehacks.DVIAswiftv2.plist 파일을 더블클릭.

 

입력한 Text가 평문으로 저장되는 있는 것을 확인 할 수 있음.

 

만약 여기에 저장된 데이터가 없다면 아래의 게시글을 참고하여 다른 곳에 평문으로 저장된 Plist 파일이 있는지 확인.

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

 

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

iOS 애플리케이션은 임시 데이터와 영구 데이터를 로컬 시스템(iOS 설치기기)에 저장할 수 있다. 데이터를 평문으로 저장하게 될 경우 계정 정보(ID/PW), 고객 정보, 서버 정보 등과 같은 중요 정보

hagsig.tistory.com

 

데이터 평문 저장 대응방안

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

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

 

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

iOS 애플리케이션은 임시 데이터와 영구 데이터를 로컬 시스템(iOS 설치기기)에 저장할 수 있다. 데이터를 평문으로 저장하게 될 경우 계정 정보(ID/PW), 고객 정보, 서버 정보 등과 같은 중요 정보

hagsig.tistory.com