Небезопасные настройки в AndroidManifest.xml
Критичность: ВЫСОКИЙ | |
Способ обнаружения: SAST, APK |
Описание
Приложение Android, собранное с включенным режимом отладки (флаг android:debuggable = True
в AndroidManifest.xml
) может позволить злоумышленнику получить доступ к конфиденциальной информации, контролировать поток выполнения приложения и также получить возможность выполнение кода в контексте приложения.
Пример уязвимого кода (файл AndroidManifest.xml)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.appsec.android.activity.privateactivity" >
<application
<!-- *** Включенние отладочного режима *** -->
android:debuggable="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".PrivateActivity"
android:label="@string/app_name"
android:exported="false" />
</application>
</manifest>
Рекомендации
При сборке релизной версии приложения убедитесь, что отключена возможность отладки приложения. Отключить возможность отладки можно удалив атрибут android:debuggable
из тега <application> в файле манифеста или установив для атрибута android:debuggable
значение false
в файле манифеста.
Пример безопасного кода
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.appsec.android.activity.privateactivity" >
<application
<!-- *** Выключенние отладочного режима *** -->
android:debuggable="false"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".PrivateActivity"
android:label="@string/app_name"
android:exported="false" />
</application>
</manifest>
Также возможно установить настройку отладочного режима для различных вариантов сборки через конфигурацию в файле build.gradle
:
android {
defaultConfig {
...
...
}
buildTypes {
release {
// *** Отключение отладочного режима для релизной сборки приложения *** //
debuggable false
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
applicationIdSuffix ".debug"
// *** Включение отладочного режима для целей разработки *** //
debuggable true
}