티스토리 뷰

728x90
반응형

[ Application Debuggable 취약점 ]

- 안드로이드 디버깅 모드 설정 여부에 따라 발생

- 안드로이드 앱의 각종 정보 기술하는 AndroidManifest.xml에 포함되는 속성

- 디버깅 옵션을 true 한 경우 중대한 보안 결함이 발생할 수 있다

 

 

 

 

< 취약점 진단 과정 >

- 모든 안드로이드 앱은 AndroidManifest.xml 파일을 반드기 갖고 있으며, 항상 최상위 폴더에 있음

   ( 해당 앱에서 사용되는 모든 컴포넌트 정보와 최소한의 SDK 버전,

     추가적인 라이브러리 등 앱의 필수적인 정보를 정의해 놓은 파일)

 

 

1) AndroidManifest.xml 파일 확인

- 앱의 AndroidManifest.xml 파일 확인 위해서는 apk 파일을 디컴파일 해 AndroidManifest.xml 파일을 추출해야 함

- adb pull 명령어로 디바이스로부터 apk 파일로 추출한 후 apktool 툴을 사용해 디컴파일 함

 

1. 앱 위치 확인

adb -e shell

pm list package -f inse

실제 위치와 앱의 이름은 /data/app/com.android.insecurebankv2-1.apk

 

 

2. 디바이스로부터 앱 추출

adb pull [ 추출할 경로 ] [ 저장할 로컬 경로 ]

 

3. apktoll를 사용해 디컴파일

java -jar apktool.jar [ 옵션 ] [ apk 이름 ] [ 저장할 위치 ]

apktool과 apk 파일을 같은 폴더에 넣어 실행했으므로 apktool 파일의 경로를 별도로 지정하지 않았다.

필요한 경우 apktool을 환경 변수에 등록해 사용하면 경로와 관계없이 사용 가능

 

4. AndroidManifest.xml 파일 내용 확인

디버깅과 관련된 debugguable 옵션 값을 확인 한다.

인시큐어뱅크의 경우 true로 되어있다.

이는 디버깅이 가능하다는 것을 의미

 

 

 

2) Drozer로 인시큐어뱅크 앱 취약점 확인

adb forward tcp:31415 tcp:31415

drozer.bat console connect

run app.package.list -f inse

run app.package.attacksurface com.android.insecurebankv2

 

위 명령어를 통해 취약점이 존재하는 지 확인 할 수 있다.

디버깅 취약점이 존재하면 is debuggable이라고 출력될 것이다.

 

 

 

 

 

 

< 대응 방안 >

1. AndroidManifest.xml 파일에서 디버깅 관련 옵션을 false 로 지정

디버깅 가능한 취약점은 개발자가 앱을 배포하기 전에 한 번 더 확인하면 충분히 막을 수 있다.

 

 

 

 

728x90
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함