Cross-app scripting sebezhetőség kijaví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 letelte után eltávolíthatjuk 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.

Eközben az új alkalmazás, illetve alkalmazásfrissítés állapota „közzététel függőben” lesz. Ha a frissítés nem megfelelő, akkor a figyelmeztetés nem tűnik el.

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. Gondoskodj az evaluateJavascript- és a loadUrl-hívások védelméről

    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. Hasonlóképpen, ha a loadUrl metódust hívja meg javascript: séma-URI-kat tartalmazó nem megtisztított bemenettel, a támadók kártékony szkripteket futtathatnak.

  2. Akadályozd meg a veszélyes fájlbetöltéseket

    Az érintett WebView-nézeteknek nem szabad betölteniük a cookie-adatbázist.Azokat a WebView-nézeteket, amelyek nem megtisztított file:// URL-eket töltenek be nem megbízható Intent elemekből, két lépésben támadhatják meg a rosszindulatú alkalmazások. Első lépés: Egy rosszindulatú weboldal <script> címkéket írhat a cookie-adatbázisba. Második lépés: A cookie-adatbázis módosított fájlja betöltődhet, ha egy rosszindulatú alkalmazás Intent elemet küld egy olyan file:// URL-lel, amely a WebView-cookie-kat tartalmazó adatbázisra mutat, vagy ha maga a rosszindulatú webhely irányítja át a WebView-nézetet a fájl URL-jére. A cookie-adatbázisban tárolt rosszindulatú <script> betöltődik és végrehajtásra kerül, és képes a munkamenet adatainak ellopására.

    Háromféleképpen biztosíthatod, hogy az érintett WebView-nézetek ne tölthessék be a WebView-cookie-k adatbázisát.

    1. Tiltsd le az összes fájlhozzáférést.
    2. Gondoskodj arról, hogy a WebView csak file:// URL-eket töltsön be, és hogy a file:// URL-ek biztonságos fájlokra mutassanak. 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.
    3. Ha a http:// és a file:// URL-eket is engedélyezni szeretnéd, akkor úgy valósítsd meg a file:// URL-ek ellenőrzését, hogy a shouldOverrideUrlLoading és a shouldInterceptRequest metódusokat használod a WebViewClient osztályban. Ez biztosítja, hogy a WebView-nézetbe betöltött összes URL ellenőrzése megtörténik, és az ellenőrzés nem korlátozódik a közvetlenül a loadUrl() függvényhívásban megadott URL-ekre.

Örömmel segítünk
Ha technikai jellegű kérdéseid vannak a sebezhetőséggel kapcsolatban, felteheted őket a Stack Overflow webhelyén az „android-security” címke használatával. Ha tisztázni szeretnéd, hogy pontosan milyen lépéseket kell tenned a probléma megoldása érdekében, felveheted a kapcsolatot a fejlesztői ügyfélszolgálatunkkal.

false
Főmenü
6639036097943740361
true
Keresés a Súgóoldalakon
true
true
true
true
true
5016068
false
false