Получил письмо от Google «Ваши приложения уязвимы для перенаправления намерений», но не может найти уязвимость

#android-security

#android-безопасность

Вопрос:

Когда я обновляю свое приложение, я получаю письмо от Google с указанием

Привет, разработчик Google Play,

Мы проверили ваше приложение и обнаружили, что оно использует программное обеспечение, содержащее уязвимости для пользователей. Приложения с этими уязвимостями могут раскрывать информацию о пользователе или повреждать устройство пользователя и могут считаться нарушением нашей политики вредоносного поведения.

Уязвимость — ваши приложения уязвимы для перенаправления намерений.

Но я не делаю никакого извлечения или перенаправления намерений. После небольшого поиска я применяю какое-то решение, например android:exported="false" , но ни одно из них не работает.

Теперь я думаю, что за уязвимость отвечает какой-то сторонний плагин. Как найти эту уязвимость в моем коде?

Ниже приведен мой файл build.gradle

 apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'

android {
    compileSdkVersion 29
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 29
        renderscriptTargetApi 18
        renderscriptSupportModeEnabled true
        multiDexEnabled true
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        resConfigs "en"

    }
    buildTypes {
        debug {
            firebaseCrashlytics {
                mappingFileUploadEnabled false
            }
        }
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility = '1.8'
        targetCompatibility = '1.8'
    }
    externalNativeBuild {
        ndkBuild {
            path 'src/main/jni/Android.mk'
        }
    }
    dependencies {
        androidTestImplementation('androidx.test.espresso:espresso-core:3.1.1', {
            exclude group: 'com.android.support', module: 'support-annotations'
        })
        testImplementation 'junit:junit:4.12'
        implementation 'androidx.multidex:multidex:2.0.1'
        implementation fileTree(dir: 'libs', include: ['*.jar'])

        implementation 'androidx.appcompat:appcompat:1.2.0'
        implementation 'androidx.constraintlayout:constraintlayout:2.0.2'
        implementation 'androidx.legacy:legacy-support-v4:1.0.0'
        implementation 'androidx.recyclerview:recyclerview:1.1.0'
        implementation 'androidx.cardview:cardview:1.0.0'
        implementation "androidx.viewpager2:viewpager2:1.0.0"
        implementation 'com.github.bumptech.glide:glide:4.11.0'
        annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
        implementation 'com.google.android.material:material:1.3.0-alpha03'
        //fix
        implementation 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava'
        implementation 'com.google.android.gms:play-services-basement:17.5.0'

        //Firebase
        implementation platform('com.google.firebase:firebase-bom:25.12.0')
        implementation 'com.google.firebase:firebase-auth'
        implementation 'com.google.firebase:firebase-database'
        implementation 'com.google.firebase:firebase-storage'
        implementation 'com.google.firebase:firebase-firestore'
        implementation 'com.google.firebase:firebase-messaging'
        implementation 'com.google.firebase:firebase-config'
        implementation 'com.google.firebase:firebase-analytics'
        implementation 'com.google.firebase:firebase-crashlytics'
        implementation 'com.google.firebase:firebase-inappmessaging-display'
        implementation 'com.firebaseui:firebase-ui-auth:6.3.0'

        // Google Sign In SDK (only required for Google Sign In)
        implementation 'com.google.android.gms:play-services-auth:18.1.0'
        implementation 'com.google.android.gms:play-services-identity:17.0.0'

        // Facebook Android SDK (only required for Facebook Login)
        implementation 'androidx.browser:browser:1.2.0'
        implementation 'com.facebook.android:facebook-android-sdk:7.1.0'

        //retrofit
        implementation 'com.squareup.retrofit2:retrofit:2.2.0'
        implementation 'com.squareup.retrofit2:converter-gson:2.2.0'
        implementation 'com.squareup.okhttp3:logging-interceptor:3.9.0'

        //json utilities
        implementation 'com.fasterxml.jackson.core:jackson-core:2.10.1'
        implementation 'com.fasterxml.jackson.core:jackson-annotations:2.10.1'
        implementation 'com.fasterxml.jackson.core:jackson-databind:2.10.1'

        //Paytm All-in-one SDK Payment Gateway
        implementation'com.paytm.appinvokesdk:appinvokesdk:1.5'
        //Circular ImageView
        implementation 'de.hdodenhof:circleimageview:2.2.0'
        //Number Picker
        implementation 'com.shawnlin:number-picker:2.4.7'
        //Version Compare
        implementation 'com.g00fy2:versioncompare:1.3.2'
        //Seekbar
        implementation 'com.github.warkiz.widget:indicatorseekbar:2.1.2'
        //country picker
        implementation 'com.hbb20:ccp:2.3.1'
        //TrueTime
        implementation 'com.github.instacart.truetime-android:library:3.4'
        //facebook ads
        implementation 'com.facebook.android:audience-network-sdk:6.1.0'
        //shimmer
        implementation 'com.facebook.shimmer:shimmer:0.5.0'
        //Loading Animation
        implementation 'com.wang.avi:library:2.1.3'
        //likeButton
        implementation 'com.github.varunest:sparkbutton:1.0.6'
    }

    configurations.all {
        resolutionStrategy.force 'com.android.support:support-annotations:28.0.0'
    }

}
  

—ОБНОВИТЬ—

На самом деле проблема была в sdk facebook, после замены его только на sdk для входа в систему, мое приложение было одобрено Play Store.

Комментарии:

1. Привет, как вы нашли затронутую библиотеку, пожалуйста, поделитесь

2. @SimonChius, сначала я проверил свой расширенный xml с помощью activities, у которого есть атрибут ‘exported = true’, затем я проверяю свои классы, используя его, затем я проверил все сторонние классы с помощью ‘exported = true’ и удаляю их один за другим и загружаю в play Store, чтобы проверить, что уязвимость исчезла илинет.