Egy WordPress weboldal fertőzése esetén előfordulhat, hogy a támadó nemcsak a WordPress fájljait módosítja, hanem a tárhely PHP-beállításaiba is elhelyez egy olyan hivatkozást, amely a PHP-fájlok futtatásakor automatikusan betölt egy fertőzött fájlt.
Ez önmagában nem jelenti azt, hogy a teljes szerver kompromittálódott. A .user.ini fájl könyvtárszintű PHP-beállításokat tartalmazhat, az auto_prepend_file segítségével pedig megadható egy olyan PHP-fájl, amely a normál PHP-fájl futtatása előtt automatikusan betöltődik. Emiatt egy rosszindulatú bejegyzés az adott weboldalon széles körű hatással rendelkezhet.
A PHP hivatalos dokumentációja szerint az auto_prepend_file könyvtárszinten is megadható PHP-beállítás, a .user.ini fájlokat pedig a PHP könyvtáranként dolgozza fel. További információ a PHP hivatalos dokumentációjában található.
A fertőzött fájl egyszerű törlése ezért sok esetben nem elegendő. A fertőzés forrását és az automatikus visszatöltést biztosító beállításokat is meg kell szüntetni.
Ha ugyanazon tárhelyen több weboldal, aldomain, fejlesztői másolat vagy régi WordPress-telepítés található, mindegyiket ellenőrizni kell. Egy másik fertőzött vagy elavult weboldal a megtisztított oldal újbóli fertőződését is okozhatja.
Tartalom:
- Biztonsági mentés készítése
.user.iniésphp.iniellenőrzése- WordPress rendszerfájlok felülírása
- PHP futási idő növelése
- Wordfence teljes ellenőrzés
- További biztonsági lépések
- Miért fertőződhet vissza az oldal?
- Gyakori kérdések
Mit érdemes megtenni a tisztítás előtt?
Ha lehetséges, a módosítások előtt készítsen biztonsági mentést a weboldal jelenlegi állapotáról.
Ez akkor is hasznos lehet, ha a mentés már tartalmazza a fertőzést, mert egy tévesen törölt vagy módosított fájl később visszakereshető belőle.
A biztonsági mentést ne tekintse tiszta visszaállítási pontnak, ha az már a fertőzés után készült.
1. Hogyan ellenőrizzem a .user.ini és php.ini fájlokat?
Elsőként ellenőrizze a weboldal könyvtáraiban található .user.ini, illetve amennyiben van ilyen, a php.ini fájlt.
Keressen bennük auto_prepend_file kezdetű bejegyzést.
Például:
auto_prepend_file = "/home/felhasznalo/public_html/wp-content/XXXXXXXXXXXXXXXXXXXXXXXXXX.php"
Ha a bejegyzés egy ismeretlen, véletlenszerű nevű PHP-fájlra mutat – különösen például a wp-content mappán belül –, akkor az érintett fájlt és a bejegyzést is meg kell vizsgálni.
Ha igazolhatóan a fertőzéshez tartozik:
- törölje a fertőzött
auto_prepend_filebejegyzést a.user.inivagyphp.inifájlból; - keresse meg a bejegyzésben megadott PHP-fájlt;
- ellenőrizze, hogy valóban fertőzött fájlról van-e szó;
- az igazoltan fertőzött fájlt távolítsa el.
Fontos: nem minden auto_prepend_file bejegyzés fertőzés
Az auto_prepend_file önmagában egy szabályos PHP-beállítás. Biztonsági megoldások is használhatják.
Például a Wordfence optimalizált tűzfala is használhat wordfence-waf.php fájlra mutató bejegyzést. Ilyen sort ne töröljön automatikusan csak azért, mert auto_prepend_file szerepel benne.
Gyanúsnak elsősorban az ismeretlen, nem azonosítható vagy egyértelműen fertőzött fájlra mutató bejegyzéseket kell tekinteni.
A .user.ini fájl módosítása nem feltétlenül lép azonnal életbe. A PHP a beállításokat időszakosan olvassa újra, ezért módosítás után néhány percet várni kellhet.
2. Hogyan írjam felül a WordPress rendszerfájljait tiszta verzióval?
A következő lépésben az aktuálisan használt WordPress-verzióból származó tiszta rendszerfájlokkal érdemes felülírni a meglévő WordPress rendszerfájlokat.
Töltse le a megfelelő WordPress-verzió tiszta telepítőcsomagját, majd abból írja felül:
- a wp-includes mappát;
- a wp-admin mappát;
- a WordPress gyökérkönyvtárában található WordPress PHP-fájlokat.
Fontos: a wp-config.php fájlt ne írja felül!
A wp-config.php többek között a weboldal adatbázis-kapcsolatához és egyedi WordPress-beállításaihoz szükséges adatokat tartalmazza.
Szintén ne cserélje le teljes egészében a wp-content mappát, mivel itt találhatók többek között a weboldal bővítményei, sablonjai és feltöltött tartalmai.
A WordPress rendszerfájlok frissítéséről és cseréjéről további információ a WordPress hivatalos dokumentációjában található.
3. Miért érdemes ideiglenesen növelni a PHP futási időt?
A fertőzés keresése során a Wordfence-nek sok fájlt kell átvizsgálnia. Nagyobb weboldal esetén előfordulhat, hogy a vizsgálat a PHP futási időkorlátja miatt nem tud megfelelően befejeződni.
A vizsgálat idejére ezért érdemes a:
max_execution_time
értékét ideiglenesen:
300
másodpercre állítani.
Ezután indítsa el a teljes Wordfence ellenőrzést.
A tisztítás és ellenőrzés befejezése után az ideiglenesen megemelt PHP-limitet érdemes visszaállítani a korábban használt értékre.
4. Hogyan ellenőrizzem a weboldalt Wordfence segítségével?
Ha a Wordfence nincs telepítve, először telepítse a WordPress adminisztrációs felületén.
Ezután:
- nyissa meg a Wordfence > Scan menüpontot;
- keresse meg a vizsgálati beállításokat;
- fertőzés gyanúja esetén válasszon érzékenyebb vizsgálati beállítást;
- indítsa el a teljes ellenőrzést;
- várja meg, amíg a vizsgálat teljesen befejeződik;
- nézze át a Wordfence által talált problémákat;
- a biztonságosan javítható fájlokat javítsa;
- az igazoltan rosszindulatú és biztonságosan eltávolítható fájlokat törölje.
Feltört weboldal vizsgálatakor a Wordfence érzékenyebb vizsgálati lehetősége segíthet további gyanús fájlok felderítésében.
A Wordfence képes összehasonlítani a WordPress rendszerfájljait, valamint több, WordPress.org-ról származó bővítmény és sablon fájljait az eredeti változattal.
Ne töröljön automatikusan minden olyan fájlt, amelyet a Wordfence problémásnak jelez. Egyedi fejlesztésű sablon vagy bővítmény esetén először ellenőrizni kell, hogy valóban fertőzött fájlról van-e szó.
A Wordfence használatáról további információ a Wordfence hivatalos dokumentációjában található.
5. Mit kell még megtenni a fertőzés eltávolítása után?
A fájlok megtisztítása önmagában nem minden esetben elegendő. Ha a támadó hozzáférési adatokat szerzett vagy például egy elavult bővítményen keresztül jutott be, a weboldal később ismét megfertőződhet.
A tisztítás után ezért javasolt:
- a WordPress adminisztrátori jelszavak cseréje;
- a tárhelyhez és FTP-fiókokhoz tartozó jelszavak cseréje;
- az adatbázis-felhasználó jelszavának cseréje, amennyiben indokolt;
- kétlépcsős hitelesítés (2FA) bekapcsolása, ahol erre lehetőség van;
- a WordPress frissítése;
- az összes használt bővítmény frissítése;
- az aktív sablon frissítése;
- a nem használt bővítmények teljes törlése;
- a nem használt sablonok teljes törlése.
A nem használt bővítményt nem elegendő kikapcsolni: ha nincs rá szükség, érdemes teljesen eltávolítani.
Miért fertőződhet vissza az oldal a tisztítás után?
A leggyakoribb ok, hogy a tisztítás során csak a látványosan fertőzött fájlokat távolítják el, de megmarad egy olyan fájl vagy beállítás, amely ismét betölti a kártékony kódot.
Ilyen lehet például:
auto_prepend_file = "/home/felhasznalo/public_html/wp-content/XXXXXXXXXXXXXXXXXXXXXXXXXX.php"
Ha csak a WordPress rendszerfájljait cseréli le, de ez a bejegyzés és a mögötte lévő fertőzött fájl megmarad, a probléma ismét jelentkezhet.
Ezért fontos a műveleteket együtt elvégezni:
- PHP-konfiguráció ellenőrzése;
- WordPress rendszerfájlok cseréje;
- teljes biztonsági vizsgálat;
- WordPress, sablonok és bővítmények frissítése;
- hozzáférések és jelszavak cseréje.
Mit tegyek, ha a fertőzés ismét megjelenik?
Ha a probléma rövid időn belül visszatér, ne csak ugyanazt a fertőzött fájlt törölje újra.
Ellenőrizni kell többek között:
- található-e további
.user.inivagyphp.inimás könyvtárakban; - maradt-e ismeretlen PHP-fájl a
wp-content,uploads, bővítmény- vagy sablonkönyvtárakban; - minden WordPress-, bővítmény- és sablonfrissítés megtörtént-e;
- nincs-e ismeretlen WordPress adminisztrátor;
- megtörtént-e minden kapcsolódó jelszó cseréje;
- a Wordfence újabb teljes vizsgálata talál-e további fertőzött fájlokat.
Visszatérő fertőzés esetén további rejtett fertőzési pont vagy hátsó kapu is maradhatott a weboldal fájljai között. Ha a problémát nem sikerül megszüntetni, írjon hibajegyet ügyfélszolgálatunknak, és írja le, milyen fertőzött fájlokat vagy bejegyzéseket talált.
Gyakori kérdések
Az auto_prepend_file mindig vírusra utal?
Nem. Az auto_prepend_file egy szabályos PHP-beállítás, amellyel egy PHP-fájl automatikusan betölthető a normál PHP-fájl futtatása előtt. Biztonsági megoldások is használhatják. Az ismeretlen vagy gyanús fájlra mutató bejegyzést azonban mindenképpen ellenőrizni kell.
Egy ilyen fertőzés azt jelenti, hogy feltörték a teljes szervert?
Nem feltétlenül. Egy .user.ini fájlban található fertőzött bejegyzés önmagában nem bizonyítja a teljes szerver kompromittálódását. A .user.ini a PHP könyvtárszintű konfigurációjának része, ezért az adott webhely vagy könyvtár PHP-futtatására lehet jelentős hatással.
Elég csak a Wordfence vizsgálatot lefuttatni?
Nem javasolt kizárólag erre hagyatkozni. Ha például egy fertőzött auto_prepend_file bejegyzés vagy más rosszindulatú fájl megmarad, a probléma később visszatérhet. A PHP-konfigurációt, a WordPress rendszerfájlokat és a hozzáféréseket is ellenőrizni kell.
Felülírhatom a wp-config.php fájlt tiszta WordPress fájllal?
Nem. A wp-config.php az adott weboldal egyedi konfigurációját, többek között az adatbázis-kapcsolat adatait tartalmazza. A WordPress rendszerfájljainak cseréjekor ezt a fájlt meg kell őrizni.
Miért kell jelszót cserélni a tisztítás után?
A fertőzés pontos bekerülési módja nem minden esetben állapítható meg. Ha valamelyik WordPress-, FTP- vagy tárhely-hozzáférés illetéktelen kézbe került, a támadó a fájlok megtisztítása után is vissza tud térni ugyanazzal a hozzáféréssel.
Összefoglalva: WordPress fertőzés esetén ne csak az egyértelműen rosszindulatú fájlokat törölje. Ellenőrizze a .user.ini és php.ini fájlokat, távolítsa el az igazoltan fertőzött auto_prepend_file bejegyzéseket, írja felül a WordPress rendszerfájljait tiszta verzióval, futtasson teljes Wordfence vizsgálatot, majd frissítse a rendszert és cserélje le a kapcsolódó jelszavakat.
