보안 공부/모바일 보안

안드로이드 취약점 진단(2) - 취약한 인증 메커니즘(activity 취약점)

H.J.World 2024. 2. 18. 20:53
728x90
반응형

취약한 인증 메커니즘 취약점은 정상적인 절차를 우회하여 잘못된 인증으로 접근 권한을 취득하는 취약점을 말한다.

일반적으로 아래와 같은 취약점을 말한다.

- 적절하지 않은 앱 퍼미션 설정 여부

- 서비스 권한 상승 행위에 대한 통제 여부

- 기능에 대한 제한 또는 우회 금지 여부

- 불필요하거나 사용하지 않는 액티비티 제거 여부

- 인텐트 사용에 대한 안정성 여부

- 마스터 키 취약점 대응 여부

 

 -- 취약점 진단 방법 --

1. androidmanifest.xml 내부 선언 확인

        <activity android:label="@string/title_activity_file_pref" android:name="com.android.insecurebankv2.FilePrefActivity" android:windowSoftInputMode="adjustNothing|stateVisible"/>
                
        <activity android:label="@string/title_activity_do_login" android:name="com.android.insecurebankv2.DoLogin"/>
                
        <activity android:exported="true" android:label="@string/title_activity_post_login" android:name="com.android.insecurebankv2.PostLogin"/>
                
        <activity android:label="@string/title_activity_wrong_login" android:name="com.android.insecurebankv2.WrongLogin"/>
                
        <activity android:exported="true" android:label="@string/title_activity_do_transfer" android:name="com.android.insecurebankv2.DoTransfer"/>
                
        <activity android:exported="true" android:label="@string/title_activity_view_statement" android:name="com.android.insecurebankv2.ViewStatement"/>
                
        <provider android:authorities="com.android.insecurebankv2.TrackUserContentProvider" android:exported="true" android:name="com.android.insecurebankv2.TrackUserContentProvider"/>
                
        <receiver android:exported="true" android:name="com.android.insecurebankv2.MyBroadCastReceiver">

 

2. adb를 사용하여 액티비티 호출

- adb shell am start [앱 주소]/[호출 패키지 주소]

명령어 : adb shell am start com.android.insecurebankv2/com.android.insecurebankv2.PostLogin

 

3. drozer로 액티비티 호출

- 앱 내 선언되어 있는 액티비티 확인

명령어 : run app.activity.info -a com.android.insecurebankv2

 >> 앱내 선언되어 있는 액티비티 리스트 확인, 권한설정이 되어있지 않은 것을 확인

- 앱 내 액티비티 선언 명령어는 아래와 같음

run app.activity.start --component com.android.insecurebankv2 com.android.insecurebankv2.PostLogin

 

4. 대응 방안

 - android:exported="false"로 설정

 - ture로 설정할 경우 별도의 인텐트 필터로 검증

728x90
반응형