취약점 개요
취약점 설명
인증 없이 또는 인증을 우회하여 시스템에 접근할 수 있는 취약점을 의미한다.
보안 위협
인증 없이 우회가 가능하여 다른 액티비티에 접근이 가능하다.
발생 위치
AndroidManifext.xml
취약점 진단 과정
adb
Step 1) AndroidManifest.xml의 액티비티 확인
액티비티의 android:exported 속성이 “true”로 설정되어 있는 것을 확인할 수 있다. 이는 다른 액티비티에서 인증 없이 접근 가능함을 의미한다.
<activity
android:name=".LoginActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".PostLogin"
android:exported="true"
android:label="@string/title_activity_post_login" >
</activity>
<activity
android:name=".DoTransfer"
android:exported="true"
android:label="@string/title_activity_do_transfer" >
</activity>
<activity
android:name=".ViewStatement"
android:exported="true"
android:label="@string/title_activity_view_statement" >
</activity>
<activity
android:name=".ChangePassword"
android:exported="true"
android:label="@string/title_activity_change_password" >
</activity>
Step 2) 액티비티 실행
로그인 없이 다른 액티비티로 이동한 것을 확인할 수 있다.
# am start [애플리케이션 설치 주소]/[패키지 주소]
am start com.android.insecurebankv2/com.android.insecurebankv2.PostLogin
drozer
Step 1) 액티비티 정보 확인
com.android.insecurebankv2 패키지에서 LoginActivity, PostLogin, DoTransfer, ViewStatement, ChangePassword 액티비티를 확인할 수 있다. 모든 액티비티는 Permission 권한이 설정되어 있지 않다.
Step 2) 액티비티 실행
로그인 없이 다른 액티비티로 이동한 것을 확인할 수 있다.
# run app.activity.start --component [애플리케이션 설치 주소] [패키지 주소]
run app.activity.start --component com.android.insecurebankv2 com.android.insecurebankv2.PostLogin
대응 방안
- AndroidManifest.xml의 액티비티 항목의 android:exported=”true” 속성을 “false”로 변경한다.
- android:exported 속성을 “true”로 설정할 경우, 별도의 intent-filter로 검증한다.
반응형
'Security Study > Android' 카테고리의 다른 글
[InsecureBankv2] 액티비티 컴포넌트 취약점 (0) | 2024.02.22 |
---|---|
[InsecureBankv2] 로컬 암호화 이슈 (0) | 2024.02.19 |
[InsecureBankv2] 브로드캐스트 리시버 결함 (0) | 2024.02.12 |
[InsecureBankv2] 환경 구축 (0) | 2024.02.08 |
[Android] 안드로이드 4대 컴포넌트 (0) | 2024.02.06 |