Biztonság

Feltört WordPress oldal helyreállítása keresési szempontból: mi a teendők sorrendje

Feltört WordPress oldal helyreállítása lépésről lépésre, az izolálástól a beszúrt spam URL-ek 410-es kiszolgálásáig és az újravizsgálati kérelemig.

Scheo · · olvasási idő ~10 perc · Szerző: Schmidt Péter

Röviden: A feltört oldalnál két külön munka van, a szerver kitakarítása és a keresési nyomok eltüntetése, és a kettő nem egy tempóban gyógyul. Ez a sorrend végigvisz az izolálástól a bizonyítékmentésen és a kulcscserén át a 410-es kiszolgálásig, az újravizsgálati kérelemig és a 30 nappal későbbi ellenőrzésig.
Kulcs tanulságok
  • Az első mozdulat az izolálás és a bizonyítékmentés, nem a takarítás, mert a törlés viszi el a nyomot arról, hol jött be a támadó.
  • A WordPress mag, a bővítmények és a sablon cseréje friss forrásból biztosabb, mint a fertőzött fájlok foltozása.
  • A jelszócsere önmagában kevés, a sókat, az adatbázis-hozzáférést, az API-kulcsokat és a Search Console tulajdonosi listáját is át kell nézni.
  • A beszúrt spam URL-eket 410-nel szolgáld ki, és ne tiltsd le őket a robots.txt-ben, különben a keresőrobot nem látja a választ.
  • A kód tisztulása és az index tisztulása között hetek telhetnek el, ezt előre mondd el a tulajdonosnak.

A feltört oldal egyszerre két baj. Az egyik a szerveren ül, a másik a Google indexében, és a kettő nem egy tempóban gyógyul. A kódot jó esetben egy délután alatt kitakarítod, a keresési következmények viszont hetekig kísértenek. Az alábbi sorrend abból indul ki, hogy mindkettővel foglalkozni kell, csak nem egyszerre és nem azonos sürgősséggel.

Feltört WordPress oldal helyreállítása keresési szempontból: mi a teendők sorrendje
Feltört WordPress oldal helyreállítása keresési szempontból: mi a teendők sorrendje

Mit csinálj az első órában, ha kiderül, hogy feltörték az oldalt?

Rövid válasz. Izoláld az oldalt, és ne kezdj el takarítani, mert a takarítás első mozdulata pont azt semmisíti meg, amiből később megtudod, hol jött be a támadó.

Az izolálás nem azonos a teljes lekapcsolással. Gyakorlatban ez annyit tesz, hogy a látogatók felé ideiglenes karbantartási állapotot adsz vissza 503-as státuszkóddal, a saját IP-dről viszont továbbra is eléred az oldalt. Hivatalosan igazolt, hogy a Google dokumentációja szerint a rövid ideig tartó 503-as válasz a szokásos karbantartás jelzése, a keresőrobot ilyenkor később visszatér. A tartósan fennálló 503 már más kategória, ezért ez néhány órás eszköz, nem heti megoldás.

Az első órában ezek férnek bele.

Saját tapasztalat. A pár órás izolálás rendre kevesebb kárt okoz, mint az a fél nap, amíg a támadó által generált több ezer spamoldal bekerül az indexbe. A visszanyert forgalom nem éri meg a később napokig tartó tisztogatást.

Miért ments bizonyítékot, mielőtt hozzányúlsz a fájlokhoz?

Rövid válasz. Mert a fertőzött állapot az egyetlen forrás arról, hogyan jutottak be, és takarítás után ezt már nem tudod rekonstruálni.

Készíts teljes másolatot a fájlrendszerről és az adatbázisról, külön névvel, dátummal, és semmiképp ne a meglévő biztonsági mentés helyére. Mentsd le a webszerver hozzáférési és hibanaplóit, az FTP vagy SFTP naplót, és ha a tárhelyszolgáltató ad ilyet, a belépési előzményeket is. Vedd ki a wp_users és wp_usermeta táblák pillanatképét, valamint a telepített bővítmények és sablonok verziólistáját.

A naplóban az a sor ér a legtöbbet, ahol egy POST kérés fut le olyan fájlra, aminek nem kellene léteznie, vagy ahol egy ismert bővítmény végpontja szokatlanul sokszor szerepel. A fájlok módosítási ideje szintén támpont, bár szakmai feltételezés, hogy ezt a fejlettebb kártevők szándékosan hamisítják, ezért önmagában nem elég bizonyíték.

Ha személyes adat is érintett lehet, a mentés jogi szempontból is számít, mert az adatvédelmi bejelentés elkészítéséhez tudni kell, milyen adatokhoz lehetett hozzáférni. Ezt a részt érdemes időben jelezni a tulajdonosnak, mert nem marketinges döntés.

Mi a tisztítás helyes sorrendje WordPress alatt?

Rövid válasz. Cserélj, ne foltozz. A mag, a bővítmények és a sablon friss forrásból történő újratelepítése gyorsabb és biztosabb, mint a fertőzött fájlok egyenkénti javítása.

A sorrend, ami a gyakorlatban bevált, így néz ki.

  1. WordPress mag újratelepítése az eredeti csomagból, a wp-content érintése nélkül.
  2. Minden bővítmény és sablon törlése, majd újratelepítése a hivatalos forrásból, az aktuális verzióval. Amit nem használ az oldal, az ne kerüljön vissza.
  3. Egyedi fejlesztésű sablon esetén fájlszintű összehasonlítás a verziókezelőben lévő tiszta állapottal.
  4. A wp-content/uploads átvizsgálása futtatható kiterjesztésekre, mert ott csak média fájlnak van helye.
  5. A rejtett belépési pontok ellenőrzése, tehát a mu-plugins mappa, az object-cache.php, az advanced-cache.php és a wp-config.php eleje és vége.
  6. Az adatbázis átnézése, mert a takarítás leggyakrabban itt marad félbe.

Ellenőrzésre a WP-CLI a leggyorsabb, a wp core verify-checksums és a wp plugin verify-checksums --all megmutatja, mely fájlok térnek el a hivatalos kiadástól. Az egyedi kódban a klasszikus minta így kereshető.

grep -rEl 'eval\(base64_decode|gzinflate\(base64|str_rot13\(' wp-content/

Az adatbázisban nézd meg a wp_options tábla siteurl és home értékét, az active_plugins sort, a bejegyzésekbe szúrt script elemeket, és azt, hogy nem jött-e létre új adminisztrátor. Utóbbi a wp user list --role=administrator paranccsal egy másodperc alatt látszik.

Miért kevés a jelszócsere, és mit kell még lecserélni?

Rövid válasz. Mert a támadó ritkán a jelszót viszi el, sokkal gyakrabban olyan hozzáférést hagy hátra, ami a jelszótól független.

A teljes csereligeta ennél hosszabb, mint amire a legtöbben számítanak. Cseréld a wp-config.php biztonsági sóit, ettől minden aktív munkamenet azonnal érvénytelen lesz, a WP-CLI-ben ez a wp config shuffle-salts. Utána jön az adatbázis felhasználója és jelszava, az FTP, SFTP és SSH belépés, a tárhelypanel, az összes WordPress adminfiók, és az alkalmazásjelszavak, amiket a felhasználói profilban külön kell visszavonni.

Ezen felül nézd át a külső kulcsokat, tehát az SMTP-adatokat, a fizetési és szállítási modulok API-kulcsait, a webhook végpontokat. Saját tapasztalat, hogy a visszatérő fertőzések jó része nem új támadás, hanem egy ottfelejtett kulcs vagy egy létrehozott SSH publikus kulcs.

Egy pont, ami szinte mindig kimarad. Nyisd meg a Search Console tulajdonosi listáját, és nézd meg, nem került-e rá idegen felhasználó vagy idegen igazolási mód. Ha a támadó tulajdonosként bejegyezte magát, látja a riportokat, és eltávolítási kérelmet is beküldhet az oldalad URL-jeire. Ugyanez vonatkozik a DNS TXT rekordokra, ahol egy régi igazoló sor évekig ott maradhat.

Hogyan deríted ki, mit csinált a támadó a keresési oldaladdal?

Rövid válasz. Abból, amit a keresőrobot lát, nem abból, amit te látsz böngészőben, mert a mai fertőzések nagy része felhasználótól függően viselkedik másként.

Négy tipikus keresési kár fordul elő. Beszúrt spamoldalak, amiket a támadó a te domainedről szolgál ki, jellemzően egy új mappa vagy egy paraméteres URL alatt. Feltételes átirányítás, ami csak akkor indul, ha a látogató keresőből érkezik vagy mobilon nyitja meg. Átírt sitemap, amiben a te oldalaid mellett idegen URL-ek sorakoznak. Végül a sablonba épített rejtett link, ami a láblécben, fehér szövegszínnel, egy display tulajdonsággal elrejtve ül.

A felderítéshez ezeket futtasd le.

404 vagy 410 a beszúrt URL-eknek?

Rövid válasz. Ha biztosan tudod, hogy az URL a támadótól származik és soha nem lesz rajta valódi tartalom, a 410 a pontosabb válasz, minden más esetben maradj a 404-nél.

Hivatalosan igazolt, hogy a Google mindkettőt eltávolításként kezeli, és a dokumentáció szerint a 410-re valamivel gyorsabban reagál, mert az véglegességet jelez. Szakmai feltételezés, hogy ez a különbség néhány nap nagyságrendű, tehát nem ettől múlik el a probléma, viszont ingyen van, így érdemes kihasználni.

Apache alatt egy mintaillesztéssel kiszolgálható a teljes beszúrt ág, a G jelző jelenti a 410-et.

RewriteRule ^(wp-content/uploads/cheap-|kupon-sale/) - [G,L]

Nginx alatt ugyanez egy blokk.

location ^~ /kupon-sale/ { return 410; }

Három hiba kerülendő. Ne irányítsd át a beszúrt URL-eket a főoldalra, mert abból lágy 404 lesz, ami lassabban tisztul. Ne tiltsd le őket a robots.txt-ben, mert akkor a keresőrobot le sem kéri az oldalt, és sosem látja meg a 410-es választ. Az ideiglenes eltávolítási eszközt pedig csak arra használd, amire való, ez néhány hónapra elrejti az URL-t a találatokból, de nem törli az indexből.

Mit tartalmazzon a Search Console ellenőrzőlista és az újravizsgálati kérelem?

Rövid válasz. A kérelem akkor jó, ha egy külsős ember is el tudja olvasni belőle, mi történt, mit javítottál, és mi akadályozza meg az ismétlődést.

Beküldés előtti ellenőrzőlista.

  1. A Biztonsági problémák riport minden tétele megvan és beazonosítva, tehát tudod, melyik URL-ek miatt jelölt meg a rendszer.
  2. Az összes megjelölt URL valóban tiszta, élő teszttel ellenőrizve, nem csak a gyorsítótárazott másolat alapján.
  3. A feltételes átirányítás megszűnt mobilon, asztali gépen és keresőből érkezve is.
  4. A sitemap újragenerálva, benne kizárólag a saját URL-ek.
  5. A robots.txt visszaállítva az eredeti tartalomra.
  6. A beszúrt URL-ek 410-et adnak, és nincsenek letiltva a robots.txt-ben.
  7. A tulajdonosi lista tiszta, idegen felhasználó és idegen igazolási mód nélkül.
  8. A karbantartási 503 kikapcsolva, az oldal normálisan kiszolgál.

A kérelem szövege legyen tárgyszerű. Írd le, mikor észlelted, mi volt a belépési pont (például egy elavult bővítmény ismert sérülékenysége), mit cseréltél, milyen hozzáféréseket állítottál vissza, és milyen védelmet vezettél be. Ne ígérj semmit, és ne kérj méltányosságot. Saját tapasztalat, hogy a hiányosan kitakarított oldal újra elutasított kérelme után a következő kör mindig lassabb, ezért jobban megéri egy nappal később beküldeni, alaposabban.

Mit ellenőrizz 30 nappal később?

Rövid válasz. Azt, hogy a fertőzés nem jött vissza csendben, és hogy az index tényleg letisztult, nem csak a figyelmeztetés tűnt el.

Egy hónappal a takarítás után ezek a pontok árulkodóak.

Ha a spamoldalak nagy része még mindig indexben van, az általában kettőn múlik. Vagy nem mindegyik ad 410-et, vagy a robots.txt kizárja őket a lekéréstől. Mindkettő ellenőrizhető néhány perc alatt.

Miért tart hetekig a keresési takarítás, és hogyan mondd el ezt a tulajdonosnak?

Rövid válasz. Mert a keresőnek minden egyes beszúrt URL-t külön kell újra lekérnie ahhoz, hogy törölje, és ennek a tempóját nem te állítod be.

Ez az a pont, ahol a legtöbb konfliktus keletkezik, és saját tapasztalat szerint majdnem mindig azért, mert senki nem mondta el előre. A tulajdonos abban a hitben van, hogy ha a fejlesztő kitakarította a szervert, akkor másnap minden a régi. A valóságban a kód tisztulása és az index tisztulása két külön folyamat, és a második lassabb. Néhány ezer beszúrt URL feldolgozása jó eséllyel hetekbe telik, és ez alatt a márkanévre keresve még előjöhet furcsa találat.

Amit érdemes az első napon leírni a tulajdonosnak, az három mondat. A szerver takarítása rövid, az index takarítása hosszabb. A köztes időben látszódhatnak még régi spamtalálatok, ez nem azt jelenti, hogy visszatért a fertőzés. A keresési láthatóság visszaépülése fokozatos, és nem garantált, hogy minden oldal ugyanoda tér vissza, ahol a támadás előtt állt.

Ez a három mondat előre elmondva szakmai tájékoztatás. Ugyanez három hét múlva, kérdésre elmondva már mentegetőzésnek hangzik, pedig szó szerint ugyanaz a tartalom.

Források és további olvasnivalók

Gyakori kérdések

Elég, ha visszaállítom az oldalt egy régebbi biztonsági mentésből?

Önmagában nem elég. A visszaállítás visszahozza azt a sérülékenységet is, amin a támadó bejutott, és ha a mentés már fertőzött állapotot őriz, akkor a kártevőt is. A visszaállítás után ugyanúgy frissíteni kell a magot, a bővítményeket és a sablont, cserélni a hozzáféréseket és a biztonsági sókat, majd elvégezni a keresési takarítást.

Honnan tudom, hogy tényleg feltörték az oldalt, és nem csak egy hibás bővítményről van szó?

A megbízható jel az, ha a keresőrobot mást lát, mint te. Kérd le a főoldalt Googlebot felhasználói ügynökkel, nézd meg a Search Console Indexelt oldalak riportjában az újonnan megjelent, idegen témájú URL-eket, és ellenőrizd a fájlok módosítási idejét. Egy hibás bővítmény nem hoz létre új adminisztrátort és nem ír át sitemapet.

Mennyi idő alatt tűnnek el a beszúrt spamoldalak a találatokból?

Nincs rá garantált menetrend, mert a keresőnek minden URL-t külön kell újra lekérnie. Néhány ezer beszúrt cím esetén jó eséllyel több hétről beszélünk. A folyamatot segítheti a helyes 410-es kiszolgálás és az, hogy nem tiltod le a robots.txt-ben ezeket az URL-eket.

Kell újravizsgálati kérelmet küldenem, ha nem kaptam biztonsági figyelmeztetést?

Ha a Biztonsági problémák riport üres, akkor nincs mit újravizsgáltatni, ilyenkor a technikai takarítás és a 410-es kiszolgálás elég. Az újravizsgálati kérelem arra való, hogy egy meglévő megjelölést vagy manuális műveletet feloldjanak.

Miért ne irányítsam át a beszúrt URL-eket a főoldalra?

Mert a keresőrendszer az ilyen átirányítást tipikusan lágy 404-ként kezeli, ami lassabban tisztul, és a főoldal értékelését sem segíti. A beszúrt cím nem a főoldal régi változata, tehát tartalmi kapcsolat sincs. Ezekre a 410-es vagy a 404-es válasz a pontos.

Mit tegyek, ha a takarítás után néhány nappal visszatér a fertőzés?

Szinte mindig ottfelejtett hozzáférés áll mögötte, nem új támadás. Nézd meg az SSH kulcsokat, az alkalmazásjelszavakat, az ütemezett feladatokat, a tárhely egyéb mappáiban futó régi telepítéseket és a megosztott tárhelyen lévő másik oldalt. A naplóban keress ismétlődő POST kéréseket a már törölt fájlok címére.

Források és további olvasnivalók

Ezen az oldalon a hivatalosan igazolt információt elsődleges forrásokból építjük fel; a saját tapasztalatot és a szakmai becslést mindig külön jelöljük a szövegben.

A cikk szerzője

Schmidt Péter, online marketing szakértő, a Scheo Tanácsadó Kft. alapítója. Székesfehérvárról, országosan dolgozó csapattal végzünk keresőoptimalizálást, AI-láthatóság mérést, Google és Meta hirdetéskezelést, weboldalkészítést. Amit itt leírunk, azt ügyfélmunkában is használjuk. Rólunk bővebben · Szolgáltatásaink

Kapcsolódó olvasnivaló

Kapcsolódó

A fejlesztőm elérhetetlenné vált - ki veszi át a wordpress oldalam karbantartását?: amit tudnod kell róla

Kapcsolódó

Honnan tudod, hogy tényleg AI-bot járt nálad, és nem valaki más adta ki magát annak

Kapcsolódó

Ha egy AI már hivatkozik egy oldaladra: URL-változtatás és átalakítás szabályai

Helyi szolgáltatás a környékeden

Országosan dolgozunk, online és személyesen. Válaszd ki a városodat, és nézd meg, hogyan segítünk helyben:

Online marketing & AI SEO MiskolcOnline marketing & AI SEO PécsOnline marketing & AI SEO KecskemétOnline marketing & AI SEO NyíregyházaOnline marketing & AI SEO SzombathelyOnline marketing & AI SEO Szolnok

Weboldalkészítés városra bontva

Ha először a honlap kell, itt városonként arról írtunk:

Weboldalkészítés KaposvárWeboldalkészítés BékéscsabaWeboldalkészítés EgerWeboldalkészítés ZalaegerszegWeboldalkészítés SzekszárdWeboldalkészítés Salgótarján

Mind a 20 városunk és az összes szolgáltatás →

15 perces AI-láthatósági gyorselemzés - díjmentesen

Megnézzük három, számodra fontos keresőkérdésnél, hogy megjelenik-e a céged a ChatGPT, a Gemini és a Google AI-válaszaiban, mely versenytársakat ajánlják helyetted, és melyik három területen érdemes először javítani. A weboldaladat előzetesen átnézzük, tehát nem sablonos, automata riportot kapsz.

Adataidat kizárólag a kapcsolatfelvételhez használjuk. Kapcsolat: m@rketinges.hu
💬 Konzultáció