07.04.2016 Aufrufe

ct.16.07.086-087

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Know-how | Erpressungs-Trojaner analysiert<br />

Ronald Eikenberg, Jürgen Schmidt<br />

Trojaner auf Raubzug<br />

Verschlüsselungs-Malware analysiert<br />

Bei Verschlüsselungs-Trojanern handelt es sich in aller Regel um recht einfach gestricktes<br />

Teufelszeug. Wir haben uns TeslaCrypt, den Trun-Trojaner und Locky etwas genauer angesehen.<br />

Das Herzstück der Erpressungs-Trojaner<br />

ist die Verschlüsselung. Viele behaupten,<br />

die Daten mit RSA mit mindestens 2048<br />

oder 4096 Bit zu verschlüsseln. Das soll wohl<br />

die Opfer beeindrucken, ist aber Blödsinn.<br />

RSA wird eigentlich nie für das Verschlüsseln<br />

nennenswerter Datenmengen verwendet –<br />

das Verfahren arbeitet dafür viel zu langsam.<br />

Manche Ransomware benutzt zwar RSA.<br />

Sie verschlüsselt aber damit lediglich die nur<br />

wenige Byte langen Schlüssel – reguläre Verschlüsselungsprogramme<br />

machen das übrigens<br />

auch so. Die Verschlüsselung der eigentlichen<br />

Daten erfolgt immer mit einem<br />

schnellen, symmetrischen Verfahren wie<br />

AES. Das ist schon mit 128 Bit nicht zu knacken;<br />

bei den oft eingesetzten 256-Bit-<br />

Schlüsseln ist ein solcher Versuch völlig aussichtslos.<br />

Das bedeutet konkret: Ohne den<br />

AES-Schlüssel gibt es keinen Zugang zu den<br />

Daten.<br />

Dieser AES-Schlüssel steht typischer -<br />

weise im Kopf der verschlüsselten Dateien –<br />

ist dort aber seinerseits durch Verschlüsselung<br />

vor dem Zugriff gesichert. An diesem<br />

Punkt haben die Entwickler von TeslaCrypt<br />

geschlampt. Statt auf bewährte Verfahren<br />

wie RSA zu setzen, haben sie etwas Eigenes<br />

zusammengepfuscht. Das führt dazu, dass<br />

im Kopf einer TeslaCrypt2-typischen .vvv-<br />

Datei das Produkt zweier Schlüssel steht –<br />

von denen einer der benötigte AES-Schlüssel<br />

ist. Da es sich bei beiden Schlüsseln um<br />

256-Bit-Zahlen handelt, muss man lediglich<br />

eine 512-Bit-Zahl faktorisieren und die Faktoren<br />

danach wieder richtig zusammensetzen,<br />

um den benötigten AES-Schlüssel zu<br />

errechnen.<br />

Das kann im Extremfall einige Tage dauern,<br />

oft aber auch nur wenige Minuten, weil<br />

es viele kleine Prim-Faktoren gibt, die schnell<br />

gefunden werden. Allerdings zöge sich der<br />

Vorgang trotzdem unangenehm in die<br />

Länge, wenn man ein paar tausend Dateien<br />

entschlüsseln muss. Da kommt den Opfern<br />

ein zweiter Bock zugute, den die TeslaCrypt-<br />

Entwickler geschossen haben: Der Trojaner<br />

würfelt beim Start zwar einen zufälligen AES-<br />

Schlüssel aus, verwendet diesen aber für alle<br />

Dateien. Nur wenn der Trojaner etwa durch<br />

einen Neustart unterbrochen wird, kommt<br />

ein neuer Schlüssel zum Einsatz. Im Normalfall<br />

kann man also alle Dateien mit dem einmal<br />

errechneten AES-Schlüssel dekodieren;<br />

ansonsten ist noch eine zweite Faktorisierung<br />

nötig.<br />

Mit GPG verschlüsselt<br />

Der weniger bekannte Trun-Trojaner arbeitet<br />

sorgfältiger und setzt das Open-Source-Tool<br />

GnuPG ein, um Dateien zu verschlüsseln.<br />

Dazu holt er sich von einem Server das Original-Programm<br />

gpg.exe und erzeugt damit<br />

im Batch-Modus auf dem infizierten Rechner<br />

ein neues PGP-Schlüsselpaar für einen<br />

Benutzer namens „Cellar“. Dessen geheimen<br />

Schlüssel exportiert er aus dem GPG-Schlüsselbund<br />

und verschlüsselt ihn dann.<br />

echo Key-Type: RSA > vrbom6q1.jt0bpfga<br />

echo Key-Length: 1024 >> vrbom6q1.jt0bpfga<br />

echo Name-Real: Cellar >> vrbom6q1.jt0bpfga<br />

gpg.exe --batch --gen-key vrbom6q1.jt0bpfga<br />

gpg.exe -r Cellar --export-secret-keys ...<br />

gpg.exe -r kkkkk ... -o trun.KEY<br />

Die Verschlüsselung richtet sich an einen<br />

Benutzer mit den Pseudonym „kkkkk“, dessen<br />

öffentlichen PGP-Schlüssel der Trun-Trojaner<br />

bereits mitbringt. Anschließend löscht<br />

der Trojaner den geheimen Cellar-Schlüssel<br />

und macht sich ans Werk: Er verschlüsselt<br />

alle möglichen Dateien mit dem öffentlichen<br />

Cellar-Key.<br />

Die Schlüssel-Datei trun.KEY verbleibt<br />

zwar auf dem infizierten System; sie lässt sich<br />

aber nicht knacken. Gemäß Anleitung sendet<br />

sie ein zahlungswilliges Opfer an den Erpresser,<br />

der sie mit seinem geheimen kkkkk-<br />

Schlüssel dechiffrieren kann. Das liefert den<br />

geheimen Cellar-Schlüssel für ein Entschlüsselungs-Skript,<br />

das er nach Eingang des Lösegeldes<br />

zurückschickt.<br />

Auch GPG arbeitet beim Verschlüsseln<br />

von Daten mit einem symmetrischen Verfahren.<br />

Standardmäßig kommt CAST5 zum Einsatz,<br />

das ebenso wenig zu knacken ist wie<br />

AES. Nur der für jeden Verschlüsselungsvorgang<br />

zufällig ausgewürfelte CAST5-Schlüssel<br />

wird mit RSA verschlüsselt.<br />

Knacken lässt sich die Verschlüsselung des<br />

Trun-Trojaners somit nicht. Einziger Schwachpunkt<br />

ist der lokal auf dem System des Opfers<br />

erzeugte geheime Cellar-Schlüssel. Ihn<br />

löscht der Trojaner zwar, aber mit etwas<br />

Glück findet man bei einer foren sischen Analyse<br />

der Festplatte noch Spuren davon.<br />

Locky auf die Finger geschaut<br />

Wie es aussieht, wenn sich Profis der Sache<br />

annehmen, demonstriert Locky mit erschreckender<br />

Perfektion. Der Krypto-Trojaner ist<br />

derzeit einer der erfolgreichsten und gefähr-<br />

86 c’t 2016, Heft 7<br />

©<br />

Copyright by Heise Medien<br />

Persönliches PDF für Markus Sonderegger aus 8500 Frauenfeld


Know-how | Erpressungs-Trojaner analysiert<br />

lichsten Vertreter seiner Gattung. Zeitweise<br />

hat er über 5000 Rechner pro Stunde verschlüsselt<br />

– allein in Deutschland. Soweit bisher<br />

bekannt, gibt sich die vermutlich von der<br />

Dridex-Gang geschriebene Ransomware<br />

keine Blöße.<br />

Nach dem Start nimmt der Krypto-Trojaner<br />

sofort Kontakt mit einem Commandand-Control-Server<br />

(C&C) auf – natürlich verschlüsselt.<br />

Dabei übermittelt er eine 16-stellige<br />

GUID, die von der einzigartigen Volume-<br />

ID der Windows-Platte abgeleitet wird. Über<br />

diese GUID verwalten die Täter ihre Opfer.<br />

Der HTTP-Post-Request an main.php enthält<br />

unter anderem den Parameter act=getkey, über<br />

den Locky einen individuellen RSA-Schlüssel<br />

(Public Key) für die Verschlüsselung anfordert.<br />

Der für die Entschlüsselung benötigte<br />

geheime Schlüssel verbleibt auf dem C&C-<br />

Server – außer Reichweite der Opfer.<br />

Auch Locky verschlüsselt die Dateien<br />

nicht mit dem 2048 Bit langen RSA-Schlüssel,<br />

sondern lediglich mit AES-Schlüssel. Doch<br />

anders als TeslaCrypt erzeugt Locky für jede<br />

Datei einen neuen, zufälligen AES-Schlüssel.<br />

Dabei nimmt der Schädling alles ins Visier,<br />

was Anwendern lieb und teuer ist: Bilder,<br />

Musik, Videos, Dokumente, Datenbanken,<br />

Programm-Code – selbst Zertifikate, PGP-<br />

Schlüssel und Bitcoin-Wallets bleiben nicht<br />

verschont. Der Name der verschlüsselten Dateien<br />

beginnt mit der 16-stelligen Opfer-ID<br />

und endet auf .locky. Bislang zeichnet sich<br />

kein Weg ab, wie man diese Dateien ohne<br />

die Hilfe der Erpresser wieder dechiffrieren<br />

könnte.<br />

Verbreitet wird Locky vor allem über<br />

Mails, denen ein Zip-Archiv anhängt. Darin<br />

befindet sich entweder ein Office-Dokument<br />

mit Makro-Code oder ein wenige KByte großes<br />

Skript (zum Beispiel mit der Endung .js),<br />

das vom Windows Script Host ausgeführt<br />

wird. Der Zweck der Anhänge ist identisch:<br />

Es handelt sich um sogenannte Dropper, die<br />

per HTTP die aktuelle Version des Krypto-<br />

Trojaners herunterladen und ausführen –<br />

meist von irgendeinem gehackten Server.<br />

Eine von uns untersuchte Locky-Payload<br />

hieß bba3e983…eec12a4.exe und war etwa<br />

186 KByte groß. Sie landete im Temp-Ordner<br />

von Windows; das kann sich aber ebenso wie<br />

der Verbreitungsweg bei künftigen Versionen<br />

ändern. Das Programm enthält einige<br />

fest einprogrammierte C&C-Server-Adressen.<br />

Für Backup sorgt ein sogenannter Domain<br />

Generation Algorithmus, der abhängig vom<br />

aktuellen Datum die Domain eines C&C-Servers<br />

errechnet. Die Locky-Hintermänner registrieren<br />

diese Domains zeitnah, um die Informationen<br />

der infizierten Rechner einzusammeln<br />

und Schlüssel auszuliefern. Ist<br />

keiner der Server erreichbar, schlägt Locky<br />

mangels Krypto-Schlüssel auch nicht zu und<br />

löscht sich klammheimlich. Solche DGAs für<br />

C&C-Server kommen übrigens bei Bot-Netzen<br />

schon länger zum Einsatz.<br />

Im Rahmen der Kommunikation mit dem<br />

C&C informiert Locky seinen Herrn und Meister<br />

über die installierte Windows-Version, ob<br />

es sich um ein 64-Bit-System handelt und<br />

Locky kommuniziert mit<br />

seinem Command-and-<br />

Control-Server – natürlich<br />

verschlüsselt.<br />

welche Systemsprache eingestellt<br />

ist. Über die Action „gettext“<br />

fragt der Schädling die<br />

aktuelle Erpresser-Botschaft in<br />

der passenden Sprache ab,<br />

über die Action „stats“ übermittelt<br />

er zudem Informationen<br />

über die verschlüsselten<br />

Dateien.<br />

Der Erpressungs-Trojaner<br />

hinterlässt in der Registry unter HKEY_CUR-<br />

RENT_USER\SOFTWARE\Locky die Opfer-ID<br />

(„id“), die Erpresser-Botschaft („paytext“), den<br />

eingesetzten RSA-Key („pubkey“) und die Informationen,<br />

ob die Verschlüsselung erfolgreich<br />

vollzogen wurde („completed“).<br />

Locky verschlüsselt nicht nur Dateien auf<br />

Platten, USB-Speicher, RAM-Disks und eingebundenen<br />

Netzwerk-Laufwerken. Er macht<br />

sich auch im Netz auf die Suche nach erreichbaren<br />

Netzwerk-Freigaben. Wird er dabei<br />

fündig, bindet er das Laufwerk ein, um dort<br />

mit seinem zerstörerischen Tun fortzufahren.<br />

Wenn ein Netz-Admin also allzu freizügig<br />

Freigaben eingerichtet hat und für den einfachen<br />

Datenaustausch kurzerhand auf allen<br />

Systemen komplette Laufwerke exportiert,<br />

rächt sich das bei einer Locky-Infektion bitter.<br />

Doppelt und dreifach<br />

Eine Locky-Infektion kann man kaum übersehen.<br />

Nicht nur legt der Schädling in jedem<br />

Ordner eine Datei namens _Locky_recover_<br />

instructions.txt ab, die in der Systemsprache<br />

informiert, wie das Opfer den zur Entschlüsselung<br />

der .locky-Dateien nötigen Decryptor<br />

kaufen kann. Um sicherzustellen, dass das<br />

Opfer diese Kaufempfehlung auch nicht<br />

Die Locky-Verschlüsselung<br />

übersieht, speichert Locky die Textdatei auch<br />

auf dem Desktop und öffnet sie mit dem<br />

Editor.<br />

Damit nicht genug, generiert der Trojaner<br />

aus dem abgerufenen Erpressertext dynamisch<br />

noch eine Bitmap namens _Locky_recover_instructions.bmp,<br />

die ebenfalls geöffnet<br />

und sogar als Desktop-Hintergrund gesetzt<br />

wird. Nach getaner Arbeit löscht sich<br />

Locky dann selbstständig.<br />

Der Decryptor kostet in der Regel ein halbes<br />

Bitcoin, was umgerechnet rund 190 Euro<br />

entspricht. Das Opfer muss ihn bei einem<br />

Hidden Service im Tor-Netz erwerben, dessen<br />

Adresse die Erpresser-Botschaft nennt.<br />

Das dient nicht etwa der Sicherheit des Opfers,<br />

sondern der Erpresser: Durch das zwischengeschaltete<br />

Anonymisierungs-Netz lassen<br />

sich deren Systeme nicht lokalisieren.<br />

Der mit etwas Glück zurückgelieferte Decryptor<br />

bringt den geheimen RSA-Schlüssel<br />

mit, der zu dem von Locky abgerufenen Public<br />

Key passt. Das Tool funktioniert somit<br />

nur auf dem Rechner des Opfers, das bezahlt<br />

hat. Es handelt sich um ein unspektakuläres<br />

Kommandozeilen-Tool, das sich – wie zuvor<br />

Locky – durch Datenträger und Freigaben<br />

frisst, um die Verschlüsselung wieder umzukehren.<br />

(ju@ct.de) c<br />

Nur mit dem RSA-Schlüssel (blau) kann man den AES-Schlüssel dechiffrieren, den<br />

man benötigt, um die Datei wieder herzustellen. Doch dieser RSA-Schlüssel liegt<br />

nur auf dem C&C-Server der Erpresser.<br />

Sonne.jpg<br />

01110...<br />

163....locky<br />

R<br />

S<br />

A<br />

A<br />

E<br />

S<br />

163...<br />

C&C-Server<br />

c’t 2016, Heft 7<br />

©<br />

Copyright by Heise Medien<br />

Persönliches PDF für Markus Sonderegger aus 8500 Frauenfeld<br />

87

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!