(Fortify) Категория: Android Плохие практики: отсутствует сервис Google Play Обновлен поставщик услуг безопасности (1 выпуск) - PullRequest
0 голосов
/ 28 сентября 2018

Мы используем Fortify для сканирования моего исходного кода Android, и я не могу избавиться от этой проблемы:

Категория: Плохие практики Android: отсутствует Сервис Google Play Обновлен поставщик безопасности (1 проблема)

Укрепить точки в этой строке кода:

tools: replace = "android: allowBackup">

AndroidManifest.xml:37 null()
  <application
    android:name=".test"
    android:allowBackup="false"
    android:hardwareAccelerated="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:networkSecurityConfig="@xml/network_security_config"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    tools:replace="android:allowBackup"> <!--FORTIFY POINTS TO THIS LINE-->

Рекомендация по укреплению:

Простейшим способом исправления провайдера безопасности является вызов синхронного метода installIfNeeded ().Это уместно, если пользовательский интерфейс не будет зависеть от блокировки потока, пока он ожидает завершения операции, в противном случае это должно быть сделано асинхронным способом.

Подробнее об этой проблеме

Я следовал за Android Обновление вашего поставщика безопасности для защиты от эксплойтов SSL

И пробовал оба подхода:

installIfNeed () и installIfNeededAsync ()

Но проблема все еще существует.Я проверяю свой код, и он работает нормально.

Вот мой манифест:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="test">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:name=".test"
        android:allowBackup="false"
        android:hardwareAccelerated="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:networkSecurityConfig="@xml/network_security_config"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:replace="android:allowBackup">

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

        <provider
            android:name=".syncadapter.StubProvider"
            android:authorities="com.neseapl.nyp.provider"
            android:exported="false"
            android:syncable="true"/>

        <service
            android:name=".syncadapter.SyncService"
            android:exported="false">
            <intent-filter>
                <action android:name="android.content.SyncAdapter" />
            </intent-filter>
            <meta-data
                android:name="android.content.SyncAdapter"
                android:resource="@xml/syncadapter" />
        </service>

        <service
            android:name=".syncadapter.AuthenticatorService">
            <intent-filter>
                <action android:name="android.accounts.AccountAuthenticator"/>
            </intent-filter>
            <meta-data
                android:name="android.accounts.AccountAuthenticator"
                android:resource="@xml/account_authenticator" />
        </service>

        <activity
            android:name=".activities.Test"
            android:configChanges="orientation|screenSize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Чего-то не хватает в моем манифесте?Спасибо!

1 Ответ

0 голосов
/ 22 мая 2019

У меня недавно была похожая проблема с Fortify.Как указала Сильвия Рагуи, Fortify неправильно анализирует этот процесс во время выполнения.Хотя installIfNeeded () и installIfNeededAsync () будут обновлять провайдера безопасности в реальном развертывании вашего APK, но, похоже, он не устраняет ошибку при повторной отправке Fortify.

Однако основная проблема заключается вПоставщик безопасности date, который обычно из-за устаревшей библиотеки сервисов воспроизведения в вашем пакете.

Вот рекомендация непосредственно из панели инструментов fortify:

Android полагается на провайдера безопасности для обеспечениябезопасные сетевые коммуникации.Криптографические библиотеки устройства по умолчанию, как правило, являются более старыми версиями OpenSSL, которые содержат известные недостатки.Чтобы преодолеть это, Google предоставляет для приложения механизм «исправления» своей локальной копии OpenSSL через клиент Google Play Services ProviderInstaller.Было установлено, что приложение не использует обновленного поставщика, поэтому приложение подвержено более ранним известным уязвимостям и уязвимостям OpenSSL.>

Фактическая проблема та же, что и в последней строке в журналах Сильвии:

W / GooglePlayServicesUtil Сервисы Google Play устарели

В нашем случае мы обновились до последней версии Сервисов Play в нашем пакете, а также внедрили исправление выше (когда мы это сделали, мы обнаружили небольшую ошибку, которую нужно было исправить, и, вероятно, не позволяли обновлению установить исправления для поставщика безопасности)

Новая сборка успешно устранила проблему.Я предлагаю вам обновить до последней версии Play Services, так как это также обновит провайдера безопасности.

...