Åtgärda säkerhetsrisker för kapning av intentschema

Den här informationen är avsedd för utvecklare vars appar har en säkerhetsrisk för kapning av intentschema.

Detta händer

I minst en av dina appar finns en säkerhetsbrist som gör den sårbar för kapning av intentprotokollet. Säkerhetsbristen kan leda till att skadliga nätverk och webbplatser får tillgång till privata appkomponenter.Läs mer i meddelandet i Play ConsoleAlla appar där säkerhetsbristen inte har åtgärdats tas bort från Google Play efter det datum som anges i Play Console.

Åtgärd krävs

  1. Logga in på Play Console och öppna avsnittet Varningar. Där ser du vilka appar som berörs av problemet och vilket datum det måste vara åtgärdat.

  2. Uppdatera de berörda apparna enligt anvisningarna nedan.

  3. Skicka in uppdaterade versioner av de berörda apparna.

När du skickar in den nya appversionen granskas den på nytt. Granskningen kan ta flera timmar. Om appen blir godkänd vid granskningen och publiceras utan problem behöver du inte göra något mer. Om appen inte blir godkänd vid granskningen kommer den nya appversionen inte att publiceras och du meddelas via e-post.

Ytterligare information

En WebView som läser in webbinnehåll som inte är säkert, analyserar intent://-länkar i det med Intent.parseUri och skickar dessa intent vidare med startActivity är sårbara för kapning av intentprotokollet. Skadligt innehåll på webben kan utnyttja en sådan WebView till att skicka godtyckliga intent till privata appkomponenter. Detta kan leda till intrång som exempelvis stöld av privat appdata som bearbetas av dessa komponenter. Observera att osäkert webbinnehåll omfattar innehåll från säkra domäner som läses in via HTTP.

Vi rekommenderar att du förhindrar sårbarheten på något av följande sätt:

Alternativ 1: Kontrollera att WebView inte kan skicka godtyckliga intent

Det går att ange att intent som konstrueras med Intent.parseUri bara får skickas som implicita intent till komponenter där BROWSABLE används som intentfilter. Detta görs med hjälp av följande kod:

     // konvertera webbadress för intentschema till intent-objekt
  Intent intent = Intent.parseUri(url);
  // förbjud startaktiviteter utan kategorin BROWSABLE
  intent.addCategory("android.intent.category.BROWSABLE");
  // förbjud explicita anrop
  intent.setComponent(null);
  // förbjud intent med väljaren Intent
  intent.setSelector(null);
  // starta aktiviteten med intentet
  view.getContext().startActivity(intent, -1);

Alternativ 2: Kontrollera att osäkert webbinnehåll inte läses in i någon WebView

Om det måste gå att analysera godtyckliga webbadresser med protokollet intent:// i en WebView behöver du se till att osäkert webbinnehåll inte kan läsas in. Till osäkert webbinnehåll hör webbinnehåll som läses in via en okrypterad anslutning. Utvecklaren kan ställa in android:usesCleartextTraffic på falskt i manifestet eller välja en konfiguration för nätverkssäkerhet (networkSecurityConfig) som inte tillåter HTTP-trafik. Det går även att förhindra att webbadresser med protokollet HTTP läses in i en utsatt WebView med loadUrl.

Utvecklaren bör försäkra sig om att inga webbadresser kan läsas in utan restriktioner från osäkra källor (t.ex. webbadresser som tillhandahålls av osäkra intent) i någon utsatt WebView. 

Vi hjälper dig gärna
Om du har tekniska frågor som handlar om säkerhetsbristen kan du ställa dem på Stack Overflow. Använd taggen android-security. Om du behöver mer information om hur du åtgärdar problemet kontaktar du vårt supportteam för utvecklare.

false
Huvudmeny
12420199644738751469
true
Sök i hjälpcentret
true
true
true
true
true
5016068
false
false