Zwakke plekken met fragmentinvoeging verhelpen

Deze informatie is bedoeld voor ontwikkelaars met apps die gebruikmaken van een onveilige implementatie van PreferenceActivity-klassen waardoor deze apps kwetsbaar zijn voor het invoegen van fragmenten. Via een dergelijke implementatie kan een schadelijke externe app fragmenten laden die privé zouden moeten zijn.

Wat er gebeurt

Vanaf 1 maart 2017 blokkeert Google Play de publicatie van nieuwe apps of updates waarvan de PreferenceActivity-klassen kwetsbaar zijn voor het invoegen van fragmenten (Fragment Injection). Bekijk de melding in uw Play ConsoleNa de deadlines die worden weergegeven in uw Play Console, worden apps met niet-opgeloste beveiligingsproblemen verwijderd uit Google Play.

Actie vereist​

  1. Log in bij de Play Console en navigeer naar het gedeelte Meldingen om te zien welke apps het betreft en wat de deadlines zijn om deze problemen op te lossen.
  2. Update de betreffende apps en verhelp het probleem.
  3. Dien de geüpdatete versies van de betreffende apps in.

Nadat uw app opnieuw is ingediend, wordt deze opnieuw beoordeeld. Dit proces kan enkele uren duren. Als de app is goedgekeurd en is gepubliceerd, hoeft u verder geen actie te ondernemen. Als de app niet wordt goedgekeurd, wordt de nieuwe app-versie niet gepubliceerd en ontvangt u een e-mailmelding.

Aanvullende details

Stel waar mogelijk 'exported=false' in voor de PreferenceActivity in uw manifest. Hiermee voorkomt u dat externe apps intenties naar deze klasse kunnen verzenden.

Als de kwetsbare PreferenceActivity moet kunnen worden geëxporteerd naar externe apps, onderzoekt u waarom de klasse kwetsbaar is en treft u passende maatregelen. Er zijn twee mogelijkheden:

  1. Onjuiste toepassing van isValidFragment:

Controleer of de kwetsbare klasse een implementatie van isValidFragment bevat of doorgegeven krijgt die 'true' (waar) retourneert voor alle codepaden. Als dit het geval is, updatet u de klasse om te controleren op een lijst met toegestane fragmentklassen. Bijvoorbeeld: als PreferenceActivity MyFragment-klassen moet toestaan (en geen andere fragmenten), implementeert u een controle zoals deze:

         public boolean isValidFragment(String fragmentName) {
            return MyFragment.class.getName().equals(fragmentName);

         }

  1. targetSdkVersion is lager dan 19 en app implementeert isValidFragment niet:

Als de app momenteel de targetSdkVersion in het manifest instelt op een waarde lager dan 19 en de kwetsbare klasse geen implementatie van isValidFragment bevat, wordt de zwakke plek doorgegeven vanuit PreferenceActivity.

Ontwikkelaars moeten de targetSdkVersion updaten naar 19 of hoger om dit te verhelpen. Als de targetSdkVersion niet kan worden geüpdatet, moeten ontwikkelaars isValidFragment implementeren (zoals beschreven in stap 1) om te controleren op toegestane fragmentklassen.

Apps moeten ook voldoen aan de distributieovereenkomst voor ontwikkelaars en het contentbeleid

We helpen u graag

Als u technische vragen over de kwetsbaarheid heeft, kunt u een bericht posten op Stack Overflow en de tag 'android-security' gebruiken. Neem contact op met ons supportteam voor ontwikkelaars voor meer informatie over de stappen die u moet uitvoeren om dit probleem op te lossen.

Was dit nuttig?

Hoe kunnen we dit verbeteren?
false
Hoofdmenu
10950388137964192137
true
Zoeken in het Helpcentrum
true
true
true
true
true
5016068
false
false