안드로이드 중요 정보 노출

심야·2024년 9월 29일
0

모의해킹

목록 보기
44/47

system/app/기본 파일

data/app/file_name/base.apk

data/data/file_name/cache
data/data/file_name/database

안전하지 않은 데이터 저장소(Insecure Data Storage)

/data/data/package_name/shared_prefs

shared_prefs는 애플리케이션이 기본 데이터 유형의 키-값 쌍을 저장하고 검색할 수 있도록 하는 Android API이다. 사용자 기본 설정, 설정 또는 간단한 애플리케이션 상태와 같이 세션 전반에 걸쳐 유지하려는 소량의 데이터를 저장하는 데 주로 사용한다.

세션 상태나 로그인 정보를 저장해서 자동 로그인에 사용하며 직접 제거하지 않는 이상, 앱을 종료하거나 단말기를 종료해도 shared_prefs에 저장된 데이터는 삭제되지 않는다.

기기가 루팅된 경우 shared_prefs에 저장된 데이터를 읽을 수 있다. 보안을 강화하려면 안전한 암호화 알고리즘을 사용하여 키와 값을 모두 암호화하는 'EncryptedSharedPreferences'를 사용해야 한다.

/data/data/package_name/databases

안드로이드는 sqlite로 내장형 DB를 사용한다.
경로는 /data/data/package_name/databases 이다.

암호화되지 않은 중요 정보는 모바일에서 어떻게 취약할까?

  1. 네트워크 패킷 평문 전송 - 중요 정보 평문 전송 여부 (카드번호, 차대번호 등)
    wireshark
  2. 로그캣 - 평문으로 전송되어 중요 정보 로그 노출 여부
    adb logcat grep -i
  3. 외부 저장소(SD 카드) - 외부 SD 카드에 중요 정보 평문 노출 여부
    (카드번호, 카드비밀번호 등) /mnt/sdcard/[평문 data]
  4. 내부 저장소 - 내부 저장소 평문으로 중요 정보 평문 노출 여부
  5. 파라미터 변조 - 파라미터 변조해 타인의 거래내역, 거래금액 변조 여부
  • 만약에 암호화 되어 있다면 암호화 키가 하드코딩되어 디컴파일 코드에서 노출되는지 확인해야 한다.

  • 외부 저장소에 저장되는 것이 왜 위험할까?
    외부 저장소는 모두가 접근 가능한 저장소이다. 따라서 악성앱으로 인한 악성코드 감염, SD카드 탈취 등의 악성 행위로 외부 저장소에 접근할 경우, 평문으로 저장된 데이터에 접근할 수 있다.

profile
하루하루 성실하게, 인생 전체는 되는대로.

0개의 댓글