Svetainė buvo išvalyta, bet po kelių dienų ar savaičių infekcija grįžo. Tai viena dažniausių situacijų, su kuriomis susiduria svetainių savininkai po pirmojo valymo bandymo. Dažniausiai tai reiškia, kad valymas nebuvo atliktas iki galo: liko backdoor, automatinis atkūrimo mechanizmas arba nepašalintas pažeidžiamumas.
Pakartotinis užkrėtimas nėra atsitiktinis sutapimas ar ypatinga sėkmė. Tai loginė pasekmė to, kad kenkėjiškas kodas dažnai susideda iš kelių sluoksnių, ir pašalinus tik vieną iš jų, kiti lieka aktyvūs.
Trumpas atsakymas: kodėl grįžta infekcija
Kenkėjiškas kodas retai yra vienas failas ar vienas duomenų bazės įrašas. Tipinė infekcija turi:
- Payload: akivaizdžiai kenkiantis kodas, kurį pastebi skeneriai ir savininkas
- Backdoor: paslėpta prieiga, leidžianti grįžti net ir pakeitus slaptažodžius
- Atkūrimo mechanizmas:
wp-cronužduotis ar duomenų bazės įrašas, automatiškai parsisiunčiantis naują kenkėjišką kodą
Pašalinus tik payload: backdoor leidžia įdiegti naują per kelias valandas ar dienas. Pašalinus tik akivaizdžias dalis: atkūrimo mechanizmas atkuria viską iš naujo. Pilnas valymas turi pasiekti visus tris sluoksnius.
Priežastis 1: backdoor liko nepašalintas
Tai dažniausia pakartotinio užkrėtimo priežastis. Backdoor — tai paslėpta prieiga, leidžianti vykdyti komandas serveryje nepriklausomai nuo WordPress slaptažodžių. Apie tai, kur slepiasi WordPress backdoor ir kaip jį aptikti — atskirame straipsnyje.
Backdoor failai dažniausiai:
- Užkoduoti base64: atrodo kaip beprasmis simbolių rinkinys, bet PHP
eval(base64_decode(...))jį įvykdo kaip kodą - Įterpti į legitimius failus:
functions.php,index.php,class-wp.php— ten, kur jų mažiausiai tikimasi - Saugomi kaip duomenų bazės įrašai: widget'ų ar meniu turinyje,
wp_optionslentelėje - Pritvirtinti prie
wp-cron: automatiškai vykdomi pagal grafiką, parsisiunčia naują payload - Paslėpti
wp-content/uploads/: PHP failai tarp nuotraukų, kurie neturėtų ten būti
Vienas nepastebėtas backdoor failas gali atkurti visą infekciją per kelias valandas po valymo.
Priežastis 2: nepakeisti prieigos duomenys
Jei FTP, hostingo panelės, duomenų bazės ar WordPress administratoriaus slaptažodžiai nebuvo pakeisti po valymo: užpuolikas gali grįžti per tą pačią prieigą, kuria ir pateko pirmą kartą.
Ypač kritiniai:
- FTP slaptažodis: tiesioginė prieiga prie visų failų, apeinant WordPress
- Hostingo panelės slaptažodis: valdymo prieiga prie viso serverio
- Duomenų bazės slaptažodis: tiesioginė prieiga prie visų duomenų
- WordPress administratoriaus paskyra: ypač jei naudotas silpnas ar pakartotinis slaptažodis
Slaptažodžiai turi būti keičiami po valymo, ne prieš. Jei slaptažodžiai pakeičiami pirma, o backdoor lieka, tai nieko neduoda.
Priežastis 3: nepašalintas pažeidžiamumas
Kenkėjiškas kodas pateko per konkrečią saugumo spragą. Jei ši spraga liko, automatizuotos atakos ją naudos pakartotinai. Paprastai tai:
Pasenęs įskiepis ar tema su žinoma saugumo spraga. Automatizuotos sistemos nuolat tikrina žinomų pažeidžiamumų sąrašus ir ieško nepataisytų svetainių: jei pažeidžiamumas liko, svetainė vėl bus taikoma.
Silpnas administratoriaus slaptažodis: brute-force atakos prieš WordPress prisijungimą yra automatizuotos ir nuolatinės. Be papildomos apsaugos (2FA, prisijungimų apribojimo) silpnas slaptažodis yra tik laiko klausimas. NKSC rekomenduoja: naudoti dvifaktorinį autentifikavimą ir apriboti prisijungimo bandymus.
Neapribota prieiga prie wp-admin: jei prie WordPress administratoriaus zonos gali prisijungti bet kas iš bet kurio IP adreso, tai platus atakos paviršius.
Priežastis 4: užkrėsta atsarginė kopija
Kai svetainė yra infekuota, visos per tą laikotarpį padarytos atsarginės kopijos taip pat yra užkrėstos. Jei po valymo svetainė atkuriama iš tokios kopijos, infekcija grįžta kartu su ja.
Įprastas scenarijus:
- 1Svetainė buvo užkrėsta kelias savaites, o kopijos darytos automatiškai
- 2Savininkas pabando atkurti „senesnę švarią" kopiją
- 3Bet „senesnė" kopija pasirodė taip pat užkrėsta, tik su mažiau akivaizdžiu kodu
- 4Infekcija atkuriama kartu su svetaine
Prieš atkuriant kopiją reikia patikrinti, ar ji tikrai yra prieš infekcijos datą, ir tai ne visada įmanoma, jei tikslus infekcijos laikas nežinomas.
Kaip atskirti naują ataką nuo nebaigto valymo
Laikas, per kurį infekcija grįžta, yra pagrindinis diagnostinis rodiklis:
- Per kelias valandas po valymo — liko backdoor arba veikia automatinis atkūrimo mechanizmas (
wp-cron) - Per kelias dienas — tikėtina, kad nepakeisti prieigos duomenys arba aktyvus cron atkūrimas
- Per kelias savaites — greičiausiai neatnaujintas pažeidžiamas įskiepis arba silpnas slaptažodis
- Po kelių mėnesių — dažniausiai nauja, savarankiška ataka per kitą pažeidžiamumą
Jei infekcija grįžta per 24–48 valandas, dažniausiai liko backdoor arba atkūrimo mechanizmas. Jei po kelių savaičių — labiau tikėtinas neatnaujintas įskiepis, silpnas slaptažodis arba nauja automatizuota ataka.
Pilnas valymas: 7 zonos, kurias būtina patikrinti
Pilnas valymas, po kurio infekcija nesugrįžta, turi apimti visas 7 zonas. Praleista nors viena — rizika lieka.
Konkretus sąrašas:
- 1Visiškas failų skenavimas: ne tik
wp-content, bet irwp-admin,wp-includes, šakninis katalogas - 2Duomenų bazės tikrinimas:
wp_options,wp_users,wp_posts, widget'ų turinys, meniu įrašai - 3Slaptų administratorių paieška ir šalinimas:
wp_userslentelė, visi vartotojų vaidmenys - 4Visų prieigos slaptažodžių keitimas: WordPress, FTP, hostingo panelė, duomenų bazė
- 5Cron užduočių patikrinimas: WordPress
wp-cronir serveriocrontab— dažna vieta slaptiems atkūrimo mechanizmams - 6Pažeidžiamumų uždarymas: WordPress, įskiepių, temų atnaujinimai; senų nebenaudojamų įskiepių šalinimas
- 7Atsarginės kopijos švarumo patikrinimas: prieš atkuriant bet kurią kopiją
Ko nedaryti po pakartotinės infekcijos
Nekartokite to paties valymo. Jei infekcija grįžo, tai reiškia, kad valymas buvo nepilnas. Pakartodami tuos pačius veiksmus gausite tą patį rezultatą.
Neištrinkite visko ir nestatykite iš naujo, jei nežinote priežasties. Šakninio katalogo išvalymas ir naujos WordPress instaliacija nepadeda, jei duomenų bazė nebuvo patikrinta arba backdoor failas išliko kokioje nors kopijoje.
Nenaudokite tos pačios atsarginės kopijos, kuri buvo prieš valymą. Jei kopija buvo padaryta infekcijos laikotarpiu, ji pati yra užkrėsta.
Nepalikite nemodifikuotų senų įskiepių. Net jei jie nenaudojami: pasenęs neaktyvus įskiepis su žinoma spraga yra aktyvus atakos taškas.
Kontrolinis sąrašas: ar valymas buvo pilnas
- Patikrinta visa failų sistema (ne tik wp-content)
- Patikrinta duomenų bazė (ne tik akivaizdūs laukai)
- Patikrintos cron užduotys (wp-cron ir serverio crontab)
- Pašalintos visos nežinomos administratorių paskyros
- Pakeisti visi prieigos slaptažodžiai
- Atnaujintas WordPress, visi aktyvūs ir neaktyvūs įskiepiai
- Pašalinti nenaudojami ar seni įskiepiai
- Atsarginės kopijos patikrintos dėl infekcijos
- Naudojamas 2FA WordPress administratoriaus paskyroje
- WAF (Cloudflare ar panašus) sukonfigūruotas
Jei svetainė užsikrečia antrą kartą, tai ženklas, kad reikalinga nuolatinė apsauga, ne dar vienas valymas.
Kai kurios svetainės yra pakartotinai taikomos dėl jų specifikos: populiarumo, naudojamos platformos versijos ar hostingo aplinkos. Tokiais atvejais net pilnas valymas be nuolatinės stebėsenos nesuteikia ilgalaikio saugumo.
Net ir po pilno valymo svarbu įdiegti apsaugos priemones, kurios apsunkina naują įsilaužimą:
Dvifaktorinis autentifikavimas WordPress administratoriaus paskyroje: vienas efektyviausių žingsnių. Jis užkerta kelią slaptažodžių bruteforce atakoms ir prieigai per pavogtus prisijungimo duomenis.
Cloudflare WAF konfigūracija blokuoja automatizuotas atakų bangų dalis dar prieš joms pasiekiant svetainę. Tai ne absoliuti apsauga, bet žymiai sumažina sėkmingų atakų kiekį.
Reguliarūs įskiepių atnaujinimai pašalina žinomus pažeidžiamumus, kuriais naudojasi automatizuotos atakos. Apie įskiepių atnaujinimus, 2FA ir kitas prevencines priemones rašoma NKSC rekomendacijose. Atnaujinama sistema yra žymiai retesnis taikinys. Po valymo svetainės saugumą galima patikrinti nemokamu NKSC tikrinimo įrankiu.
Dažnai užduodami klausimai
Kiek laiko po valymo infekcija paprastai sugrįžta, jei backdoor liko?
Paprastai per kelias valandas iki kelių dienų. Jei svetainė vėl užsikrečia per 24-48 valandas po valymo, tai beveik visada reiškia, kad backdoor nebuvo pašalintas arba veikia automatinis atkūrimo mechanizmas, pvz., wp-cron užduotis, parsisiunčianti naują kodą.
Ar pakanka pakeisti WordPress slaptažodį po valymo?
Ne. Slaptažodžio keitimas apsaugo nuo prieigos per administratoriaus sąsają, bet neišnaikina backdoor failo, kuris veikia nepriklausomai nuo slaptažodžių. Reikia pakeisti visus slaptažodžius: WordPress, FTP, hostingo panelės ir duomenų bazės.
Kodėl atkūrimas iš atsarginės kopijos nepadeda?
Atsarginė kopija atkuria svetainę tokią, kokia ji buvo kopijos darymo momentu. Jei kopija padaryta infekcijos laikotarpiu, ji pati yra užkrėsta. Prieš atkuriant kopiją reikia nustatyti tikslią infekcijos pradžios datą ir pasirinkti kopiją, padarytą iki jos.
Kaip žinoti, ar valymas buvo atliktas iki galo?
Jei po valymo svetainė neužsikrečia pakartotinai per 2-4 savaites, pilno valymo tikimybė yra aukšta. Papildoma patikra: patikrinti wp_users lentelę dėl nežinomų administratorių, wp_options active_plugins reikšmę, visas cron užduotis ir paieškoti eval() bei base64_decode() kombinacijų failų sistemoje.
Kada kreiptis specialisto pagalbos
Jei infekcija sugrįžo po bandymo išsivalyti savarankiškai, tolimesni bandymai be papildomos informacijos yra mažai produktyvūs. Reikia suprasti, kas tiksliai liko neišvalyta.
Tokiu atveju verta atlikti svetainės saugumo auditą: patikriname svetainę po nebaigto valymo ir pateikiame ataskaitą su tuo, kas liko. Tai ne tik kenkėjiško kodo paieška, bet ir valymo spragų diagnozė.
Nuolatinė svetainės apsauga apima savaitinį skenavimą, naujų infekcijų aptikimą per pirmąsias valandas ir įskiepių atnaujinimus. Tokia schema sumažina pakartotinio užkrėtimo riziką, nes problemos aptinkamos dar prieš jos tampant akivaizdžiomis.
Reikia pagalbos
Susidūrėte su panašia situacija?
Aprašykite, kas vyksta — per nemokamą konsultaciją pasakysime, ką galima padaryti ir kiek tai kainuotų.
Nemokama konsultacija



