Winnti: ein Angriff auf Lieferketten - asiatische Spieleentwickler stehen an vorderster Front

Dies ist nicht das erste Mal, dass Angreifer die Spielebranche angreifen, Entwickler kompromittieren, der Build-Umgebung des Spiels Backdoors hinzufügen und dann Malware unter dem Deckmantel einer legitimen Umgebung verbreiten. Im April 2013 meldete Kaspersky Lab einen ähnlichen Vorfall. Dieser Angriff wird einer Cybergruppe namens Winnti zugeschrieben.

Vor kurzem wurden ESET-Experten von neuen Angriffen auf Lieferketten angezogen. Zwei Spiele und eine Spieleplattform wurden kompromittiert, um eine Hintertür einzuführen. Diese Angriffe zielen auf Asien und die Spielebranche ab, gefolgt von Winnti.


Drei Fälle, eine Hintertür


Trotz der unterschiedlichen Malware-Konfigurationen enthielten die drei kompromittierten Softwareprodukte denselben Backdoor-Code und verwendeten denselben Mechanismus. Jetzt gibt es in zwei Produkten keine Hintertüren mehr, aber eine wird immer noch in einer trojanisierten Version vertrieben - ironischerweise heißt dieses Spiel Infestation, das von der thailändischen Firma Extreme Extreme veröffentlicht wird. Wir haben seit Anfang Februar versucht, den Entwickler zu kontaktieren, aber bisher ohne Erfolg.

Wir werden analysieren, wie die schädliche Nutzlast eingeführt wird, und dann die Hintertür im Detail betrachten.

Payload-Implementierung


Der Payload-Code wird während der Ausführung der trojanisierten ausführbaren Datei ausgeführt. Unmittelbar nach dem PE-Einstiegspunkt wird der Standardaufruf zur C-Laufzeitinitialisierung ( __scrt_common_main_seh in der folgenden Abbildung) abgefangen, um die böswillige Nutzlast vor allem anderen zu starten (Abbildung 2). Dies kann darauf hinweisen, dass die Angreifer die Assemblykonfiguration und nicht den Quellcode selbst geändert haben.



Abbildung 1. Nettoeinstiegspunkt zur ausführbaren Datei



Abbildung 2. Einstiegspunkt einer kompromittierten ausführbaren Datei

Der der ausführbaren Datei hinzugefügte Code entschlüsselt und startet die Hintertür im RAM, bevor die normale Ausführung des C Runtime-Initialisierungscodes und des nachfolgenden Hostanwendungscodes fortgesetzt wird. Die eingebaute Nutzlast hat eine spezielle Struktur (siehe Abbildung unten), die durch den hinzugefügten Dekomprimierungscode interpretiert wird.



Abbildung 3. Eingebettete Nutzlaststruktur

Es enthält den RC4-Schlüssel (verschlüsseltes XOR mit 0x37), mit dem der Dateiname und die eingebettete DLL-Datei entschlüsselt werden.

Bösartige Nutzlast


Die tatsächliche böswillige Nutzlast enthält nur 17 KB Code und Daten.

Konfiguration


Die in der folgenden Abbildung gezeigten Konfigurationsdaten sind eine Liste von durch Leerzeichen getrennten Zeilen.



Abbildung 4. Nutzdatenkonfigurationsdaten

Die Konfiguration besteht aus vier Feldern:

  1. URL des verwaltenden C & C-Servers.
  2. Die Variable (t), mit der das Zeitlimit in Millisekunden ermittelt wird, bevor fortgefahren wird. Die Wartezeit wird zufällig im Bereich von 2/3 bis 5/3 t gewählt.
  3. Zeile zur Identifizierung der Kampagne.
  4. Eine Liste ausführbarer Dateinamen, die durch ein Semikolon getrennt sind. Wenn einer von ihnen funktioniert, stoppt die Hintertür ihre Ausführung.

Wir haben fünf Versionen der Nutzlast identifiziert:



Bei den ersten drei Optionen wurde der Code nicht neu kompiliert, aber die Konfigurationsdaten wurden in der DLL-Datei selbst bearbeitet. Der Rest des Inhalts ist eine Bytekopie.

C & C-Infrastruktur


Domain-Namen werden so ausgewählt, dass sie den Websites von Entwicklern kompromittierter Anwendungen ähneln. Die Top-Level-Domain ist so konfiguriert, dass sie mithilfe des Namecheap-Dienstes zur entsprechenden legitimen Site umleitet, während die Subdomain einen böswilligen C & C-Server anzeigt.



Zum Zeitpunkt dieses Schreibens ist keine der Domänen verfügbar, C & C-Server antworten nicht.

Studienbericht


Die Bot-ID wird aus der MAC-Adresse des Computers generiert. Die Hintertür überträgt Maschineninformationen, einschließlich Benutzername, Computername, Windows-Version und Systemsprache, an den C & C-Server und wartet dann auf einen Befehl. Daten werden mit XOR unter Verwendung des Schlüssels " *&b0i0rong2Y7un1 " verschlüsselt und mit base64 codiert. Vom C & C-Server empfangene Daten werden mit demselben Schlüssel verschlüsselt.

Teams


Eine einfache Hintertür unterstützt nur vier Teams, die von Angreifern verwendet werden können:

- DownUrlFile
- DownRunUrlFile
- RunUrlBinInMem
- UnInstall

Die Namen der Teams sprechen für sich. Sie ermöglichen es Angreifern, zusätzliche ausführbare Dateien von einer bestimmten URL aus auszuführen.

Vielleicht ist der letzte Befehl weniger offensichtlich. UnInstall entfernt die Malware nicht vom System. Am Ende ist es in eine legitime ausführbare Datei eingebettet, die weiterhin ausgeführt wird. Anstatt etwas zu löschen, deaktiviert der Befehl den Schadcode, indem der Wert für den Registrierungsschlüssel auf 1 gesetzt wird:

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\ImageFlag

Nach dem Starten der Nutzdaten wird der Wert aus der Registrierung angefordert und, falls angegeben, die Ausführung abgebrochen. Vielleicht versuchen die Angreifer, die Belastung ihrer C & C-Server zu verringern, indem sie Rückrufe von Opfern ohne Interesse vermeiden.

Zweite Stufe


Laut Telemetrie ist Win64 / Winnti.BN eine der Nutzlasten der zweiten Stufe, die an die Opfer gesendet werden. Soweit wir das beurteilen können, wird der Dropper dieser Malware über HTTPs von api.goallbandungtravel[.]com heruntergeladen. Wir haben gesehen, dass es als Windows-Dienst und als DLL in C:\Windows\System32 Verwendung der folgenden Dateinamen installiert wurde:

- cscsrv.dll
- dwmsvc.dll
- iassrv.dll
- mprsvc.dll
- nlasrv.dll
- powfsvc.dll
- racsvc.dll
- slcsvc.dll
- snmpsvc.dll
- sspisvc.dll

Die von uns analysierten Proben waren groß genug - etwa 60 MB. Dies ist jedoch nur eine Sichtbarkeit, da die tatsächliche Größe oder PE-Datei je nach Version zwischen 63 und 72 KB liegt. Viele saubere werden einfach zu schädlichen Dateien hinzugefügt. Dies wird wahrscheinlich von einer Komponente durchgeführt, die einen schädlichen Dienst zurücksetzt und installiert.

Nach dem Starten des Dienstes wird die Erweiterung .mui zu seinem DLL- .mui und mit RC5 entschlüsselt. Die entschlüsselte MUI-Datei enthält positionsunabhängigen Code mit Offset 0. Der RC5-Schlüssel wird aus der Seriennummer der Festplatte und der Zeile „ f@Ukd!rCto R$. "" Wir konnten weder die MUI-Dateien noch den Code abrufen, der sie zuerst installiert. Daher ist uns der genaue Zweck des böswilligen Dienstes unbekannt.

Neuere Malware-Versionen enthalten einen Mechanismus zur automatischen Aktualisierung über den C & C-Server http://checkin.travelsanignacio[.]com . Dieser Server stellte die neueste Version der mit dem statischen RC5-Schlüssel verschlüsselten MUI-Dateien bereit. Im Verlauf unserer Forschung hat dieser C & C-Server nicht geantwortet.

Ziele


Beginnen wir mit denen, auf die die Kampagne nicht speziell ausgerichtet ist. Zu Beginn der Nutzlast prüft die Malware, ob die Systemsprache Russisch oder Chinesisch ist (siehe Abbildung unten). Wenn die Antwort Ja lautet, funktioniert das Programm nicht mehr. Es ist unmöglich, diese Ausnahme zu umgehen - Angreifer sind nicht grundsätzlich an Computern mit diesen Spracheinstellungen interessiert.



Abbildung 5. Überprüfen der Sprache vor dem Starten der Nutzdaten

Verteilungsstatistik


Laut Telemetrie traten die meisten Infektionen in Asien auf, insbesondere in Thailand. Angesichts der Popularität der kompromittierten Anwendung, die immer noch vom Entwickler vertrieben wird, ist es nicht verwunderlich, wenn die Zahl der Opfer Zehntausende und Hunderttausende beträgt.



Fazit


Supply-Chain-Angriffe sind auf der Benutzerseite schwer zu erkennen. Es ist unmöglich, die gesamte laufende Software sowie alle empfohlenen Updates zu analysieren. Standardmäßig vertraut der Benutzer den Entwicklern und geht davon aus, dass ihre Dateien keinen Schadcode enthalten. Dies ist wahrscheinlich der Grund, warum mehrere Cybergroups auf Angriffe auf Softwareanbieter abzielen. Durch Kompromisse kann ein Botnetz erstellt werden, dessen Größe mit der Popularität von trojanisierter Software vergleichbar ist. Diese Taktik hat einen Nachteil: Wenn das Schema enthüllt wird, verlieren Angreifer die Kontrolle über das Botnetz und Benutzer können das System durch die Installation des nächsten Updates bereinigen.

Die Motive der Winnti-Cybergruppe sind derzeit nicht bekannt. Vielleicht suchen die Angreifer nach finanziellem Gewinn oder planen, das Botnetz als Teil einer größeren Operation zu verwenden.

ESET-Produkte erkennen die Bedrohung als Win32 / HackedApp.Winnti.A, Win32 / HackedApp.Winnti.B, die Nutzlast als Win32 / Winnti.AG, die zweite Stufe als Win64 / Winnti.BN.

Kompromissindikatoren finden Sie hier .

Source: https://habr.com/ru/post/de443416/


All Articles