안드로이드 컴포넌트 취약점 진단 시 am 명령을 이용하거나 툴을 이용하여
액티비티를 강제 호출하게 된다.
주로 대응 방안으로 AndroidManifest.xml 에 해당 액티비티의 하위 옵션으로
android:exported="false" 옵션을 주어 외부에서 컴포넌트에 접근하지 못하도록 조치 한다.
라고 가이드 문서 또는 검색 시 권장하고 있다.
하지만 주의해야 할 점은 해당 옵션은 일반사용자 권한을 제어하는 것이고 루트 권한을 가지고 있다면 exported="false" 설정이 되어있어도 액티비티는 강제 호출 된다.
이러한 이유때문에 루팅 및 탈옥 기기에서 앱이 실행되지 않도록 루팅탐지 로직이 필요한 것이다.
다른 방법은 없는가?
Java 클래스 파일 내에서 세션이나 특정 데이터 값을 넘겨 해당 데이터가 존재하지 않는다면 액티비티를 종료하는 로직을 추가하여 조치 하였다.