Критичность: ВЫСОКИЙ
Способ обнаружения: SAST, MANIFEST

Описание

В настройках AndroidManifest выставлен атрибут android:usesCleartextTraffic=true, разрешающий приложению взаимодействие с любыми серверами по незащищенному протоколу http. Данная настройка зависит от нескольких параметров и её значение по умолчанию также зависит от targetSDK, указанный в манифесте приложения:

Если в AndroidManifest присутствует атрибут android:networkSecurityConfig — то значение android:usesCleartextTraffic не учитывается, так как все настройки сети определяются внутри файла сетевой конфигурации.

  1. Если targetSDK =< 27 — дефолтное значение атрибута true (если он не представлен в манифесте)
  2. Если targetSDK >= 28 — дефолтное значение атрибута 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="true"
android:icon="@drawable/ic_launcher"
android:usesCleartextTraffic="true"
android:label="@string/app_name" >

<activity
android:name=".PrivateActivity"
android:label="@string/app_name"
android:exported="false" />

</application>
</manifest>

 

Рекомендации

Рекомендуется явно отключить возможность передачи данных по незащищенному протоколу http, для этого необходимо выставить атрибуту android:usesCleartextTraffic значение 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="true"
android:icon="@drawable/ic_launcher"
android:usesCleartextTraffic="false"
android:label="@string/app_name" >

<activity
android:name=".PrivateActivity"
android:label="@string/app_name"
android:exported="false" />

</application>
</manifest>
Предыдущая Перехват пароля шифрования базы данных
Следующая Небезопасная конфигурация сетевого взаимодействия
Содержание: