일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- MFT
- Strings
- Suninatas
- Docker
- 2018
- base64
- 파이썬
- ESXi
- CTF-d
- diva
- XSS
- kibana
- ctf
- InsecureBank
- logstash
- frida
- otter
- NTFS
- 안드로이드
- igoat
- elasticsearch
- Reflected XSS
- SQL Injection
- beebox
- Volatility
- 인시큐어뱅크
- vulnhub
- lord of sql injection
- Openstack
- foremost
- Today
- Total
Information Security
로컬 암호화 이슈 본문
정의
- 개인 정보처럼 민감한 정보일 수도 있고, 민감한 정보가 아닐 수 있다. 정보를 저장해야 할 경우에는 어떠한 방법으로 저장해야 할 것인지 생각해야한다.
발생 위치
- com.andorid.insecurebankv2_preferences.xml, myShaeredPreferences.xml
영향
- 평문으로 저장하면 정보가 공격자에게 노출된다.
진단
“adb shell” 명령어로 인시큐어뱅크 앱의 데이터가 저장되는 곳으로 이동했다.
데이터 위치에 myShaeredPreferences.xml 파일과 insecurebankv2_preferences.xml 파일이 있다.
adb pull 명령어로 디렉터리의 myShaeredPreferences.xml 파일을 복사했다.
암호화되어 있는 사용자 아이디를 담고 있는 EncryptedUsername과 문자열 변수와 패스워드와 같은 superSecurePassword 문자열 변수가 보인다.
파일을 생성한 후 사용자의 이름과 패스워드를 변수에 저장하여 CryptoClass)로 암호화하는 것을 확인할 수 있다.
사용자 아이디는 base64로 인코딩되어 있으며 인코딩 값은 “ZGluZXNo”이다. 복호화 하면 dinesh이다.
Cryptoclass 파일로 이동한 후에 소스 코드를 보면 AES에서 사용하는 대칭키 내용을 확인할 수 있다.
대칭 키 값인 keyBytes 이고 textBytes 값을 받아 패스워드를 암호화한 후 aesEncryptedString 함수로 리턴한다.
대응방안
대칭키를 사용해 암호화하는 알고리즘에서 고유키가 제대로 보호하지 못하면 아무리 강력한 암호화 방법을 사용하더라도 데이터를 안전하게 보관하지 못한다.
'모바일 > InsecureBank 분석' 카테고리의 다른 글
안전하지 않은 콘텐츠 프로바이더 접근 (0) | 2019.07.14 |
---|---|
루팅 탐지 우회 (0) | 2019.07.14 |
액티비티 컴포넌트 취약점 (0) | 2019.07.13 |
취약한 인증 메커니즘 (0) | 2019.07.13 |
브로드캐스트 리시버 결함 (0) | 2019.07.13 |