Feltört WordPress
Sajnos a weboldal tulajdonosok körében még mindig nem eléggé erős szempont a honlap biztonsága. Pedig ugyanúgy érték, mint a lakás, az autó, mégis sokan nem óvják eléggé. Az utóbbi hónapokban megszaporodtak a feltört honlap helyreállítási munkáink. Most erről osztok meg néhány gondolatot.
Mivel a WordPress tartalomkezelő rendszer egyre népszerűbb, így sok – nem eléggé védett – WordPress honlap esik áldozatul a hackereknek.
Először is tisztázzunk valamit. 100%-os biztonság nincs a weben. Ahogy a számítógépeden sem. És még nem is Neked kell feltétlenül hibázni.
Például kb. egy éve azt a szervert, ahol a privát email címem van feltörték. A levelezőszerver ugyan elkülönülten működik ott, de honlapok is üzemelnek. Egyik Joomla honlap tulajdonos nem óvta a honlapját eléggé, azon keresztül bejutott a hacker és onnantól kezdve ment végig a honlapokon. A szolgáltatónak nem kevés munkába került helyreállítani a rendszert. Nekem a Paypal jelszavam volt fenn a levelezésben, így sikeresen vásároltak vele. Más kérdés, hogy a Paypal visszaadta. Arról, hogy a gondatlan tulajdonosnak kellett-e valakinek kártérítést fizetni, nincs tudomásom.
Tehát ebből is láthatod, hogy nemcsak a saját érdekedben fontos, hogy védd a honlapodat a feltörés ellen. Fontos a webes szomszédaid és a tárhelyszolgáltatód érdekében is.
Most nézzük a legutolsó öt helyreállítási munkánk tapasztalatait.
Milyen általános hibákat követtek el WordPressben?
- Az adminisztrátor felhasználó neve admin. Ezzel a felhasználónévvel kivétel nélkül minden hacker próbálkozik. Ha emellé még egy könnyű jelszó is társul – mint pl. 123456, akkor nagyon könnyen baj lehet.
- Nem frissítetek rendszeresen. Nem véletlenül javasolják a WordPress, a sablonok és bővítmények fejlesztői, hogy mindig a legfrissebb verziót használjátok. A frissítések nemcsak hibajavításokból állnak, hanem sebezhetőségeket is foltozgatnak bennük. Igaz, hogy a WordPress alverziói automatikusan frissülnek (ha nem kapcsoljuk ki), de a főverziók esetében rá kell nyomni arra a frissítés gombra.
- Elavult sablont, bővítményeket használtok. Ami önmagában nem lenne baj, mert vannak annyira jól megírt bővítmények is például, amiket még mi is használunk, annak ellenére, hogy 2+ éves fejlesztésűek. Viszont laikusként valószínűleg nem látod át a kódokat, így nem találod meg bennük a veszélyforrásokat. Így nem tudod eldönteni, hogy az adott funkcióra a választott bővítmény megfelelő-e vagy nem (és itt nem a bővítmény tudására, hanem a kódolására kell gondolni).
- Az adatbázisban a wp_ előtagot használjátok. Minden hacker tudja, hogy ez az alapértelmezett előtag. Így ezzel számolnak, ha az adatbázisba akarnak valamit beszúrni.
- Rossz fájl- és könyvtár jogosultságokat használtok. Néha nagyon össze tudjátok kutyulni. Sok tapasztalat volt ezen a téren a hibákból a 755 és 555 fájl jogosultságtól kezdve a 777 könyvtár jogosultságig. A helyes jogosultság: fájlok 644, könyvtárak 755. (Később egy külön cikkben majd leírom, mi micsoda a jogosultságoknál.)
Ezek a leggyakrabban elkövetett hibák.
Miért törik fel a WordPresst?
A feltörések 3 leggyakoribb oka:
- Spammelésre akarják használni. Azaz „malicious” kódokat juttatnak be a honlap fájljaiba, esetleg külön fájlokként. Ezzel egyrészt terhelik az erőforrásaidat, másrészt nagyon gyorsan spamlistára fog kerülni az IP címed, harmadrészt, ha véletlenül például Adwords kampányt akarsz futtatni, akkor azt el fogja a Google utasítani, mindaddig, amíg rendbe nem teszed a honlapot.
- Reklámozási célból. Ebben az esetben vagy linkeket juttatnak be vagy átirányító kódot. A linkeket természetesen Te nem érzékeled, csak akkor, ha a honlap forrását nézegeted. Az, hogy hová injektálják, változó, van, amikor a sablon valamelyik fájlja lesz az áldozat, van, amikor az adatbázison keresztül az összes bejegyzésedbe belekerül. Az átirányító kódot Te is észre fogod venni, pl. a menüben vagy linken kattintáskor random oldalakra kerülsz, nem oda, ahová szeretnél.
- Brahiból. „Lám, lám, nekem ezt az oldalt is sikerült feltörnöm.” Ezek a hackerek a legkevésbé kártékonyak. Rendszerint a kezdőlapot (és belül minden index.php oldalt megváltoztatnak), de kártékony kódot nem szoktak bejuttatni. Tulajdonképpen inkább fel akarják hívni a honlap tulajdonosának a figyelmét arra, hogy egy kissé gyenge a weboldal biztonsága. A változtatások eredménye rendszerint a következő képhez hasonló üzenet.
Úgy gondolod, a Te honlapodat nem fogják feltörni?
Megnyugtatlak: nem csak élő emberek manuálisan próbálkoznak feltörni a weboldalakat. Sőt! Leggyakrabban automatikus scripteket használnak! Olyanokat, amik a weboldal vagy adatbázis hibák után kutatnak, vagy amelyek próbálkozásos módszerrel dolgoznak. A cél, hogy hozzáférjenek a honlap forráskódjához. Biztos, hogy a Te weboldaladat is támadják. És ha be is jutnak, akkor bajban leszel.
Mi ezzel a baj?
- A potenciális ügyfeleid látják, hogy „ezt” nyújtod a weben. Mire gondolnak? Akkor mit várhatnak el tőled…
- A tárhelyszolgáltatód a többiek védelmében akár több napra is letilthatja a (nem rendszeresen frissített, elavult vagy éppen a tudtod nélkül kéretlen leveleket küldözgető) honlapodat.
- A honlapra bejuttatott scriptek megpróbálhatják fertőzni a számítógépedet (főleg ha Windowst használsz).
- Ha spamelésre használják, kizárt, hogy nem lesz néhány olyan címzett, aki bejelenti az NMHH-nak. Így akár több százezres büntetésre is számíthatsz.
- A Google és a többi kereső egy idő után „megunja” és letiltja.
Szükséged van erre? Előzd meg a bajt!
Mik a teendők?
Ha feltörnek egy wordpresst, akkor teljesen ki kell takarítani. Eldugott kódokat, fájlokat meg kell keresni benne. Ha az adatbázisba is belerondítottak, azt is végignézni és kitakarítani.
Egyszerű megoldásnak tűnik, ha mindent – wordpress, sablon, bővítmény – törölsz és feltöltesz tiszta forrásból, de ennyire nem egyszerű. Ha a sablonban, bővítmény(ek)ben egyedi fejlesztések vannak, azokat a tiszta forrásba is bele kell tenni.
Az uploads mappát, és más olyan fájlokat, amiket ilyenkor sem törölhetsz, pl. wp-config.php mindenképpen manuálisan kell végignézned.
Ha vannak törölhetetlen fájlok – például 000 jogosultságúak -, akkor meg kell kérned a tárhelyszolgáltatót, hogy törölje (ezt a jogosultságot megváltoztatni nem tudod, és egy átlag felhasználó nem kap olyan engedélyeket a tárhelyszolgáltatótól, hogy törölni tudja).
Miután sikerült kitakarítani mindent, akkor jönnek a biztonsági beállítások, hogy lehetőleg ne ismétlődjön meg. Ezek egy része megoldható bővítménnyel (vagy több bővítménnyel), más részük a .htaccess fájl tartalmának bővítésével, esetenként – alkönyvtárakban – új .htaccess fájlok létrehozásával.
Mit csinálunk, amikor helyreállítunk egy WordPresst?
Minden esetben teljes adatbázis és fáljrendszer mentéssel kezdjük a munkát. Aztán számítógépen végignézzük. (Vigyázat: Windows használata esetén ez a művelet különös körültekintést igényel. Nálunk csak linuxot futtató gépre kerülnek a kártékony kódokat tartalmazó rendszerek.) Megkeressük a hackelt és a rendszeridegen fájlokat. Megtisztítjuk a rendszert és az adatbázist a kártékony kódoktól.
Ezt követően felépítjük a rendszer pontos másolatát tiszta fájlokkal. A megtisztított rendszerből áthelyezzük azokat a fájlokat, amiket szükséges, például az uploads mappa tartalmát, az egyéb, csak arra a honlapra készült fájlokat, például xml oldaltérkép. Ha kereskedelmi vagy egyedi sablont, bővítményt használ a honlap, akkor a tiszta verziót az ügyfél biztosítja.
Majd törlünk mindent a szerverről és feltöltjük a tisztított rendszert, importáljuk a tiszta adatbázist. Ezután elvégezzük a szükséges biztonsági beállításokat.
Érdekességek a WordPress helyreállítás munkákból
Amikor a Google elutasítja az Adwords kampányt
(Ez a leggyakoribb megkeresési ok, mivel leginkább ilyen esetben derül ki a honlap tulajdonosa számára, hogy valami nincs rendben a honlapjával.)
Az adott esetben teljesen szét volt hackelve a honlap. Több, mint 30, nem odaillő fájlt találtunk, köztük olyat is, ami bárki számára lehetővé teszi fájlok feltöltését. Találkoztunk spam levelek küldésére alkalmas scripttel és a sablonban rejtett linkekkel is. A fájlok azt mutatták, 4 különböző hackelést szenvedett már el a honlap.
Ebben az esetben a legcélravezetőbb módszert választottuk, teljesen újraépítettük a honlapot és integráltuk az adatbázisból kinyert tartalmat. Az ezt követő biztonsági lépéseknek köszönhetően azóta problémamentesen üzemel a honlap.
A honlap linkjei random weboldalakra irányítanak
A weboldallal az volt a probléma, hogy a menü linkjeire, illetve gombokra kattintás esetén idegen honlapra irányított a weboldal.
Két problémát találtunk. Az egyik, hogy spamelési célú feltörés áldozata lett a honlap, a másik, hogy egy rossz bővítményt használt a honlap tulajdonosa. Ez a bővítmény a sweetcaptcha, éppen ez volt a felelős az idegen honlapokra történő átirányításokért. A tulajdonos közben törölte a bővítményt, de a probléma nem szűnt meg.
A rendszert kitisztítottuk, a korábban használt és közben törölt bővítményeket (amelyek után maradtak vissza fájlok, illetve rekordok az adatbázisban) szintén eltávolítottuk.
Az admin felhasználónevet megváltoztattuk egyedire. A fájlok, könyvtárak jogosultságai rettenetesen rosszul voltak beállítva, ezeket rendbetettük.
Maradt azonban egy probléma. A honlap használt egy egyedi alkalmazást, ami a takarítás után nem működött. A működőképes állapotot újra előállítottuk (az eredeti állapotot egy újonnan létrehozott aldomainen létrehoztuk), így sikerült megállapítani, hogy az alkalmazás már régóta csak cache-ből működött. Ezért – a sweetcaptcha maradványoktól megszabadítva a cache fájlokat, újra feltöltöttük az éles honlapra is, így az alkalmazás működőképessége helyreállt. Belenézve az alkalmazás fájljaiba azt láttuk, hogy helyenként elavult kódokat használ, egy lényegesen korábbi WordPress verzióhoz készülhetett. Jeleztük a honlap tulajdonosának, hogy az alkalmazást illeszteni kellene az újabb WordPress verziókhoz, hogy rendeltetésszerűen működjön (a cache-ből működés nem igazán rendeltetésszerű).
Parse error hiba
Ügyfelünk semmilyen módosítást nem végzett a honlapján, bővítményt sem telepített és nem is frissített, amikor egy ilyen hibaüzenet jelent meg a weboldal tetején: „Parse error: syntax error, unexpected T_FUNCTION in /home/user-neve/public_html/wp-load.php(1) : eval()’d code on line 1”
Néha egy-egy frissítésnél előjöhet hasonló hiba, az adott bővítmény vagy a sablon valamelyik fájlját jelölve meg hibaforrásként. Ha a weben rákeresel a parse error hibaüzenetre, rengeteg találatot kapsz. Tehát legtöbbször a laikus nem is gyanakszik arra, hogy nagyobb baj van, a telepített plugineket, sablont fogja vizsgálni.
Jelen esetben viszont a WordPress motor egyik fájlja, a wp-load.php volt hibásnak jelölve. Látszólag egyszerű szintaktikai hiba.
A honlap állapotának felmérésekor kiderült, hogy rosszindulatú un. malicious kódok kerültek a honlap fájljai közé, ez okozott működési rendellenességet.
A rendszeridegen fájlokat megkerestük, töröltük, a rendszert frissítettük. A szükséges biztonsági védelem beállítása óta ez a honlap is problémamentesen üzemel.
Ha feltörték a WordPress honlapodat keress minket bátran, a Te problémádat is gyorsan megoldjuk!