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