
Im Februar 2016 breitete sich im Internet eine Epidemie des neuen Verschlüsselungstrojaners Locky aus (den Kaspersky Lab unter der Bezeichnung Trojan-Ransom.Win32.Locky führt). Der Schädling verbreitet sich weiterhin ungebremst, und seit seiner Entdeckung registrierten die Produkte von Kaspersky Lab in 114 Ländern der Welt Versuche, die Computer der Anwender mit diesem Trojaner zu infizieren.
Eine Analyse der Samples hat gezeigt, dass es sich hierbei um einen absolut neuen Vertreter der Erpresser-Klasse handelt, der von Grund auf neu geschrieben wurde. Was genau stellt Locky dar und wie kann man sich vor ihm schützen?
Verbreitung
Um den Trojaner zu verbreiten, verschicken die Cyberverbrecher massenhaft Spam-Mails mit angehängten schädlichen Programmen.
Zuerst enthielten die schädlichen Spam-Mails im Anhang eine „doc“-Datei mit Makros, die von einem entfernten Server den Trojaner Locky lud und ausführte.
E-Mail aus den ersten Versendungen mit angehängter schädlicher Datei
Fragment eines schädlichen Makros
Die Produkte von Kaspersky Lab erkennen diese mit schädlichen Makros präparierten Dateien als Trojan-Downloader.MSWord.Agent und HEUR:Trojan-Downloader.Script.Generic.
Wir weisen darauf hin, dass in den aktuellen Versionen des Microsoft-Office-Pakets die automatische Ausführung von Makros aus Sicherheitsgründen deaktiviert ist. Doch wie die Praxis zeigt, aktiveren die Nutzer Makros häufig manuell, selbst in Dokumenten unbekannter Herkunft, was betrübliche Konsequenzen haben kann.
Zum gegenwärtigen Zeitpunkt setzt sich der Versand von Schad-Spam fort, doch im Anhang befinden sich keine „doc“-Dateien, sondern „zip“-Archive, die ein oder mehrere obfuskierte Skripte in JavaScript enthalten. Der Mailtext selbst ist größtenteils auf Englisch, doch es gibt auch zweisprachige Varianten.
E-Mail in englischer Sprache mit angehängtem Archiv
E-Mail in deutscher und englischer Sprache mit angehängtem Archiv
Der Anwender wird aufgefordert, das Skript manuell zu starten.
Inhalt des Archivs im Mailanhang
Fragment des Skripts aus dem Archiv
Nach dem Start lädt das Skript von einem entfernten Server den Trojaner Locky und startet seine Ausführung.
Diese Skript-Loader werden von den Produkten von Kaspersky Lab als Trojan-Downloader.JS.Agent und HEUR:Trojan-Downloader.Script.Generic erkannt.
Geografie der Attacken
Laut Daten des Kaspersky Security Network (KSN) wurden Locky-Attacken in 114 Ländern registriert.
TOP 10 der Länder
Land | Zahl der angegriffenen Nutzer |
Frankreich | 469 |
Deutschland | 340 |
Indien | 267 |
USA | 224 |
die Republik Südafrika | 182 |
Italien | 171 |
Mexiko | 159 |
Brasilien | 156 |
China | 126 |
Vietnam | 107 |
In die oben stehende Statistik fließen nur die Detektionen des Trojaners selbst ein. Detektionen in früheren Angriffsstadien (schädlicher Spam und Loader) werden nicht berücksichtigt.
Geografie von Trojan-Ransom.Win32.Locky (Zahl der angegriffenen Anwender)
Wie man sieht, greift der Trojaner in praktisch allen Regionen der Welt an. Wir können aufgrund der Liste der Sprachen auf der Seite mit der Lösegeldforderung nachvollziehen, auf welche Länder die Cyberkriminellen es in erster Linie abgesehen haben (davon später mehr).
Funktionsschema des Trojaners
Bei dem Trojaner Locky handelt es sich um eine ausführbare Datei mit einer Größe von etwa 100 KB. Der Schädling wurde in der Sprache С++ unter Verwendung von STL geschrieben und im Microsoft Visual Studio kompiliert. Nach dem Start kopiert er sich in das Verzeichnis %TEMP%\svchost.exe und löscht bei seiner Kopie den NTFS-Strom Zone.Identifier (das geschieht deshalb, damit Windows beim Start der Datei keine Warnung darüber ausgibt, dass die Datei aus dem Internet heruntergeladen wurde und potenziell gefährlich ist). Daraufhin führt sich der Trojaner aus %TEMP% aus.
Nachdem er sich gestartet hat, überprüft der Trojaner die Anwesenheit und den Inhalt der unten aufgeführten Registerschlüssel.
Pfad | Typ | Bedeutung |
HKEY_CURRENT_USER\Software\Locky\id | REG_SZ | Infektions-ID |
HKEY_CURRENT_USER\Software\Locky\pubkey | REG_BINARY | Offener RSA-Schlüssel im Format MSBLOB |
HKEY_CURRENT_USER\Software\Locky\paytext | REG_BINARY | Text, der dem Anwender angezeigt wird |
HKEY_CURRENT_USER\Software\Locky\completed | REG_DWORD | Status (wurde die Verschlüsselung abgeschlossen) |
Wenn in den Registerschlüsseln bereits Daten vorhanden sind (das ist dann der Fall, wenn der Schädling nicht zum ersten Mal gestartet wurde, seine Arbeit aber durch irgendetwas unterbrochen wurde), liest Locky sie aus und setzt die Infektion fort.
Wird er zum ersten Mal gestartet, führt der Trojaner die folgenden Aktionen durch:
- Locky verbindet sich mit dem Steuerungsserver und meldet die Infektion.
- Locky erhält vom Server den offenen RSA-2048-Schlüssel und die Infektions-ID und speichert sie in der Registry.
- Locky sendet Informationen über die Sprache des infizierten Betriebssystems an den Server, erhält den Text mit den Forderungen der Cyberkriminellen, der in der Folge dem Opfer angezeigt wird, und speichert diesen Text in der Registry.
- Locky sucht auf den lokalen Laufwerken nach Dateien mit bestimmten Erweiterungen und verschlüsselt sie.
- Locky löscht die Schattenkopien der Dateien.
- Locky schreibt sich in den Autostart (HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run).
- Locky sucht auf den Netzlaufwerken (darunter auch auf den Netzwerk-Dateiressourcen, die keinen Laufwerksbuchstaben haben) Dateien mit bestimmten Erweiterungen und verschlüsselt sie.
- Locky zeigt dem Opfer die Forderungen der Cyberkriminellen an.
- Locky beendet seinen Prozess und löscht sich selbst.
Fragment des Codes zum Erhalt von Informationen über die Systemsprache
Verschlüsselung der Dateien
Der Schädling sucht anhand einer vorgegebenen Liste mit Erweiterungen nach zu verschlüsselnden Dateien.
Liste der zu verschlüsselnden Dateierweiterungen
Für jede gefundene Datei generiert Locky einen neuen Schlüssel mit einer Länge von 128 Bit und verschlüsselt den Inhalt der Datei mit dem AES-128-Algorithmus im Counter-Mode (CTR). Die verschlüsselte Datei erhält einen Namen mit der folgenden Gestalt: „<ID aus 16 Hex-Zeichen><16 zufällige Hex-Zeichen>.locky“. Am Ende der Datei wird die folgende Struktur platziert:
Struktur, die Locky am Ende einer verschlüsselten Datei platziert
In der Syntax der Sprache C lässt sich diese Struktur folgendermaßen beschreiben:
1 2 3 4 5 6 7 8 9 |
struct file_data { uint32_t start_marker; //Signatur Beginn der Struktur = 0x8956FE93 char id[16]; //Infektions-ID uint8_t aes_key[256]; //AES-Schlüssel, verschlüsselter RSA-2048 uint32_t name_marker; //verschlüsselte AES-Signatur Beginn des Namens (= 0xD41BA12A nach Dechiffrierung) uint8_t orig_name[520]; //mit AES verschlüsselter ursprünglicher Name der Datei WIN32_FILE_ATTRIBUTE_DATA attr; //mit AES verschlüsselte ursprüngliche Attribute der Datei }; |
Beschreibung der hinzugefügten Signatur in der Syntax der Sprache С
Forderungen der Cyberkriminellen
Nachdem die Dateien verschlüsselt wurden, zeigt der Schädling dem Anwender den Text mit den Forderungen der Cyberkriminellen an.
Forderungen der Cyberkriminellen in englischer Sprache
Forderungen der Cyberkriminellen in deutscher Sprache
Die Mitteilung enthält die Adresse eines „geheimen Servers“ der Cyberkriminellen, auf dem die Informationen über das Lösegeld untergebracht sind, das sie als Gegenleistung für das Dechiffrierungsprogramm fordern. Alle vier Links in der Mitteilung führen auf ein und dieselbe Webseite im Netzwerk Tor.
Während der ersten Versendungswelle von Locky sah die Lösegeldzahlungsseite folgendermaßen aus:
Locky-Seite mit den Zahlungsbedingungen für das Entschlüsselungsprogramm (frühe Version)
Auf dieser Seite forderten die Gangster den Anwender auf, für ein Programm zur Entschlüsselung der Dateien in Bitcoin zu bezahlen. Sie gaben Tipps ab, wo und wie man die Kryptowährung bekommen kann.
Später änderten sich Design und Inhalt dieser Seite. Zum gegenwärtigen Zeitpunkt unterstützt sie mehr als zwanzig Sprachen (Dropdown-Liste) und sieht folgendermaßen aus:
Lösegeldzahlungsseite von Locky (aktuelle Version)
Schaut man sich den Quellcode dieser Seite an, so sieht man die gesamte Liste der unterstützten Sprachen. Offensichtlich richten die Cyberverbrecher ihren Erpresser-Trojaner genau gegen diese Länder. Interessant ist, dass die russische Sprache sowie in GUS-Staaten gesprochene Sprachen auf der Liste fehlen. Anscheinend sind die Verbrecher aus irgendwelchen Gründen nicht darauf aus, Anwender in diesen Ländern anzugreifen, was auch durch die KSN-Statistik bestätigt wird.
Liste der Sprachen, die die Lösegeldzahlungsseite von Locky unterstützt
Kommunikation mit dem Steuerungsserver
Im Code des Trojaners sind ein bis drei IP-Adressen von Steuerungsservern enthalten. Obendrein wurde in dem Schädling auch ein Algorithmus zur Generierung von neuen C&C-Adressen (DGA, Domain Generation Algorithm) in Abhängigkeit vom aktuellen Tag, Monat und Jahr umgesetzt. Mit Hilfe dieses Algorithmus werden sechs C&C-Adressen pro Tag generiert. Der Pseudocode, der den DGA von Locky illustriert, ist auf folgendem Screenshot abgebildet.
Pseudocode des Algorithmus zum Generieren von C&C-Adressen von Locky
Die Interaktion mit dem Befehlsserver erfolgt über HTTP. Der Trojaner versendet eine POST-Anfrage an eine Adresse nach Art von „http://<cnc_url>/main.php“. Die zu übertragenden Daten werden mit einem einfachen symmetrischen Algorithmus verschlüsselt.
Werfen wir einen Blick auf die möglichen Typen der zu übertragenden Parameter.
-
Benachrichtigung über eine Infektion und Schlüsselanfrage.
id=<ID der Infektion>
&act=getkey&affid=<ID des Partners, im Körper des Trojaners enthalten>
&lang=<Betriebssystemsprache>
&corp=<Handelt es sich um ein Unternehmensbetriebssystem?>
&serv=<Handelt es sich um ein Serverbetriebssystem?>
&os=<Betriebssystemversion>
&sp=<Service-Pack-Version des Betriebssystems>
&x64=<Handelt es sich um ein 64-Bit-System?>Dem Parameter „affid“ nach zu urteilen wird Locky über ein Partnerprogramm verbreitet.
-
Versenden der Liste der verschlüsselten Pfade.
id=<ID der Infektion>
&act=report&data=<Liste der Pfade>Für jede bearbeitete Festplatte schickt der Trojaner eine Liste von allen Pfaden zu allen verschlüsselten Dateien an den Server.
-
Versand einer Statistik für jede bearbeitete Festplatte.
id=<ID der Infektion>
&act=stats&path=<Pfad>
&encrypted=<Zahl der verschlüsselten Dateien>
&failed=<Zahl der Fehlschläge>
&length=<Allgemeine Größe der verschlüsselten Dateien>
Bemerkenswert ist, dass der Trojaner für jede Infektion sehr genaue Statistiken erstellt. Andere, früher von uns untersuchte Erpresser-Familien taten sich nicht durch ein derartig penibles Verhalten hervor.
Gegenmaßnahmen
Die Produkte von Kaspersky Lab schützen vor dem Erpresser-Trojaner Locky auf allen Angriffsetappen:
- Das Antispam-Modul erkennt die E-Mails, die von den Verbreitern des Trojaners versendet werden.
- Die Skript-Loader werden von statischen und heuristischen Signaturen des Mail- und Datei-Antivirus als Trojan-Downloader.MSWord.Agent, Trojan-Downloader.JS.Agent und HEUR:Trojan-Downloader.Script.Generic detektiert.
- Die ausführbare Datei des Trojaners wird von Signaturen des Datei-Antivirus als Trojan-Ransom.Win32.Locky erkannt.
- Unbekannte Locky-Samples erkennt das Modul „Aktivitätsmonitor“ (System Watcher) proaktiv als PDM:Trojan.Win32.Generic.
Infektionsprophylaxe
Locky ist ein typischer Erpresser-Trojaner, der sich hinsichtlich seines äußeren Aufbaus und seines Funktionsprinzips nicht auffallend von anderen Familien von Verschlüsselungsschädlingen unterscheidet. Doch die äußerst aktive und weitreichende Verbreitung dieses Schädlings hat die Aufmerksamkeit der Forscher auf sich gezogen. Laut den Daten des Kaspersky Security Network wehrten die Produkte von Kaspersky Lab in mehr als 100 Ländern Angriffe von Locky ab – bisher hat kein anderer Erpresser-Trojaner in so vielen Ländern gleichzeitig angegriffen.
Um dem Verschlüsselungstrojaner nicht zum Opfer zu fallen, sollten unbedingt die folgenden prophylaktischen Maßnahmen ergriffen werden:
- Niemals E-Mail-Anhänge von unbekannten Absendern öffnen.
- Regelmäßig Backups der Dateien erstellen und sie außerhalb des Computers auf Wechseldatenträgern oder in Cloud-Speichern sichern.
- Rechtzeitig die Antiviren-Datenbanken, das Betriebssystem und andere auf dem Computer installierte Software aktualisieren.
- Den Zugriff auf allgemeine Netzwerk-Ordner kontrollieren und ein eigenes Netzwerk-Verzeichnis für jeden Nutzer erstellen.
Genauere Informationen über den Schutz vor Verschlüsselungstrojanern finden Sie unter folgendem Link.
Locky – ein weltumspannender Verschlüsselungsschädling