Mobile/Android

[Insecurebankv2] 안드로이드 페이스트보드 취약점

blue_hone 2020. 12. 19. 22:12

취약점 개요

 - 사용자의 중요한 데이터(암호, 계좌번호 등)가 메모리(클립보드)에 노출되어 있는 취약점

 - 클립보드에 저장된 데이터를 별도의 권한 없이 허가되지 않은 사용자에게 노출되어 있는 취약점


진단방법

  1.  진단 대상 안드로이드 앱에서 중요한 데이터를 복사
  2.  adb 명령을 이용하여 클립보드 검사(adb shell su '유저명' service clipboard 2 s16 '패키지경로')

진단과정

 - 진단 대상인 Insecurebankv2 앱의 Transfer에서 From Account를 클립보드로 복사

 

Transfer에서 From Account를 복사

 

 

 - adb 명령을 사용하기 앞서, 'adb shell ps' 명령을 이용해 Insecurebank 앱을 실행하는 유저명을 확인

 

Insecurebank를 실행하는 유저명 확인

 

 

 - 'adb shell su 유저명 service call clipboard 2 s16 com.android.insecurebankv2' 명령을 사용해 클립보드를 검사

adb 명령을 이용한 클립보드 검사

 

 - 복사했던 From Account가 출력되는 것을 확인


대응방안

  • 중요한 데이터는 가급적 복사하지 않고 직접 입력
  • 앱의 UI 설계시 중요한 데이터는 복사하지 못하도록 Password Text Edit View로 구현

복사하지 못하도록 구현된 Password 입력폼

 

  • 직접 데이터를 입력하지 않고 데이터를 받아오는 경우에는 editable 속성을 추가하고 이를 "false"로 설정 (데이터 입력/복사/수정 등이 불가능)

EditText에 editable 속성을 추가하고 false로 설정