Angriffe auf Zygote: der nächste Schritt in der Evolution der mobilen Bedrohungen

Die Geschichte eines Trojaners – klein, aber oho.

Inhalt

zygote

Zum kompletten Artikel (englisch)

Die Gefahr, die von Apps ausgeht, die für den Nutzer unbemerkt Root-Rechte auf einem mobilen Gerät verwenden, ist keinesfalls zu unterschätzen. Die größte Bedrohung liegt darin, dass sie auch weitaus raffinierteren und fortschrittlicheren Schädlingen mit gut durchdachter Architektur Zugriff auf das infizierte Gerät ermöglichen können. Wir hatten befürchtet, dass Trojaner, die unerlaubterweise über die Rechte eines Superusers verfügen und diese zur Installation von Apps und zum Anzeigen von Werbung einsetzen, bald nicht nur legitime, sondern auch schädliche Anwendungen installieren würden. Leider wird nun tatsächlich mit Hilfe solcher Programme einer der komplexesten aller uns bekannten mobilen Trojaner in Umlauf gebracht.

Rooting-Tools

In einem früheren Artikel berichteten wir über immer populärer werdende Android-Schädlinge, die einen nicht genehmigten privilegierten Zugriff auf ein Gerät erhalten und diesen nutzen, um Apps zu installieren und aggressive Werbung anzuzeigen. Bereits kurz nachdem ein solcher Schädling auf ein Gerät gelangt ist, ist es häufig kaum mehr möglich, dieses zu benutzen – aufgrund der Unmenge an lästiger Werbung und installierten Apps.

Seit unserem ersten Artikel (im August 2015) ist alles nur noch schlimmer geworden: Die Zahl der Familien solcher Schadprogramme stieg von vier auf elf, die Schädlinge werden immer aktiver verbreitet und sie setzen das „Rooten“ sehr viel erfolgreicher um. Unseren Einschätzungen zufolge wurden in der zweiten Hälfte 2015 etwa zehn Prozent der mobilen Geräte unter Android von Trojanern angegriffen, die über Superuser-Rechte verfügen. Die Kaspersky-Experten deckten auch Fälle auf, in denen solche Programme auf neuen mobilen Geräten aus China vorinstalliert waren.

Erwähnenswert ist übrigens auch, dass Geräte mit einer Android-Version, die neuer als 4.4.4 ist, weniger Sicherheitslücken haben, mit Hilfe derer man sich Root-Zugriff verschaffen kann. Daher gehören zu der Hauptzielgruppe dieser Schädlinge Geräte mit einer Betriebssystemversion älter oder gleich 4.4.4. Das bedeutet aber nicht, dass diese Bedrohung nicht aktuell ist: Auf den meisten Geräten der Anwender sind noch immer alte Betriebssystemversionen installiert. Auf dem nachfolgenden Diagramm ist die Verteilung der Anwender unseres Produkts in Abhängigkeit von der verwendeten Android-Version dargestellt. Wie man auf dem Diagramm sehen kann, verwenden etwa 60 Prozent der Nutzer Geräte, auf denen die erwähnten Trojaner die Rechte eines Superusers erhalten könnten.

Angriffe auf Zygote: der nächste Schritt in der Evolution der mobilen Bedrohungen

Android-Versionen, die von den Nutzern unserer Produkte verwendet werden

Die Cyberkriminellen leben von der Werbung und der Installation legitimer Apps. Wir weisen darauf hin, dass die Betreiber der oben beschriebenen Trojaner, wie etwa Leech, Ztorg und Gorpo (sowie die Schädlinge der neuen Familie Trojan.AndroidOS.Iop), Hand in Hand agieren. Mit solchen Programmen infizierte Geräte bilden normalerweise ein ganz eigenes „Werbe-Botnetz“, über das die Werbe-Trojaner sich sowohl gegenseitig als auch die Werbe-Apps verbreiten. Schon wenige Minuten nach der Installation eines solchen Trojaners funktionieren auch alle anderen aktiven Trojaner, die zu diesem „Netz“ gehören, auf dem angegriffenen Gerät.

Im Jahr 2015 begannen solche „Werbe-Botnetze“ neben sauberen Werbe-Apps auch Schädlinge in Umlauf zu bringen, die eine direkte Bedrohung für den Nutzer darstellen. Darunter befand sich einer der komplexesten mobilen Trojaner, den wir je analysiert haben.

Einzigartiger Trojaner

Mit Hilfe eines „Werbe-Botnetzes“ wird ein in seiner Art einmaliger Trojaner verbreitet, der sich durch die folgenden Besonderheiten auszeichnet:

  1. Modulare Funktionalität in Kombination mit der aktiven Nutzung von Superuser-Rechten.
  2. Der Hauptteil der Funktionalität des Schädlings befindet sich nur im Arbeitsspeicher des Gerätes.
  3. Der Trojaner modifiziert im Speicher den Systemprozess Zygote, um sich im System festzusetzen.
  4. Bei der Entwicklung des Schädlings wurden professionelle Software-Entwicklungsansätze angewandt, was von einer hohen Qualifikation der Autoren zeugt.

Der Trojaner wird in einen Ordner installiert, der Systemprogramme enthält, unter Namen, die auch tatsächlich Bezeichnungen von Systemprogrammen sein könnten (beispielsweise AndroidGuardianship.apk, GoogleServerInfo.apk und USBUsageInfo.apk).

Der Schädling beginnt seine Arbeit damit, dass er die folgenden Informationen sammelt:

  • Name des Gerätes
  • Betriebssystemversion
  • Größe der SD-Karte
  • Informationen über den Arbeitsspeicher des Gerätes (aus der Datei „/proc/mem“)
  • IMEI
  • IMSI
  • Liste der installierten Programme

Die gesammelten Informationen werden an den Server der Cyberkriminellen geschickt, den der Trojaner aus der folgenden in den Code geschriebenen Liste erhält. Oder, für den Fall, dass die zunächst angegebenen Server unzureichend sind, aus einer Liste von Ersatz-Steuerungsservern, die ebenfalls in den Code geschrieben ist.

Als Antwort erhält der Trojaner eine Konfigurationsdatei, die als „/system/app/com.sms.server.socialgraphop.db“ gespeichert wird. Die Konfiguration wird regelmäßig aktualisiert und besteht aus den folgenden Feldern:

  • mSericode – ID des Schädlings
  • mDevicekey – ID des Gerätes, die auf dem Server erstellt wird (wird in „/system/app/OPBKEY_< mDevicekey >“ gespeichert)
  • mServerdevicekey – ID des aktuellen Servers
  • mCD – Informationen, die von den Cyberverbrechern genutzt werden, um das Verhalten der Module zu korrigieren
  • mHeartbeat – Ausführungsintervall des Interfaces „heartbeatRequest“
  • mInterval – Verbindungsintervall mit dem Steuerungsserver
  • mStartInterval – Zeitspanne, nach deren Ablauf die geladenen DEX-Dateien (Module) gestartet werden
  • mServerDomains – Liste der Hauptdomains
  • mCrashDomains – Liste der Ersatz-Domains
  • mModuleUpdate – für das Laden der DEX-Dateien (Module) unerlässliche Links

Ist das Feld „mModuleUpdate“ ausgefüllt, so erfolgt der Download und das Speichern der Module. Daraufhin werden die heruntergeladenen Dateien mit Hilfe von „DexClassLoader.loadClass()“ im Kontext des Schädlings geladen. Nach dem Laden werden die Module von der Festplatte gelöscht, das heißt sie verbleiben lediglich im Arbeitsspeicher des Gerätes, was ihre Entdeckung und das Löschen durch Antiviren-Programme erheblich erschwert.

Ein ähnlicher Mechanismus macht es möglich, dass die Module, die verschiedene Funktionen ausführen, durch ein Ladeprogramm gestartet, koordiniert und synchronisiert werden.

Die beschriebenen Programme und die von ihnen zu ladenden Module benutzen die Dateien „androidbin“, „conbb“, „configopb“, „feedback“ und „systemcore“, die im Ordner „/system/bin“ gespeichert werden, um im System verschiedene Aktionen mit Superuser-Rechten durchzuführen. Auf einem sauberen System gibt es diese Dateien selbstverständlich nicht.

Mit der beschriebenen modularen Architektur und dem privilegierten Zugriff auf das Gerät kann der Schädling buchstäblich alles machen, was ihm beliebt. Die Möglichkeiten der geladenen Module sind lediglich durch die Phantasie und die Fähigkeiten der Virenschreiber beschränkt.

Dabei hält der Trojaner seine Module aus den Listen der installierten Pakete, der installierten Apps sowie aus den Listen der laufenden Dienste und Anwendungen heraus. Auf diese Weise verbirgt der Trojaner seine Anwesenheit und Aktivität im System – ihn und seine Komponenten auf einem infizierten Gerät zu erkennen und davon zu entfernen ist nun äußerst schwierig.

Hauptfunktionalität

Das Downloader-Programm und die von ihm geladenen Programme gehören unterschiedlichen Trojaner-Arten an, aber wir haben sie alle unter der allgemeinen Bezeichnung Triada in unsere Datenbanken aufgenommen. Während der Analyse hat die Downloader-Anwendung (Kaspersky Lab führt sie unter der Bezeichnung Backdoor.AndroidOS.Triada) die folgenden Module geladen und aktiviert:

  • Zwei Module mit verdoppelnder Funktionalität sind in der Lage, Anwendungen zu laden, zu installieren und auch zu starten (detektiert als Trojan-Downloader.AndroidOS.Triada.a).
  • Ein Modul, das auf Anfrage des Steuerungsservers SMS versenden kann (detektiert als Trojan-SMS.AndroidOS.Triada.a).
  • Ein Modul, das Anwendungen angreift, die SMS zur Durchführung von In-App-Käufen nutzen (Abfangen der ausgehenden Textnachrichten). (Wird von den Kaspersky-Lösungen als Trojan-Banker.AndroidOS.Triada.a erkannt).

Die Hauptfunktionalität des Trojaners besteht in der Umleitung von SMS-Finanztransaktionen, während der Nutzer verschiedene Zusatzinhalte mit legitimen Apps bezahlt.

Der Trojaner modifiziert die ausgehenden SMS, die von anderen Apps verschickt werden. Wir nehmen an, dass die Verbrecher diese Technik einsetzen, um unbemerkt Finanzmittel zu stehlen: Nach der Bezahlung zusätzlicher Inhalte in einer Anwendung landet das Geld des Users nicht bei den Entwicklern der entsprechenden Software, sondern bei den Cyberkriminellen.

Wenn der User beispielsweise irgendetwas in einem Game-internen Shop für irgendein Android-Spiel kauft (sofern dieses Spiel ein SDK zum Bezahlen der Spiel-internen Einkäufe über SMS verwendet, beispielsweise mm.sms.purchasesdk), können die Cyberverbrecher die ausgehenden Zahlungs-SMS so modifizieren, dass sie anstelle der Spiel-Entwickler das Geld des Nutzers erhalten. Der User merkt dabei aller Wahrscheinlichkeit nach gar nicht, dass sein Geld gestohlen wurde. Doch da er den bezahlten Inhalt ja nicht erhält, nimmt er vermutlich an, dass der Grund dafür ein Bug im Spiel ist.

Eine andere Variante ist, dass das Geld zwar an die Online-Betrüger geht, der Nutzer aber trotzdem den bezahlten Inhalt erhält. In diesem Fall bestiehlt der Trojaner nicht nur den Nutzer, sondern ebenso die Entwickler der legitimen Software.

Der Trojaner ist auch in der Lage, die eingehenden SMS zu filtern. Der Schädling überprüft, von welcher Nummer die SMS stammt und was drinsteht. Herausgefiltert werden die Mitteilungen, die von einer Nummer aus der Liste stammen oder bestimmte Schlüsselwörter enthalten (die Listen mit den Nummern und Schlüsselwörtern erhält der Trojaner vom Steuerungszentrum der Cyberverbrecher). Die herausgefilterte Mitteilung bekommt dann weder der Nutzer noch irgendeine im System installierte App zu sehen.

Ausnutzung des Zygote-Prozesses

Eine hervorstechende Besonderheit des Schadprogramms ist die Ausnutzung des Zygote-Prozesses zur Einschleusung seines Codes in den Kontext aller Apps auf dem Gerät. Der Zygote-Prozess ist ein Elternprozess für alle Android-Apps, der Systembibliotheken und Frameworks enthält, die von praktisch allen Apps genutzt werden. Dieser Prozess ist eine Schablone für jede neue Anwendung. Sobald dieser Trojaner in den Prozess gelangt, wird er ein Teil dieser Schablone und kann auf diese Weise in jede gestartete App eindringen und ihre Logik und Funktion verändern. Das eröffnet den Cyberkriminellen ein riesiges Spektrum an Möglichkeiten.

Wir sehen eine derartige Technik erstmals in freier Wildbahn. Bisher wurde die Ausnutzung des Zygote-Prozesses nur als Proof-of-Concept umgesetzt.

Die Cyberkriminellen gehen ein so komplexes Thema wie die Manipulation von Zygote nur mit äußerster Vorsicht an, da jegliche Unachtsamkeit bei einer Operation an diesem Prozess zu einem sofortigen Absturz des Systems führen kann. Daher führt der Trojaner zunächst einen „Testlauf“ durch, mit dem er die Funktionsfähigkeit der schädlichen Technik auf dem Gerät des Nutzers überprüft.

Angriffe auf Zygote: der nächste Schritt in der Evolution der mobilen Bedrohungen

Architektur von Triada

Eine vollständige Beschreibung des Trojaners ist hier verfügbar (englisch).

Fazit

Apps, die vom Anwender unbemerkt Root-Zugriff auf ein mobiles Gerät erhalten, können auch komplexeren und gefährlicheren Schädlingen Zugriff auf das infizierte Gerät ermöglichen. Mit Hilfe der Rooting-Tools wird einer der kompliziertesten mobilen Trojaner verbreitet, die wir kennen – Triada. Nachdem er auf das Gerät des Nutzers gelangt ist, schleust sich Triada in praktisch alle laufenden Prozesse ein und existiert nur im Arbeitsspeicher. Darüber hinaus werden alle einzeln gestarteten Prozesse des Trojaners vor dem Nutzer und anderen Apps verborgen. Dadurch werden die Erkennung und das Entfernen des Trojaners sowohl für den Nutzer als auch für die Schutzlösungen der AV-Unternehmen überaus schwierig.

Ganz offensichtlich wurde der Trojaner Triada von Cyberkriminellen entwickelt, die sich sehr gut mit der anzugreifenden Plattform auskennen. Das Spektrum an Techniken, die dieser Trojaner einsetzt, ist in keinem anderen der uns bekannten mobilen Schädlinge zu finden. Die eingesetzten Methoden zum Verbergen und zum nachhaltigen Festsetzen im System behindern das Erkennen und Löschen aller Schädlings-Komponenten nach ihrer Installation auf dem infizierten Gerät deutlich. Und die modulare Architektur erlaubt es den Angreifern, die Funktionalität zu erweitern und zu verändern – ihre Möglichkeiten werden lediglich durch das Betriebssystem und die auf dem Gerät installierten Apps begrenzt. Da der Schädling in alle Programme eindringt, die auf dem Gerät installiert sind, sind die Cyberkriminellen potenziell in der Lage, deren Logik zu modifizieren, um neue Angriffsvektoren auf den Anwender umzusetzen und ihren Gewinn zu maximieren.

In Bezug auf seine Komplexität steht Triada Windows-Schädlingen in nichts nach, wodurch sein eigener Rubikon in der Evolution der Bedrohungen überschritten ist, die sich gegen die Plattform Android richten. Während früher die meisten Trojaner unter dieser Plattform recht primitiv waren, so betreten jetzt neue Bedrohungen die Bühne, die über einen hohen Grad an technischer Komplexität verfügen.

Related Articles

Schreibe einen Kommentar

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