Der Malware-Komplex Drovorub infiziert das Linux-Betriebssystem

National Security Agency und US Federal Bureau of Investigation einen Bericht veröffentlicht, wonach das 85. Hauptzentrum des Sonderdienstes Hauptdirektion des Generalstabs der russischen Streitkräfte (85 GCSS GRU) wird ein Malware-Komplex namens „Drovorub“ verwendet. Drovorub enthält ein Rootkit in Form eines Linux-Kernelmoduls, ein Tool zum Übertragen von Dateien und Umleiten von Netzwerkports sowie einen Steuerungsserver. Der Client-Teil kann Dateien herunterladen und hochladen, beliebige Befehle als Root-Benutzer ausführen und Netzwerk-Ports an andere Netzwerkknoten umleiten.

Das Drovorub-Kontrollzentrum erhält den Pfad zur Konfigurationsdatei im JSON-Format als Befehlszeilenargument:

{
„db_host“: „ ",
„db_port“: „ ",
„db_db“: „ ",
„db_user“: „ ",
„db_password“: „ ",

„lport“: „ ",
„lhost“: „ ",
„ping_sec“: „ ",

„priv_key_file“: „ ",
"Phrase" : " »
}

Als Backend wird MySQL DBMS verwendet. Für die Verbindung von Clients wird das WebSocket-Protokoll verwendet.

Der Client verfügt über eine integrierte Konfiguration, einschließlich der Server-URL, seines öffentlichen RSA-Schlüssels, Benutzernamens und Passworts. Nach der Installation des Rootkits wird die Konfiguration als Textdatei im JSON-Format gespeichert, die durch das Drovoruba-Kernelmodul vor dem System verborgen wird:

{
«id» : «cbcf6abc-466b-11e9-853b-000c29cb9f6f»,
„Schlüssel“: „Y2xpZW50a2V5“
}

Dabei ist „id“ eine vom Server vergebene eindeutige Kennung, bei der die letzten 48 Bits der MAC-Adresse der Netzwerkschnittstelle des Servers entsprechen. Der Standardparameter „key“ ist eine Base64-codierte Zeichenfolge „clientkey“, die vom Server während des ersten Handshakes verwendet wird. Darüber hinaus kann die Konfigurationsdatei Informationen zu versteckten Dateien, Modulen und Netzwerkports enthalten:

{
«id» : «6fa41616-aff1-11ea-acd5-000c29283bbc»,
„Schlüssel“: „Y2xpZW50a2V5“,
"monitor" : {
"Datei" : [
{
„aktiv“ : „wahr“
«id» : «d9dc492b-5a32-8e5f-0724-845aa13fff98»,
„Maske“: „Testdatei1“
}
],
"Modul" : [
{
„aktiv“ : „wahr“
«id» : «48a5e9d0-74c7-cc17-2966-0ea17a1d997a»,
„Maske“: „testmodule1“
}
],
"Netz" : [
{
„aktiv“ : „wahr“
«id» : «4f355d5d-9753-76c7-161e-7ef051654a2b»,
„Port“: „12345“,
„Protokoll“: „tcp“
}
] }
}

Eine weitere Komponente von Drovorub ist der Agent; seine Konfigurationsdatei enthält Informationen für die Verbindung zum Server:

{
„client_login“: „user123“,
„client_pass“: „pass4567“,
„clientid“: „e391847c-bae7-11ea-b4bc-000c29130b71“,
«clientkey_base64» : «Y2xpZW50a2V5»,
"pub_key_file":"public_key",
„server_host“: „192.168.57.100“,
„server_port“: „45122″,
"server_uri" :"/ws"
}

Die Felder „clientid“ und „clientkey_base64“ fehlen zunächst, sie werden nach der Erstregistrierung auf dem Server hinzugefügt.

Nach der Installation werden folgende Vorgänge ausgeführt:

  • das Kernelmodul wird geladen, das Hooks für Systemaufrufe registriert;
  • Der Client registriert sich beim Kernelmodul.
  • Das Kernelmodul verbirgt den laufenden Clientprozess und seine ausführbare Datei auf der Festplatte.

Für die Kommunikation zwischen dem Client und dem Kernelmodul wird ein Pseudogerät verwendet, beispielsweise /dev/zero. Das Kernelmodul analysiert alle auf das Gerät geschriebenen Daten und sendet zur Übertragung in die entgegengesetzte Richtung das SIGUSR1-Signal an den Client, woraufhin es Daten vom selben Gerät liest.

Um den Lumberjack zu erkennen, können Sie eine Netzwerkverkehrsanalyse mit NIDS verwenden (bösartige Netzwerkaktivitäten im infizierten System selbst können nicht erkannt werden, da das Kernelmodul die von ihm verwendeten Netzwerk-Sockets, Netfilter-Regeln und Pakete, die von Raw-Sockets abgefangen werden könnten, verbirgt). . Auf dem System, auf dem Drovorub installiert ist, können Sie das Kernelmodul erkennen, indem Sie ihm den Befehl zum Ausblenden der Datei senden:

Touch-Testdatei
echo „ASDFZXCV:hf:testfile“ > /dev/zero
ls

Die erstellte „Testdatei“-Datei wird unsichtbar.

Weitere Erkennungsmethoden umfassen die Analyse von Speicher- und Festplatteninhalten. Um eine Infektion zu verhindern, wird empfohlen, die obligatorische Signaturüberprüfung des Kernels und der Module zu verwenden, die ab Linux-Kernel-Version 3.7 verfügbar ist.

Der Bericht enthält Snort-Regeln zur Erkennung der Netzwerkaktivität von Drovorub und Yara-Regeln zur Erkennung seiner Komponenten.

Erinnern wir uns daran, dass die 85. GTSSS GRU (Militäreinheit 26165) mit der Gruppe verbunden ist APT28 (Fancy Bear), verantwortlich für zahlreiche Cyberangriffe.

Source: opennet.ru