SECURITY26. Juni 2018

PSD2: Der Weg zur abgesicherten Ausführungsumgebung für mobile Banking-Apps

Die überarbeitete PSD2 fokussiert die Sicherheit mobiler Banking-Apps, mobiler Payment-Apps, Mobile-Wallets und anderer Apps, die über eine Zahlungsfunktion verfügen. Die wichtigsten Anforderungen im Zusammenhang mit der Sicherheit mobiler Apps sind in Artikel 9 der abschließenden technischen Regulierungsstandards (RTS) zur starken Kundenauthentifizierung (SCA) und zur gemeinsamen und sicheren Kommunikation (CSC), einem Nachtrag zu PSD2, enthalten. Frederik Mennes, Senior Manager Market & Security Strategy Onespan (vormals Vasco) erklärt für IT-Finanzmagazin, was dabei zu beachten ist.

Der Artikel 9 der RTS fordert von den Banken, die Mobilgeräte zur Authentifizierung von Transaktionen verwenden, „die Risiken, die von kompromittierten Geräten ausgehen können, zu minimieren“. Dabei listet der Artikel eine Reihe von schadensbegrenzenden Maßnahmen auf, die von den Banken angewendet werden sollten, darunter die „Verwendung einer separaten, gesicherten Laufzeitumgebung (Secure Execution Environment, kurz SEE)“ auf dem mobilen Gerät sowie Mechanismen zur Erkennung und Abwehr von Veränderungen des Gerätes selbst.

Im endgültigen RTS sind die Maßnahmen zur Schadensbegrenzung dann allerdings nur sehr vage gehalten. Dennoch gelten sie für Mobile-Banking-Apps sowie Apps mit Zahlungsfunktionalität, da der Authentifizierungsmechanismus dieser Applikationen ja auf dem Mobilgerät basiert.“

Frederik Mennes, Senior Manager Market & Security Strategy bei Onespan

Daraus ergibt sich zwingend, dass Mobile-Banking-Apps innerhalb sicherer Laufzeitumgebungen ausgeführt werden und vor einer Veränderung ihrer Funktionalität geschützt werden müssen.

Sichere Laufzeitumgebung erforderlich

Das Fehlen jeglicher Details erschwert Finanzinstituten eine zukunftssichere, technologieunabhängige Implementation der Schutzmaßnahmen. Gleichzeitig wird den zuständigen nationalen Behörden die Möglichkeit genommen, die getroffenen Maßnahmen zum Schutz mobiler Applikationen im Zahlungsverkehr dahingehend zu bewerten, ob sie den Anforderungen der endgültigen RTS genügen.

Eine Definition, was eine gesicherte Laufzeitumgebung ist, hilft hier weiter. Versuchen wir daher zunächst eine nützliche Definition für SEE zu finden. In der Welt des vertrauenswürdigen Computing wird SEE typischerweise als eine integritätsgeschützte Verarbeitungsumgebung definiert, die gesicherte Möglichkeiten zur Verarbeitung, Speicherung und Aufbewahrung bietet. Somit ist die SEE von der „normalen“ Verarbeitungsumgebung des mobilen Geräts isoliert und stellt sicher, dass mobile Apps ohne Beeinträchtigung durch andere Prozesse oder Programme (beispielsweise Malware), die sich ebenfalls auf dem Gerät befinden, ausgeführt werden können. Solche SEEs können mithilfe von Hardwarearchitekturen wie ARM Trust Zone oder auf der Grundlage der TEE-Spezifikation (Trusted Execution Environment) von Global Platform realisiert werden. Allerdings werden solche hardwarebasierten Sicherheitsarchitekturen nur selten eingesetzt.

SEE aus geschützte Ausführungsumgebung

Glücklicherweise erlaubt die Definition von SEE im RTS aber auch eindeutig SEEs, die nicht auf Hardware-Sicherheitsmechanismen angewiesen sind. Tatsächlich wurde in einer frühen Entwurfsversion des RTS festgelegt, dass die „sichere Ausführungsumgebung“ unter Verwendung von reinen Software-Sicherheitsmechanismen aufgebaut werden kann und dass sie nicht auf hardwarebasierten Sicherheitsmechanismen beruhen muss. Frühere Versionen des RTS verwendeten den Ausdruck „Trusted Execution Environment“ statt „Secure Execution Environment“, dies wurde jedoch geändert um zu betonen, dass auch Mechanismen die nicht explizit auf Hardware beruhen, die Anforderungen erfüllen.

Eine pragmatischere Definition von SEE könnte daher wie folgt aussehen: SEE ist eine Ausführungsumgebung, die Schutz vor bekannten Angriffen auf mobile Apps bietet. Dieser Ansatz befasst sich mit Attacken, mit denen Banken heute üblicherweise rechnen müssen und definiert eine Ausführungsumgebung als sicher, wenn sie einen angemessenen Schutz gegen diese bietet. Als Folge daraus wird sich die Definition einer sicheren Ausführungsumgebung im Laufe der Zeit weiterentwickeln, analog zur Entwicklung der Bedrohungslandschaft für mobile Banking-Apps.

Sicherheitsrisiken und Angriffe im Mobile Banking

Aktuell gibt es eine ganze Reihe von Sicherheitsbedrohungen für mobile Banking-Apps:

1. Overlay-Angriffe, bei denen Malware auf dem Mobilgerät ein Fenster über der echten Banking-App anzeigt, das der Banking-App sehr ähnlich ist. Auf diese Weise versucht die Malware sensitive Informationen wie Benutzername oder PIN des Users abzugreifen. Bekannte Vertreter dieser Art von Malware sind Marcher und BankBot.

2. Code-Injection oder Hooking sind Angriffe, bei denen mittels Malware die Funktionalität einer Mobile-Banking-App verändert werden soll. Zum Beispiel könnte die App modifiziert werden, um den PIN-Code des Benutzers auszulesen oder finanzielle Transaktionen heimlich umzuleiten. Betrüger können dabei auf Hooking-Frameworks wie Frida und Xposed zurückgreifen.

3. Keylogging, bei der Malware auf dem mobilen Gerät Tastenanschläge oder Gesten abfängt, um vertrauliche Daten wie PINs zu stehlen.

4. Auch das Abfangen von SMS-Nachrichten die Authentifizierungscodes enthalten, ist heutzutage eine beliebte Spielform vieler Android-Malware-Familien.

Sichere Ausführungsumgebung erstellen – so geht’s

Um eine sichere Ausführungsumgebung für Mobile-Banking-Apps zu schaffen, empfiehlt es sich, sie mit Application-Shielding-Technologie zu schützen, die auch als Runtime Application Self-Protection (RASP) bezeichnet wird. Diese Technologie schützt eine mobile App vor verschiedenen Arten von Laufzeitbedrohungen durch die Erstellung einer sicheren virtuellen Ausführungsumgebung, so dass diese auch auf nicht vertrauenswürdigen mobilen Geräten ausgeführt werden kann.

Application-Shielding schützt mobile Apps durch eine Kombination aus präventiven, detektivistischen und reaktiven Ansätzen. Es verhindert Laufzeitbedrohungen, zum Beispiel durch Verschleiern von Code, um Reverse Engineering zu erschweren. Es erkennt Angriffe während der Ausführung, etwa Versuche, die App zu manipulieren oder die App in einem Emulator zu starten. Schließlich kann es auf verschiedene Arten auf Laufzeitangriffe reagieren, beispielsweise indem es die serverseitigen Risikoengines der Bank alarmiert oder sogar die App herunterfährt. tw

Frederik Mennes
Vasco/Onespan

Frederik Mennes ist Senior Manager Market & Security Strategy im Security Competence Center bei Onespan. Als Speaker nimmt er an Unternehmenskonferenzen teil und unterstützt die Initiative for Open Athentication (OATH). Neben seiner Tätigkeit bei Onespan hat Frederik die Information Security Group (ISG) an der Royal Holloway, University of London in verschiedenen pädagogischen Funktionen unterstützt. Er erwarb einen MBA an der Vlerick Business School (Belgien), einen M.Sc. in Informationssicherheit an der Royal Holloway, University of London, und einen M.Sc. in Computer Science Engineering an der KU Leuven, Belgien.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert