Ransomware unter der Lupe am Beispiel von Vipasana – Teil I
Die Eigenschaften der Ransomware Vipasana und warum sie nicht entschlüsselt werden kann
Ransomware ist eine Cyberbedrohung, die nun schon seit ein paar Jahren kursiert. Doch ist sie alles andere als rückläufig. Stattdessen erlangte sie im Februar eine negative Berühmtheit, als gleich mehrere Krankenhäuser durch Ransomware lahmgelegt wurden. Das Businessmodell ist natürlich unglaublich verlockend für Kriminelle: Sobald die Schadsoftware ausgeführt wird, werden alle wichtigen Dateien verschlüsselt. Aus den dunkelsten Tiefen Ihres Systems taucht sie dann, sobald das Werk vollbracht ist, mit einer Lösegeldforderung wieder auf.
Nun stehen Sie vor einer schweren Entscheidung: Zahlen Sie zwischen ein paar hundert oder tausend Euro an die Erpresser, oder riskieren Sie, Ihre Daten nie wieder in Klartext zu sehen. Stellen Sie sich einmal vor, wie viele Daten Sie auf Ihrem Gerät haben, die für Sie unentbehrlich sind. Das können wichtige Geschäftsdaten sein, oder aber Urlaubsfotos mit Ihren Liebsten, die einen hohen emotionalen Wert haben. Dann werden Sie verstehen, warum Ransomware wirklich für Albträume sorgen kann.
Habe ich schon erwähnt, dass es keine Garantie dafür gibt, dass die Daten wieder entschlüsselt werden, falls Sie das Lösegeld zahlen?
Also, was tun? Wenn man die Kriminellen bezahlt trägt das offensichtlich nicht zur Lösung des Gesamtproblems bei. Allerdings empfiehlt sogar das FBI stellenweise diesen Schritt, wenn es das kleinere Übel ist und es keine bessere Lösung gibt. Eine weitere Option ist abzuwarten, bis ein Sicherheitsexperte den Kampf gegen die Ransomware aufnimmt, diese analysiert, bricht und ein Entschlüsselungstool dafür veröffentlicht. Das ist in der Vergangenheit tatsächlich schon öfters vorgekommen.
Jedoch scheint es einen hartnäckigen Kern an Verschlüsselungsmalware zu geben, die sich jeglichen Versuchen sie zu brechen widersetzt. Jedenfalls scheint niemand in der Lage zu sein, ein Entschlüsselungstool dafür zu entwickeln. Darum stellt sich mir die Frage: Ist sie wirklich so sicher oder gibt es immer einen Weg um die Daten zu entschlüsseln?
Mit dieser Fragestellung möchten wir eine exemplarische Variante von Ransomware näher betrachten. Im ersten Teil dieser zweiteiligen Serie schauen wir uns die Ransomware Vipasana und deren Aufbau einmal genauer an. Im nächsten Teil widmen wir uns dann ausführlich Ihren Schwachstellen.
Ein Kryptovirus namens Vipasana – Eine Ransomware mit einer völlig neuen Eigenschaft
Für unsere Analyse haben wir uns die – angeblich russische – Ransomware Vipasana genauer angeschaut. Unsere Version hat den MD5-Hash 2aea3b217e6a3d08ef684594192cafc8. Die Version kursiert mindestens seit dem 20. Dezember 2015 und wurde als erstes in Blaze’s Security Blog ausführlicher beschrieben. Der Name stammt von einer früheren Version der Ransomware, die als Kontaktmöglichkeit zu den Erpressern die E-Mail-Adresse vipasana4@aol.com angab.
Eine Eigenschaft von Vipasana stach von Anfang an besonders hervor: Sie war eine der ersten Ransomware-Versionen, die keine Internetverbindung benötigte, um ihre Missetaten zu veranstalten. Das war zu diesem Zeitpunkt innovativ, denn zuvor war die Strategie von Ransomware folgendermaßen:
- Die Ransomware kreiert ein RSA-Schlüsselpaar und verschlüsselt die Dateien auf dem infizierten Gerät mit einem öffentlichen Schlüssel – meistens einem Hybridansatz folgend, der symmetrische und asymmetrische Verschlüsselung kombiniert.
- Sie schickt den privaten Schlüssel, der für die Entschlüsselung der Dateien notwendig ist, an die Erpresser.
- Sie gibt diesen privaten Schlüssel zurück sobald das Lösegeld bezahlt wurde – Oder auch nicht, je nach Erpresser.
Vipasana hingegen verfügt von vorne herein über einen integrierten öffentlichen Schlüssel. Der private Schlüssel, der für die Entschlüsselung nötig ist, erreicht zu keinem Zeitpunkt das infizierte Gerät, was auch nicht notwendig ist für die Verschlüsselung der Daten. Das bedeutet, dass dieses Virus keine Informationen über ein Netzwerk versenden muss. Der Erpresser behält alle Informationen, die nötig sind, um die Dateien wieder freizugeben. Wie genau die Verschlüsselung bei Vipasana funktioniert, folgt weiter unten.
Vipasana legt los – Was passiert und was ist zu sehen?
Der Moment, in dem Sie merken, dass etwas nicht stimmt, ist wenn sich der Desktophintergrund plötzlich und ohne Ihr Zutun ändert. Plötzlich sehen Sie diese seltsame, chaotische Kollage als Hintergrundbild, die unter anderem eine Warnung in giftgrüner Schrift und eine unübersehbare E-Mail-Adresse in knalligem Rot enthält. Aber wer bitte ist Johnmen.24?
Wenn Sie dieses Bild sehen, sind Ihre Daten leider schon längst von Vipasana verschlüsselt.
Weiter unten auf dem Hintergrundbild steht die Behauptung, dass alle „funds“, also das Lösegeld, für die Erhaltung der Umwelt eingesetzt werden. Doch eine gewisse Skepsis ist angebracht, ob das tatsächlich der Wahrheit entspricht. Wir jedenfalls nehmen den Erpressern Ihr Robin-Hood-ähnliches Versprechen nicht ab.
Zwei Dinge werden jedoch unmissverständlich deutlich gemacht: Erstens, Sie können nicht mehr auf Ihre Dateien zugreifen. Zweitens, Sie sollen einen gewissen johnmen.24@aol.com per E-Mail kontaktieren. Ihr System ist mit dieser E-Mail-Adresse zugepflastert, selbst die verschlüsselten Dateien sind nun damit dekoriert.
Das Kryptovirus verschlüsselt alle Dateien mit den folgenden Dateiendungen:
.r3d, .rwl, .rx2, .p12, .sbs, .sldasm, .wps, .sldprt, .odc, .odb, .old, .nbd, .nx1, .nrw, .orf, .ppt, .mov, .mpeg, .csv, .mdb, .cer, .arj, .ods, .mkv, .avi, .odt, .pdf, .docx, .gzip, .m2v, .cpt, .raw, .cdr, .cdx, .1cd, .3gp, .7z, .rar, .db3, .zip, .xlsx, .xls, .rtf, .doc, .jpeg, .jpg, .psd, .ert, .bak, .xml, .cf, .mdf, .fil, .spr, .accdb, .abf, .a3d, .asm, .fbx, .fbw, .fbk, .bdb, .fbf, .max, .m3d, .dbf, .ldf, .keystore, .iv2i, .gbk, .gho, .sn1, .sna, .spf, .sr2, .srf, .srw, .tis, .tbl, .x3f, .ods, .pef, .pptm, .txt, .pst, .ptx, .pz3, .mp3, .odp, .qic, .wps
Um während des Verschlüsselungsprozesses nicht aufzufallen, werden die Dateien auf dem Desktop nicht verschlüsselt.
Der Verschlüsselungsalgorithmus der Ransomware Vipasana
Vipasana ist nicht nur interessant, weil es keine Internetverbindung benötigt. Wie sich herausstellt, benutzt es auch seinen eigenen Verschlüsselungsalgorithmus. Frühere Annahmen, dass das Virus mit AES verschlüsselt, sind somit also widerlegt.
Die folgende Grafik gibt einen Überblick über den Verschlüsselungsalgorithmus von Vipasana.
Der Algorithmus ist eine sogenannte Stromverschlüsselung. Diese generiert zuerst einen Strom an Bytes, der so lang ist wie der Klartext, der verschlüsselt werden soll. Anschließend werden die Zeichen von diesem Strom von Bytes (dem Schlüsselstrom) Zeichen für Zeichen mit dem Klartext kombiniert.
Wie der Schlüsselstrom generiert wird, sehen Sie in der Grafik rechts oben. Einerseits gibt es in der Datei einen Block von 2048 willkürlichen Zeichen. Andererseits haben wir eine Liste von 512 Positionen in der gleichen Datei. Wir nutzen nun diese 512 Positionen um 512 Zeichen aus dem 2048-Byte-langen Block auszuwählen. Das was dabei herauskommt, ist der innere Zustand des Pseudozufallszahlengenerators (PRNG; engl.: Pseudo Random Number Generator). Dieser PRNG funktioniert folgendermaßen: Er nutzt und manipuliert den inneren Zustand während der Generierung von zufälligen Bytes. Wenn wir den PRNG mit dem gleichen inneren Zustand starten, wird er als Ergebnis immer die gleichen Bytes generieren. Das Resultat dieser Operation ist der Schlüsselstrom der Vipasana-Stromverschlüsselung.
Wenn wir also den 2048-Byte-langen Zustandsbyte-Auswahlblock kennen – der übrigens bei jeder verschlüsselten Datei der gleiche ist – können wir den inneren Zustand berechnen und den Schlüsselstrom reproduzieren. Leider ist jedoch dieser Block mit RSA verschlüsselt. Wir würden zur Entschlüsselung den privaten Schlüssel benötigen, den nur die Erpresser haben. Nur sie können also den Schlüsselstrom berechnen.
Die Bytes des Schlüsselstroms werden also mit den Bytes der Datei im Klartext kombiniert. Dafür gibt es einen zusätzlichen Block mit 20 Zeichen (alles Zahlen) in der Datei. Die Zahlen in diesem globalen Algorithmus-Schlüssel bestimmen darüber, welcher Byte der Klartextdatei mit welchem Byte des Schlüsselstroms kombiniert wird.
Hier sehen Sie ein Beispiel:
Natürlich wird diese Kalkulation mit Bytes gemacht, nicht mit ganzen Zahlen. Außerdem gibt es zehn Algorithmen, nicht nur zwei. Doch als Veranschaulichung sollte dies ausreichen. Sie sehen, dass in Abhängigkeit von dem globalen Algorithmus-Schlüssel jedes Byte des Schlüsselstroms mit einem Klartext-Byte kombiniert wird.
Der globale Algorithmus-Schlüssel ist bei jeder Datei der gleiche. Leider ist auch dieser mit RSA-Verschlüsselung geschützt, warum wir ihn nicht nachberechnen können.
Die Tatsache, dass der Zustandsbyte-Auswahlblock und der globale Algorithmus-Schlüssel mit RSA verschlüsselt sind, erschwert es ungemein, ein Entschlüsselungstool für diese Art von Ransomware zu entwickeln und die Verschlüsselung zu brechen. Im zweiten Teil dieser Serie zeige ich, warum die Verschlüsselung trotzdem nicht sicher genug ist, um sie für eine legitime Verschlüsselungslösung zu nutzen. Ich bespreche außerdem, wie Sie sich vor Ransomware schützen können und welche Rolle Boxcryptor dabei spielen kann. Für alle, die sich mit dem Thema auskennen oder sich näher mit dem Thema befassen möchten, veröffentliche ich den PRNG und den Schlüsselstrom der Vipasana-Ransomware auf GitHub. Lesen Sie Teil II hier.