Cross-app scripting sebezhetőség javítása

Az alábbi információk azoknak a fejlesztőknek szólnak, akiknek alkalmazásait érinti a cross-app scripting miatti sebezhetőség.

Mi történik?

Egy vagy több alkalmazásod WebView-elemen alapuló cross-app scripting sebezhetőséget tartalmaz, amellyel felhasználói cookie-khoz és más adatokhoz férhetnek hozzá rosszindulatú alkalmazások. A Play Console felületén lévő értesítésben további információt találhatsz. A Play Console felületén látható határidők után eltávolítjuk a Google Playről azokat az alkalmazásokat, amelyekben még megtalálható a sebezhetőség.

Teendők​

  1. Jelentkezz be a Play Console felületén, majd tekintsd át az Értesítések oldalon az érintett alkalmazásokat és a problémák megoldásának határidőit.
  2. Készíts olyan frissítést az érintett alkalmazásokhoz, amely elhárítja a sebezhetőséget.
  3. Küldd be az érintett alkalmazások frissített verzióit.

A beküldés után alkalmazásodat ismét ellenőrizzük. A folyamat több órát is igénybe vehet. Ha az alkalmazás megfelel az ellenőrzésen, és ezt követően közzétesszük, nincs más teendőd. Ha az alkalmazás nem felel meg az ellenőrzésen, akkor nem tesszük közzé az új verziót, és e-mailben értesítést küldünk a fejleményről.

Részletek

Rosszindulatú alkalmazások veszélyes kontextusban futtathatnak JavaScript-kódot az olyan WebView-nézeteken keresztül, amelyek engedélyezik a JavaScriptet, és nem megbízható Intent elemektől származó adatokat töltenek be. Javasoljuk, hogy a sebezhetőséget az alábbi megoldások valamelyikével hárítsd el:

1. lehetőség: Akadályozd meg az érintett Activityk exportálását

Keresd meg az érintett WebView-nézeteket alkalmazó Activity osztályokat. Ha ezek az Activityk nem igényelnek más alkalmazástól származó Intent elemeket, akkor alkalmazd az android:exported=false beállítást ezekre az Activitykre a Manifest fájlban. Így biztosíthatod, hogy a rosszindulatú alkalmazások ne küldhessenek kártékony bemenetet a WebView-nézeteknek az Activityken keresztül.

2. lehetőség: Védd a WebView-nézeteket az exportált Activitykben

Ha olyan Activityt kell exportálnod, amely érintett WebView-nézetet alkalmaz, akkor a következő módosításokat eszközöld:

  1. Módosítsd a targetSdkVersion elemet
    A targetSdkVersion értékének meg kell felelnie a Google Play megcélzott API-szintre vonatkozó követelményeinek. A 16-os vagy annál alacsonyabb targetSdkVersiont használó alkalmazások a betöltött oldal kontextusában értékelik ki a loadUrl elemnek átadott JavaScript-URL-eket. Az esetleges támadók kártékony szkriptet futtathatnak az érintett WebView-nézetben, ha a megcélzott SDK-verzió 16-os vagy annál alacsonyabb, és az alkalmazás nem megbízható Intent elemtől származó, nem megtisztított bemenettel hívja meg a loadUrl metódust.
  2. Tedd biztonságossá az evaluateJavascript-hívásokat
    Az evaluateJavascript paramétereinek minden esetben megbízhatónak kell lenniük. Az esetleges támadók kártékony szkriptet futtathatnak az érintett WebView-nézetben, ha az alkalmazás nem megbízható Intent elemtől származó, nem megtisztított bemenettel hívja meg az evaluateJavascript metódust.
  3. Akadályozd meg a veszélyes fájlbetöltéseket
    Az érintett WebView-nézeteknek nem szabad betölteniük a cookie-adatbázist. Rosszindulatú alkalmazások támadhatják meg azokat a WebView-nézeteket, amelyek nem megtisztított file:// URL-eket töltenek be nem megbízható Intent elemektől – a következőkben leírt módon. Rosszindulatú weboldalak <script> címkéket írhatnak a cookie-adatbázisba, majd rosszindulatú alkalmazások Intent elemet küldhetnek olyan file:// URL-lel, amely a WebView-cookie-k adatbázisára mutat. Ha valamelyik WebView betölti a cookie-adatbázist, akkor a rosszindulatú szkript lefut, és munkameneti adatokat lophat.
    Két módon biztosíthatod, hogy az érintett WebView-nézetek ne tölthessék be a WebView-cookie-k adatbázisát. Teljes körűen letilthatod a fájlhozzáférést, vagy ellenőrizheted, hogy minden betöltött file:// URL biztonságos fájlokra mutat-e. Fontos, hogy a támadók szimbolikus linkeket felhasználva megtéveszthetik az URL-útvonalakra vonatkozó ellenőrzéseket. Az ilyen támadások elkerüléséhez minden nem megbízható file:// URL betöltése előtt a gyűjtőútvonalat ellenőrizd, ne csak az URL-útvonalat.

Örömmel segítünk
A sebezhetőségre vonatkozó technikai jellegű kérdéseidet a Stack Overflow webhelyén az „android-security” címke használatával teheted fel. Ha a probléma megoldásának lépéseire vonatkozóan szeretnél tisztázni valamit, vedd fel a kapcsolatot fejlesztőtámogatási csapatunkkal.