애플리케이션이 SD 카드 저장소에 중요한 정보나 파일을 저장하여 발생하는 취약점
안드로이드는 데이터를 저장할 때 크게 내부 저장소와 외부 저장소로 나눌 수 있음
내부와 외부는 공간별로 접근 가능한 권한과 역할이 다름
내부는 안드로이드 플랫폼, 시스템 등에서 사용된는 공간으로 안드로이드 API에 의해 권한이 통제
외부는 애플리케이션 간 데이터 공유가 가능하고 WRITE_EXTERNAL_STORAGE 권한을 갖고 ldT는 에플리케이션은 설정에 따라 데이터를 읽고 쓰는 것이 가능
디렉터리 중 앱에 대한 정보를 가장 많이 획득할 수 있는 곳은 /data/data/앱이름 dlek.
- 취약점 진단 과정
- 안드로이드의 내/외부에 중요한 데이터를 저장할 경우 발생하는 취약점은 외부 저장소에는 어떤 정보이든 서비스에 중요한 역할을 하는 정보를 저장해서는 안됨, 내부 저장소에 저장이 되더라도 암호화되어 안전하게 저장해야함
- Insecure SDCard storage 확인
- 외부 저장소에 어떤 파일이 있는지 확인
- 사용자의 거래 아이디와 거래한 금액이 평문으로 저장되어 있다는 것을 확인 가능
- Insecure Local storage 확인
- 내부 저장소 진단하기 전 디바이스가 루팅되어 있어야 함
- 진단에 앞서 진단할 앱의 데이터베이스 경로 파악하기
- mySharedPreferences.xml 이 수상하게 생겼으니 확인
- 해당 값은 AES와 base64로 암호화되어 있고 복호화 하기 위해서는 키값이 필요함
- 키값은 CryptoClass.smali파일에 하드코딩 되어 있어 쉽게 복호화 가능
- 난그냥 사이트에 해봄
- 취약점 대응 방안
- 내부 저장소에 데이터를 저장할 때는 setStorageEncryption API를 이용하여 내부 저장소에 저장되는 파일을 강제로 암호화할 수 있음
- SD 카드에 저장할 떄는 javax.crypto 라이브러리를 사용해 암호화할 수 있으며 AES와 같은 대칭키 암호화 알고리즘을 이용해 암호화
- 중요한 정보를 저장할 때는 하드코딩된 암호화 또는 암호화키에 의존하지 않는다
- 등등 여러가지....
'정보보안 > 안드로이드해킹' 카테고리의 다른 글
안드로이드 모의해킹) 인자 전달값 조작 (0) | 2020.12.02 |
---|---|
안드로이드 모의해킹) 안전하지 않은 HTTP 통신 (0) | 2020.11.30 |
안드로이드 모의해킹) 런타임 조작 (0) | 2020.11.26 |
안드로이드 모의해킹) 안드로이드 백업 취약점 (0) | 2020.09.10 |
안드로이드 모의해킹) 안드로이드 복사/붙여넣기 취약점 (0) | 2020.09.10 |
댓글