De FritzFrog-worm is geïdentificeerd, die servers via SSH infecteert en een gedecentraliseerd botnet opbouwt

Guardicore-bedrijf, gespecialiseerd in de bescherming van datacenters en cloudsystemen, onthuld FritzFrog, een nieuwe hightech malware die Linux-gebaseerde servers aanvalt. FritzFrog combineert een worm die zich verspreidt via een bruteforce-aanval op servers met een open SSH-poort, en componenten om een ​​gedecentraliseerd botnet te bouwen dat zonder controleknooppunten werkt en geen enkel storingspunt heeft.

Voor het bouwen van een botnet wordt gebruik gemaakt van een eigen P2P-protocol, waarbij knooppunten met elkaar communiceren, de organisatie van aanvallen coördineren, de werking van het netwerk ondersteunen en elkaars status monitoren. Nieuwe slachtoffers worden gevonden door een bruteforce-aanval uit te voeren op servers die verzoeken via SSH accepteren. Wanneer een nieuwe server wordt gedetecteerd, wordt een woordenboek met typische combinaties van logins en wachtwoorden doorzocht. De controle kan via elk knooppunt worden uitgevoerd, wat het moeilijk maakt om botnetoperators te identificeren en te blokkeren.

Volgens onderzoekers beschikt het botnet al over zo'n 500 knooppunten, waaronder de servers van verschillende universiteiten en een grote spoorwegmaatschappij. Opgemerkt wordt dat de belangrijkste doelwitten van de aanval netwerken van onderwijsinstellingen, medische centra, overheidsinstanties, banken en telecommunicatiebedrijven zijn. Nadat de server is gecompromitteerd, wordt het proces van het minen van de Monero-cryptocurrency daarop georganiseerd. De activiteit van de betreffende malware wordt sinds januari 2020 getraceerd.

Het bijzondere aan FritzFrog is dat het alle gegevens en uitvoerbare code alleen in het geheugen bewaart. Wijzigingen op de schijf bestaan ​​uitsluitend uit het toevoegen van een nieuwe SSH-sleutel aan het bestand geautoriseerde_sleutels, die vervolgens wordt gebruikt om toegang te krijgen tot de server. Systeembestanden worden niet gewijzigd, waardoor de worm onzichtbaar wordt voor systemen die de integriteit controleren met behulp van checksums. Het geheugen slaat ook woordenboeken op voor het bruut forceren van wachtwoorden en gegevens voor mining, die tussen knooppunten worden gesynchroniseerd met behulp van het P2P-protocol.

Schadelijke componenten worden gecamoufleerd als ifconfig-, libexec-, php-fpm- en nginx-processen. Botnetknooppunten monitoren de status van hun buren en als de server opnieuw wordt opgestart of zelfs het besturingssysteem opnieuw wordt geïnstalleerd (als een gewijzigd geautoriseerde_sleutels-bestand naar het nieuwe systeem is overgebracht), activeren ze kwaadaardige componenten op de host opnieuw. Voor communicatie wordt standaard SSH gebruikt. De malware lanceert bovendien een lokale “netcat” die zich bindt aan de localhost-interface en luistert naar verkeer op poort 1234, waartoe externe hosts toegang hebben via een SSH-tunnel, met behulp van een sleutel van geautoriseerde_sleutels om verbinding te maken.

De FritzFrog-worm is geïdentificeerd, die servers via SSH infecteert en een gedecentraliseerd botnet opbouwt

De FritzFrog-componentcode is geschreven in Go en draait in multi-threaded modus. De malware bevat verschillende modules die in verschillende threads draaien:

  • Cracker - zoekt naar wachtwoorden op aangevallen servers.
  • CryptoComm + Parser - organiseert een gecodeerde P2P-verbinding.
  • CastVotes is een mechanisme voor het gezamenlijk selecteren van doelhosts voor aanvallen.
  • TargetFeed - Ontvangt een lijst met knooppunten die moeten worden aangevallen vanaf aangrenzende knooppunten.
  • DeployMgmt is een implementatie van een worm die kwaadaardige code naar een gecompromitteerde server verspreidt.
  • In eigendom: verantwoordelijk voor het verbinden met servers waarop al kwaadaardige code wordt uitgevoerd.
  • Assembleren - stelt een bestand in het geheugen samen uit afzonderlijk overgedragen blokken.
  • Antivir - een module voor het onderdrukken van concurrerende malware, identificeert en beëindigt processen met de string "xmr" die CPU-bronnen verbruiken.
  • Libexec is een module voor het minen van de cryptocurrency Monero.

Het P2P-protocol dat in FritzFrog wordt gebruikt, ondersteunt ongeveer 30 opdrachten die verantwoordelijk zijn voor het overbrengen van gegevens tussen knooppunten, het uitvoeren van scripts, het overbrengen van malwarecomponenten, het opvragen van de status, het uitwisselen van logboeken, het starten van proxy's, enz. Informatie wordt verzonden via een afzonderlijk gecodeerd kanaal met serialisatie in JSON-formaat. Versleuteling maakt gebruik van asymmetrische AES-codering en Base64-codering. Voor de sleuteluitwisseling wordt het DH-protocol gebruikt (Diffie-Hellman). Om de status te bepalen, wisselen knooppunten voortdurend ping-verzoeken uit.

Alle botnetknooppunten onderhouden een gedistribueerde database met informatie over aangevallen en gecompromitteerde systemen. Aanvalsdoelen worden door het hele botnet gesynchroniseerd - elk knooppunt valt een afzonderlijk doel aan, d.w.z. twee verschillende botnetknooppunten zullen niet dezelfde host aanvallen. Knooppunten verzamelen en verzenden ook lokale statistieken naar buren, zoals vrije geheugengrootte, uptime, CPU-belasting en SSH-inlogactiviteit. Deze informatie wordt gebruikt om te beslissen of het mining-proces moet worden gestart of dat het knooppunt alleen moet worden gebruikt om andere systemen aan te vallen (mining start bijvoorbeeld niet op geladen systemen of systemen met frequente beheerdersverbindingen).

Om FritzFrog te identificeren hebben onderzoekers een eenvoudige oplossing voorgesteld shell-script. Om systeemschade vast te stellen
signalen zoals de aanwezigheid van een luisterverbinding op poort 1234, de aanwezigheid kwaadaardige sleutel in geautoriseerde_sleutels (dezelfde SSH-sleutel is geïnstalleerd op alle knooppunten) en de aanwezigheid in het geheugen van lopende processen “ifconfig”, “libexec”, “php-fpm” en “nginx” die geen bijbehorende uitvoerbare bestanden hebben (“/proc/ /exe" verwijst naar een extern bestand). Een teken kan ook de aanwezigheid van verkeer op netwerkpoort 5555 zijn, wat optreedt wanneer malware toegang krijgt tot de typische pool web.xmrpool.eu tijdens het minen van de Monero-cryptocurrency.

Bron: opennet.ru

Voeg een reactie