Beveiligingsrisico met betrekking tot padverkeer

Deze informatie is bedoeld voor ontwikkelaars met apps die het beveiligingsrisico met betrekking tot padverkeer bevatten.

Wat er gebeurt

Vanaf 16 januari 2018 blokkeert Google Play de publicatie van nieuwe apps of updates die het beveiligingsrisico met betrekking tot padverkeer (Path traversal vulnerability) bevatten. 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.

Vereist​e actie

  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 de kwetsbaarheid.
  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

Implementaties van openFile in geëxporteerde ContentProviders kunnen kwetsbaar zijn als ze inkomende Uri-parameters niet goed valideren. Een schadelijke app kan een bewerkte Uri leveren (bijvoorbeeld een Uri die '/../' bevat) die probeert uw app te misleiden tot het retourneren van een ParcelFileDescriptor voor een bestand buiten de beoogde directory, waardoor de schadelijke app toegang krijgt tot bestanden die toegankelijk zijn voor uw app.

Er zijn twee aanbevolen strategieën voor het oplossen van het beveiligingsrisico met betrekking tot padverkeer in een ContentProvider.

1. Als uw ContentProvider niet aan andere apps moet worden blootgesteld:

2. Als uw ContentProvider toegankelijk moet zijn voor andere apps:

U moet ervoor zorgen dat ingevoerde items in openFile die tekens voor padverkeer bevatten, uw app geen onverwachte bestanden kunnen laten retourneren. U kunt dit doen door het canonieke pad van het bestand te controleren. Bijvoorbeeld:

public ParcelFileDescriptor openFile (Uri uri, String mode)
   throws FileNotFoundException {
 File f = new File(DIR, uri.getLastPathSegment());
 if (!f.getCanonicalPath().startsWith(DIR)) {
   throw new IllegalArgumentException();
 }
 return ParcelFileDescriptor.open(f, ParcelFileDescriptor.MODE_READ_ONLY);
}
 

Let op: Het aanroepen van getLastPathSegment in de parameter Uri is niet veilig. Een schadelijke app kan een gecodeerd Uri-pad leveren zoals% 2F..%2F..path%2Fto%2Fsecret.txt, zodat het resultaat van getLastPathSegment /../../path/to/secret.txt is. De volgende implementatie is bijvoorbeeld nog steeds kwetsbaar voor aanvallen.

public ParcelFileDescriptor openFile(Uri uri, String mode){
 File f = new File(DIR, uri.getLastPathSegment());
 return ParcelFileDescriptor.open(f, ParcelFileDescriptor.MODE_READ_ONLY);
}
 

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
7774958272007990417
true
Zoeken in het Helpcentrum
true
true
true
true
true
5016068
false
false