Neue Variante von FrameworkPOS schöpft Daten über DNS-Anfragen ab

15.10.2014
G DATA Blog

Von April bis September 2014 war der amerikanische Einzelhändler The Home Depot das Ziel von Kriminellen, die beabsichtigten, Kreditkartendaten auszuspähen. Die bei diesen Angriffen verwendete Malware hat PoS-Systeme im Visier. Nach Angaben von The Home Depot konnten die Cyberkriminellen 56 Millionen Debit- und Kreditkartennummern der Kunden des Unternehmens ausspähen.(1) Die Experten der G Data SecurityLabs entdeckten nun eine neue Variante der Malware FrameworkPOS. Ihr Hauptbestandteil ähnelt stark der zuvor von Trend Micro beschriebenen Malware.(2) Der große Unterschied besteht jedoch in der Art und Weise, wie die ausgespähten Daten abgeschöpft werden: Die Malware nutzt DNS-Anfragen!

Herausschleusen von Kreditkartendaten

DNS Anfragen zum Ausspionieren

Die neue Malware nutzt DNS-Anfragen, um die ausgespähten Daten aus dem System herauszuschleusen. Die Abfragen liegen in folgendem Format vor:

Codierte_daten.domain.com
In diesem Beispiel wird der Domain-Server von domain.com durch den Angreifer verwaltet, um „codierte_daten“ herausschleusen zu können. Wir haben drei verschiedene DNS-Anfragen identifiziert:

Id.beacon.codierte_daten1.codierte_daten2.domain.com
Diese Abfrage ist der „Heartbeat“. Die ID ist eine Zufalls-ID, die bei der ersten Ausführung der Malware generiert wird. Codierte_daten1 ist die IP-Adresse des infizierten Rechners und codierte_daten2 ist der Hostname des Rechners.

Id.alert.codierte_daten3.domain.com
Die ID ist dieselbe Zufalls-ID wie im obigen Beispiel; codierte_daten3 ist ein Prozessname. Die Angreifer erhalten den Prozessnamen jedes Mal, wenn eine Kreditkartennummer im Speicher gefunden wird.

id.codierte_daten4.codierte_daten5.domain.com
Die ID ist wieder die oben beschriebene ID. Codierte_daten4 ist der direkt vor dem Trennzeichen „=“ im Speicher gespeicherte Wert; codierte_daten5 ist der direkt nach dem Trennzeichen „=“ gespeicherte Wert. Eine nähere Erläuterung enthält der unten folgende Abschnitt „Memory Carving“.

Um die DNS-Anfrage durchzuführen, nutzt die Malware die Funktion getaddrinfo() in Ws2_32.dll oder Wship6.dll (für die IPv6-Unterstützung von Windows 2000).

Datenverschleierung

Die in der DNS-Anfrage übertragenen Daten sind codiert. Hier der Code, der diese Aufgabe erfüllt:

Pseudocode:
Foreach bytes:
  a = byte XOR 0xAA
  b = a XOR 0x9B
  value = b XOR 0xC3

Die drei XOR-Befehle können bei XOR 0xF2 einfach wieder aufgenommen werden. Unten sehen Sie ein Beispiel für decodierte und codierte Daten:

c5008015.beacon.c3cbc0dcc3c4cadcc4cbdcc4cb.a2b3a7bedfb3b0b1c3c0c1c6.domain.com
paul@gdata:~ $ ./decode.py c3cbc0dcc3c4cadcc4cbdcc4cb
192.168.69.69
paul@gdata:~ $ ./decode.py a2b3a7bedfb3b0b1c3c0c1c6
PAUL-ABC1234

Installation

Die Malware kann mit den folgenden Optionen ausgeführt werden:

  • Install: Damit wird ein Dienst installiert, der benötigt wird, um die Malware zu starten.
  • Uninstall: Mit dieser Option wird der Dienst deinstalliert.
  • Start: Mit dieser Option wird die Malware gestartet (wenn der Dienst bereits installiert ist).
  • Stop: Mit dieser Option wird der Dienst ausgeschaltet.
  • Setd: Mit dieser Option wird die Domain festgelegt, die zum Stehlen der Daten genutzt wird.


Interessant dabei ist Folgendes: Die Domain wird bei der Installation der Malware (mit dem Parameter Setd) festgelegt. Dies ist ein Unterschied zwischen dem von Trend Micro analysierten Sample und dem hier vorliegenden Sample, weil die Domain nicht im Sample fest codiert ist. Aufgrund dieser Vorgehensweise ist es nicht möglich, die Domain zu finden, falls das Sample in einer Datenbank wie etwa VirusTotal gefunden wird. Um den Domainnamen zu erfahren, der zum Übertragen der Daten verwendet wird, muss man einen infizierten Rechner analysieren. Die Domain ist in der Registry gespeicher

.Default\CurrentUser\ur

Der Registry-Eintrag .Default ist unüblich. Dieser Registry-Eintrag ist nicht der Standard-Registry-Eintrag des Benutzers, sondern der Standard-Registry-Eintrag in C:\Windows\System32\config\.

Domain-Verschleierung

Die für das Abschöpfen der Daten verwendete Domain wird nicht im Klartext in der Registry gespeichert. Hier ein Screenshot des Algorithmus, der zum Entschlüsseln des Inhalts erforderlich ist:

Hier der Pseudocode:
Foreach bytes:
  a = byte >> 5
  b = byte << 3
  value = a OR b

Verschleierung von Zeichenfolgen

Wir gehen davon aus, dass der Entwickler versucht, verschiedene Zeichenfolgen in den Binärdaten zu verschleiern. Allerdings ist die Umsetzung fehlerhaft und nicht effizient: Die XOR-Funktion wird mit dem Parameter "0x4D" zwei Mal auf jedes Zeichen der zeichenkette angewendet. Wenn man XOR jedoch zwei Mal mit demselben Wert anwendet, ist das Ergebnis der ursprüngliche Wert... Deshalb stehen die Zeichenfolgen in den Binärdaten im Klartext:
A XOR 0x4D XOR 0x4d = A

Memory Carving

Zum Abschöpfen der im Speicher abgelegten Kreditkartendaten öffnet die Malware die Prozesse, die derzeit auf dem System ausgeführt werden, mit Ausnahme der folgenden Prozesse:

smss.exe, csrss.exe, wininit.exe, services.exe, lsass.exe, svchost.exe, winlogon.exe, sched.exe, spoolsv.exe, System, conhost.exe, ctfmon.exe, wmiprvse.exe, mdm.exe, taskmgr.exe, explorer.exe, RegSrvc.exe, firefox.exe, chrome.exe

Zum Auffinden der gespeicherten Kreditkartendaten verwenden die Angreifer einen Algorithmus, der auf den folgenden regulären Ausdruck heruntergebrochen werden kann:
\d{15,19}=\d{13,}

Hier die Beschreibung des Ausdrucks:

  • \d{15,19}: Kreditkartennummer, die 15 bis 19 Ziffern lang ist
  • = : Trennzeichen
  • \d{13,}: Zahl aus mindestens 13 Ziffern

Ein Beispiel für eine Kreditkartennummer ist in der Malware fest codiert:
4207670075018922=16031010000863456429

Mit den im Sample fest codierten Kreditkartendaten wird festgestellt, ob die Malware sich derzeit selbst scannt. Wenn die Malware diese Informationen im Speicher gefunden hat, wird das Carving gestoppt und der nächste Prozess analysiert.

Fazit

Die Analyse erläutert, wie Cyberkriminelle heute arbeiten: Wir können davon ausgehen, dass es die Cyberkriminellen, die hinter dem Angriff auf The Home Depot stehen, wohl auch auf noch weitere Unternehmen mit anderen Befehls- und Steuerungskommunikationskanälen abgesehen haben.

Wir halten das in diesem Sample festgestellte Konzept für sehr interessant und dieses Sample für ausgereifter. In unserem Fall wird die Herauslösung der Daten sehr clever durchgeführt; sie ist zudem ziemlich ungewöhnlich.

Wir empfehlen Unternehmen, die PoS-Systeme einsetzen, dringend, ein passives DNS-System zum Speichern und Überwachen von DNS-Aktivitäten zu verwenden. Wenn dieses passive DNS-System richtig konfiguriert ist, kann es Warnmeldungen versenden, wenn verdächtiges Verhalten festgestellt wird. Darüber hinaus können und werden diese Protokolle sehr nützlich sein, falls nach einem Angriff eine Analyse erforderlich ist. Alternativ dazu könnte der Datenverkehr von PoS-Rechnern auf zulässige Domains begrenzt werden. Eine solche Vorgehensweise unter Verwendung von Whitelists würde die Kontaktaufnahme zu unbefugten Domains verhindern. Im Hinblick auf die Eindämmung besteht die beste Lösung in der Einrichtung einer internen DNS-Zone, die der Domain der Angreifer entspricht und auf einen Server im Unternehmen verweist.

IOC

Datei
%Windows%\Genuine\tf (von der Malware verwendete Protokolldatei)

Datei
MD5: a5dc57aea5f397c2313e127a6e01aa00

Registry
.Default\CurrentUser\id (Dieser Schlüssel enthält eine zufällige ID, mit der der infizierte Rechner identifiziert wird)
.Default\CurrentUser\ur (Dieser Schlüssel enthält die codierte Domain der Angreifer)

Dienst
Dienst mit der Bezeichnung hdmsvc und der Beschreibung „Windows Hardware Management Driver“

Wichtige IT-Security-News per E-Mail

  • Aktuelle IT-Gefahren
  • Schutz-Tipps für Privatkunden
  • 15 % Willkommensgutschein