Sicherheitsexperten entschlüsseln Malware-Steuerzentrale

Flame: Analyse der Command and Control Server

Seite: 2/3

Ablauf der Kommunikation und Verschlüsselung

Die Kommunikation zwischen infiziertem System und dem zentralen CC-Server bestand aus folgenden Schritten:

  • 1. Ermittlung der Protokollversion
  • 2. Speichern von Verbindungsinformationen
  • 3. Entschlüsselung der Clientrequests
  • 4. Lokales Speichern der übermittelten Daten in verschlüsselter Form im Filesystem
  • 5. Metadaten zu den erhaltenen Dateien wurden in der MySQL Datenbank hinterlegt

Ein auf dem CC-Server befindliches Script verschlüsselte die erhaltenen Daten. Es wurden hierbei PGP ähnliche Mechanismen benutzt die ein Zeichen für professionelle Programmierung sind. Zuerst wurden die Daten mit dem Blowfish Algorithmus im CBC Mode verschlüsselt. Der dazu verwandte Blowfish Key wurde für jede Datei einzeln zufällig gewählt. Dieser Blowfish Key wurde dann in einem zweiten Schritt mit asymmetrischer Verschlüsselung über die open_ssl_encrypt Funktion in PHP verschlüsselt.

Bildergalerie
Bildergalerie mit 5 Bildern

Dies schützt die Daten vom Zugriff externer, da nur wer derjenige die Daten entschlüsseln kann, der den Private Key der asymmetrischen Verschlüsselung sein eigen nennt.

Die Spuren der Entwickler

Jeder Entwickler hat seinen eigenen Programmierstil und es gibt auch allgemeine Tendenzen und so konnte anhand der Analyse des Quellcodes einiges zu den Entwicklern ermittelt werden. So kann man anhand der Namenskonvention der Dateien und Klassen darauf schließen, dass es nicht typische Unix-Programmierer waren, die an dem Projekt gearbeitet haben.

So wurde z.B. jedes Wort in einer Variable, Funktion und Dateinamen mit einem Großbuchstaben begonnen, zudem gibt es spezielle Klassen die nie instanziert wurden. Klassen die nicht instanziert werden findet man in Vererbungsmechanismen der Objekt Orientierten Programmierung und werden Interfaces genannt. Der Großbuchstabe „I“ zu Beginn deutet zudem darauf hin, dass es sich um typische Windows C++ oder C# Entwickler handelt.

Die offensichtlichste Spur hinterließen die Entwickler in Form von Logs mit Zeitstempeln in den einzelnen Skripten wie im folgenden dargestellt. Zudem konnte ein Zeitstrahl der Entwicklung erstellt werden (Siehe Bild 4 in der Bildergalerie):

@author [O] censored in 12/3/2006@author [D] censored on 12/4/2006@author [D] censored on 01/23/2007@author [H] censored on 09/02/2007@author [O] censored, [D] censored@author [D] censored (modifications)@author modified heavily by [D] censored@author [R] censored @copyright 2011

Aus diesen Logs lässt sich folgende Arbeitsmengenaufteilung ableiten:

  • [D] censored: Entwickelte an 31 Dateien
  • [H] censored: Entwickelte an 10 Dateien
  • [O] censored: Entwickelte an 4 Dateien
  • [R] censored: Entwickelte 1 Datei

Die ersten Dateien wurden am 03. Dezember 2006 entwickelt. Ableitend hiervon kann nun die Aussage getroffen werden, dass die Flame-Plattform deutlich älter ist als bisher angenommen. Anhand der Arbeitsaufteilung kann man auch erkennen, dass es sich um vier Entwickler handelte bei denen der Entwickler [H] die Rolle der Teamleiters geführt haben muss. Denn dieser Entwickler ist deutlich fortgeschrittener und hat die vornehmlich die komplexen Algorithmen und Mechanismen geschrieben.

(ID:35734380)