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.
Empfehlungen für dich
- Hinweis: Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- # Schlüsselverwaltung {:#key-management}
- Eingebetteten DEX-Code direkt aus dem APK ausführen
- Tapjacking