Danes je svetovni dan varnostnih kopij in če upravljate spletna mesta za stranke, prostovoljce ali sebe, ste verjetno že slišali za pravilo 3-2-1 – ali mojo osebno, paranoično najljubšo metodo 4-3-2-1. Vsak mesec ustvarite varnostno kopijo, na hitro preverite obnovitev v testnem okolju, videti je v redu, in greste naprej.
Nikoli ne glejte samo površinsko. Poglejte bližje. Morda ste zaščitili prijavo in omejili uporabniške pravice na vlogo urednika, toda ali ste si v zadnjem času ogledali mape Drop-ins ali Must-Use (mu-plugins)? Če tam opazite skripte, ki jih niste namestili sami, ali datoteke PHP, ki se skrivajo v mapi z nalogi (uploads), je čas za soočenje z realnostjo. Vaša uspešna obnovitev morda le obnavlja glavobol z zadnjimi vrati (backdoor), ki čaka na pravi trenutek, da se prebudi.
Nevidni vdor
V zadnjih 48 urah sem se za stranko boril z duhom v stroju. Spletno mesto je bilo ob prijavi videti popolno, za javne uporabnike pri določenih ponudnikih internetnih storitev (ISP) pa je bilo zmeda. Ni šlo samo za slab vtičnik; šlo je za kombinacijo zlonamernih mu-vstavkov, ki tja niso spadali, ter zastrupitve predpomnilnika DNS ali predpomnjenja na ravni ponudnika internetnih storitev, zaradi česar je spletno mesto na osebnih računalnikih izgledalo okuženo, medtem ko so mobilna omrežja 5G in VPN prikazovali čisto spletno mesto. Da bi bila stvar še hujša, so tabele ARP usmerjevalnikov držale umazane zapise kot trmast škrat.
Da bi izključil težave z lokalno programsko opremo, sem spletno mesto testiral na več virtualnih računalnikih, različnih operacijskih sistemih in v vseh glavnih brskalnikih. V teh izoliranih okoljih je spletno mesto izgledalo povsem v redu, kar je potrdilo, da težava ni bila splošna okvara spletnega mesta, temveč ciljna napaka lokalnega omrežja ali privid ponudnika internetnih storitev.
Popravek
Nisem samo obnovil; očistil sem sistem. To je vključevalo izbris nezaželenih mu-vstavkov in čiščenje mape z nalogi (uploads) vseh zablodelih datotek PHP, ki nimajo česa iskati v mapi z mediji. Lokalno okolje sem preklopil na AdGuard DNS, da bi zaobšel te nadležne privide ponudnika internetnih storitev, in spletno mesto zgradil na novo od začetka, da bi zagotovil, da je varnostna kopija varnostne kopije 100-odstotno čista.
Zaključek
Če niste prepričani, kaj posamezna datoteka počeri, vprašajte jezikovni model ali umetno inteligenco, saj sta odlična pri prepoznavanju vzorcev zlonamerne programske opreme v kodi. Naj jutri ne boste vi tisti, ki se mu smejejo, ker ste bili danes preleni, da bi preverili svojo mapo wp-content.
