관리 메뉴

Information Security

로컬 암호화 이슈 본문

모바일/InsecureBank 분석

로컬 암호화 이슈

HackingPractice 2019. 7. 13. 20:06

정의
- 개인 정보처럼 민감한 정보일 수도 있고, 민감한 정보가 아닐 수 있다. 정보를 저장해야 할 경우에는 어떠한 방법으로 저장해야 할 것인지 생각해야한다.

발생 위치
- com.andorid.insecurebankv2_preferences.xml, myShaeredPreferences.xml

영향
- 평문으로 저장하면 정보가 공격자에게 노출된다.

진단
“adb shell” 명령어로 인시큐어뱅크 앱의 데이터가 저장되는 곳으로 이동했다.

그림 1-1 데이터 위치

데이터 위치에 myShaeredPreferences.xml 파일과 insecurebankv2_preferences.xml 파일이 있다.

그림 1-2 데이터 파일

adb pull 명령어로 디렉터리의 myShaeredPreferences.xml 파일을 복사했다.

그림 1-3 파일 복사

암호화되어 있는 사용자 아이디를 담고 있는 EncryptedUsername과 문자열 변수와 패스워드와 같은 superSecurePassword 문자열 변수가 보인다.

그림 1-4 myShaeredPreferences.xml 내용

파일을 생성한 후 사용자의 이름과 패스워드를 변수에 저장하여 CryptoClass)로 암호화하는 것을 확인할 수 있다.

그림 1-5 Dologin 소스코드

사용자 아이디는 base64로 인코딩되어 있으며 인코딩 값은 “ZGluZXNo”이다. 복호화 하면 dinesh이다.

그림 1-6 Base64 복호화

Cryptoclass 파일로 이동한 후에 소스 코드를 보면 AES에서 사용하는 대칭키 내용을 확인할 수 있다.

그림 1-7 AES 대칭키

대칭 키 값인 keyBytes 이고 textBytes 값을 받아 패스워드를 암호화한 후 aesEncryptedString 함수로 리턴한다.

그림 1-8 암호화 과정

대응방안
대칭키를 사용해 암호화하는 알고리즘에서 고유키가 제대로 보호하지 못하면 아무리 강력한 암호화 방법을 사용하더라도 데이터를 안전하게 보관하지 못한다.