Ha arra gyanakszol, hogy feltörték a WordPress oldalad, az első reakció könnyen az lehet, hogy elkezded törölni a gyanús fájlokat, frissíted az összes bővítményt, vagy gyorsan visszaállítasz egy korábbi biztonsági mentést.
Ezek között lehet szükséges lépés, de nem feltétlenül érdemes velük kezdeni.
Egy feltört WordPress oldal helyreállításánál ugyanis nem csak az a kérdés, hogyan tüntethető el a látható probléma. Azt is érdemes megpróbálni kideríteni, mi történhetett, milyen részek lehetnek érintettek, és hogyan lehet csökkenteni annak esélyét, hogy rövid időn belül újra megtörténjen ugyanez.
Nem minden incidensnél lehet biztosan rekonstruálni a támadás pontos menetét vagy egyetlen belépési pontot azonosítani. Ha a rendelkezésre álló naplókból és egyéb adatokból ez nem állapítható meg, a helyreállítás során a reális támadási lehetőségeket is kezelni kell.
Ebben az útmutatóban végigmegyünk azon, miből lehet felismerni egy kompromittált WordPress oldalt, mit érdemes elsőként megtenni, és mire kell figyelni a helyreállítás során.
Honnan tudhatom, hogy feltörték a WordPress oldalamat?
Nem minden WordPress-hiba jelent feltörést.
Egy hibás frissítés, rosszul működő bővítmény, PHP-hiba vagy szerverprobléma is okozhat furcsa működést. Vannak azonban olyan jelek, amelyeknél már érdemes biztonsági incidensre is gondolni.
Ilyen lehet például, ha:
- a weboldal ismeretlen vagy kéretlen oldalra irányít át;
- olyan tartalom jelenik meg rajta, amit nem te tettél közzé;
- ismeretlen adminisztrátor vagy más felhasználó jelenik meg a WordPressben;
- nem tudsz belépni a korábban működő adminisztrátori fiókoddal;
- ismeretlen fájlok vagy módosítások jelennek meg a tárhelyen;
- a Google vagy a böngésző biztonsági figyelmeztetést jelenít meg;
- a tárhelyszolgáltató kártevőt észlel vagy biztonsági okból korlátozza az oldalt;
- spam oldalak kezdenek megjelenni a domained alatt a keresőben;
- az oldal váratlanul teljesen másképp kezd működni.
Egyetlen tünetből még nem mindig lehet biztosan megmondani, mi történt. Ha például nem tudsz belépni a WordPress adminba, annak lehet egyszerű technikai oka is.
Ha viszont több gyanús jel egyszerre jelenik meg, vagy egyértelműen olyan módosítás történt, amit senki jogosult nem végzett el, már indokolt alaposabban megvizsgálni az oldalt.
Mit tegyek először, ha feltörték a WordPresst?
A cél első körben nem az, hogy minél gyorsabban eltűnjön minden gyanús fájl.
Először érdemes megőrizni azt az állapotot, amelyből később kideríthető, mi történt.
1. Őrizd meg a jelenlegi állapotot
Furcsán hangozhat, hogy egy valószínűleg fertőzött oldal állapotát megőrizzük, de ennek nem az a célja, hogy később ezt állítsuk vissza.
Ha van megfelelő tárhely- vagy szerverhozzáférésed, lehetőleg azon keresztül érdemes megőrizni:
- a weboldal fájljait;
- az adatbázist;
- a rendelkezésre álló szerver- és hozzáférési naplókat.
Egy kompromittált WordPress adminisztrációs felületen nem jó ötlet csak ezért új backup plugint telepíteni.
Ha azonnal elkezdesz fájlokat törölni és mindent felülírni, olyan nyomok is eltűnhetnek, amelyekből később kiderülhetne, mi változott meg vagy mi lehetett a kompromittálás oka.
A fertőzött állapotról készült mentést külön kell kezelni, és nem szabad automatikusan tiszta visszaállítási pontként tekinteni rá. Itt a cél az eredeti állapot megőrzése a későbbi vizsgálathoz.
2. Ha szükséges, korlátozd az oldal elérését
Nem minden incidensnél szükséges azonnal teljesen lekapcsolni a weboldalt.
Ha azonban az oldal rosszindulatú tartalmat szolgál ki, kéretlen helyre irányítja a látogatókat, vagy más módon veszélyeztetheti őket, érdemes ideiglenesen korlátozni az elérését a vizsgálat és a helyreállítás idejére.
Hogy ezt pontosan hogyan érdemes megoldani, az a tárhelytől és a szerver konfigurációjától is függ.
3. Ellenőrizd, milyen hozzáférések lehetnek érintettek
Egy WordPress oldal nem csak a /wp-admin felületből áll.
A támadó hozzáférhetett például:
- WordPress felhasználói fiókhoz;
- tárhelykezelő felülethez;
- FTP- vagy SFTP-hozzáféréshez;
- SSH-hozzáféréshez;
- adatbázishoz;
- kapcsolódó e-mail-fiókhoz.
Nem minden kompromittálás indul WordPress-sérülékenységből. Lehetséges támadási irányként azt is érdemes figyelembe venni, hogy érintett-e a weboldalt kezelő számítógép, a böngészőben vagy FTP/SFTP kliensben mentett hitelesítési adat, illetve került-e illetéktelen kézbe egy újrahasznált vagy más módon megszerzett jelszó.
Ez azért fontos, mert kevés értelme van megtisztítani a WordPresst, ha közben egy kompromittált hozzáférésen keresztül továbbra is vissza lehet jutni.
A szükséges jelszócseréket ezért nem érdemes kizárólag a WordPress adminisztrátori jelszóra korlátozni.
Ahol elérhető, érdemes kétfaktoros hitelesítést is használni.
Elég visszaállítani egy korábbi biztonsági mentést?
Néha igen, de önmagában a visszaállítás nem válaszol minden kérdésre.
Tegyük fel, hogy hétfőn észreveszed a fertőzést, és visszaállítod a vasárnapi mentést.
Három fontos kérdés rögtön felmerül:
- Vasárnap még biztosan tiszta volt az oldal?
- Van információnk arról, hogyan történhetett a kompromittálás?
- A visszaállítás után kezeltük azokat a reális támadási lehetőségeket, amelyeken keresztül újra megtörténhet?
Ha például egy sérülékeny bővítményen keresztül történt a támadás, és a visszaállított mentésben ugyanaz a sérülékeny verzió fut, könnyen előfordulhat, hogy az oldal ismét kompromittálódik.
A biztonsági mentés ezért nagyon fontos része a helyreállításnak, de nem helyettesíti az incidens okának és a lehetséges belépési pontoknak a vizsgálatát.
Elég letörölni a gyanús fájlt?
Ez attól függ, mit találtál.
Egy fertőzés nem feltétlenül egyetlen rosszindulatú fájlból áll. Módosulhatnak meglévő PHP-fájlok, bekerülhetnek új fájlok, megváltozhat az adatbázis, létrejöhet új felhasználó vagy más olyan hozzáférési lehetőség, amely később is használható.
Ezért egy megtalált rosszindulatú fájl törlése még nem bizonyítja, hogy az oldal teljesen tiszta.
Különösen fontos kérdés:
hogyan kerülhetett oda az a fájl?
Meg kell próbálni azonosítani a kompromittálás legvalószínűbb okát vagy belépési pontját. Ha ez nem bizonyítható megfelelően, nem érdemes találgatást biztos magyarázatként kezelni. Ilyenkor fontosabb a reális támadási lehetőségek lezárása és a rendszer megbízható helyreállítása.
Elég frissíteni a WordPresst és a bővítményeket?
A frissítés fontos, de egy már kompromittált weboldalt nem feltétlenül tisztít meg.
Ha egy régi bővítmény sérülékenysége volt a belépési pont, a frissítés lezárhatja ezt a sérülékenységet. Ettől azonban a korábban elhelyezett rosszindulatú kód vagy létrehozott hozzáférés még megmaradhat.
Ez két külön feladat:
- meg kell tisztítani és helyre kell állítani az oldalt;
- kezelni kell az ismert vagy reálisan szóba jövő támadási lehetőségeket.
A kettő közül egyik sem helyettesíti a másikat.
Mit kell átvizsgálni egy feltört WordPress oldalon?
A pontos vizsgálat mindig az adott esettől függ, de nem érdemes kizárólag a WordPress admin felületére koncentrálni.
WordPress core fájlok
A WordPress alaprendszer ismert fájlokból áll, ezért ellenőrizhető, hogy azok megfelelnek-e a hivatalos WordPress-verzió fájljainak.
WP-CLI használata esetén erre egy konkrét lehetőség a:
wp core verify-checksums
A parancs a telepített WordPress fájljait a WordPress.org által biztosított checksumokkal hasonlítja össze. Ha szükséges, a megfelelő WordPress-verzió és nyelvi változat is megadható az ellenőrzéshez.
Hasonló ellenőrzés használható azoknál a WordPress.org-ról származó bővítményeknél is, amelyekhez rendelkezésre áll checksum. Az összes telepített plugin ellenőrzésére például használható:
wp plugin verify-checksums --all
A checksum ellenőrzés azonban nem teljes malware-vizsgálat. Attól, hogy a WordPress core fájljai rendben vannak, a wp-content könyvtárban, egy bővítményben vagy sablonban, más fájlokban, illetve az adatbázisban még lehet nem kívánt módosítás.
Bővítmények és sablonok
Érdemes ellenőrizni:
- milyen bővítmények vannak telepítve;
- valóban szükség van-e rájuk;
- honnan származnak;
- naprakészek-e;
- található-e bennük gyanús módosítás;
- vannak-e már nem használt, de továbbra is a szerveren lévő komponensek.
Ugyanez vonatkozik a sablonokra is.
Egy kikapcsolt bővítmény vagy sablon attól még a tárhelyen maradhat. Ha nincs rá szükség, általában jobb eltávolítani, mint feleslegesen fenntartani egy további támadási felületet.
Feltöltési könyvtár
A wp-content/uploads könyvtár alapvetően a feltöltött médiafájlok helye.
Ha szokatlan futtatható állományok vagy oda nem illő fájlok jelennek meg benne, azt érdemes megvizsgálni.
Felhasználók
Nézd át a WordPress felhasználókat, különösen az adminisztrátori jogosultsággal rendelkező fiókokat.
Egy ismeretlen adminisztrátor egyértelműen vizsgálatot igényel.
Arra is érdemes figyelni, hogy egy kompromittált oldalon a jogosulatlan felhasználó nem feltétlenül jelenik meg a WordPress admin felhasználólistájában. Rosszindulatú kód módosíthatja vagy szűrheti az admin felületen megjelenő listát, miközben a felhasználói fiók és a hozzá tartozó jogosultságok továbbra is megtalálhatók az adatbázisban. Emiatt gyanús esetben nem érdemes kizárólag arra hagyatkozni, amit a WordPress admin felületén látsz: a felhasználókat és a jogosultságokat adatbázis- vagy más, az admin felülettől független módon is érdemes ellenőrizni.
Ilyenkor azonban nem csak az a feladat, hogy kitöröljük a felhasználót. Azt is meg kell próbálni kideríteni, hogyan jöhetett létre, illetve maradhatott-e más jogosulatlan hozzáférés az oldalon.
Adatbázis
Egy WordPress-fertőzés nem feltétlenül csak a fájlrendszert érinti.
Az adatbázisba is kerülhetnek nem kívánt módosítások, például:
- spam bejegyzések vagy oldalak;
- tartalomba vagy más adatbázisértékekbe injektált HTML vagy JavaScript;
- módosított WordPress-beállítások;
- átirányításhoz kapcsolódó nem kívánt értékek;
- jogosulatlan felhasználókhoz kapcsolódó adatok.
Hogy pontosan mit kell ellenőrizni, az az incidens jellegétől függ.
A lényeg, hogy önmagában egy fájlokat vizsgáló malware scanner lefuttatása vagy néhány fertőzött fájl törlése nem minden esetben jelenti azt, hogy a teljes WordPress rendszer tiszta.
Naplók
Ha rendelkezésre állnak megfelelő szerver- vagy hozzáférési naplók, azok segíthetnek rekonstruálni, mi történt az incidens környékén.
Nem minden tárhely őrzi ugyanazokat a naplókat ugyanannyi ideig, ezért ezeket érdemes minél hamarabb megőrizni.
A naplók ugyanakkor nem garantálják, hogy minden esetben egyértelműen azonosítható lesz a támadás pontos módja. Ha nincs elegendő adat a biztos következtetéshez, a lehetséges belépési pontokat a rendelkezésre álló információk alapján kell kezelni.
Mi történik, ha a Google is észlelte a fertőzést?
Előfordulhat, hogy nem a WordPress adminisztrációs felületén veszed észre először a problémát, hanem a Google találatai között jelennek meg ismeretlen vagy spam oldalak, esetleg biztonsági figyelmeztetést kapsz.
A Google Search Console Security Issues jelentése jelezhet többek között feltört tartalmat, malware-t vagy más olyan biztonsági problémát, amelyet a Google az oldalon észlelt.
A jelentésben szereplő URL-ek példák lehetnek az érintett oldalakra, ezért nem érdemes abból kiindulni, hogy csak az ott felsorolt URL-eket kell megtisztítani.
Ha a Google biztonsági problémát jelzett, először magát a weboldalt kell megfelelően megtisztítani és a problémát az egész oldalon kezelni. Ha a Search Console Security Issues jelentésében szereplő hibákat kijavítottad, ott kérhető felülvizsgálat.
A fertőzés során létrehozott vagy indexelt spam URL-ek eltűnése sem feltétlenül történik meg azonnal a keresőből. A szerveren lévő probléma megszüntetése és a Google keresési indexének frissülése két külön folyamat.
Hogyan történik a WordPress helyreállítása?
Nincs minden feltört oldalra használható, egyetlen fix recept.
Általában azonban három külön feladatot érdemes szétválasztani.
1. A fertőzés és a módosítások feltárása
Először azt kell meghatározni, mi érintett.
Ez jelentheti fájlok, adatbázis-bejegyzések, felhasználók, bővítmények, sablonok és naplók vizsgálatát.
2. Az oldal megtisztítása és helyreállítása
Az azonosított rosszindulatú módosításokat el kell távolítani, a szükséges fájlokat pedig tiszta, megbízható példányokra kell cserélni vagy helyreállítani.
A pontos módszer attól függ, mi történt az oldallal és milyen tiszta források vagy mentések állnak rendelkezésre.
3. A lehetséges belépési pontok kezelése
Ez az a rész, amely könnyen kimarad egy gyors takarításból.
Meg kell próbálni meghatározni a kompromittálás legvalószínűbb okát vagy belépési pontját. Ha ezt a rendelkezésre álló adatok alapján nem lehet biztosan megállapítani, a reálisan szóba jövő támadási lehetőségeket kell kezelni.
A helyreállítás után ezért szükség lehet többek között:
- sérülékeny vagy elavult komponensek frissítésére vagy eltávolítására;
- jelszavak cseréjére;
- szükségtelen felhasználók megszüntetésére;
- jogosultságok rendezésére;
- kétfaktoros hitelesítés bevezetésére;
- mentési rendszer ellenőrzésére;
- további biztonsági beállításokra és monitorozásra.
A cél nem az, hogy mindenáron egyetlen biztos okot nevezzünk meg, hanem hogy a rendszer a helyreállítás után megbízható állapotba kerüljön, és a feltárt vagy reálisan szóba jövő támadási lehetőségeket megfelelően kezeljük.
Meg tudom csinálni saját magam?
Igen, bizonyos esetekben.
Ha van megfelelő WordPress- és szerveroldali tapasztalatod, és érted, mit vizsgálsz a fájlokban, az adatbázisban és a naplókban, egy fertőzés feltárása és a helyreállítás saját kezűleg is megoldható.
Egyszerűbb lehet a helyzet akkor is, ha pontosan tudod, mikor történt a kompromittálás, van bizonyítottan tiszta mentésed, és a belépési pont vagy a valószínű támadási mód is jól azonosítható.
Ha viszont csak azt látod, hogy az oldal furcsán viselkedik, több helyen található gyanús kód, újra megjelenik a fertőzés, vagy nem tudod megállapítani, hogyan juthattak be, akkor már érdemes lehet szakemberrel átnézetni.
A cél nem az, hogy minden esetben a legbonyolultabb megoldást válaszd, hanem hogy a helyreállítás után valóban megbízható állapotban legyen az oldal.
WordPress vírusirtás és helyreállítás
Ha feltörték vagy megfertőzték az oldalad, és nem szeretnéd saját kezűleg végigvizsgálni a fájlokat, az adatbázist, a felhasználókat és a lehetséges belépési pontokat, ebben is tudok segíteni.
A WordPress vírusirtás során nem csak a látható tünet eltávolítása a cél. A fertőzés feltárása mellett azt is meg kell nézni, milyen módon kompromittálódhatott az oldal, és mit érdemes módosítani ahhoz, hogy a feltárt vagy reálisan szóba jövő támadási lehetőségek ne maradjanak nyitva.
Gyakori kérdések
Ha még működik az oldal, akkor is lehet feltörve?
Igen. Egy kompromittált WordPress oldal nem feltétlenül áll le vagy változik meg látványosan.
Előfordulhat, hogy a probléma csak bizonyos látogatóknál jelentkezik, vagy olyan módosítás történt, amely a normál használat során nem feltűnő.
Ha a víruskereső nem talál semmit, akkor biztosan tiszta az oldal?
Nem feltétlenül.
Egy automatikus ellenőrzés hasznos eszköz lehet, de az eredményét nem érdemes önmagában bizonyítéknak tekinteni arra, hogy a teljes rendszer tiszta.
Ha visszaállítom a tegnapi mentést, megoldódik a probléma?
Akkor működhet, ha a mentés valóban a kompromittálás előtti, tiszta állapotból származik, és a támadás reális lehetőségeit is megfelelően kezeled.
Ha a mentés már fertőzött volt, vagy ugyanaz a sérülékenység vagy kompromittált hozzáférés megmarad a visszaállított rendszerben, a probléma visszatérhet.
Töröljem az ismeretlen admin felhasználót?
Az ismeretlen adminisztrátori fiókot nem érdemes figyelmen kívül hagyni, de a törlése önmagában nem feltétlenül elég.
A fontosabb kérdés az, hogyan jöhetett létre, és maradt-e más jogosulatlan hozzáférés az oldalon.
Egy WordPress biztonsági bővítmény megoldja a fertőzést?
Segíthet a felismerésben, ellenőrzésben és bizonyos támadások megelőzésében, de nem érdemes abból kiindulni, hogy egy biztonsági plugin telepítése automatikusan megtisztít egy már kompromittált rendszert.
Először a fertőzött állapotot kell megfelelően feltárni és helyreállítani, majd utána érdemes a további védelemmel foglalkozni.
