ESET-Forscher haben Malware analysiert, die unter anderem auf HPC-Cluster (High Performance Computing) und andere herausragende Ziele abzielt. Wir haben diese kleine, aber komplexe Malware rückentwickelt, die auf viele Betriebssysteme wie Linux, BSD, Solaris und möglicherweise AIX und Windows portierbar ist. Aufgrund ihrer winzigen Codegröße und vieler Tricks haben wir diese Malware Kobalos benannt. In der griechischen Mythologie ist ein Kobalos eine kleine, schelmische Kreatur. Heute veröffentlichen wir einen Artikel mit dem Titel “A wild Kobalos appears: Tricksy Linux malware goes after HPCs”, in dem die Funktionsweise dieser Bedrohung beschrieben wird.

Im vergangenen Jahr gab es mehrere Sicherheitsvorfälle mit HPC-Clustern, die möglicherweise nicht in Bezug zu Kobalos stehen. Über einige von ihnen berichtete die Presse und Vorfälle, bei denen Krypto-Miner eingesetzt wurden, wurden in einem Gutachten des European Grid Infrastructure (EGI) CSIRT veröffentlicht. Die EGI CSIRT-Empfehlung zeigt, dass bei diesen Angriffen kompromittierte Server in Polen, Kanada und China verwendet wurden. In Presseartikeln wird auch Archer erwähnt, ein in Großbritannien ansässiger Supercomputer, bei dem SSH-Anmeldeinformationen gestohlen wurden. Sie erhielten jedoch keine Details darüber, welche Malware gegebenenfalls dabei verwendet wurde.

Wir haben mit dem CERN Computer Security Team und anderen Organisationen zusammengearbeitet, die an der Abwehr von Angriffen auf wissenschaftliche Forschungsnetzwerke beteiligt sind. Deren Angaben zufolge, sind dem Einsatz von Kobalos andere Vorfälle vorausgegangen. Obwohl wir wissen, dass Kobalos große HPC-Cluster kompromittiert hat, konnte niemand die Kobalos-Vorfälle mit dem Einsatz von Kryptowährungs-Malware in Verbindung bringen. Auch die Malware und die bei diesen anderen Angriffen beschriebenen Techniken unterscheiden sich. Wir wissen auch, dass Kobalos nicht ausschließlich auf HPCs abzielt: Wir haben festgestellt, dass ein großer asiatischer ISP, ein nordamerikanischer Endpoint Security-Anbieter (nicht wir) sowie einige einfache Server ebenfalls von dieser Bedrohung betroffen waren.

Winziger Code, große Ziele

Eine gründliche Analyse von Kobalos hat ergeben, dass es manchmal möglich ist eine Systemkompromittierung aus der Ferne zu erkennen, indem über einen bestimmten TCP-Quellport eine Verbindung zum SSH-Server herstellt. Mit diesem Wissen suchten ESET-Forscher im Internet nach potenziellen Opfern. Wir konnten mehrere Ziele von Kobalos identifizieren, einschließlich HPC-Systeme.

Abbildung 1. Branche und Region kompromittierter Organisationen

Wir haben alle identifizierten Opfer benachrichtigt und mit ihnen zusammengearbeitet, um Abhilfe zu schaffen.

Die Backdoor

Kobalos ist eine generische Hintertür in dem Sinne, dass sie viele Befehle enthält, die die Absicht der Angreifer nicht offenbaren. Kurz gesagt, Kobalos gewährt Remotezugriff auf das Dateisystem, bietet die Möglichkeit Terminalsitzungen zu erzeugen und erlaubt Proxy-Verbindungen zu anderen mit Kobalos infizierten Servern.

Abbildung 2. Übersicht über Kobalos-Funktionen und Zugriffsmöglichkeiten

Es gibt mehrere Möglichkeiten für die Hintermänner, einen mit Kobalos infizierten Computer zu erreichen. Die Methode, die wir am häufigsten gesehen haben, besteht darin, dass Kobalos in die ausführbare OpenSSH-Serverdatei (sshd) eingebettet ist und den Backdoor-Code auslöst, wenn die Verbindung von einem bestimmten TCP-Quellport kommt. Es gibt andere eigenständige Varianten, die nicht in sshd eingebettet sind. Diese Varianten stellen entweder eine Verbindung zu einem C&C-Server her, der als Mittelsmann fungiert, oder sie warten auf eine eingehende Verbindung an einem bestimmten TCP-Port.

Was Kobalos einzigartig macht, ist die Tatsache, dass sich der Code zum Ausführen eines C&C-Servers in Kobalos selbst befindet. Jeder von Kobalos kompromittierte Server kann von den Bedienern, die einen einzigen Befehl senden, in einen C&C-Server umgewandelt werden. Da die IP-Adressen und Ports des C&C-Servers in der ausführbaren Datei fest codiert sind, können die Bediener neue Kobalos-Beispiele generieren, die diesen neuen C&C-Server verwenden.

Der Handlanger

In den meisten von Kobalos kompromittierten Systemen ist der SSH-Client kompromittiert, um Anmeldeinformationen zu stehlen. Dieser Stealer für Anmeldeinformationen unterscheidet sich von allen schädlichen OpenSSH-Clients, die wir bis jetzt gesehen haben, und wir haben in den letzten acht Jahren viele davon gesehen. Die Raffinesse dieser Komponente ist nicht die gleiche wie bei Kobalos selbst: es wurde kein Wert daraufgelegt, frühe Varianten des Stealers zu verschleiern. Beispielsweise wurden Zeichenfolgen unverschlüsselt gelassen und gestohlene Benutzernamen und Kennwörter werden einfach in eine Datei auf der Festplatte geschrieben. Wir haben jedoch neuere Varianten gefunden, die eine gewisse Verschleierung enthalten und die Möglichkeit bieten, Anmeldeinformationen über das Netzwerk zu filtern.

Die Anwesenheit dieses Stealers könnte teilweise beantworten, wie sich Kobalos verbreitet. Jedem, der den SSH-Client eines kompromittierten Computers verwendet, werden die Anmeldeinformationen gestohlen. Diese Anmeldeinformationen können dann von den Angreifern verwendet werden, um Kobalos später auf dem neu entdeckten Server zu installieren.

Wie sich Kobalos versteckt

Das Analyse von Kobalos ist nicht so trivial wie bei anderer Linux-Malware, da der gesamte Code in einer einzigen Funktion gespeichert ist, die sich rekursiv selbst aufruft, um Unteraufgaben auszuführen.

Abbildung 3. Kontrollflussdiagramm von Kobalos

Dies macht die Analyse schwieriger. Darüber hinaus sind alle Zeichenfolgen verschlüsselt, sodass es schwieriger ist, den Schadcode zu finden, als wenn man Beispiele statisch betrachtet.

Die Verwendung der Hintertür erfordert einen privaten 512-Bit-RSA-Schlüssel und ein 32 Byte langes Kennwort. Nach der Authentifizierung werden RC4-Schlüssel ausgetauscht und die weitere Kommunikation damit verschlüsselt.

Das Netzwerkprotokoll wird durch das Sequenzdiagramm zusammengefasst.

Abbildung 4. Sequenzdiagramm mit einer Zusammenfassung der Kobalos-Netzwerkprotokolle

Beseitigung

ESET-Produkte erkennen die Kobalos-Malware als Linux/Kobalos oder Linux/Agent.IV. Der Stealer für SSH-Anmeldeinformationen wird als Linux/SSHDoor.EV, Linux/SSHDoor.FB oder Linux/SSHDoor.FC erkannt. Eine YARA-Regel ist auch im Malware-ioc-Repository von ESET auf GitHub verfügbar.

Aus Netzwerksicht ist es möglich, Kobalos zu erkennen, indem auf den dem SSH-Server zugeordneten Ports nach Nicht-SSH-Verkehr sucht. Wenn die Kobalos-Backdoor mit einem Betreiber kommuniziert, wird weder vom Client noch vom Server ein SSH-Banner (SSH-2.0-…) ausgetauscht.

Wir haben bereits früher vorgeschlagen Zwei-Faktor-Authentifizierung (2FA) für die Verbindung mit SSH-Servern einzurichten. Auch bei Kobalos hätte 2FA die Bedrohung mindern können, da die Verwendung gestohlener Anmeldeinformationen eine der Möglichkeiten zu sein scheint, wie sich die Malware es auf verschiedene Systeme überträgt.

Fazit

Wir konnten die Absichten der Betreiber von Kobalos nicht ermitteln. Die Systemadministratoren der kompromittierten Computer konnten keine andere Malware als den Stealer für SSH-Anmeldeinformationen finden. Wir hatten auch keinen Zugriff auf erfassten Netzwerkverkehr der Malware-Betreiber.

Die Art und Weise, wie Kobalos in einer einzigen Funktion enthalten ist, und die Verwendung eines vorhandenen offenen Ports, um Kobalos zu erreichen, erschweren das Aufspüren dieser Bedrohung. Hoffentlich helfen die hier enthüllten Details, das Bewusstsein für diese Bedrohung zu schärfen und ihre Aktivitäten genauer unter die Lupe zu nehmen. Dieser Grad an Raffinesse ist bei Linux-Malware nur selten zu beobachten. Da Kobalos überdurchschnittlich weit fortgeschritten ist und ziemlich große Unternehmen gefährdet, könnte es möglicherweise noch eine Weile eine Gefahr darstellen.

Eine umfassende Liste von Kompromissindikatoren (IoCs) und Samples finden Sie in unserem GitHub-Repository.

Für Anfragen oder Sample-Einreichungen zu diesem Thema wenden Sie sich bitte an threatintel@eset.com.

Wir möchten die Arbeit von Maciej Kotowicz von MalwareLab.pl hervorheben, der Kobalos auch unabhängig analysiert hat und mit dem wir gegenseitig Ergebnisse geteilt haben. Er hielt ein Vortrag zu dieser Bedrohung auf der Konferenz Oh My H@ck 2020.

MITRE ATT&CK techniques

This table was built using version 8 of the ATT&CK framework.

Tactic ID Name Description
Persistence T1554 Compromise Client Software Binary Kobalos may embed its malicious payload in the OpenSSH server and replace the legitimate file (sshd).
Kobalos replaces the SSH client on compromised systems to steal credentials.
T1205 Traffic Signaling Kobalos may be triggered by an incoming TCP connection to a legitimate service from a specific source port.
Defense Evasion T1070.003 Clear Command History No command history related to the attack was found on Kobalos-infected machines.
T1070.006 Timestomp When files are replaced by Kobalos operators, timestamps are forged.
T1027.002 Software Packing Kobalos’s code is flattened into a single function using a custom packer and its strings are encrypted.
Command and Control T1573.001 Encrypted Channel: Symmetric Cryptography Kobalos’s post-authentication communication channel is encrypted with RC4.
T1573.002 Encrypted Channel: Asymmetric Cryptography Kobalos’s authentication and key exchange is performed using RSA-512.
T1090.003 Proxy: Multi-hop Proxy Kobalos can serve as a proxy to other Kobalos-compromised systems.