Fájlon alapuló XSS biztonsági rés kijavítása

Ez az információ az olyan alkalmazások fejlesztőinek szól, amelyek védtelenek a fájlokon alapuló Cross-Site Scripting biztonsági réssel szemben.

Mi történik?

Legalább egy alkalmazásod tartalmaz fájlon alapuló Cross-Site Scripting (XSS) biztonsági rést, amelyet ki kell javítanod. 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ünk a fejleményről.

Részletek

Nem szabad nem megbízható internetes tartalmakat betölteniük azoknak a WebView elemeknek, amelyek WebSettings beállításaiban a setAllowFileAccessFromFileURLs vagy a setAllowUniversalAccessFromFileURLs jelző igazra van állítva. Ide tartoznak a megbízható domainről, de HTTP használatával betöltött tartalmak is. Rosszindulatú internetes tartalmak vagy hálózatok szkriptek injektálásával egy rosszindulatú helyi fájlhoz irányíthatják át a WebView elemeket, és Cross-Site Scripting támadással privát helyi fájlokhoz és a cookie-khoz férhetnek hozzá.

A következő módszerek egyikével kell megelőznöd a biztonsági rés megjelenését:

  1. Győződj meg arról, hogy a WebView-k nem tartalmaznak veszélyes beállításokat.
  2. Gondoskodj arról, hogy a WebView-k nem tudnak helyi fájlokat betölteni és JavaScriptet futtatni.
  3. Győződj meg arról, hogy a veszélyes beállításokkal rendelkező WebView-k nem töltenek be nem megbízható internetes tartalmakat.

1. Győződj meg arról, hogy a WebView elemek nem tartalmaznak veszélyes beállításokat

A Manifest fájlban lévő android:targetSdkVersion legalább 16-os verziószámú legyen, ugyanis ez biztosít biztonságos alapértelmezett beállításokat a WebView elemek számára. Máskülönben a setAllowFileAccessFromFileURLs(false) és a setAllowUniversalAccessFromFileURLs(false) hívásával gondoskodhatsz a WebView elemek biztonságos használatáról.

2. Gondoskodj arról, hogy a WebView elemek ne tudjanak helyi fájlokat betölteni, illetve JavaScriptet futtatni

A setAllowFileAccess(false) metódus meghívásával akadályozd meg, hogy a veszélyes beállításokkal rendelkező WebView elemek helyi fájlokat töltsenek be, a setJavaScriptEnabled(false) metódussal pedig azt, hogy a veszélyes beállításokkal rendelkező WebView elemek JavaScript-kódot futtassanak.

3. Győződj meg arról, hogy a veszélyes beállításokkal rendelkező WebView-k nem töltenek be nem megbízható internetes tartalmakat

Az olyan WebView elemek esetében, amelyeknek mindenképpen ezeket a veszélyes beállításokat kell használniuk, gondoskodnod kell arról, hogy az elemek ne tölthessenek be nem megbízható internetes tartalmat. Ide tartoznak a HTTP használatával betöltött internetes tartalmak is. Beállíthatod az android:usesCleartextTraffic=false attribútumot, vagy beállíthatod úgy a Network Security Config (Hálózati biztonság konfigurációja) funkciót a Manifest fájlban, hogy ne engedélyezze a HTTP-forgalmat. Másik lehetőségként gondoskodhatsz arról, hogy a veszélyes beállításokkal rendelkező WebView elemek ne töltsenek be HTTP protokollt használó URL-eket.

Gondoskodnod kell arról is, hogy a veszélyes beállításokkal rendelkező WebView elemek ne töltsenek be nem megbízható forrásokból származó URL-eket.

Örömmel segítünk

A sebezhetőségre vonatkozó technikai kérdéseidet felteheted a Stack Overflow webhelyén, az „android-security” címkével ellátva. 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.