브로드캐스트 리시버
- 안드로이드 시스템의 중요한 요소, 안드로이드 디바이스에서 이벤트 발생 시 브로드 캐스트 신호를 보내게 되는데 이 신호를 받아 처리하는 역할 수행
- 대상 애플리케이션에서 발생하는 브로드캐스트를 받기 위해서는 브로드캐스트 리시버가 설정되어 있어야 함
- 신호를 바든 경우 앱에 정의해 놓은 작업 수행
- AndroidManifest.xml <reciver> </reciver>에 선언
- 악의적인 목적을 갖고 사용자가 받는 알림을 중간에서 가로채는 행위를 할 수 있으며, 특정한 상황에서만 발생하는 작업을 우회하여 수행하도록 조작
취약점 진단 과정
- androidManifest.xml에 선언된 리시버와 브로드캐스트 리시버를 상속받은 메서드 확인
- MyBroadCastReceiver에 리시버 선언 : 브로드캐스트 신호 받으면 여기서 작업 수행
- theBroadcast : 설정된 브로드캐스트 이름
- exported="true" : 외부 애플리케이션으로부터 intent를 받을 수 있는 상태
- BroadcastReceiver 객체를 상속받음
- 애플리케이션이 사용자 정의 브로드캐스트 리시버를 사용하거나 intent-filter에 특정 권한을 명시하지 않는다면 다른 앱에 의해 오남용될 수 있음
ADB를 이용한 브로드캐스트 생성
- 임의의 브로드캐스트를 생성하여 리시버를 속이려면 am 명령어를 사용해야 함
- am : 액티비티 매니저, 안드로이드 시스템에 포함된 다양한 액션을 명령으로 수행
실습 전 브로드캐스트를 생성하기 위해 먼저 대상 장치에 adb shell 명령으로 대상 장치의 프롴프트에 진입하고 명령어 수행 필수
- 아닌거 같으네...일단 진행해보자
- log를 확인 하려면 한 cmd창에 adb logcat 틀어놓고 다른 창으로 am 명령어 입력하기
- --es 옵션 사용 시 변수와 함께 값을 추가하는 것 가능
- 로그 확인하면 비밀번호 노출된느 것 확인
드로저를 이용한 브로드캐스트 생성
- 1 content providers exported : 1개의 브로드캐스트 리시버가 외부에서 접근할 수 있다는 것을 알 수 있음
- 권한은 따로 설정되어 있지 않음
- app.broadcast.send를 사용 : 브로드캐스트를 생성하여 브로드캐스트 리시버에 정의된 액션을 수행
- 확인 가능
취약점 대응 방안
- android:exported=false 로 설정
- true : 외부 앱에서 발생하는 인텐트ㅔ 영향을 받지 않게 되므로 브로드캐스트 리시버도 임의의 브로드캐스트에 영향을 받지 않게 됨
- 각 리시버에 별도의 권한을 주는 것
- 권한이 있는 경우에만 접근 가능
- 각 요소에 사용자가 임의의 권한을 부여하기 대문에 접근 제한을 관리하기 쉬움
'정보보안 > 안드로이드해킹' 카테고리의 다른 글
안드로이드 모의해킹) 로컬 암호화 이슈 (0) | 2020.07.28 |
---|---|
안드로이드 모의해킹) 취약한 인증 메커니즘 (0) | 2020.07.28 |
안드로이드 모의해킹 ) 취약점 진단 및 분석 도구 (0) | 2020.07.28 |
안드로이드 모의해킹 ) 환경 소개 (0) | 2020.07.28 |
안드로이드 모의해킹) 기본 실행법 (0) | 2020.07.28 |
댓글