본문 바로가기
정보보안/안드로이드해킹

안드로이드 모의해킹) 안전하지 않은 SD카드 저장소

by _miiiiiin_zzang_ 2020. 11. 26.

애플리케이션이 SD 카드 저장소에 중요한 정보나 파일을 저장하여 발생하는 취약점

안드로이드는 데이터를 저장할 크게 내부 저장소와 외부 저장소로 나눌 있음

내부와 외부는 공간별로 접근 가능한 권한과 역할이 다름

내부는 안드로이드 플랫폼, 시스템 등에서 사용된는 공간으로 안드로이드 API 의해 권한이 통제

외부는 애플리케이션 데이터 공유가 가능하고 WRITE_EXTERNAL_STORAGE 권한을 갖고 ldT 에플리케이션은 설정에 따라 데이터를 읽고 쓰는 것이 가능

디렉터리 앱에 대한 정보를 가장 많이 획득할 있는 곳은 /data/data/앱이름 dlek.

 

  1. 취약점 진단 과정
    • 안드로이드의 /외부에 중요한 데이터를 저장할 경우 발생하는 취약점은 외부 저장소에는 어떤 정보이든 서비스에 중요한 역할을 하는 정보를 저장해서는 안됨, 내부 저장소에 저장이 되더라도 암호화되어 안전하게 저장해야함
    • Insecure SDCard storage 확인
      • 외부 저장소에 어떤 파일이 있는지 확인
      • 사용자의 거래 아이디와 거래한 금액이 평문으로 저장되어 있다는 것을 확인 가능
    • Insecure Local storage 확인
      • 내부 저장소 진단하기 디바이스가 루팅되어 있어야
      • 진단에 앞서 진단할 앱의 데이터베이스 경로 파악하기
      • mySharedPreferences.xml 수상하게 생겼으니 확인
    • 해당 값은 AES base64 암호화되어 있고 복호화 하기 위해서는 키값이 필요함
    • 키값은 CryptoClass.smali파일에 하드코딩 되어 있어 쉽게 복호화 가능

 

  • 난그냥 사이트에 해봄
  1. 취약점 대응 방안
    • 내부 저장소에 데이터를 저장할 때는 setStorageEncryption API를 이용하여 내부 저장소에 저장되는 파일을 강제로 암호화할 있음
    • SD 카드에 저장할 떄는 javax.crypto 라이브러리를 사용해 암호화할 있으며 AES 같은 대칭키 암호화 알고리즘을 이용해 암호화
    • 중요한 정보를 저장할 때는 하드코딩된 암호화 또는 암호화키에 의존하지 않는다
    • 등등 여러가지....

댓글