Self-Improvement

액티비티 컴포넌트 취약점 본문

AOS

액티비티 컴포넌트 취약점

JoGeun 2018. 10. 22. 22:23

액티비티 컴포넌트 취약점

안드로이드 액티비티는 애플리케이션을 구성하는 가장 기본적인 구성 단위 중 하나로 안드로이드 애플리케이션과 사용자 간의 상호 작용에 필요한 기능에 제공한다. 액티비티는 AndroidManifest.xml<activity>로 선언이 되어진다.

dz> run app.package.attacksurface com.android.insecurebankv2


drozerInsecurebankv2 애플리케이션의 취약점을 확인해보니 외부에 노출된 5가지의 activity가 존재하며 더 자세한 5개의 activity을 확인해본다.

dz> run app.activity.info a com.android.insecurebankv2


5가지의 activity가 출력이 되어진걸 확인해보니 이중에서 ChangePassword라는 activity가 확인이 되어진다. 이름만 보아도 비밀번호를 바꿀 수 있는 화면이란 것을 짐작할 수 있으며 확인해보기위해 실행을 해본다.

dz> run app.activity.start component com.andorid.insecurebankv2 <activtiy 화면>


drozer를 이용해 노출된 액티비티인 ChangePassword가 핸드폰 화면에 나타나게 되어지는 취약점을 확인할 수 있다.






대응방안

activity가 노출되어 있고 소스 코드 분석 또한 가능하다면 activity를 실행하여 인증 없이 비밀번호 변경 화면에 접근할 수 있으며 조건이 맞으면 비밀번호 또한 변경이 가능하다. 노출된 액티비티를 통해 특정 activity를 강제로 실행하지 못하도록 하기 위해 AndroidManifest.xml에 정의된 <activity>exported 속성을 false로 변경하면 된다.


false로 변경하고 drozer로 노출된 activity을 확인해보니 ChangePassword가 보여지지가 않는다. 만약 acitivity을 노출해야 하는 경우에는 Permission을 추가하여 특정 권한을 가진 경우에만 실행하도록 설정을 해야한다.



'AOS' 카테고리의 다른 글

안전하지 않은 콘텐츠 프로바이더 취약점  (0) 2018.10.22
로컬 암호화 취약점  (0) 2018.10.22
브로드캐스트 리시버 취약점  (0) 2018.10.22
모바일 2016년 OWASP TOP10  (0) 2018.10.20
Drozer  (0) 2018.10.20