Remedierea unei vulnerabilități legate de Cross-App Scripting

Aceste informații sunt destinate dezvoltatorilor de aplicații care conțin o vulnerabilitate legată de Cross-App Scripting.

Ce se întâmplă

Una sau mai multe dintre aplicațiile dvs. au o problemă de tip Cross-App Scripting în WebView, care poate permite aplicațiilor rău intenționate să fure cookie-uri și alte date ale utilizatorilor. Consultați notificarea din Play ConsoleDupă termenele limită afișate în Play Console, toate aplicațiile care conțin vulnerabilități de securitate neremediate pot fi eliminate din Google Play.

Acțiune necesară​

  1. Conectați-vă la Play Console și navigați la secțiunea Alerte ca să vedeți ce aplicații sunt afectate și care sunt termenele limită pentru remedierea problemelor.
  2. Actualizați aplicațiile afectate și remediați vulnerabilitatea.
  3. Trimiteți versiunile actualizate ale aplicațiilor afectate.

În această perioadă, noua aplicație sau actualizarea aplicației se va afla în starea Publicare în așteptare. Dacă aplicația nu a fost actualizată corect, avertizarea va apărea în continuare.

Detalii suplimentare

Componentele WebView care activează JavaScript și încarcă datele citite din Intenții care nu prezintă încredere pot fi păcălite de aplicațiile rău intenționate să execute cod JavaScript într-un context nesigur. Vă recomandăm să evitați această vulnerabilitate printr-unul dintre următoarele moduri.

Opțiunea 1: asigurați-vă că activitățile afectate nu sunt exportate

Găsiți toate Activitățile cu componente WebView afectate. Dacă pentru aceste Activități nu sunt necesare Intenții din alte aplicații, puteți seta android:exported=false pentru Activități în Manifest. Astfel, vă asigurați că aplicațiile rău intenționate nu pot trimite intrări dăunătoare către nicio componentă WebView în aceste Activități.

Opțiunea 2: protejați componentele WebView din activitățile exportate

Dacă doriți să setați o Activitate cu o componentă WebView afectată drept exportată, vă recomandăm să faceți următoarele modificări.

  1. Protejați apelurile către evaluateJavascript și loadUrl

    Verificați dacă parametrii pentru evaluateJavascript sunt întotdeauna de încredere. Apelarea evaluateJavascript cu ajutorul unor intrări deteriorate provenite din Intenții care nu prezintă încredere le permite atacatorilor să execute scripturi dăunătoare în componenta WebView afectată. În mod similar, apelarea loadUrl cu intrări deteriorate care conțin adrese URL de schemă javascript: le permite atacatorilor să execute scripturi dăunătoare.

  2. Preveniți încărcarea fișierelor nesigure.

    Asigurați-vă că nicio componentă WebView afectată nu poate încărca baza de date pentru cookie-uri. Componentele WebView care încarcă adrese URL:// file deteriorate din Intenții care nu prezintă încredere pot fi atacate de aplicații rău-intenționate în doi pași. Primul pas: o pagină web rău intenționată poate scrie etichete <script> în baza de date pentru cookie-uri. Al doilea pas: acest fișier modificat în baza de date poate fi încărcat dacă o aplicație rău-intenționată trimite o Intenție cu o adresă URL file:// care direcționează spre baza dvs. de date pentru cookie-uri din WebView sau dacă pagina web rău-intenționată redirecționează WebView la adresa URL a fișierului. Acel <script> rău-intenționat, stocat în baza de date pentru cookie-uri, va fi încărcat și executat, ceea ce poate fura informații despre sesiune.

    Vă puteți asigura că nicio componentă WebView afectată nu poate încărca baza de date pentru cookie-uri din WebView în trei moduri:

    1. dezactivați accesul la fișiere;
    2. asigurați-vă că WebView poate să încarce numai adrese URL file:// și să verifice dacă toate adresele URL file:// încărcate direcționează spre fișiere sigure. Atacatorii pot folosi un link simbolic pentru a păcăli verificările căii adresei URL. Pentru a preveni un astfel de atac, verificați calea canonică a oricărei adrese URL file:// care nu prezintă încredere înainte de încărcare, chiar înainte de verificarea căii adresei URL;
    3. dacă doriți să permiteți atât adrese URL http://, cât și adrese URL file://, implementați verificarea adresei URL file:// cu shouldOverrideUrlLoading și shouldInterceptRequest din WebViewClient. Astfel, vă asigurați că toate adresele URL încărcate în WebView sunt verificate și nu se limitează la adresele URL specificate direct către un apel de funcție loadUrl().

Suntem aici pentru a vă ajuta
Dacă aveți întrebări tehnice cu privire la vulnerabilitate, puteți să postați pe Stack Overflow și să folosiți eticheta „android-security”. Pentru clarificarea pașilor necesari pentru remedierea acestei probleme, contactați echipa de asistență pentru dezvoltatori.

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