FritzFrog: P2P-Botnet taucht wieder auf

Zusammenfassung
FritzFrog ist eine Peer-to-Peer- Botnet- Kampagne, die im August 2020 von Guardicore Labs (jetzt Akamai Threat Labs) aufgedeckt wurde.
Das dezentralisierte Botnet zielt auf alle Geräte ab, die einen SSH-Server zur Verfügung stellen – Cloud-Instanzen, Rechenzentrumsserver, Router usw. – und ist in der Lage, schädliche Nutzlasten auf infizierten Knoten auszuführen.
Die Peer-to-Peer-Architektur und der proprietäre Code weisen ein hohes Maß an Raffinesse auf.
Er ist vor kurzem wieder aufgetaucht und hat seine Infektionsrate innerhalb eines Monats verzehnfacht, gefährdet sind insbesondere Server im Gesundheits-, Bildungs- und Regierungssektor.
1.500 verschiedene Hosts wurden seit dem Wiederauftauchen des Botnets infiziert, die meisten davon in China.
Die verbreitete Golang-Malware fügt dem Botnet neue Funktionen wie die Nutzung eines Proxy-Netzwerks und das Angreifen von WordPress-Servern hinzu.
Die jüngste Angriffsrunde liefert weitere Beweise für den Ursprung von FritzFrog, die auf eine mögliche Verbindung zu einem in China operierenden Akteur oder einem als Chinesen getarnten Akteur hinweisen.
Akamai Threat Labs hat das FritzFrog-Erkennungstool aktualisiert, um die neueste Version der Malware zu erkennen.

FritzFrog v1 – eine kurze Zusammenfassung
FritzFrog ist ein Peer-to-Peer-Botnet, was bedeutet, dass sein Befehls- und Kontrollserver nicht auf einen einzelnen, zentralen Rechner beschränkt ist, sondern von jedem Rechner in seinem verteilten Netzwerk aus ausgeführt werden kann. Mit anderen Worten: Jeder Host, auf dem der Malware-Prozess ausgeführt wird, wird Teil des Netzwerks und ist in der Lage, Befehle zur Steuerung von Computern im Netzwerk zu senden, zu empfangen und auszuführen.
FritzFrog verbreitet sich über SSH. Sobald die Anmeldeinformationen eines Servers mithilfe einer einfachen (aber aggressiven) Brute-Force-Technik ermittelt wurden, richtet es eine SSH-Sitzung mit dem neuen Opfer ein und löscht die ausführbare Malware auf dem Host. Die Malware beginnt dann mit dem Abhören und Warten auf Befehle. Diese umfassen den Austausch von Zielen, die gemeinsame Nutzung von Details kompromittierter Rechner, die Übertragung von Dateien sowie das Ausführen von Skripten und binären Payloads. Die vollständige Liste steht in unserem vorherigen Blogbeitrag zur Verfügung.
Wir betrachten FritzFrog als Botnet der "nächsten Generation", da es aufgrund seiner Kombination von Eigenschaften einzigartig in der Bedrohungslandschaft ist:
Ständige Aktualisierung – Datenbanken von Zielen und angegriffenen Rechnern werden nahtlos ausgetauscht.
Aggressivität – Brute Force basiert auf einem umfangreichen Wörterbuch; im Vergleich dazu verwendete DDG, ein weiteres kürzlich entdecktes P2P-Botnet, nur den Nutzernamen "root".
Effizienz – Ziele werden gleichmäßig auf die Knoten verteilt.
Proprietärität – das P2P-Protokoll ist vollständig proprietär und basiert auf keinem bekannten P2P-Protokoll wie μTP.
FritzFrog v2 – die Neuauflage
Gleich nach der Veröffentlichung der Details über FritzFrog im August 2020 stellte das Team von Guardicore Labs (jetzt Akamai Threat Labs) einen Rückgang der Anzahl der Angriffe fest. Anfang Dezember 2021 begannen wir jedoch, einen Anstieg der Angriffe auf unser globales Sensornetzwerk zu beobachten.
Ein FritzFrog-Angriff beginnt mit einem SSH-Brute-Force und setzt sich fort, indem eine Datei abgelegt und ausgeführt wird. Diese Datei beginnt sofort mit dem Abhören von Port 1234 und dem Scannen Tausender Internet-IP-Adressen über Port 22 und 2222.
Ein Unterschied zwischen den alten und neuen FritzFrog-Angriffen ist der Name des bösartigen Prozesses. In der ersten Angriffsrunde hieß der schädliche Prozess ifconfig oder nginx; dieses Mal wählten die FritzFrog-Betreiber den Namen apache2.
Wir begannen mit der Überwachung der neuen Variante und sahen einen überraschenden Anstieg der Zahl der FritzFrog-Angriffe, die mit 500 Vorfällen pro Tag ihren Höhepunkt erreichte.

Opferanalyse
Als Teil unserer Untersuchung der ersten FritzFrog-Welle entwickelten wir ein Tool namens Frogger. Frogger ermöglicht es uns, Informationen über infizierte Hosts zu sammeln, unter anderem zu Verfügbarkeit, hashrate, Peers und hasrate, wenn ein Kryptominer ausgeführt wird. Dieses Programm nimmt die IP-Adresse eines infizierten Knotens und fragt den Host über einen verschlüsselten Kommunikationskanal ab, um Informationen über seinen Status zu erhalten. Auf diese Weise können wir mehr über den Knoten und andere Knoten, mit denen er verbunden ist, erfahren. Bei diesem Prozess wird die Infrastruktur des Botnets genutzt.
Unsere Opferanalyse basierte auf zwei Quellen: den IP-Adressen der Rechner, die unsere Sensoren angegriffen haben, und den Informationen, die Frogger erhielt. Wir begannen mit der Liste der Angreifer-IPs, die von unseren Sensoren beobachtet wurden, und erweiterten diese Liste dann, indem wir jede IP mit Frogger rekursiv nach ihren Gegenspielern abfragten.
Die nachstehenden Diagramme zeigen die tägliche Anzahl der IP-Adressen, die unsere Sensoren angegriffen haben, und den Unterschied in der Anzahl der Angreifer zwischen aufeinanderfolgenden Tagen. Der Anstieg der Anzahl der angreifenden Knoten – Opfer, auf denen Malware ausgeführt wird – ist beunruhigend.


Während der zweiten Kampagne gelang es FritzFrog, mehr als 1.500 verschiedene Hosts zu infizieren. Dabei handelte es sich um Server, die Unternehmen verschiedener Größen und Branchen angehörten, u. a. Gesundheitswesen, Hochschulen und Behörden. Wir fanden infizierte Rechner in einem europäischen Fernsehkanalnetz, einem russischen Hersteller von Gesundheitsgeräten und mehreren Universitäten in Ostasien. Wie auf der Karte zu sehen, waren viele Rechner in China betroffen.

Neue Malware-Funktionen
Die FritzFrog-Binärdatei ist in Golang geschrieben und kann so kompiliert werden, dass sie auf vielen verschiedenen Architekturen läuft. Sie wird mit UPX gepackt und normalerweise unter einem von vier Prozessnamen ausgeführt: ifconfig, nginx, apache2 oder php-fpm. Eine gründliche Analyse der Malware haben wir in unserer vorherigen Veröffentlichung bereitgestellt,sodass wir uns hier auf die neuen Muster und Ergänzungen konzentrieren, die vorgenommen wurden.
FritzFrog wird täglich aktualisiert – manchmal mehrmals am Tag. Die meisten neuen Versionen beinhalten Fehlerbehebungen, aber einige fügen der Malware auch neue Funktionen hinzu.
Vorbereitung für WordPress-Targeting
In einer neuen Version implementiert FritzFrog die Infrastruktur für die Verfolgung von WordPress-Servern. Sie enthält Funktionen, die für das Hinzufügen und Entfernen von Einträgen aus Listen mit den Titeln WordPress und WordpressTargetsTTL verantwortlich sind. Der folgende Ausschnitt aus dem disassemblierten Code zeigt die Implementierung eines neuen P2P-Befehls, put wordpress, der der WordPress-Zielliste einen neuen Eintrag hinzufügt. Zum Zeitpunkt der Erstellung dieses Berichts sind diese Listen, die auf allen infizierten Knoten gespeichert werden, noch leer.

Die Malware enthält kein Modul, das WordPress-Ziele knacken oder identifizieren kann. Daher gehen wir davon aus, dass der Code eine Vorbereitung für neue Versionen ist, die diese Ziele gefährden und sie für andere Zwecke als Mining, wie Informationslecks, Ransomware usw., verwenden können.
Tor-Proxy-Kette
FritzFrog kann ausgehende SSH-Verbindungen über die Tor-Proxy-Kette projizieren, indem der Proxy für SSH-Verbindungen auf den lokalen Port 9050 gesetzt wird. Die Tor-Proxy-Kette ist ein Netzwerk von Knoten, das seinen Nutzern eine bessere Privatsphäre und Maskierung bietet, indem es einen gekapselten Pfad von der Quelle zum Ziel erstellt; jeder Knoten kennt nur seine direkten Nachbar-Knoten.
Durch die Weiterleitung von Anfragen an den lokalen Port 9050 nutzt FritzFrog die Tor-Proxy-Kette, um sich mit eigenen SSH-Geräten zu verbinden. Ein eigenes Gerät würde die eingehende Anfrage als vom letzten Knoten in der Proxy-Kette kommend betrachten. Dies kann dazu verwendet werden, die Adresse des aktuell infizierten Knotens zu verbergen. Bis heute ist die Funktionalität zwar vorhanden, aber wir konnten noch nicht beobachten, dass sie von der Malware genutzt wurde.
SCP
FritzFrog verwendet jetzt SCP, um sich selbst auf einen entfernten kompromittierten Server zu kopieren. Dies unterscheidet sich von der ersten Version, bei der die ausführbare Malware-Datei mit dem Cat-Befehl über eine etablierte SSH-Sitzung auf ein neues Opfer abgelegt wurde. Die neue Implementierung verwendet eine öffentliche SCP-Bibliothek, geschrieben in Golang in GitHub. Wir konnten keinen nennenswerten Vorteil für eine Methode gegenüber der anderen feststellen. Es ist jedoch bemerkenswert, dass die Autoren der SCP-Bibliothek in China ansässig sind.
Blockliste
Die frühe Version von FritzFrog implementierte eine Blockliste, um bestimmte Rechner vom Angriff durch das Cracker-Modul (Brute-Force) auszuschließen. Während ein spezieller P2P-Befehl – putblentry – das dynamische Einfügen von Einträgen in diese Liste ermöglicht, werden in den neuen Versionen mehrere Einträge im Voraus fest codiert.
Einige dieser Einträge geben einen Unix-Namen an, andere eine IP-Adresse – aber nie beides.
Blocklisteneinträge, die in die neuen FritzFrog-Proben fest codiert werden
[ {"Address": "",
"Uname_match": "[redacted]dddz.me 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017"},
{"Address": "",
"Uname_match": "[redacted]-1 4.4.0-151-generic #178-Ubuntu SMP Tue Jun 11 08: 30: 22 UTC 2019"},
{"Address": "",
"Uname_match": "[redacted].amzn2.x86_64 #1 SMP Mon Jun 18 22: 33: 07 UTC 2018 x86_64 GNU/Linux"},
{"Address": "",
"Uname_match": "[redacted]-generic #113-Ubuntu SMP Thu Jul 9 23: 41: 39 UTC 2020"},
{"Address": "",
"Uname_match": "[redacted] raspberrypi 4.4.32-v7+ #924 SMP Tue Nov 15 18: 11: 28 GMT 2016 armv7l GNU/Linux"},
{"Address": "",
"Uname_match": [redacted] 3.10.0-123.4.4.el7.x86_64 #1 SMP Fri Jul 25 05: 07: 12 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux"},
{"Address": "",
"Uname_match": [redacted] 4.18.0-193.28.1.el8_2.x86_64 #1 SMP Thu Oct 22 00: 20: 22 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux"},
{"Address": "[redacted].24: 22",
"Uname_match": ""},
{"Address": "[redacted].88: 22",
"Uname_match": ""},
{"Address": "[redacted].26: 22",
"Uname_match": ""}]
Die Einträge deuten darauf hin, dass die Betreiber vermeiden wollen, Low-End-Systeme mit geringen Ressourcen zu infizieren, wie z. B. Raspberry Pi-Geräte oder EC2-Images auf AWS mit geringen Ressourcen.
Eine IP in der Blockliste stammt aus Russland. Sie hat mehrere offene Ports und eine lange Liste ungepatchter Sicherheitslücken, sodass es sich möglicherweise um einen Honeypot handelt. Außerdem verweist ein zweiter Eintrag auf ein Open-Source-Botnet-Sinkhole. Diese beiden Einträge lassen darauf schließen, dass die Betreiber versuchen, sich der Entdeckung und Analyse zu entziehen.
Zwei der IP-Adressen sind geografisch in den USA ansässig. Ein Eintrag blockiert aus unklaren Gründen die Universität von Maryland; der zweite zeigt einen Scherz oder eine Warnung an, wenn man ihn aufruft, und ist sich offenbar der möglichen Untersuchung der Malware bewusst.

Ursprünge und Zuweisung
Die jüngsten Änderungen und Ergänzungen dieser Kampagne haben es uns ermöglicht, die möglichen Ursprünge dieser Malware zu untersuchen. Wir können zwar nicht mit Sicherheit sagen, woher sie stammt, glauben aber, dass die Weitergabe dieser Informationen hilfreich sein kann.
Der erste Beweis stammt von einer der neu hinzugefügten Bibliotheken – scp –, die in die FritzFrog-Malware kompiliert wurden, was das Secure Copy Protocol für Dateiübertragungen über SSH implementiert. Die Bibliothek ist in Go geschrieben, und ihr Code wird auf GitHub in einem Repository von einem Benutzer in Shanghai freigegeben. In diesem Repository ist ein Fork vorhanden, der von einer zweiten Person in Shanghaiausgeführt wurde.
Ein weiteres Indiz für eine Verbindung zu China sind die Kryptomining-Aktivitäten von FritzFrog. Unserem Forschungsteam ist es gelungen, neue Wallet-Adressen sowie neue Mining-Pools zu finden, die im Kryptomining-Prozess verwendet werden. Eine der neu beobachteten Wallet-Adressen (siehe unten) wurde auch als Teil der Mozi- Botnet-Kampagne verwendet, deren Urheber kürzlich in China verhaftet wurden.
Mit Mozi verbundene FritzFrog Monero Wallet-Adresse
47BD6QNfkWf8ZMQSdqp2tY1AdG8ofsEPf4mcDp1YB4AX32hUjoLjuDaNrYzXk7cQcoPBzAuQrmQTgNgpo6XPqSBLCnfsjaV
Diese Indizien sind zwar nicht erdrückend, lassen aber vermuten, dass eine Verbindung zu einem in China operierenden Akteur oder einem als Chinesen getarnten Akteur bestehen könnte. Schließlich hat die Überwachung der Angriffsdaten gezeigt, dass während der gesamten Dauer der Kampagne ein hohes Maß an Aktivitäten in und um China zu verzeichnen war. Derzeit scheinen sich etwa 37 % der infizierten Knoten in China zu befinden.
Prävention und Schadensbegrenzung
FritzFrog-Erkennungstool
Akamai bietet ein FritzFrog-Erkennungsskript zur Ausführung auf SSH-Servern an. Dieses sucht nach den folgenden Indikatoren für FritzFrog:
laufende Prozesse mit den Namen nginx, ifconfig, php-fpm, apache2 oder libexec, deren ausführbare Datei nicht mehr im Dateisystem vorhanden ist (siehe unten)
Listening-Port 1234

Darüber hinaus kann TCP-Datenverkehr über Port 5555 den Netzwerkverkehr zum Monero-Pool anzeigen.
Empfehlungen
Sorgen Sie dafür, dass Systeme immer auf dem neuesten Stand und gepatcht sind.
Implementieren Sie eine passwortlose Anmeldung mithilfe eines starken Schlüsselverwaltungs- und Rotationssystems.
Aktivieren Sie die Überprüfung der Systemanmeldung mit Warnmeldungen.
Überwachen Sie die Datei authorized_hosts unter Linux.
Konfigurieren Sie eine explizite Whitelist für die SSH-Anmeldung.
Deaktivieren Sie den Root-SSH-Zugriff.
Aktivieren Sie den cloudbasierten DNS-Schutz von Akamai, und blockieren Sie Bedrohungen und nicht verwandte Geschäftsanwendungen wie Coin Mining.