Was als Fingerübung gedacht war, führte die Malware-Experten Hendrik Eckardt und Leonard Rapp von G DATA Advanced Analytics in einen Kaninchenbau, den sie so nicht erwartet hatten.
Es begann damit, dass in einer Mail aus einem Sammelfach für Spamnachrichten eine Mahnung für eine unbezahlte Rechnung eine *svg-Datei angehängt war. Das ist eigentlich ein Grafikformat. Es ist jedoch nicht dasselbe wie etwa das weit verbreitete JPG-Bildformat, sondern wird für Bildelemente verwendet, die ohne Qualitätsverlust vergrößert werden sollen. „SVG“ steht für „Scalable Vector Graphic“, zu deutsch „Skalierbare Vektorgrafik“. Dieses Format ist eher unüblich im täglichen Schriftverkehr zwischen Unternehmen. Das war jedoch nur der Eingang zum Kaninchenbau. Schon ein bisschen ungewöhnlich, aber nicht so außergewöhnlich, dass es bemerkenswert wäre.
Python-Malware im verschlüsselten Gewand
Das vermeintliche Bild ließ sich (wie jede SVG-Datei) in einem Webbrowser öffnen. Dabei wurde im vorliegenden Fall eingebetteter JavaScript-Code ausgeführt. Dieser wiederum lädt etwas nach, was aussieht wie eine Rechnung – doch diese wird von einem Dialogfenster überlagert: Die Rechnung könne im Browser nicht angezeigt werden, der Anwender solle die Datei herunterladen und lokal öffnen. Damit nimmt für den Anwender das Schicksal seinen Lauf, und für Hendrik und Leonard wurde es spannend. Es warteten Skripte mit eine Menge Obfuskierung und einige Überraschungen in Sachen Ver- und Entschlüsselung.
Was für Fehler die Malwareautoren gemacht haben, wie sich Schadsoftware mit PyArmor in Python-Scripten verstecken ließ und was „Just-in-Time-Entschlüsselung" bedeutet – darum geht es im neuesten Artikel mit dem Titel "Unpacking Pyarmor" auf dem Blog auf cyber.wtf (Artikel in englischer Sprache; Link öffnet sich in einem neuen Fenster)