Mobile Overlay-Angriffe auf Android

Ein kurzer und dennoch tiefer Einblick in die Arbeitsweisen von Malware auf Android – inkl. Experten-Tipps und Empfehlungen zur Absicherung eigener Apps

Von Tibor Éliás, Android Malware Analyst bei IKARUS Security Software

Trotz steigender Beliebtheit bei Angreifern ist Android ein vergleichsweise sicheres System. Dennoch: Selbst perfekt funktionierende Apps, deren Daten komplett isoliert sind, können unbemerkt gekapert werden. Sogenannte „Overlay-Angriffe“ überlagern unauffällig legitime Anwendungen und gelangen so an gefährliche Berechtigungen und sensible Daten, z.B. von Banking-Apps, Messengern oder Browsern.

1. Schädliche Anwendungen auf Android

Hacker suchen immer neue Wege, um die Daten ihrer Opfer abzugreifen und sich im System höhere Privilegien zu verschaffen – ohne dass die NutzerInnen bemerken, was auf ihrem Gerät tatsächlich gerade passiert. Selbst bei einer perfekt funktionierenden App, deren Daten komplett von anderen Anwendungen abgeschottet sind, gibt es noch Möglichkeiten, Sicherheitsvorkehrungen heimlich zu umgehen.

Mit sogenannten Overlay-Angriffen (Überlagerungsangriffen) kann eine bösartige App gefährliche Berechtigungen erlangen und Cyberkriminelle befähigen, beispielsweise Banküberweisungen zu tätigen. Möglich ist das durch bekannte Schwachstellen im Android Betriebssystem. Die Angriffe beziehen die Feedbackschleife des Userinterfaces mit ein und missbrauchen die Android API. So können Informationen aus anderen Apps ausgelesen werden – auch von Hochsicherheitsanwendungen wie Banken-Apps, Messengerdiensten oder Browsern.

2. Verschiedene Overlay-Techniken

  1. Schritt: „Opfer”-Anwendung auswählen und ihren Package-Namen eruieren
  2. Schritt: besagte App mithilfe verschiedener Methoden überwachen
  3. Android-Overlay-Angriff

    Abbildung 1: Schematische Darstellung eines Overlay-Angriffes gegen eine gutartige Anwendung auf dem Android Betriebssystem.

    Schritt: Opfer-App im aktiven Zustand durch Überlagerung übernehmen

2.1 Aktivitäten gleichzeitig laufender Apps überwachen

Für eine erfolgreiche Overlay-Kampagne muss die bösartige App in der Lage sein, Aktivitäten und Tasks zu erkennen, die im Vordergrund angezeigt werden. Dazu werden andere Apps bzw. App-Pakete am Zielgerät überwacht. Android bietet verschiedene Hilfsklassen an, um zu erkennen, welche Dienste am Gerät gerade laufen. Diese Hilfestellungen wurden jedoch mit jedem Update schwieriger zu nutzen – Android wollte vermeiden, dass Entwickler die Aktivitäten anderer Apps überwachen.

Ein kurzer Überblick über weiterhin verfügbare Optionen:

  • getRunningTasks() (verfügbar unter Android 5.0)
  • getRunningAppProcesses()
  • UsageStatsManager
  • Suchen und Finden von /proc//oom_score („pid“ ist die Prozess-ID der anvisierten App)
  • android:TaskAffinity für das Opfer-System festlegen. Diese Methode wird von Malware „in the Wild“ verwendet und ist als Strandhogg-Schwachstelle bekannt. Apps mit schlecht konfigurierter taskAffinity werden schnell Opfer dieser Angriffe.

Sourcecode einer Android App, die einige dieser Überwachungstechniken nutzt: https://github.com/geeksonsecurity/android-overlay-protection

2.2 Aktive Komponenten überlagern

Wird dem Opfer eine Aktivität der (gutartigen) App, die im Visier der Kriminellen steht, angezeigt, können die Angreifer zwischen verschiedenen Varianten wählen, um diese zu übernehmen. Folgende Beispiele wurden bereits von Malware in freier Wildbahn umgesetzt:

  • Einschleusen einzelner Objekte in die Vordergrundaktivität
  • Mittels FLAG_ACTIVITY_NEW_TASK eine Aktivität über eine andere legen (leicht rückgängig zu machen mittels Zurück-Button)
  • Eigens gestaltetes Fenster als SYSTEM_ALERT über die Vordergrundaktivität legen (kann nicht vom User rückgängig gemacht werden und wird daher auch gerne bei Ransomware-Angriffen auf Android verwendet, um das Startprogramm und sogar den Sperrbildschirm zu überlagern und Lösegeld zu fordern)

3. Simulierter Angriff via SMS und Angreifer-Website

Der Angriff beginnt mit einer manipulierten SMS an die Nutzer der FakeBank-App. Nutzerdaten wie Telefonnummern und Verbindung zu einer Bank werden üblicherweise via Social Engineering oder über das Darknet generiert, wo entsprechende Nutzerdaten in Verbindung mit Geldinstituten gerne gehandelt werden.

Ablauf des Angriffs:

    1. Senden einer SMS an eine Telefonnummer, die mit einem FakeBank-Kunden assoziiert ist
    2. Dringende Aufforderung, eine App von der (Angreifer-)Website zu installieren
FakeBank

Abbildung 2: Mit einer SMS sollen die User dazu gebracht werden, eine App zu installieren

  1. Die SMS leitet die Nutzer dazu an, eine bestimmte Website zu besuchen und dort das angeblich dringend benötigte Update runterzuladen.
  2. Auf der verlinkten Website werden die Opfer zum Download geführt. Es gibt auch Angriffe, bei denen zuvor zusätzliche Daten wie Telefonnummern oder die Login-Daten zum Konto abgefragt werden. Diese Websites lassen oft nur Browser zu, die einen bestimmten User-Agent-Namen beinhalten.fakebank
  3. Ein Klick auf den Download-Button führt die User zu einer Seite mit Instruktionen, die wiederum einen Donwload-Button eingebunden hat.

    FakeBank

    Abbildung 4: Die Download-Seite bietet nicht nur den Download-Link, sondern auch eine detaillierte Anleitung zum Installieren der App.

  4. Der Text gibt klare Anweisungen zum Deaktivieren einer sehr wichtigen Sicherheitsbarriere, die verhindert, dass User absichtlich oder versehentlich Apps aus unbekannten Quellen installieren.
  5. Zum Schluss sollen die User die App aus ihrem Download-Verzeichnis installieren.

3.1 FakeBank App

FakeBank ist eine Bank-App für Android. Ihre Features sind mit All-in-one-Bank-Apps vergleichbar, die SMS und mTans zur Verifizierung von Transaktionen verwenden. Außerdem kann die App serverseitig Bank-Transaktionen über HTTP simulieren.

FakeBank

Abbildung 5: FakeBank funktioniert wie eine Bank-App, die beispielsweise die Option bietet, die jüngsten Transaktionen anzuzeigen und neue Transaktionen zu initialisieren.

3.2 FakeBank Angreifer-Website

Die FakeBank Angreifer-Website ist die Website, auf der die bösartige App (FakeBankCertificate.apk) gehostet wird. Ihre Ziele sind:

  • User instruieren, die FakeBankCertificate.apk zu installieren
    • Technische Informationen bereitstellen, wie Standard-Sicherheitsmaßnahmen deaktiviert werden können
    • Installation der FakeBankCertificate.apk über den Browser
  • apk hosten
FakeBank

Abbildung 6: Hinter der FakeBank-Website steckt ein Adversary Server, der eine Landing Page sowie eine Installationsanleitung und einen Download-Link bereitstellt.

FakeBankCertificate-App

Nach ihrer Installation wird die App versuchen, gefährliche Berechtigungen zu erlangen und Daten zu extrahieren, beispielsweise durch:

  • Auslesen von Tastaturanschlägen
  • Überlagerung von Login-Screens bestimmter Apps
  • Auslesen von Textfeldern bestimmter Apps
  • Wechseln der Standard-SMS-App sowie Lesen und Weiterleiten ihrer Inhalte an einen C2-Server

All diese Berechtigungen werden durch das geschickte Überlagern wichtiger Freigabe-Dialoge und Aktivitäten erlangt.

FakeBank

Abbildung 7: FakeBankCertificate.apk ist eine bösartige App, die das Betriebssystem missbraucht, um die FakeBank-App anzugreifen.

4. Abwehr von Overlay-Attacken

In manchen Fällen muss eine App verifizieren können, dass eine bestimmte Aktion in voller Absicht und mit Zustimmung des Nutzers ausgeführt wird – beispielsweise beim Erteilen von Berechtigungen, Abschließen von Einkäufen oder Anklicken von Werbungen. Leider kann diese Funktion von bösartigen Apps missbraucht werden, indem Nutzer getäuscht und zum Ausführen von Befehlen gebracht werden, ohne deren eigentliches Ziel erkennen zu können. Das Android Framework bietet hier Abhilfe in Form eines Touch Filtermechanismus, der die Sicherheit von Darstellungen zum Zugriff auf sensible Funktionen verbessern kann.

Um den Touch-Filter zu aktivieren, rufen Sie setFilterTouchesWhenObscured(boolean) auf oder aktiveren Sie die android:filterTouchesWhenObscured Layout-Attribute. Das Framework wird dann Touches ablehnen, die ausgeführt werden, während ein anderes Fenster das eigentliche überlagert.

Quelle: https://developer.android.com/reference/android/view/View – Security

5. Schutz vor Missbrauch der Accessibility Services und vor Keylogging mit einem 3rd Party Keyboard

Bank-Apps haben die Möglichkeit, ihre eigene Text Edit-Ansicht zu implementieren, die nicht mit den Accessibility Services verknüpft ist. Darüber können sensible Eingaben in verschiedene Textfelder abgesichert werden.

Quelle: Vincent Haupert, Dominik Maier, Nicolas Schneider, Julian Kirsch, and Tilo Müller – The State of Android App Hardening: https://www1.cs.fau.de/filepool/projects/nomorp/nomorp-paper-dimva2018.pdf

6. Schutz vor Keylogging-Angriffen

Manche Bank-Apps bringen für Texteingaben eigene virtuelle Keyboards mit. Sie haben außerdem die Möglichkeit, über das Betriebssystems Screenshots verschiedener Aktivitäten, beispielsweise bei Passwort- oder Formulareingaben, zu unterbinden.

Quelle: Vincent Haupert, Dominik Maier, Nicolas Schneider, Julian Kirsch, and Tilo Müller – The State of Android App Hardening: https://www1.cs.fau.de/filepool/projects/nomorp/nomorp-paper-dimva2018.pdf

7. Frequently Asked Questions

Q: Wie wird der Nutzer dazu gebracht, die Fake Bank Certificate App zu installieren?

A: Die Scam-Nachricht (SMS oder E-Mail) suggeriert dem User einen Notfall und die Notwendigkeit, zeitnah den sorgfältig bereitgestellten Anleitungen zum Downloaden und Installieren der App zu folgen – ungeachtet der Warnung des Betriebssystems, dass das „Installieren aus unbekannten Quellen“ aktiviert wird.

Manche Banking Apps werden mit einer Begleit-App verwendet, die eine sicherere Kommunikation sowie Zwei-Faktor-Authentifizierung ermöglichen soll. Vor diesem Hintergrund könnte dem User die Fake Bank Certificate-App auf den ersten Blick wenig verdächtig erscheinen.

Q: Wie ist es den Hackern möglich, Details von Transaktionen wie Empfänger-IABN, Name, Überweisungsbetrag und sogar die Referenz zu ändern?

A: Nicht alle Banken verifizieren alle Details einer Transaktion. In unserer kurzen Demo wurden nur der IBAN und der Name des Senders sowie der passende mTAN verifiziert. In einem echten Setting hat der Hacker auch die Möglichkeit, eine neue Transaktion mit entsprechender mTAN, erfasst vom Handy des Opfers, zu verifizieren und durchzuführen.

 

Q: Sind Banken nicht in der Lage, Transaktionen rückgängig zu machen?

A: Ja, Banken können das tun, dank ihrer zentralisierten Infrastruktur. Unglücklicherweise arbeiten Cyberkriminelle oft nicht alleine und erwarten entsprechende Schritte. Daher senden sie teils „Money Mules“ („Geldesel“) mit der Aufgabe zu Geldautomaten, den gestohlenen Betrag in bar zu beheben.

9. Android Overlay Malware – FakeBankTransaction (YouTube)

Hier geht es zu unserem YouTube-Video:

Image
mohamed Hassan, Pixabay
Bild eines Vorhängeschlosses
Kind Tablet

Kinderschutz im Internet

Foundry Co auf Pixabay
Icon-lock

Wir freuen uns auf Sie!

IKARUS Security Software GmbH
Blechturmgasse 11
1050 Wien

Telefon: +43 (0) 1 58995-0
Fax: +43 (0) 1 58995-100
Sales Hotline: +43 (0) 1 58995-500

SUPPORT-HOTLINE

Support-Hotline:
+43 (0) 1 58995-400
support@ikarus.at

Support-Zeiten:
Mo bis Do: 8.00 – 17.00 Uhr
Fr: 8.00 – 15.00 Uhr

Fernwartung:
TeamViewer Download
AnyDesk Download