Kryptomining-Malware funktioniert gänzlich anders als bisher bekannte Angriffstechniken und ist deshalb nur schwer zu erkennen. CyberArk hat durch eine detailierte Analyse der Mining-Malware für die Kryptowährung Monero fünf Indikatoren identifiziert, die auf eine Infektion hindeuten.
Die digitale Bedrohungslandschaft ändert sich kontinuierlich. War 2017 noch das Jahr der Ransomware-Attacken, ist aktuell die Kryptomining-Malware auf dem Vormarsch. Schlagzeilen machte vor allem Malware, die für das Schürfen der Kryptowährung Monero genutzt wird.
Für die Ermittlung der Indikatoren hat CyberArk den XMRig-Source-Code detailliert analysiert, einen Open-Source-basierten Monero-CPU-Miner mit Windows-Unterstützung, der unter GNU General Public License (GPL) veröffentlicht ist.
Der weitgehend in C++ erstellte Miner ist unter Malware-Schreibern sehr populär geworden, da er unter anderem einfach zu kompilieren ist und Windows-spezifische Performance-Optimierungen bietet.
Die Analyse des XMRig-Source-Codes hat gezeigt, wie ein bösartiger Kryptominer auf Windows in der Praxis arbeitet. Der XMRig-Design-Ansatz kann zwar von anderen Kryptominern differieren, allerdings gibt es fünf Punkte, die für die Detektion der neuen Malware-Typen generell interessant sind.
1. Speicherzugriff
Eine charakteristische Eigenschaft des Monero-Minings ist die Verwendung des CryptoNight-Algorithmus, der unter anderem zu einer Optimierung der Speicherzugriffsgeschwindigkeit führt und damit den Miner-Output drastisch steigert. In Windows bietet die VirtualAlloc API eine besondere Methode für die Optimierung der Speicherlatenz durch den MEM_LARGE_PAGES Flag.
Dieser Flag kann somit ein wertvoller Indikator für die Initialisierung eines Monero-Miners sein. Darüber hinaus sind auch die User-Account-Privilegien zu beachten, die für die Nutzung des MEM_LARGE_PAGES Flag erforderlich sind.
Wenn der Malware-Schreiber seinen Miner nicht richtig verschleiert, sind die Windows-API-Aufrufe, die für die Modifizierung dieser Privilegien benötigt werden, ein exzellenter Hinweis auf Monero-Mining.
2. Kryptomining-Traffic
Auch wenn der ausgehende Traffic, der von einem bösartigen Kryptominer produziert wird, ein deutliches Indiz einer Infektion sein kann, sind dabei zwei Herausforderungen zu berücksichtigen: Mining-Pools verwenden unterschiedliche Ports und teilweise wird SSL-Verschlüsselung genutzt.
Sollte aber ein Malware-Autor den Kryptomining-Traffic weder durch Nutzung von SSL noch durch einen Proxy verbergen, kann der Datenverkehr ein einfacher Indikator für eine Kryptomining-Infektion sowohl auf einer lokalen Maschine als auch im Netzwerk sein.
Da es zudem nur eine begrenzte Anzahl an Mining-Pools gibt, sind Verbindungen zu deren IPs ein untrügliches Zeichen für eine Infektion. Wenn die Ziel-IP und der Host-Name mittels eines Proxys verborgen werden, können auch die Traffic-Muster zwischen dem Pool und Miner ein anderer guter Infektionshinweis sein.
3. CryptoNight-Logic
Das Fehlen von Windows-API-Aufrufen in der CryptoNight-Logic lässt zwar einerseits Diagnosen hinsichtlich API-Hooking oder mittels Event Tracing for Windows (ETW) ins Leere laufen. Andererseits eröffnet aber die CryptoNight-Logic auch die Möglichkeit einer zuverlässigen Detektion durch traditionelle Byte-Muster-File-Scanner in Sicherheitsprodukten wie Antivirus-Lösungen.
Der Grund dafür ist, dass hochspezifische Code-Muster verwendet werden, die für die Funktionsweise des Miners essenziell und ohne detaillierte Kenntnis der kryptografischen Logik auch kaum zu ändern sind. Zudem würde die Konzeption einer von Grund auf neuen CryptoNight-Implementierung aus Sicht des Angreifers einen zu hohen Aufwand bedeuten.
Selbst Angreifer, die einen eigenen Miner kreieren wollen, sind versucht, Files wie CryptoNight_x86.h von Projekten wie XMRig direkt in ihre eigene Code-Basis zu kopieren, um Zeit einzusparen.
4. Lesbare Strings und Kommandozeilen
Ein weiteres Indiz für eine Infektion durch Kryptominer im Allgemeinen – XMRig ist hier keine Ausnahme – ist das Vorhandensein einer großen Anzahl an lesbaren Strings, oftmals sogar einzigartigen. Der Grund hierfür ist, dass alle öffentlichen Miner im Hinblick auf maximale Anwenderfreundlichkeit geschrieben sind.
Eine noch einfachere Variante dieser Detektionsmethode – ohne die Notwendigkeit, File-Inhalte zu scannen – stellt die Beobachtung verdächtiger Kommandozeilen bei aktiven Prozessen dar; ohne Rekompilieren eines Miners ändert sich nämlich die Syntax von Kommandozeilen nicht.
5. CPU-Nutzung
Nicht zuletzt ist eine starke CPU-Auslastung ebenfalls ein guter Indikator für Kryptominer. Allerdings besteht hier auch die Gefahr einer hohen Anzahl an False Positives.
Infolgedessen sollte das Kriterium CPU-Nutzung nur in Kombination mit anderen Detektionsverfahren genutzt werden, um eine maximale Exaktheit der Ergebnisse sicherzustellen.