[Android APK 진단] 3. DIVA. 안전하지 않은 데이터 저장 확인하기 1 :: YPrefer's Develop&Security

2016/05/31 -  [Security/Android] - [Android APK 진단] 1. 툴 소개 - 추가 16.06.07

2016/06/07 - [Security/Android] - [Android APK 진단] 2. DIVA. 앱 로그 확인하기 1, 하드코딩된 중요정보 확인하기 1

 

 

3. Insecure Data Storage - Part 1

화면을 보면 아이디와 패스워드를 입력하는 부분이 나온다. 

아이디와 패스워드 등의 중요정보를 넣고 저장 버튼을 누르면 저장이 성공적으로 완료 되었다는 Toast를 볼수 있다.

 

해당 액티비티의 코드를 확인해보면, Preference에 user와 password정보를 저장하는 것을 알 수 있다.

 

find / -name "*앱이름*" 2>/dev/null 명령을 통해 해당 앱이 설치된 디렉토리를 알아내고, (/data/data/패키지명/ 에 설치가 된다.)

하위 디렉토리중 shared_prefs 에 들어가 저장된 xml을 확인해보면 아래와 같이 user와 password가 저장되는 경우를 볼 수 있다.

보통 자동로그인을 구현하기위해 아이디와 패스워드를 preference에 저장해두는데, 평문으로 저장되는 경우도 있고, 암호화를 해서 저장하는 경우도

존재한다.

 

필자의 경험공유 -  1. 암호화를 하기는 하지만 암호화 키가 소스코드에 박혀있는 경우

2. 아이디의 암호화 로직과 패스워드의 암호화 로직이 같아 암호화된 패스워드를 아이디 부분에 덮어씌우면 앱을 실행시에 로그인을 위해 복호화를 하면서 패스워드가 보이는 경우

3. preference의 암호화키가 단말마다 다르지 않아, xml 파일 자체를 빼내어 다른 단말에 넣어 로그인이 가능했던 경우

 

4. Insecure Data Storage - Part 2

화면을 보면 아이디와 패스워드를 입력하는 부분이 나온다. 

아이디와 패스워드 등의 중요정보를 넣고 저장 버튼을 누르면 저장이 성공적으로 완료 되었다는 Toast를 볼수 있다.

 

역시 소스를 확인해보면 DB에 Insert를 하는 것을 알수 있다.

 

위에서와 같이 설치된 경로밑의 databases폴더에 들어가면, ids2라는 파일이 보이는데, 이 파일을

adb pull /data/data/jakhar.aseem.diva/databases/ids2 명령을 통해 끄집어 낸다

 

끄집어낸 db파일은 sqllitebrowser를 통해 읽을 수 있다.

 

※ 필자의 경험공유 - 2016/06/07 - [Security/Etc] - 경험공유 - Android DB 파일 암호화 :)

 

+ Recent posts