iOS 애플리케이션은 임시 데이터와 영구 데이터를 로컬 시스템(iOS 설치기기)에 저장할 수 있다.
데이터를 평문으로 저장하게 될 경우 계정 정보(ID/PW), 고객 정보, 서버 정보 등과 같은 중요 정보가 유출될 수 있다.
iOS 애플리케이션이 로컬 시스템에 데이터를 저장하는 장소는 아래와 같다.
1. Data Container
- /var/mobile/Containers/Data/Applications/$uuid 에 위치.
- 애플리케이션 내부 데이터를 저장하는 곳.
- 상세 데이터 저장 경로는 아래와 같음.
분류 | 항목 | 내용 |
Documents | 전체 경로 | /var/mobile/Containers/Data/Applications/$uuid/Documents |
저장 내용 | 사용자 데이터 저장 | |
사용자에게 노출되고 생성, 삭제 또는 수정할 수 있는 파일 포함 | ||
사용자가 다운로드한 파일 포함 (비디오 또는 오디오 앱) | ||
Library/Application support | 전체 경로 | /var/mobile/Containers/Data/Applications/$uuid/ |
저장 내용 | 앱을 실행하는 데 사용되는 폴더로 사용자에게 보이지 않음 | |
(앱 생성 데이터) 앱이 생성하고 관리하는 데이터, 설정, 탬플릿 등 | ||
Library/Caches | 전체 경로 | /var/mobile/Containers/Data/Applications/$uuid/ |
저장 내용 | 데이터 캐시 파일을 저장하는 곳으로 앱 성능을 위한 목적으로 존재 | |
디스크 공간 확보를 위해 삭제할 수 있으므로 쉽게 재생성 가능한 파일 | ||
Tmp | 전체 경로 | /var/mobile/Containers/Data/Applications/$uuid/ |
저장 내용 | 임시파일을 위한 저장소로 앱 실행하는 데 필요 없는 파일 |
2. iCloud Container
- /private/var/mobile/Library/Mobile Documents
- iCloud와 관련된 데이터 저장.
- iCloud 지원 iOS 애플리케이션이 사용하는 데이터가 포함됨..
3. iOS Keychain
- /var/Keychains/keychain-2.db
- 사용자 이름, 암호, 네트워크 암호, 인증 토큰과 같은 민감한 정보를 저장하는 공간.
- Sqlite 데이터베이스로 구성된 파일이며 모든 데이터는 암호화됨.
※ 대응방안
자격증명, 개인정보, 인증정보 등 중요한 정보는 디바이스 내 저장하지 않아야 함.
어쩔수없이 디바이스 내 중요정보를 저장해야 할 경우, 안전한 암호화 알고리즘을 통해 데이터를 암호화하여야 함.
국내 · 외 암호 연구 관련 기관의 권고 암호 알고리즘 예시 | ||||
분류 | 미국(NIST) | 일본(CRYPTREC) | 유럽(ECRYPT) | 국내 |
대칭키 암호 알고리즘 | AES-128/192/256 3TDEA |
AES-128/192/256 Camellia-128/192/256 |
AES-128/192/256 Camellia-128/192/256 Serpent-128/192/256 |
SEED HIGHT ARIA-128/192/256 LEA-128/192/256 |
공개키 암호 알고리즘 (메시지 암·복호화) |
RSA (사용 권고하는 키길이 확인 필요) |
RSAS-OAEP | RSAS-OAEP | RSAES |
일방향 암호 알고리즘 | SHA-224/256/384/512 | SHA-256/384/512 | SHA-224/256/384/512 Whirlpool |
SHA-224/256/384/512 |
출처 : 개인정보의 안정성 확보조치 기준 해설서, KISA, 2020.12.
암호화 알고리즘을 이용한 언어별 데이터 암호화 샘플 소스코드는 아래의 링크를 참조.
https://seed.kisa.or.kr/kisa/Board/23/detailView.do
'Mobile App 취약점 진단 · 모의해킹 > iOS App 취약점 진단 · 모의해킹' 카테고리의 다른 글
[iOS 취약점 진단] 05강 - 저장소 내에 중요 정보 평문 저장(NSUserDefault) (0) | 2023.01.16 |
---|---|
[iOS 취약점 진단] 05강 - 저장소 내에 중요 정보 평문 저장(Plist) (0) | 2023.01.15 |
[iOS 취약점 진단] 04강 - 진단 대상 설치 (0) | 2022.07.01 |
[iOS 취약점 진단] 03강 - 진단 도구 설치 (0) | 2022.06.28 |
아이폰 탈옥 방법 - unc0ver (0) | 2022.06.27 |