Remediere pentru vulnerabilitatea Implicit PendingIntent

Aceste informații le sunt destinate dezvoltatorilor ale căror aplicații conțin o vulnerabilitate Implicit PendingIntent.

Ce se întâmplă

Una sau mai multe dintre aplicațiile tale au o problemă de tip Implicit PendingIntent, care poate crea amenințări de securitate, cum ar fi refuzul serviciului, furtul de date private și escaladarea privilegiului. Consultă pașii prezentați în detaliu mai jos pentru a remedia problema aplicațiilor. Locațiile de folosire a intenției Implicit PendingIntent din aplicație se găsesc în notificarea din Play Console pentru aplicație. Dacă o locație se termină cu „(în codul încărcat dinamic)”, înseamnă că locația este în codul încărcat dinamic de aplicație sau de bibliotecile folosite de aplicație. De obicei, aplicațiile folosesc cod încărcat dinamic prin livrarea de funcții la cerere, deși există alte tehnici nerecomandate (unele dintre ele încalcă Politica Google Play și nu trebuie folosite). În plus, creatorii de pachete pot transforma codul aplicației în cod încărcat dinamic.

Remedierea acestei probleme este recomandată, dar nu obligatorie. Starea publicării aplicației nu va fi afectată de prezența acestei probleme.

Detalii suplimentare

Aplicațiile pentru Android trimit mesaje între componente folosind intenții. Intențiile pot să specifice componenta vizată (intenție explicită) sau să indice o acțiune generală și să aștepte ca sistemul de operare să trimită intenția oricărei componente a dispozitivului care înregistrează un filtru de intenție ce corespunde acțiunii respective (intenție implicită).

PendingIntent este o intenție delegată unei alte aplicații pentru a fi trimisă la o dată din viitor. Crearea unei intenții implicite incluse într-o intenție PendingIntent este o vulnerabilitate de securitate care poate duce la refuzul serviciului, furtul de date private și escaladarea privilegiului.

Pașii următori

1. Actualizați-vă aplicația și remediați alertele „Implicit PendingIntent” folosind pașii evidențiați mai jos.

Examinați-vă aplicația ca să aflați unde s-a creat o intenție PendingIntent. De exemplu, următorul cod creează o intenție PendingIntent care include o intenție implicită. 

// Creați o intenție implicită de bază și includeți-o într-o intenție PendingIntent

Intent base = new Intent("ACTION_FOO");

base.setPackage("some_package");

PendingIntent pi = PendingIntent.getService(this, 0, base, 0);

Google recomandă ca dezvoltatorii să remedieze vulnerabilitatea realizând oricare dintre (sau, mai bine, toate) acțiunile de mai jos:

  • asigurați-vă că ați setat câmpurile pentru acțiune, pachet și componentă ale intenției de bază;
  • asigurați-vă că PendingIntent este trimisă numai către componente de încredere;
  • folosiți FLAG_IMMUTABLE (adăugat în kitul SDK 23) pentru a crea intenții PendingIntent. Astfel, aplicațiile care primesc PendingIntent nu pot să completeze proprietăți necompletate. În cazul în care aplicația rulează și pe dispozitive cu SDK 22 sau o versiune anterioară, le recomandăm dezvoltatorilor să folosească opțiunile anterioare și să optimizeze crearea PendingIntent folosind șablonul:

if (android.os.Build.VERSION.SDK_INT >= 23) {

  // Creați o intenție PendingIntent folosind FLAG_IMMUTABLE

} else {

  // Cod existent care creează o intenție PendingIntent

}

2. Trimiteți APK-ul actualizat

Pentru a trimite un app bundle sau un APK actualizat:

  1. accesați Play Console;
  2. selectați aplicația;
  3. accesați Exploratorul app bundle;
  4. selectați versiunea neconformă a aplicației unui app bundle / APK din meniul drop-down din dreapta sus și notați versiunile în care sunt compatibile;
  5. accesați canalul cu problema legată de politică. Va fi una dintre următoarele patru pagini: Testare internă / Închisă / Deschisă sau Lansare;
  6. în partea din dreapta sus a paginii, dați clic pe Creați o versiune nouă. Poate fi necesar să dați clic pe Gestionați canalul mai întâi.
    • dacă versiunea cu APK-ul care încalcă politica este în starea de versiune nefinalizată, renunțați la versiune;
  7. adăugați versiunea app bundle-urilor sau APK-urilor care respectă politica;
    • asigură-te că versiunea neconformă a app bundle-urilor sau a APK-urilor se află în secțiunea Nu sunt incluse din această versiune. Pentru instrucțiuni suplimentare, consultă secțiunea Nu sunt incluse (app bundle-uri și APK-uri) din acest articol de ajutor din Play Console;
  8. pentru a salva modificările versiunii, selectați Salvați;
  9. după ce terminați de pregătit versiunea, selectați Examinați versiunea.

Dacă APK-ul necorespunzător este lansat pe mai multe canale, repetați pașii 5 – 9 pentru fiecare canal.

În această perioadă, noua aplicație sau actualizarea aplicației se va afla în starea Se examinează până la finalizarea examinării solicitării. Dacă aplicația nu a fost actualizată corect, avertizarea va apărea în continuare.

Vă stăm la dispoziție pentru ajutor

Dacă ai întrebări tehnice cu privire la vulnerabilitate, poți posta pe Stack Overflow cu eticheta „android-security”. Ca să înțelegi mai bine pașii pe care trebuie să-i urmezi pentru a rezolva problema, contactează echipa de asistență.

false
Meniu principal
2100694354714432980
true
Căutaţi în Centrul de ajutor
true
true
true
true
true
5016068
false
false