Google hat bis heute 17.000 mit Jokern verseuchte Anwendungen aus dem Play-Store entfernt.
Google hat bisher 17.000 Android-Apps aus dem Play-Store entfernt, die als Conduits für die Joker-Malware (alias Brot) dienten - und in einer Analyse des Codes heißt es, dass die Betreiber von Joker "irgendwann nahezu jede Tarnungs- und Verschleierungstechnik unter der Sonne eingesetzt haben, um unentdeckt zu bleiben".
Diese Vielfalt und der Trial-and-Error-Ansatz funktioniert gut für Joker, angesichts der schieren Menge an Varianten und gefälschten Apps, die gegen die Verteidigung des Play-Stores angetreten werden. Der Internet-Riese sagte, dass es die Norm sei, drei oder mehr aktive Varianten des Jokers gleichzeitig im Umlauf zu haben, die unterschiedliche Ansätze verwenden oder auf verschiedene Träger abzielen; und zu Spitzenzeiten der Aktivität wurden an einem Tag bis zu 23 verschiedene Apps aus der Joker-Familie bei Play eingereicht. Google sagt, dass es die meisten von ihnen erkennt und entfernt, bevor sie heruntergeladen werden.
Joker ist eine Familie von Abrechnungsbetrügern, die 2017 auftauchte, aber erst ab 2019 ernsthaft in Erscheinung trat. Es wirbt für sich selbst als legitime Anwendung, aber sobald es installiert ist, führt es entweder SMS-Betrug (Senden von Textnachrichten an Mehrwertnummern) oder WAP-Abrechnungsbetrug durch. Letzterer, bei dem das Handy-Konto eines Nutzers zur Bezahlung von etwas verwendet wird (die Gebühren werden auf der Handy-Rechnung des Abonnenten ausgewiesen), hat sich laut Google bei Joker immer mehr durchgesetzt. Malware-Autoren verwenden injizierte Klicks, benutzerdefinierte HTML-Parser und SMS-Empfänger, um den Betrugsprozess zu automatisieren, ohne dass eine Interaktion des Nutzers erforderlich ist.
Diese Arten von Betrug sind zwar nicht ausschließlich bei Joker zu finden, aber die Verschleierung der Malware ist laut den Google-Forschern das Besondere an der Malware.
"Da der Play Store neue Richtlinien eingeführt hat und Google Play Protect die Abwehrmechanismen skaliert hat, waren die Bread-Apps gezwungen, ständig nach Lücken zu suchen", schrieben Alec Guertin und Vadim Kotov vom Android Security & Privacy Team in einem kürzlich veröffentlichten Beitrag. "Viele dieser Beispiele scheinen speziell dafür entworfen worden zu sein, unerkannt in den Play Store zu schlüpfen und werden nirgendwo anders gesehen".
Es wurde beobachtet, dass Joker-Apps versucht haben, Zeichenketten mit verschiedenen Methoden - einschließlich Standard- und benutzerdefinierter Verschlüsselung - vor den Analyse-Engines zu verstecken. Zu den bekannten Verschlüsselungstechniken, die von Joker verwendet werden, gehören AES, Blowfish und DES sowie Kombinationen dieser Verfahren zur Verschlüsselung ihrer Zeichenfolgen; bei der benutzerdefinierten Verschlüsselung wurden grundlegende XOR-Verschlüsselung, verschachteltes XOR und benutzerdefinierte Methoden zur Schlüsselableitung verwendet.
"Einige Varianten sind so weit gegangen, dass für die Zeichenketten jeder Klasse ein anderer Schlüssel verwendet wurde", so die Forscher.
Diese verschlüsselten Zeichenketten können Analysten jedoch darauf hinweisen, dass sie versuchen, etwas zu verbergen. Deshalb hat Joker auch unverschlüsselte Zeichenketten verwendet, die auf andere Weise verborgen sind - etwa durch Aufbrechen in Stücke, um einen automatischen Abgleich der Zeichenketten durch Antiviren- und andere Sicherheitswerkzeuge zu verhindern.
"Substrings sind manchmal über den gesamten Code verstreut und werden aus statischen Variablen und Methodenaufrufen abgerufen. Verschiedene Versionen können auch den Index der Aufteilung ändern", so die Analyse.
In ähnlicher Weise haben einige Joker-Anwendungen Trennzeichen verwendet, die kurze, konstante Zeichenfolgen sind, die an strategischen Punkten eingefügt werden, um Schlüsselwörter aufzubrechen. Zur Laufzeit wird das Trennzeichen vor der Verwendung der Zeichenfolge entfernt.
Auch Joker-Malware unternimmt große Anstrengungen, um ihre Aktivität vor der Analyse zu verbergen. So erfordert beispielsweise der Abrechnungsbetrug bestimmte Berechtigungen oder Aktionen, wie die Deaktivierung von Wi-Fi und den Zugriff auf SMS, die von APIs durchgeführt werden. Da die Verwendung dieser APIs ein Indikator für schlechtes Verhalten von Anwendungen sein kann, wird diese Verwendung oft zur Überprüfung durch Sicherheitslösungen markiert.
"Da es nur eine begrenzte Anzahl von Verhaltensweisen gibt, die erforderlich sind, um Rechnungsbetrug zu erkennen, mussten die Bread-Apps eine Vielzahl von Techniken ausprobieren, um die Nutzung dieser APIs zu verschleiern", so die Forscher. "Die meisten Methoden zum Verbergen der API-Nutzung tendieren dazu, die Java-Reflexion in irgendeiner Weise zu verwenden. In einigen Beispielen hat Bread einfach direkt die Reflect-API auf Zeichenfolgen aufgerufen, die zur Laufzeit entschlüsselt wurden. Sie fügten hinzu, dass eine Joker-App manchmal die native Bibliothek von Android verwendet, um die für den Zugriff auf die SMS-API erforderlichen Zeichenfolgen zu speichern.
Darüber hinaus haben Joker-Apps auch mehrere kommerziell erhältliche Packer wie Qihoo360, AliProtect und SecShell verwendet, um ihren Code zu verstecken; und manchmal versteckt sich der Code in einer mit dem APK gelieferten nativen Bibliothek.
Die einzige Konstante ist die Neigung der Betreiber, all diese Tricks zu mischen und abzugleichen. "Innerhalb jeder Variante kann der in jeder Probe vorhandene bösartige Code nahezu identisch aussehen, wenn nur eine Ausweichtechnik geändert wird. Beispiel 1 kann AES-verschlüsselte Zeichenfolgen mit Reflexion verwenden, während Beispiel 2 (am selben Tag eingereicht) den gleichen Code, aber mit Klartextzeichenfolgen, verwendet", so die Google-Forscher.
Zusätzlich zu seinen Bemühungen um eine Verschleierung ist der Joker auch in einigen seiner Merkmale bemerkenswert. So prüft er beispielsweise, an welchen Träger das Gerät angeschlossen ist, und holt sich eine koordinierende Konfiguration vom Command-and-Control-Server (C2). Dadurch erfährt er, welche Funktionen er verwenden soll (z.B. "Wi-Fi-Zustand umschalten" oder "SMS-Eingang lesen/ändern" - und in einigen Fällen kann er grundlegende CAPTCHAs lösen, die von Websites verwendet werden, um die Bot-Aktivität auszusondern.
"Zunächst erstellt die Anwendung eine JavaScript-Funktion, um eine Java-Methode, getImageBase64, aufzurufen, die mit addJavascriptInterface WebView ausgesetzt wird", erklärten die Google-Forscher. "Der Wert, der zum Ersetzen von GET_IMG_OBJECT verwendet wird, stammt aus der JSON-Konfiguration. Die Anwendung verwendet dann eine JavaScript-Injektion, um ein neues Skript auf der Webseite des Betreibers zu erstellen, um die neue Funktion auszuführen. Das base64-kodierte Bild wird dann zu einem Bilderkennungsdienst hochgeladen. Wenn der Text erfolgreich abgerufen wird, verwendet die Anwendung erneut JavaScript-Injektion, um das HTML-Formular mit der CAPTCHA-Antwort zu übermitteln.
Es ist zu beachten, dass Joker-Apps sich in der Art und Weise unterscheiden, wie sie die Nutzer zum Herunterladen betrügen; manchmal haben die Apps gefälschte Rezensionen; und manchmal verwenden die Angreifer eine Versionierung, bei der ein anfänglicher Download wie beworben funktioniert und die bösartige Aktivität später über ein App-Update eingefügt wird. Allerdings enthalten Joker-Apps häufig auch keine über den Abrechnungsprozess hinausgehende Funktionalität oder klonen einfach Inhalte aus anderen beliebten Apps, so Google.
Die Nutzer sollten sich in Acht nehmen: Zusätzlich zum Abrechnungsbetrug verfügen einige Joker-Apps über Spyware-Funktionalität. Im September beispielsweise entfernte Google 24 bösartige Joker-Anwendungen - mit insgesamt 472.000 Installationen - aus dem Play-Store, die die Möglichkeit hatten, SMS-Nachrichten, Kontaktlisten und Geräteinformationen zu stehlen und sie für Premium-Service-Abonnements zu abonnieren, die ihnen leise die Brieftasche leeren konnten.