본문으로 바로가기

중요정보 메모리 저장(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강 - 진단 도구 설치

 

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

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

hagsig.tistory.com

 

메모리 덤프를 하고자 하는 애플리케이션의 이름(Name) 확인.

> frida-ps -Ua

 

아래의 명령어를 사용하여 DVIA-v2 어플(앱)의 메모리덤프 실행. Finished! 가 출력되면 메모리 덤프에 성공한 것.

> python fridump3.py -u -r -s "[앱이름(Name)]"

 

※ 메모리 덤프 시 오류가 발생하는 등의 문제가 있다면 아래의 글을 참고하여 해결하길 바람.

2023.02.05 - [Mobile App 취약점 진단/iOS App 진단] - 프리다(Frida) 관련 오류 해결방법 정리 - iOS

 

프리다(Frida) 관련 오류 해결방법 정리 - iOS

iOS App진단을 위해서는 프리다(Frida) 설치 및 실행은 필수이다. 하지만 각종 에러가 발생하며 프리다가 동작하지 않는 경우가 아주 많다. 아래는 필자가 격은 오류 및 해결방법을 정리한 것이니

hagsig.tistory.com

 

위 과정이 완료되면 fridump3.py를 실행시킨 경로에 아래와 같이 dump 폴더가 생김.

dump 폴더에 있는 strings.txt 파일을 우클릭하여 편집을 눌러 메모장으로 열거나, notepad++과 같은 편집기로 열음.

 

Ctrl + F 키를 눌러 찾기 창을 띄움 > 찾을 문자 입력 > 현재 문서에서 모두 찾기 클릭

 

메모리 덤프 파일 내에 중요정보인 사용자 계정정보(아이디, 패스워드)가 평문으로 노출된 것을 확인함.

 

※ 가끔 h.g.s.i.g. 문자처럼 글자 사이에 특수문자가 붙을 수도 있으니 단순히 문자만 검색하는 게 아니라 여러 조합식을 이용하여 검색하여야 한다.