FritzFrog-masken har identifierats, infekterar servrar via SSH och bygger ett decentraliserat botnät

Guardicore-företag, specialiserat på skydd av datacenter och molnsystem, avslöjat FritzFrog, en ny högteknologisk skadlig kod som attackerar Linux-baserade servrar. FritzFrog kombinerar en mask som sprider sig genom en bruteforce-attack på servrar med en öppen SSH-port och komponenter för att bygga ett decentraliserat botnät som fungerar utan kontrollnoder och som inte har någon enda felpunkt.

För att bygga ett botnät används ett proprietärt P2P-protokoll, där noder interagerar med varandra, koordinerar organisationen av attacker, stödjer driften av nätverket och övervakar varandras status. Nya offer hittas genom att utföra en bruteforce-attack på servrar som accepterar förfrågningar via SSH. När en ny server upptäcks, söks en ordbok över typiska kombinationer av inloggningar och lösenord. Kontroll kan utföras genom vilken nod som helst, vilket gör det svårt att identifiera och blockera botnätoperatörer.

Enligt forskare har botnätet redan cirka 500 noder, inklusive servrar från flera universitet och ett stort järnvägsföretag. Det noteras att de främsta målen för attacken är nätverk av utbildningsinstitutioner, vårdcentraler, statliga myndigheter, banker och telekommunikationsföretag. Efter att servern har äventyrats organiseras processen för att bryta Monero-kryptovalutan på den. Aktiviteten för den skadliga programvaran i fråga har spårats sedan januari 2020.

Det speciella med FritzFrog är att den behåller all data och körbar kod endast i minnet. Ändringar på disken består endast av att lägga till en ny SSH-nyckel till filen authorized_keys, som sedan används för att komma åt servern. Systemfiler ändras inte, vilket gör masken osynlig för system som kontrollerar integriteten med hjälp av kontrollsummor. Minnet lagrar också ordböcker för brute-forcing lösenord och data för gruvdrift, som synkroniseras mellan noder med P2P-protokollet.

Skadliga komponenter kamoufleras som ifconfig, libexec, php-fpm och nginx-processer. Botnätnoder övervakar statusen för sina grannar och, om servern startas om eller till och med operativsystemet installeras om (om en modifierad auktoriserad_keys-fil överfördes till det nya systemet), återaktiverar de skadliga komponenter på värden. För kommunikation används standard SSH - skadlig programvara lanserar dessutom en lokal "netcat" som binder till localhost-gränssnittet och lyssnar på trafik på port 1234, som externa värdar kommer åt genom en SSH-tunnel, med hjälp av en nyckel från authorized_keys för att ansluta.

FritzFrog-masken har identifierats, infekterar servrar via SSH och bygger ett decentraliserat botnät

FritzFrog-komponentkoden är skriven i Go och körs i flertrådsläge. Skadlig programvara innehåller flera moduler som körs i olika trådar:

  • Cracker - söker efter lösenord på attackerade servrar.
  • CryptoComm + Parser - organiserar en krypterad P2P-anslutning.
  • CastVotes är en mekanism för att gemensamt välja målvärdar för attack.
  • TargetFeed - Tar emot en lista över noder att attackera från närliggande noder.
  • DeployMgmt är en implementering av en mask som distribuerar skadlig kod till en komprometterad server.
  • Ägd - ansvarig för att ansluta till servrar som redan kör skadlig kod.
  • Montera - sammanställer en fil i minnet från separat överförda block.
  • Antivir - en modul för att undertrycka konkurrerande skadlig programvara, identifierar och avslutar processer med strängen "xmr" som förbrukar CPU-resurser.
  • Libexec är en modul för utvinning av kryptovalutan Monero.

P2P-protokollet som används i FritzFrog stöder cirka 30 kommandon som är ansvariga för att överföra data mellan noder, köra skript, överföra skadliga komponenter, pollingstatus, utbyta loggar, starta proxyer, etc. Information sänds över en separat krypterad kanal med serialisering i JSON-format. Kryptering använder asymmetrisk AES-chiffer och Base64-kodning. DH-protokollet används för nyckelutbyte (Diffie-Hellman). För att bestämma tillståndet utbyter noder ständigt ping-förfrågningar.

Alla botnätsnoder upprätthåller en distribuerad databas med information om attackerade och komprometterade system. Attackmål synkroniseras över hela botnätet - varje nod attackerar ett separat mål, d.v.s. två olika botnätsnoder kommer inte att attackera samma värd. Noder samlar också in och överför lokal statistik till grannar, såsom ledigt minnesstorlek, drifttid, CPU-belastning och SSH-inloggningsaktivitet. Denna information används för att bestämma om man ska starta gruvprocessen eller använda noden endast för att attackera andra system (till exempel startar inte gruvdrift på laddade system eller system med frekventa administratörsanslutningar).

För att identifiera FritzFrog har forskare föreslagit en enkel skalskript. För att fastställa systemskada
tecken som närvaron av en lyssningsanslutning på port 1234, närvaron skadlig nyckel i auktoriserade_nycklar (samma SSH-nyckel är installerad på alla noder) och närvaron i minnet av processer "ifconfig", "libexec", "php-fpm" och "nginx" som inte har associerade körbara filer ("/proc/ /exe" pekar på en fjärrfil). Ett tecken kan också vara närvaron av trafik på nätverksporten 5555, vilket inträffar när skadlig programvara kommer åt den typiska poolen web.xmrpool.eu under brytningen av Monero-kryptovalutan.

Källa: opennet.ru

Lägg en kommentar