Mitu veebi samas virtuaalserveris – miks mitte?

Üsna tihti kohtab soovi majutada ühe virtuaalserveri alla mitu veebi – see on “väikese nipiga” tehtav, aga me oleme rõhutatult hoidunud selle lihtsamaks tegemisest. Põhjuseks turvalisus ja väiksemal määral ka jõudlus.

Nüüd sattus kätte ka hea/halb näide, seoses Ultimate Member plugina haavatavusega. Sündmuste ahel oli üldistatult järgmine:

  • alamdomeenil asuv veeb (failid kataloogis[alamveeb-1]) kasutas Ultimate Member pluginat, selle turvaaugu kaudu võeti veeb 11. augustil ründaja poolt üle ning see hakkas külastajaid edasi suunama;
  • järgnevatel päevadel on näha erinevate failide muutmist, tegemist võib olla nii sama ründaja koodiuuendustega kui konkureerivate ründajatega;
  • 22. augustil on jõutud nakatava koodiga versioonini, mis oskab laiemalt ringi vaadata ning varustas pahavaraga põhidomeeni ja 3 alamdomeeni, kokku 541 faili (PHP ja JavaScript, lisaks said pihta ka sobiva nimega CSSid).

Selles ajaloos on [alamveeb-1] Ultimate Members pluginaga veebileht, htdocs/ asub põhiveeb ja esimene “roosa rida” asub sootuks väljaspool veebiserverite juurkatalooge:

Olgu lisatud, et punane rida ehk [alamveeb-3] on Joomla! ehk selline JavaScript’ide nakatamine töötab väga hästi sisuhaldusrakendusest hoolimata. Sellest, mida neis failides muudeti, saad lugeda postitusest Kolme päevaga turvapaigast rünneteni: Ultimate Member.

Miks nii läks?

Virtuaalserver on tehnilises mõttes üks Linux’i kasutajakonto, millel on oma kodukataloog ja selle all veeb või veebid. Kasutajal on mõistagi õigus kõiki oma faile lugeda ja kirjutada, näiteks FTPga sisse logides. Ka veebiserver käitab PHP-koodi sellesama kasutaja õigustes… ehk sisuliselt “näeb” ja saab muuta kõike seda, mida kasutaja ise.

Vahest on olukorda lihtsam mõista Windowsi kasutaja kodukataloogi näitel:

Jah, otseloomulikult näeb sinu WordPress ka kõiki muid faile, mille oled serverisse laadinud. Paljude veebimajutus-teenuse pakkujate puhul asuvad samas kasutaja kodukataloogis ka kõigi e-posti-kontode postkastid ning sissetungija saab hõlpsalt kirju lugeda, sh leida sinna saadetud teiste teenuste paroole. Meil Zones on e-post täiesti eraldi serverites, seda nii turvalisuse kui käideldavuse huvides.

Sellist kõrval-veebide ülevõtmist nimetatakse külgliikumiseks (lateral movement) ja see on mistahes ründe puhul standardtegevus: said küüned kuhugi taha? Vaata veidi ringi, tõenäoliselt on omanik midagi vedelema jätnud ning sul õnnestub sellest ühest süsteemist järgmisse edasi liikuda. Virtuaalserverist mitme veebi leidmine annab kindlasti põhjust vaimustunult “Bingo!” hõigata.

Kuidas vältida?

Valides Virtuaalserverit on sul mõttes hind, kettaruum ja muud numbrilised parameetrid. Tegelikult ostad sa aga eraldatust – tükikest serverist, kuhu teised ligi ei pääse ja mis tagab ka selle, et õnnestunud ründe puhul piirduvad probleemid selle ühe veebiga.

Näiteks kasutatud juhtumi puhul sai enamuse veebidest õnneks varukoopiast taastada, aga [alamveeb-1] nakatumisest oli möödas juba rohkem kui 14 päeva ning see tuli puhastada käsitsi.

Kuna ründemeetod oli tuttav, läks seegi üsna libedalt, pikemalt “mädanenud” veebi puhul (millest on sageli üle käinud mitu ründajat) ütleksin ma hinnaks minimaalselt 2, aga tõenäoliselt 4-8 tundi – ja seda ühe (alam)veebi kohta.

Alamveeb on OK näiteks test- või arendus-versiooni jaoks – eeldusel, et see on kenasti parooliga kaitstud ning poolik või uuendamata kood täiendavaks turvaprobleemiks ei osutu.

Paraku näen ma aga sageli seda, et sama konto all on avalik veebisait (uuendamata), veebi vana versioon (“igaks juhuks”), intranet, kliendihaldus, mingi kontakte koguv kampaanialahendus jms. Ehk siis konfidentsiaalne äri-info ning isikuandmed – ning hetkel, kui veeb on “maha häkitud”, võib isikuandmete kaitse üldmäärusest (GDPR) lähtuvalt tekkida vajadus teavitada intsidendist Andmekaitseinspektsiooni … ja kliente.

Üks väike märkus veel – Virtuaalserverite puhul on lisaks kettamahule seatud piirid ka samaaegsete päringute arvule, kui mõni kontol olevatest veebidest osutub aeglaseks ning otsimootorid seda hoogsalt indekseerima asuvad… kannatavad tema pärast ka teised.

ps. Ah et kuidas saab ühes Zone Virtuaalserveris mitut veebi pidada? Teed alamdomeeni ning tellid sellele vajaliku domeeni jaoks aliase 🙂 Aga ära unusta enne riske hinnata.