중요정보 메모리 저장(Important Information in Memory) 취약점 이란?
- 일부 애플리케이션은 중요정보(ID, PW, 개인정보 등)를 메모리에 저장한다. 보통 평문으로 저장되기 때문에 메모리 덤프 도구를 이용할 경우 해당 정보가 유출될 수 있다.
- 일부에서는 민감정보 메모리 저장(Sensitive Information in Memory) 취약점이라고 부르기도 한다.
메모리 덤프(Memory Dump) 이란?
- 애플리케이션 개발 시 오류 수정이나 디버깅을 위해 메모리에 남긴 데이터를 문자(Text) 형태로 추출해 내는 것을 말한다.
대응 방안
- 개발자가 중요한 정보를 포함할 수 있는 속성 또는 인스턴스 변수를 사용 후 제거하지 않아 발생하는 취약점으로, 배포 전 해당 기능을 꼭 제거하여 메모리 내에 중요정보가 남지 않도록 한다.
※ 꼭 사용해야 할 경우, 중요정보를 담고 있는 변수의 메모리를 사용직후 바로 해제하거나 다른 값으로 덮어씌워 메모리에 중요정보가 남지 않도록 한다.
- 중요 정보를 입력하는 곳에는 가상 키보드 사용(종단 간 암호화로 인해 메모리에 계정정보가 평문으로 남지 않음).
DVIA-v2 앱을 통한 실습
앱 내 중요정보가 메모리에 저장되는지 확인하기 위해 DVIA-v2 앱을 실행.
메인메뉴 좌측 상단 메뉴 클릭 > Runtime Manipulation 클릭 > START CHALLENGE 클릭 > ID/Password 입력 후 Login Method 1 클릭.
메모리에 저장된 데이터를 추출하기 위해Fridump3를 PC에 설치.
※ Fridump3 설치방법은 아래의 글을 참고.
2022.06.28 - [Mobile App 취약점 진단/iOS App 진단] - [iOS App 진단] 03강 - 진단 도구 설치
메모리 덤프를 하고자 하는 애플리케이션의 이름(Name) 확인.
> frida-ps -Ua
아래의 명령어를 사용하여 DVIA-v2 어플(앱)의 메모리덤프 실행. Finished! 가 출력되면 메모리 덤프에 성공한 것.
> python fridump3.py -u -r -s "[앱이름(Name)]"
※ 메모리 덤프 시 오류가 발생하는 등의 문제가 있다면 아래의 글을 참고하여 해결하길 바람.
2023.02.05 - [Mobile App 취약점 진단/iOS App 진단] - 프리다(Frida) 관련 오류 해결방법 정리 - iOS
위 과정이 완료되면 fridump3.py를 실행시킨 경로에 아래와 같이 dump 폴더가 생김.
dump 폴더에 있는 strings.txt 파일을 우클릭하여 편집을 눌러 메모장으로 열거나, notepad++과 같은 편집기로 열음.
Ctrl + F 키를 눌러 찾기 창을 띄움 > 찾을 문자 입력 > 현재 문서에서 모두 찾기 클릭
메모리 덤프 파일 내에 중요정보인 사용자 계정정보(아이디, 패스워드)가 평문으로 노출된 것을 확인함.
※ 가끔 h.g.s.i.g. 문자처럼 글자 사이에 특수문자가 붙을 수도 있으니 단순히 문자만 검색하는 게 아니라 여러 조합식을 이용하여 검색하여야 한다.
'Mobile App 취약점 진단 · 모의해킹 > iOS App 취약점 진단 · 모의해킹' 카테고리의 다른 글
페어플레이 DRM 복호화 방법 - CRACKERXI+ (0) | 2023.02.26 |
---|---|
[iOS 취약점 진단] 10강 - ATS(App Transport Security) 보안 설정 (0) | 2023.02.23 |
아이폰 버프슈트 프록시 연결 및 인증서 설치 방법 (0) | 2023.02.13 |
[iOS 취약점 진단] 08강 - SSL 인증서 고정 우회(SSL Certificate Pinning) (0) | 2023.02.12 |
[iOS 취약점 진단] 07강 - 불필요한 권한 (0) | 2023.02.12 |