Self-Improvement

[DIVA] 3. Insecure Data Storage - Part 1 (SharedPreferences, find ./ -type f -mmin -10) 본문

AOS/DIVA

[DIVA] 3. Insecure Data Storage - Part 1 (SharedPreferences, find ./ -type f -mmin -10)

JoGeun 2021. 10. 28. 11:28

분석

아래의 파트에서 username과 password를 입력하여 SAVE 버튼을 눌러본다.

 

아래와 같이 저장을 눌르게 되면 "3rd party credentials ~~ "라고 문구가 출력되는 것을 확인할 수 있다.

해당 문자열을 증거로 디컴파일하여 찾아본다.

 

자바 소스 코드를 확인해보면 입력한 값을 SharedPreferences 형식으로 저장하는 것을 알 수 있다.

 

SharedPreferences 란

개발을 진행하다 보면, 앱의 데이터들을 저장하여 관리해야 할 상황에 직면하게 되는데. 데이터의 양이 많거나 중요한 데이터라면 서버나 DB, 파일의 형태로 저장을 하면 되겠지만, 간단한 설정 값이나 문자열 같은 데이터들은 DB에 저장하기에는 부담스럽고 애매한 경우가 있다. 이런 경우 안드로이드에서 기본적으로 제공되는 SharedPreferences를 사용하여 데이터를 관리한다면 좀 더 편리하게 사용이 가능하다

 

SharedPreferences는 데이터를 파일로 저장, 파일이 앱 폴더 내에 저장되므로 앱을 삭제하면 당연히 데이터도 삭제

 

 

ADB

실제로 저장되는 지 adb에 접근하여 해당 data 폴더를 확인하면 shared_prefs 폴더가 존재하며 그 안에는 입력한 값이 평문으로 저장되어 있다.

 

FIND

FIND 명령어로 최근에 생성된 파일들을 판별할 수 있는 명령어이다.

// 10분내에 변경된 파일 찾기(변경된 시간 0~9분전)
find ./ -type f -mmin -10

// 10분내에 접근된 파일 찾기
find ./ -type f -amin -10

// 10분내에 상태변경이 있었던 파일 찾기
find ./ -type f -cmin -10