TeslaCrypt 2.0 im Gewand von CryptoWall

Inhalt

Die Familie der Dateien verschlüsselnden Erpressersoftware TeslaCrypt ist eine relativ neue Bedrohung, die ersten Exemplare wurden erst im Februar 2015 entdeckt. Seither zieht der Schädling als „Schrecken der Computergamer“ wie ein Unwetter durch die Massenmedien, da er gezielt eine Vielzahl von Dateien infiziert, die mit Computerspielen in Zusammenhang stehen (Speicher, Nutzerprofile usw.). Im Visier des Trojaners standen User in den USA, Deutschland, Spanien und anderen Ländern, einige Dutzend Infektionsversuche wurden zudem in Russland registriert.

TeslaCrypt befindet sich noch immer in der aktiven Entwicklungsphase: Innerhalb der letzten Monate hat der Schädling sein Äußeres verändert, den Namen, den er seinen Opfern präsentiert (der Schädling tarnte sich als CryptoLocker, trat unter den Namen TeslaCrypt und AlphaCrypt auf), die Erweiterungen der verschlüsselten Dateien (.ecc, .ezz, .exx) sowie andere Details in der Umsetzung.

Vor kurzem hat Kaspersky Lab die neuste Version des Trojaners entdeckt – TeslaCrypt 2.0. Diese Version unterscheidet sich von ihren Vorgängern zum einen durch ein deutlich verbessertes kryptografisches Schema, auf Grund dessen es zum gegenwärtigen Zeitpunkt unmöglich ist, die von TeslaCrypt betroffenen Dateien zu entschlüsseln, und zum anderen durch eine Abkehr von dem GUI zugunsten einer HTML-Seite, die zudem von einem anderen Trojaner kopiert wurde, nämlich Cryptowall.

Die Produkte von Kaspersky Lab detektieren Vertreter der Familie TeslaCrypt als Trojan-Ransom.Win32.Bitman. Die neuste Version des Trojaners, die Thema des vorliegenden Artikels ist, wird als Trojan-Ransom.Win32.Bitman.tk detektiert, ihre MD5-Hash lautet: 1dd542bf3c1781df9a335f74eacc82a4

Evolution der Bedrohung

Jedes Sample von TeslaCrypt enthält eine interne Version des Schädlings. Die erste von uns entdeckte Version hatte die Nummer 0.2.5, ihr grafisches Interface, die Fensterüberschrift eingeschlossen, war einem anderen erpresserischen Verschlüsselungsprogramm entliehen, und zwar CryptoLocker.

TeslaCrypt 2.0 im Gewand von CryptoWall

TeslaCrypt 0.2.5

Doch bereits mit Version 0.4.0 hatten die Entwickler vonTeslaCrypt das Äußere des Schädlings komplett verändert.

TeslaCrypt 2.0 im Gewand von CryptoWall

TeslaCrypt 0.4.0

Doch unabhängig von der Version bleiben die folgenden Merkmale der Familie unverändert:

  • Der Trojaner generiert selbst eine neue eindeutige Bitcoin-Adresse und einen dazugehörigen privaten Schlüssel. Die Adresse wird gleichzeitig als ID des Opfers verwendet sowie für den Empfang der Lösegeldzahlung des Opfers.
  • Für die Verschlüsselung der Daten wird der Algorithmus AES-256-CBC verwendet, alle Dateien werden mit einem Schlüssel chiffriert.
  • Nicht verschlüsselt werden Dateien, die größer sind als 0x10000000 Byte (~268 MB).
  • Die C&C-Server sind im Netz Tor untergebracht, die Kommunikation mit ihnen erfolgt über öffentliche tor2web-Services.
  • Unter den zu verschlüsselnden Dateien sind viele Erweiterungen, die Dateien von Computerspielen zugeordnet werden.
  • Der Trojaner löscht die Schattenkopien.
  • Ungeachtet der „Horrorstorys“ über RSA-2048, die dem Opfer demonstriert werden, wird dieser Algorithmus im Code in keiner Weise angewendet.
  • Der Trojaner ist in C++ programmiert, durch einen Microsoft-Compiler zusammengesetzt und die Umsetzung der kryptografischen Algorithmen ist einer OpenSSL-Bibliothek entnommen.

Interessante Fakten

  • Die frühen Versionen von TeslaCrypt (0.2.5 – 0.3.x) haben selbstständig überprüft, ob auf der Website http://blockchain.info eine Zahlung in Bitcoin eingegangen ist. Im Erfolgsfall berichtete der Schädling dem Steuerungsserver darüber und erhielt daraufhin den Schlüssel zur Dechiffrierung der Dateien. Dieses Schema ist angreifbar, da es einem Spezialisten ermöglicht, selbst eine solche Anfrage an den C&C-Server zu richten und auch ohne Zahlungseingang den geheimen Schlüssel zu erhalten.
  • Die Versionen 0.2.5 – 0.3.x verwahrten den Dechiffrierungsschlüssel (zusammen mit anderen Daten) in einer eigenen Dienstdatei key.dat. Der Bereich mit dem Schlüssel wurde in dieser Datei erst nach Abschluss der Verschlüsselung mit Nullen gelöscht, wodurch es möglich war, den Schlüssel zu speichern, wenn die Arbeit des Verschlüsselungsprogramms unterbrochen wurde (beispielsweise durch Abschalten des PCs). Danach konnte der Schlüssel aus der Datei key.dat entnommen werden, um alle Dateien zu dechiffrieren.
  • In der Version 0.4.0 wurde die Datei key.dat in storage.bin umbenannt und der Dechiffrierungsschlüssel wurde nicht in offener Form gespeichert, sondern nach dem Modul des Systems der standardmäßigen elliptischen Kurve secp256k1 umgewandelt. Nach Abschluss der Verschlüsselung wurde der Schlüssel nicht mit Nullen gelöscht, sondern mit zufälligen Bytes, doch solange dieser Bereich nicht gelöscht ist, kann man den Schlüssel trotzdem extrahieren – das wurde auch in unserem Tool RakhniDecryptor umgesetzt.

Heute

Vor kurzem erregte ein Sample dieses Trojaners mit der internen Versionsnummer 2.0.0 unsere Aufmerksamkeit – was hatte sich wohl dieses Mal geändert?

Als Erstes sprang uns ins Auge, dass der Code aus TeslaCrypt verschwunden war, der für die Darstellung der GUI (Grafische Benutzeroberfläche) verantwortlich ist. Anstelle dessen zeigt der Trojaner nach der Verschlüsselung nun im Browser eine HTML-Seite an, die von einem anderen weit verbreiteten Erpresserprogramm kopiert wurde – CryptoWall 3.0.

TeslaCrypt 2.0 im Gewand von CryptoWall

Die Seite, die sich mit einem Klick auf den dem Opfer angebotenen Link öffnet, imitiert vollständig die Bezahlseite von CryptoWall, doch selbstverständlich führt die angezeigte URL auf einen Server von TeslaCrypt – die Autoren dieses Trojaners haben eindeutig nicht die Absicht, das Geld ihrer Opfer der Konkurrenz zu überlassen.

TeslaCrypt 2.0 im Gewand von CryptoWall

TeslaCrypt füllt eine Zeile mit Text über CryptoWall

Wozu diese Maskerade? Hier können wir nur raten: Möglicherweise wollten die Cyberkriminellen ihre Opfer auf diese Weise von dem Ernst der Lage überzeugen. Denn die Dateien lassen sich nach einer „Behandlung“ mit CryptoWall bis heute nicht entschlüsseln, was man von vielen Infektionsfällen mit TeslaCrypt nicht behaupten kann.

So oder so, das ist nicht die einzige Veränderung, die die neue Version von TeslaCrypt bereithält. Wieder einmal wurde das kryptografische Schema weiterentwickelt, was zur Folge hat, dass es nun noch „aufgemotzter“ ist. Bei der Generierung der Schlüssel wird der Algorithmus ECDH angewendet (die Cyberkriminellen haben ihn in den Versionen 0.3.x eingeführt), doch im Gegensatz zu vorherigen Versionen scheint er jetzt eher angebracht zu sein, da er einem bestimmten Zweck dient – er ermöglicht es den Cybergangstern Dateien zu entschlüsseln und dabei nur den „Master-Key“ zu benutzen. Doch alles schön der Reihe nach.

Kryptografisches Schema von TeslaCrypt 2.0

Erzeugung von Schlüsseldaten

Der Trojaner verwendet zwei Schlüssel-Sets: „Masterschlüssel“, die innerhalb eines infizierten Systems einmalig sind, und „Sitzungsschlüssel“, die bei jedem Neustart des Schädlings im System neu generiert werden.

Erzeugung der Master-Keys

Q sei die standardmäßige elliptische Kurve secp256k1 („SECG Kurve über einem 256-Bit-Primkörper“), und G sei das bildende Element der zyklischen Untergruppe der Punktgruppe auf der Kurve.

malware_pub sei der im Körper des Trojaners enthaltene offene Schlüssel der Cyberkriminellen (er ist ein Punkt auf der Kurve Q und wird in Form der Koordinaten x, y gespeichert).

Bei der Infektion eines Systems erzeugt der Trojaner Folgendes:

  • install_id – Infektions-ID – willkürliche 8 Byte.
  • master_btc_priv – geheimer Masterschlüssel – zufällige 32 Byte; wird an den C&C-Server geschickt.
  • master_btc_pub = master_btc_priv * G (Punkt auf der Kurve) – öffentlicher Masterschlüssel; wird in verschlüsselten Dateien gespeichert.
  • btc_address – Bitcoin-Adresse zum Erhalt der Lösegeldzahlung – wird mit einem Standard-Bitcoin- Algorithmus auf Grundlage von master_btc_pub generiert.
  • master_ecdh_secret = ECDH(malware_pub, master_btc_priv) – „allgemeiner Masterschlüssel“, wird für die Dechiffrierung benötigt, wenn master_btc_priv verloren gegangen oder nicht beim C&C angekommen ist; in dieser Form wird er nirgends gespeichert.
  • master_ecdh_secret_mul = master_ecdh_secret * master_btc_priv – Zahl, die die Wiederherstellung von master_btc_priv ermöglicht; wird im System gespeichert.

Anwendung
master_btc_priv (in Übereinstimmung mit dem Bitcoin-Funktionsprinzip) – das ist der private Schlüssel, der unerlässlich ist, um die Bitcoins „abzuheben, die an die frisch erstellte Adresse btc_address geschickt wurden.

Erzeugung von Session-Keys

Bei jedem Start (bei der Erstinfektion oder beispielsweise nach einem Neustart des Computers) generiert der Trojaner immer wieder aufs Neue:

  • session_priv – privater Sitzungsschlüssel – willkürliche 32 Byte. Er wird für die Verschlüsselung der Dateien verwendet und nirgends gespeichert.
  • session_pub = session_priv * G – öffentlicher Sitzungsschlüssel. Wird in verschlüsselten Dateien gespeichert.
  • session_ecdh_secret = ECDH(master_btc_pub, session_priv) – „allgemeiner Sitzungsschlüssel“ – unerlässlich für die Entschlüsselung der Dateien, wird in dieser Form nirgends gespeichert.
  • session_ecdh_secret_mul = session_ecdh_secret * session_priv – Zahl, die die Wiederherstellung von session_ecdh_secret ermöglicht. Wird in verschlüsselten Dateien gespeichert.

Im System gespeicherte Schlüsseldaten

Im Gegensatz zu früheren Versionen verwendet TeslaCrypt 2.0.0 zur Speicherung von Daten nicht key.dat oder storage.bin. Stattdessen wird die Registry benutzt: In HKCUSoftwaremsysID wird der Wert install_id gespeichert, und in HKCUSoftware<install_id>data ist die folgende Struktur untergebracht:

TeslaCrypt 2.0 im Gewand von CryptoWall

In der gewohnten Syntax der Sprache C lässt es sich folgendermaßen beschreiben:

TeslaCrypt 2.0 im Gewand von CryptoWall

Und so sieht das in einem infizierten System aus:

TeslaCrypt 2.0 im Gewand von CryptoWall

Verschlüsselung der Dateien

Beginnend mit Version 0.3.5 infiziert TeslaCrypt sowohl normale Speichermedien, die an das System angeschlossen sind, als auch alle verfügbaren Dateiressourcen (shares), selbst wenn sie nicht als Festplatte mit eigenem Buchstaben installiert sind. Übrigens können sich einige Verschlüsselungsprogramme einer solchen Funktionalität rühmen.

Jede Datei wird mit dem Algorithmus AES-256-CBC mit dem Schlüssel session_priv verschlüsselt. Die chiffrierte Datei erhält die zusätzliche Erweiterung “.zzz”. Am Anfang der Datei wird eine Dienststruktur platziert, darauf folgt der verschlüsselte Inhalt. Das Format der Struktur:

TeslaCrypt 2.0 im Gewand von CryptoWall

Dieselbe Struktur in der Syntax der Sprache C:

TeslaCrypt 2.0 im Gewand von CryptoWall

Entschlüsselung der Dateien

Die Autoren von TeslaCrypt 2.0.0 haben die Funktion zur Dechiffrierung der Dateien komplett aus dem Schädling entfernt, die in den vorhergehenden Versionen noch vorhanden war. Ausgehend von der Analyse des oben vorgestellten kryptografischen Schemas, sehen wir folgende Algorithmen zur Entschlüsselung der Dateien:

  1. wenn master_btc_priv bekannt ist, muss:

    • aus der verschlüsselten Datei session_pub ausgelesen werden;
    • session_ecdh_secret = ECDH(session_pub, master_btc_priv) berechnet werden;
    • session_ecdh_secret_mul aus der verschlüsselten Datei gelesen werden;
    • session_priv = session_ecdh_secret_mul / session_ecdh_secret berechnet werden;
    • die Datei mit dem Schlüssel session_priv dechiffriert werden.
  2. Gibt es keine master_btc_priv, doch malware_priv ist bekannt (ist nur den Cyberkriminellen bekannt, die im Körper des Trojaners entsprechend malware_pub platziert haben), muss/müssen:

    • Aus der Registry oder aus der verschlüsselten Datei master_btc_pub ausgelesen werden;
    • master_ecdh_secret = ECDH(master_btc_pub, malware_priv) berechnet werden;
    • aus der verschlüsselten Datei master_ecdh_secret_mul ausgelesen werden;
    • master_btc_priv = master_ecdh_secret_mul / master_ecdh_secret berechnet werden;
    • mit dem Wissen von master_btc_priv die Schritte aus Punkt eins durchgeführt werden.

Um das Geschehen vollständig zu verstehen, ist es wünschenswert, sich mit dem Diffie-Hellman-Algorithmus vertraut zu machen und seiner Version für die elliptische Kurve, ECDH, zum Beispiel hier.

Weitere Besonderheiten

Umgehung der Erkennung

Im Trojaner wird eine Technik zur Umgehung der Erkennung benutzt, die auf der Anwendung von COM-Objekten basiert. Wir entdeckten sie zum ersten Mal in TeslaCrypt Version 0.4.0, doch seither war sie geringfügigen Veränderungen unterworfen. Der von einem Sample der Version 2.0.0 generierte Pseudocode sieht folgendermaßen aus:

TeslaCrypt 2.0 im Gewand von CryptoWall

Kommunikation mit dem Steuerungsserver

Das Sample des Trojaners enthält eine statische Liste mit den Adressen der C&C. Die Server selbst befinden sich im Netz Tor, doch die Kommunikation wird über das gewöhnliche web mit Hilfe von tor2web-Diensten umgesetzt.

Bis zu TeslaCrypt der Version 0.4.1 wurden Anfragen an den Server in offener Form verschickt, in den folgenden Versionen wurden sie mit dem Algorithmus AES-256-CBC verschlüsselt; als Schlüssel wird die SHA256 von einer statischen Zeile aus dem Körper des Schädlings genommen.

Die Bildung der HTTP-Anfrage, die vom Trojaner bei der Infektion des Systems versendet wird, ist auf dem Screenshot des Pseudocodes dargestellt.

TeslaCrypt 2.0 im Gewand von CryptoWall

Verbreitung

Es wurde beobachtet, dass die Schädlinge aus der Familie TeslaCrypt mit Hilfe der Exploit-Packs Angler, Sweet Orange und Nuclear in Umlauf gebracht werden. Bei diesem Verbreitungsschema geht das Opfer auf eine infizierte Websites und der Schadcode des Exploits, das eine Sicherheitslücke im Browser ausnutzt, (am häufigsten solche in Plugins), installiert im System die eigentliche Ziel-Malware.

TeslaCrypt 2.0 im Gewand von CryptoWall

Geografische Verteilung der von Schädlingen der Familie TeslaCrypt angegriffenen Anwender

Empfehlungen

Zum Schutz ihrer Daten vor Verschlüsselungsprogrammen empfehlen wir, Sicherheitskopien aller wichtigen Dateien zu erstellen. Die Kopien sollten regelmäßig gemacht und auf Datenträgern gespeichert werden, die nicht zum Schreiben zur Verfügung stehen, außer direkt beim Erstellen der Sicherheitskopie. Für Heimanwender bedeutet das also, dass sie die Kopie auf einer externen Festplatte speichern, die sofort nach Fertigstellung des Backups physisch vom Rechner getrennt wird.

Von immenser Wichtigkeit ist es zudem, die auf dem System laufende Software rechtzeitig zu aktualisieren (insbesondere Plugins für den Browser und den Browser selbst), da die Hersteller ständig neu entdeckte Sicherheitslücken schließen, die von Cyberkriminellen ausgenutzt werden könnten.

Wenn es einem Schädling trotzdem einmal gelingen sollte, ins System einzudringen, so hilft ein Antiviren-Produkt mit aktuellen Datenbanken und aktivierten Schutzmodulen, ihn zu stoppen. Das betrifft besonders das proaktive Schutzmodul, das im Fall von 0-Day-Bedrohungen die letzte Verteidigungslinie darstellt.

Ähnliche Beiträge

Es gibt 1 Kommentar
  1. wpv

    Vor einigen Tagen musste ich mit Schrecken feststellen, das 5 PC,s crypto infiziert sind. Ich nicht mehr Drucken und CD,s Brennen. Als Musiker, Komponist ein „nerve wrecking“ mühsam.. Ich arbeite mit MuseScore (Notensatz) und Magix Music Maker
    Kann sich diese Malware via USB Stick, DVD mp3 oder via Mail verbreiten? Sind alle Daten auch verseucht? Muss ich jetzt alle HD,s neu formatieren?
    Win 8 und 10 werde ich abschiessen. Für mich ist das kriminell. Alle Default Werte Zugriffsrecht auf Alle/Jeder.. Windoof ist für mich gestorben. Ich werde auf Mac umstellen und wieder den guten alten Atari (Steinberg Creator) benutzen. Nur mein alter DT ist OnLine aber mit IP Verschlüsselung.
    Computer sind für mich Werkzeuge.
    Ja, ich habe Ärger und bald eine Woche Zeit verschleudert. Ausserdem wurde ein Bank Konto von mir geplündert. Hohe 5-stellige Summe. Bank und Polizei sind da am Ermitteln. Als Künstler habe ich kein regelmässiges Einkommen. Ohne dieses Polster ist meine Existenz bedroht. Wenn das diese Bubis befriedigt – so haben sie bei mir Erfolg. Mit Intelligenz und genial hat das nichts zu tun. Mir tun diese grossen Bubis einfach leid. Erbärmliche Autoerotiker.

Schreibe einen Kommentar

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