Android:exportiert

OWASP-Kategorie:MASVS-PLATFORM: Platform Interaction

Übersicht

Mit dem android:exported-Attribut wird festgelegt, ob eine Komponente (Aktivität, Dienst, Broadcast-Empfänger usw.) von Komponenten anderer Anwendungen gestartet werden kann:

  • Wenn true, kann jede App auf die Aktivität zugreifen und sie über den genauen Klassennamen starten.
  • Wenn false, können nur Komponenten derselben Anwendung, Anwendungen mit derselben Nutzer-ID oder privilegierte Systemkomponenten die Aktivität starten.

Die Logik hinter dem Standardwert dieses Attributs hat sich im Laufe der Zeit geändert und war je nach Komponententyp und Android-Version unterschiedlich. Auf API-Ebene 16 (Android 4.1.1) oder niedriger ist der Wert für <provider>-Elemente beispielsweise standardmäßig auf true festgelegt. Wenn Sie dieses Attribut nicht explizit festlegen, besteht das Risiko, dass auf einigen Geräten unterschiedliche Standardwerte verwendet werden.

Positiv beeinflussen

Durch die unterschiedlichen Standardwerte können interne Anwendungskomponenten versehentlich offengelegt werden. Einige Beispiele für die Folgen:

Denial-of-Service-Angriffe Andere Apps greifen unangemessen auf interne Komponenten zu, um die internen Funktionen Ihrer App zu ändern. Weitergabe vertraulicher Daten Codeausführung im Kontext der anfälligen Anwendung.

Maßnahmen zur Risikominderung

Legen Sie das Attribut android:exported immer explizit fest. So lassen Sie keinen Raum für Interpretationen und signalisieren Ihre Absicht in Bezug auf die Sichtbarkeit einer Komponente klar.