OWASP-Kategorie: MASVS-PLATFORM: Plattforminteraktion
Übersicht
Der StrandHogg-Angriff bzw. die Task-Affinitätslücke wurde durch einen Designfehler bei der Verarbeitung mehrerer Aufgaben unter Android aktiviert bzw. verursacht, insbesondere durch die Funktion „Task Reparenting“. Mit der Funktion zum Ändern des übergeordneten Elements einer Anwendungsaufgabe kann eine Aktivität von einer Aufgabe in eine andere verschoben werden.
Der StrandHogg-Angriff nutzt die Unklarheit bei der Überprüfung eingehender Aktivitäten des Task-Stacks einer Anwendung aus und ermöglicht es einer schädlichen Anwendung,
- eine schädliche Aktivität in einen Opferstack oder aus einem Opferstack verschieben
- die schädliche Aktivität nach Abschluss einer Aktivität des Opfers als Rückstapel festlegen
Diese Sicherheitslücke wird durch Manipulation der allowTaskReparenting
- und taskAffinity
-Einstellungen ausgenutzt.
Positiv beeinflussen
Eine schädliche Anwendung kann die taskAffinity einer ihrer Aktivitäten so festlegen, dass sie mit dem packageName einer Zielanwendung übereinstimmt. Dies kann dann mit Intent-Hijacking kombiniert werden, sodass die schädliche Anwendung gestartet und über der Zielanwendung angezeigt wird, wenn die Zielanwendung das nächste Mal vom Nutzer gestartet wird.
Die Sicherheitslücke bei der Task-Affinität kann dann dazu verwendet werden, legitime Nutzeraktionen zu manipulieren.
Der Nutzer könnte dazu verleitet werden, Anmeldedaten für eine schädliche Anwendung anzugeben. Wenn eine Aktivität gestartet und mit einer Aufgabe verknüpft wird, bleibt diese Verknüpfung standardmäßig während des gesamten Lebenszyklus der Aktivität bestehen. Wenn Sie jedoch „allowTaskReparenting“ auf „true“ festlegen, wird diese Einschränkung aufgehoben und eine vorhandene Aktivität kann einem neu erstellten „nativen“ Aufgabenelement neu zugeordnet werden.
Beispielsweise kann App A auf App B ausgerichtet werden, sodass Aktivitäten von App A nach der Rückkehr von der abgeschlossenen Aktivität von App A an einen Aktivitätsstapel von App B weitergeleitet werden. Dieser Wechsel von einer App zur anderen ist für den Nutzer nicht sichtbar und stellt eine erhebliche Phishing-Bedrohung dar.
Abhilfemaßnahmen
Aktualisieren Sie auf android:minSdkVersion="30"
.
Die Sicherheitslücke des StrandHogg-Angriffs / Task-Affinitätsangriffs wurde ursprünglich im März 2019 geschlossen. Eine neuere und umfassendere Variante wurde im September 2020 geschlossen. Android SDK-Versionen 30 und höher (Android 11) enthalten die entsprechenden Betriebssystem-Patches, um diese Sicherheitslücke zu schließen. Version 1 des StrandHogg-Angriffs kann durch eine individuelle Anwendungskonfiguration teilweise abgeschwächt werden, Version 2 des Angriffs kann jedoch nur durch diesen Patch für die SDK-Version verhindert werden.
Ressourcen
- Ursprünglicher wissenschaftlicher Artikel, der die Sicherheitslücke bei Usenix 15 beschreibt{.external}
- Erweiterung der ursprünglichen Sicherheitslücke durch die Promon Security Group{.external}
- Android-Entwicklerdokumentation für android:allowTaskReparenting
- Android-Entwicklerdokumentation für android:taskAffinity
- Android-Entwicklerdokumentation für das Anwendungselement „android:allowTaskReparenting“