WordPress Biztonság

Több mint 60 millió weboldal használja a WordPress nyílt forráskódú, PHP alapú tartalomkezelő (CMS) rendszerét, hiszen a felhasználóbarát kialakítás miatt akár laikusok is indíthatnak vele weboldalakat, blogokat vagy akár webáruházakat is.

Annak ellenére, hogy rengetegen használják, a rendszer mégsem tökéletes. Időről időre felfedeznek biztonsági réseket, amiket előszeretettel használnak ki a hackerek, rosszindulatú támadók. Ez minden hasonló rendszert, sőt még az egyedi fejlesztésű (nem nyílt forráskodú) megoldásokat is érintik, gondoljunk csak a Facebook-ról időnként kiszivárgó adatokra, csak hogy egyet említsünk.

Természetesen az a legegyszerűbb megoldás, ha saját fejlesztő csapattal vagy partnerrel dolgozunk folyamatosan együtt és kezelt WordPress üzemeltetésben tartjuk fenn honlapunk, webáruházunk. Ezt ma már az átlagos kis- és középvállalatok, de sok felhasználó is megengedheti magának. A folytatásban a WordPress önnálóan telepíthető (WordPress.org) változatához adunk tippeket. A WordPress blog szolgáltató (WordPress.com) esetében ezek nem szükségesek.

A felhasználók többsége sajnos azonban abban a hitben él, hogy ha egy honlap elkészült, akkor az működni fog a végtelenségig és még picivel tovább. Sajnos nem és nem is érdemes hanyagolni a témát. A WordPress biztonság fontos téma és felhasználó szintű tudással is tudunk tenni azért, hogy WordPress honlapunk biztonságos legyen.


A honlap mint egy autĂł

Egy új autó vásárlásakor is tudjuk, hogy az igényel törődést, rendszeres karbantartást. Ha ez megvan, akkor fog magasabb biztonságot, megbízhatóságot és jobb utazási élményt biztosítani. Weboldalunk is így van ezzel. Ha nem tesszük ezt meg, egyre inkább romlik az állapota és nagyobb eséllyel lesz működésképtelen és könnyű célpont. A többség abban bízik, hogyha nem piszkálja sokat a honlapot, akkor talán nem fogják megtalálni a hackerek a WordPress weboldalát. Azonban meg fogják, csak idő kérdése.

Éppen ezért, amennyiben nincs lehetőségünk egy szakembert felfogadni, egyszerűbb módokon növelhetjük a honlapunk biztonságát. Növelhetjük, itt ez a kulcsszó, nem fogjuk tudni 100%-osan védetté tenni. Nézzük meg, milyen eszközökkel lehet harcolni az arcátlan kibertámadások és módszereik ellen, miközben mellőzük a NASA űrpilóta vizsgáját!

Mitől sebezhető a WordPress honlapom?

Mielőtt rátérünk arra, hogy hogyan lehet megvédeni a weboldalunkat egy esetleges hacker támadás ellen, nem árt tudni, hogy melyek azok a kockázati tényezők, amelyek hatására a támadók célpontjává válhat a weboldalunk.

Mitől lesz sérülékeny a WordPress oldalam?

  • Könnyen kitalálhatĂł felhasználĂłnĂ©v Ă©s jelszĂł
    Például meghagyott “admin” user és password páros.
  • Idegen / megbĂ­zhatatlan forrásbĂłl származĂł sablonok, bĹ‘vĂ­tmĂ©nyek. (pluginok) Nem a hivatalos wordpress.org-tĂłl eltĂ©rĹ‘ forrásbĂłl származĂł.
    Például “pár dollálért 100 plugin” csali csomagokban gyakoriak a backdoor rejtett kapuk, kódok.
  • Ingyenes sablonok, bĹ‘vĂ­tmĂ©nyek, melyekhez már hosszabb ideje nem Ă©rkezett frissĂ­tĂ©s
  • Elavult WordPress rendszer (core) verziĂł, ha nem frissĂ­tjĂĽk hosszabb ideig
  • MegbĂ­zhatatlan (tĂşl olcsĂł, szakĂ©rtelem nĂ©lkĂĽli) hosting, tárhely szolgáltatĂłknál törtĂ©nĹ‘ működtetĂ©s
  • EllenĹ‘rizetlen (vĂ­rusos) feltöltĂ©sek (kĂ©pek, videĂłk, szövegek, stb.)
  • KĂ©tlĂ©pcsĹ‘s autentikáciĂł hiánya
  • SFTP, SSL, illetve WAF alkalmazás hiánya
  • BejelentkezĂ©si oldal láthatĂł Ă©s nincs rajta vĂ©delem
  • WordPress Ă©s plugin-ok, theme-ek verziĂłzám megjelenĂ­tĂ©se a kĂłdban
  • Nem biztonságos helyrĹ‘l törtĂ©nĹ‘ bejelentkezĂ©s az admin felĂĽletre.
    Például ingyenes WIFI-n át egy kávézóból.

Ezek a leggyakoribb okok, így ezeket mindneképp érdemes ellenőrizni.


Feltörhették a honlapom, hol látom ezt?

Erre rövid és biztos módot nem fog tudni senki sem mondani. Érdemes időnként saját honlapunk inkognító módban végignézni, végigkattintgatni. Továbbá erősen ajánlott a Google Search Console bekötése is, mely jelzi nekünk, amennyiben a Google keresőrobotjai ártalmas, veszélyes kódot találnak.

Leggyakoribb észlelhető jelek, ha feltörték honlapod:

  • Egyes url-ek átirányĂ­tása kĂĽldi url cĂ­mekre.
  • Idegen nyelvű indexelt tartalmak.
  • Honlapunk tartalmában megjelenĹ‘ idegen szöveges Ă©s linkelt tartalmak.
  • JelentĹ‘sen belassul honlapunk.
  • Leveleink a cĂ­mzetteknĂ©l a SPAM-be kerĂĽlnek.

Persze ezeken kívül elég sok trükk és megoldás lapul a támadók zsebében.

Milyen további jelei vannak, ha hacker támadás éri a WordPress weboldalamat?

  • Drasztikus forgalom csökkenĂ©st látunk, profitkiesĂ©st tapasztalunk.
  • Nem tudunk belĂ©pni az eddigi felhasználĂłnevĂĽnkkel / jelszavunkkal az oldal adminjába.
  • A Google kiĂ­rja, hogy az oldal nem biztonságos. 
  • A Google Ă©s több böngĂ©szĹ‘ (Chrome, Firefox) blokkolja az oldalt, mert veszĂ©lyes / etikátlan tartalmat talált rajta.
  • A Google index-ben eltĂ©rĹ‘ nyelvű indexelt oldalak jelennek meg.

Gyakori trükk a támadók részéről, hogy adminként belépve nem látszódik semmi módosítás, kártékony kód, idegen nyelvű tartalom és csak vendégek, látogatók (és a keresőrobotok) látják azokat. Így érdemes néha kilépni és úgy megnézni honlapunk. Erre ajánlott a böngészők inkognító módja.

Rottenbacher Tamás
Senior WP fejlesztő
rottenbacher.hu

Hogy néz ki egy hacker támadás?

Ez attól függ, hogy pontosan milyen jellegű a támadás, milyen céllal történik / indul. A következőkben megemlítünk röviden néhány példát:

  • Amennyiben a szervert Ă©ri a támadás, akkor az magával ránthat további weboldalakat is, gyakorlatilag mindegyiket, amelyet azon a szerveren tároltak.
  • Ha egy nem frissĂ­tett pluginon keresztĂĽl sikerĂĽlt bejutnia a hackernek, akkor nemcsak a mi weboldalunkat tudja tönkretenni, hanem azokat is, amelyek ugyanezt a rĂ©gi plugint használják más weboldalunkon.(Ez a leggyakoribb)
  • Ha pĂ©ldául a WordPress egyik rĂ©gi verziĂłját használjuk, akkor pedig mĂ©g könnyebben fel tudják törni, hiszen ez már publikus adat, Ă­gy gyakorlatilag le van Ă­rva nekik, hogy hol Ă©rdemes prĂłbálkozni, hol vannak a kiskapuk.

A támadásoknak egy átlagos “checklist”-et fel lehet állĂ­tani, amik á következĹ‘ lĂ©pĂ©sekbĹ‘l állnak:

  1. Saját BOT-ok random megnézik a honlapunkat. Keresik a kódban a verziószámokat és egyes kulcs elemeket. Például a generator meta címkét, a wp-admin, wp-login.php wp-content elérhetőségét. Továbbá kikeresik a kódban a felhasználónk nevét, amivel tartalmakat töltünk fel. Ez ellen korlátozottan tudunk védekezni.
  2. Ezután jön a második kör, amit szintén BOT-ok végeznek.Ilyenkor ha a wp-admin és a wp-login.php nincs védve, ezeket meghívják és próbálkoznak a legegyszerűbb jelszóval.Ilyenkor gyakran az alapértelmezett “admin”névvel próbálkoznak. Ezért sem szabad ezt a felhasználónevet használni. Ez ellen védekezhetünk, ha limitáljuk melyik országból lehet belépni, kétfaktoros authentikációt alkalmazunk és / vagy néhány sikertelen próbálkozás után tiltjuk a BOT ip címét (egyiket a sokból).
  3. Amennyiben a jelszópróbálkozás nem hoz sikert számukra (vagy csak célorientáltabbak) és az 1. Lépésben begyűjtött adatokban találnak sérülékenységet tartalmazó verziót (akár alap WordPress core, sablon vagy bővítmény) akkor célzottan annak a hibáját, sérülékenységét használják ki. A leggyakrabban ezt is BOT-ok csinálják.

Miért ennyi BOT és mik ezek?

Lényegében előre elkészített terv alapján automatizáltan futó programok ezek, melyek feladatok sorát hajtják végre. Ezek szervereken futnak és jelentősen gyorsabban tudnak így “haladni” mintha maga a hacker nézne mindent meg személyesen. Gyakorlatilag a támadások 99,9% ilyen automatizált BOT próbálkozások, amik nem gondolkodnak, csak feltételek mentén próbálkoznak.

Rottenbacher Tamás
Senior WP fejlesztő
rottenbacher.hu

Meg lehet menteni a WordPress weboldalt, ha feltörték?

Hosszú és nehéz munkával (és szakértelemmel) igen, viszont a gyakorlat azt mutatja, hogy nem minden esetben érdemes, mert egy ilyen eset után a Google előtt hatalmas presztízst veszít az oldal domain-je, ami megbízhatatlanná teszi az egész weboldalt és a jó Google találati listás helyezéseinket elveszíthetjük. A legnagyobb gond ez és ennek a helyreállítása hosszabb feladat, mint maga a honlap javítása, kitakarítása.

Semelyik keresőmotor sem szereti a megbízhatatlan oldalakat, hiszen ezzel a saját felhasználóit tudja félrevezetni, veszélyeztetni, így nem érdemes harcolni egy olyan oldalért, ami egy ilyen hackertámadás miatt feketelistára került. Ezért is fontos a megelőzés, mivel évek munkáját tudja tönkretenni egy ilyen támadás, főképpen ha nem vesszük időben észre.

Jobb megelőzni és karbantartásra biztosítani keretet, mint sem a helyreállításra, mivel az jóval nagyobb költséget fog jelenteni.


Így növeld WordPress honlapod biztonságát, védelmét

Hogyan védekezhetünk támadás ellen WordPress honlap esetében? Mutatok olyan lehetőségeket, amiket bárki meg tud csinálni és haladóbb megoldásokból is bemutatok néhányat.

Hiteles forrásból származó és minőségi sablon/bővítmény

Amennyiben nem megbízható forrásból használunk sablont, előfordulhat, hogy lesz benne olyan kódrészlet, amely sérülékennyé teszi a támadásokkal szemben a weboldalunkat. Egyre népszerűbbek az ilyen $9.99-ért több mint száz fizetős sablont, bővítményt tartalmazó “kedvezményes csomagok”. Ezek sok hátránnyal rendelkeznek és az egyik ilyen, hogy elrejthetnek benne idegen kódokat és így saját magunk engedjük be, hívjuk meg a támadókat. Több év munkáját kidobhatjuk így, csak mert 30-40 dollárt spórolni szeretnénk.

Biztonságos tárhely

Fontos, hogy meglegyen az SSL tanúsítvány, 99,9%-os elérhetőség, illetve a tárhely adminisztrációja használjon mindig HTTPS protokollt. Legyen elérhető és segítőkész ügyfélszolgálat. Erről bővebben a WordPress tárhely cikkben olvashat.

Rendszeres adatmentés

A rendszer, az adatbázis, a bővítmények és a sablon adatmentése is fontos. Az így létrejövő adatokat egy külön szerveren tároljuk, hiszen ha egy helyen tárolunk mindent, s feltörik a szervert, akkor az egész eddigi munkánk megy a levesbe. Ez elsősorban a minőségi tárhelyszolgáltató feladata, azonban nem árt saját magunknak is biztosítani az adataink.

Telepítsünk biztonsági bővítményt

Rengeteg olyan plugin találhatĂł már, amelyek segĂ­tenek megvĂ©deni az esetleges támadásoktĂłl. Amennyiben nem tudjuk milyet Ă©rdemes használni, kezdjĂĽk pĂ©ldául a Sucuri plugin, a Wordfence Security vagy az iThemes Security bĹ‘vĂ­tmĂ©nyekkel.  FeltĂ©tlenĂĽl kĂ©rdezzĂĽnk meg egy szakembert, hiszen ezekbĹ‘l nem szabad 1-nĂ©l többet telepĂ­teni Ă©s Ă©rteni is kell ezek beállĂ­tásához. NĂ©zzĂĽk meg a beállĂ­táshoz a tutorial-okat Ă©s dokumentáciĂłkat ezen bĹ‘vĂ­tmĂ©nyeknĂ©l, hogy biztosan vĂ©djenek Ă©s ne csak lassĂ­tsák honlapunk.

FrissĂ­tsĂĽnk, frissĂ­tsĂĽnk, frissĂ­tsĂĽnk!

Frissítsünk mindent: sablonokat, bővítményeket, s WordPress rendszert is RENDSZERESEN. Figyeljük és előre olvassuk el, hogy milyen változásokat hoznak az új verziók. Ezeket a “Változások” vagy changelog részeknél találjuk. Ész nélkül nem tanácsos a frissítés, ezt meg kell alapozni és utánanézni. Azonban a frissítések igen fontosak. Fontos tanács: mindig készítsünk egy biztonsági mentést az összes adatról egy külön szerverre vagy a saját számítógépünkre, mielőtt frissítenénk. További információk a WordPress frissítés elvégzéséről.

Erős, változatos jelszavak

A felhasználĂłnĂ©v ne admin, a jelszĂł pedig ne 123456 legyen. Használjunk kis Ă©s nagybetűket, számokat, Ă©s lehetĹ‘leg minimum 1 db olyan speciális karaktert, mint pĂ©ldául ?,!,%,=,(,).. A jelszĂłt Ă©s felhasználĂłnevet semmikĂ©pp se mentsĂĽk el a böngĂ©szĹ‘nkben. Továbbá egy jelszĂłt, csak egy weboldalon használjunk! 

Alkalmazzunk kétlépcsős ellenőrzést!

Ezt a bankok oldalain szokhattuk meg, de ezt tökéletes arra, hogy egy hacker ne tudjon belépni az oldalra, hiszen nemcsak a jelszóra van így szükség, hanem az SMS-ben vagy kapott kódra is. Illetve össze lehet kötni mobiltelefonunkkal, így növelve a biztonságot.

Használjunk automatikus kijelentkezést

Ezt is a bankoknál szoktuk látni, mely azért hasznos, mert gyakran megesik, hogy egyesek felállnak a gép mellől, ahol épp nyitva van az admin felület. Ez nyitva maradhat akár napokig is, ami hatalmas biztonsági kockázatot jelent. Használjuk a weboldalunk biztonsága érdekében is egy időkorlátot, hogy mikor léptetjük ki automatikusan az inaktív felhasználókat. Ez különösen fontos, ha nem csak mi férünk hozzá a gépünkhöz, hanem például céges gépről lépünk be saját, személyes weboldalunkra.

SFTP titkosítás

Ez elsődlegesen fejlesztőknek érdemes alkalmazni. Amikor szerkesztjük az oldalt, akkor azt FTP kapcsolaton keresztül módosítjuk és ez a kapcsolat a szerverrel. Ezt érdemes titkos úton tenni, azaz használjunk SFTP kapcsolatot.

TakarĂ­tsuk ki a szervert!

Töröljünk le minden olyan adatot (képet, videót, szöveget, stb), amelyet nem használunk. Továbbá ügyeljünk arra, hogy ne legyen inaktív theme, plugin az oldalon. Ha nem használjuk, akkor töröljük.


Haladóbb tippek és megoldások a WordPress biztonság növelésére

Ebben a részben már kódokkal fogunk foglalkozni, hiszen honlap kezelőjeként, szerkesztőjeként ezek esszenciálisak ahhoz, hogy maximálishoz közelítő biztonságot tudjunk nyújtani egy-egy weboldal esetében.

1. Kapcsoljuk ki a sablonok és pluginok szerkesztési lehetőségét a wp-config.php fájlban:

// Disallow file edit
define( ‘DISALLOW_FILE_EDIT’, true );

2. Kapcsoljuk ki a PHP hibabejelentés-küldés lehetőséget. Így kevesebb információt láthatnak a támadók az esetleges gondokról, verziókról. Tegyük hozzá a következő kódot a wp-config.php fájlhoz:

@ini_set(‘display_errors’,’Off’);@ini_set(‘error_reporting’,0);

3. Távolítsuk el a hibaüzeneteket a beléptető felületekről, amennyiben ez nem okoz gondot a regisztrált felhasználók számára és adjuk az alábbi kódot a functions.php fájlhoz:

add_filter(‘login_errors’,create_function(‘$a’, “return null;”));

4. Távolítsuk el a WordPress verziószámát. Adjuk hozzá a következő kódot a functions.php fájlhoz:

remove_action(‘wp_head’, ‘wp_generator’);

5. Védjük a jelszavunkat és a hozzáférést a wp-config.php fájlban és adjuk hozzá a .htaccess fájlt a következő tartalommal:

<Files wp-config.php>
Order allow,deny
Deny from all
</Files>

6. Ha tudjuk és van Fix IP címünk, akkor korlátozzuk a vezérlőpult elérhetőségét az IP címünkre, hogy csak mi tudjunk belépni. A /wp-admin/ mappához tegyünk hozzá egy új .htaccess fájlt a lenti tartalommal:

# Admin IP cim korlatozas 0.1.2.34.56 (fix ip cimunk)
Order deny,allow
Allow from 0.1.2.34.56
Deny from all

7. Távolítsuk el a php, script és css fájlokat a mappa kilistázásnál úgy, hogy a főkönyvtárban lévő .htaccess fájlhoz hozzáadjuk a következő kódot:

Options – IndexesIndexIgnore *.php *.js *.css

8. Vegyük le a szerver oldali fájl listázást a mappa nézetnél. Ezt a saját .htaccess fájlunkkal is megoldhatjuk. A következő kódot szükséges hozzáadnunk a főkönyvtárban lévő .htaccess fájlhoz:

IndexIgnore *

9. Akadályozzuk meg, hogy script kódot tudjon menteni az adatbázisba a rendszer, amennyiben ez nem okoz gondot a használt sablon optimális működésében. (Több prémium sablon használ sajnos ilyen funkciót, ezért ezt a kódot, akkor használjuk ezeknél, amikor befejeztük annak szerkesztését, módosítását.) Ehhez a következőket tegyük bele a .htaccess fájlba:

Options +FollowSymLinksRewriteEngine OnRewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})RewriteRule ^(.*)$ index.php [F,L]

További tanácsok:

Vigyázzunk, hogy ne essĂĽnk át a lĂł tĂşloldalára, Ă­gy igyekezzĂĽnk minimálisra csökkenteni a biztonsági bĹ‘vĂ­tmĂ©nyek használatát. Ha ez nincs optimálisan beállĂ­tva – szakember által – akkor elĹ‘fordulhat, hogy kizárjuk magunkat Ă©s a vásárlĂłkat is a rendszerbĹ‘l, lelassulhat az oldal sebessĂ©ge, Ă©s lemaradhatunk fontos Ă©rtesĂ­tĂ©sekrĹ‘l, illetve egyes funkciĂłk sem biztos, hogy jĂłl fognak működni.

Csak Ă©s kizárĂłlag biztonságos wifi hálĂłzatrĂłl  (kávĂ©zĂłk, Ă©ttermek, ingyenes wifi spot-ok nem számĂ­tanak biztonságosnak) jelentkezzĂĽnk be bármilyen fontos felĂĽletre, honlapra, hiszen ha pĂ©ldául egy nyilvános wifi kapcsolattal rendelkezĹ‘ kávĂ©zĂłbĂłl nyitjuk meg ezeket a szenzitĂ­v informáciĂłkat tartalmazĂł admin felĂĽleteket, akkor az Ă­gy beĂ­rt adatokat a ki tudja szedni egy hacker.

Ne felejtsük el beállítani a mappa és fájl hozzáférési jogokat sem, így használjuk a következőket:

  • Minden mappa: 755 vagy 750
  • Minden fájl: 644 vagy 640
  • wp-config.php: 600

Korlátozzuk a sikertelen belépések számát, hiszen létezik olyan típusú támadás, amikor a hacker egy script segítségével kipróbál mindenféle karakter-kombinációt a jelszóhoz és felhasználónévhez, hogy be tudjon jutni a rendszerbe.

Zárjuk ki a gyanús IP címeket akár egyes országok akár több tartományaiból is, ha ezekről a területekről érzékeljük a legtöbb támadásra utaló jelet. Ilyen például az az eset, amikor egy magyarországi webáruház a teljes ázsiai, amerikai és afrikai ip cím tartományt kitilthatja, hiszen így a Google keresőrobot Európából eléri a webshopját, azonban ázsiai rendelések nem érkeznek minden héten. Így jelentősen csökkenthetjük a rosszindulatú BOT aktivitást.


Ă–sszefoglalva

Vannak elemek amiket felhasználói ismeretekkel is tudunk védeni, így akár magunk is növehetjük a weblapunk biztonságát. Azonban a fentiek nem garantálják a 100%-os biztonságot, hiszen a WordPress biztonság nem gyerekjáték, fontos és igényel tapasztalatot. Ahogy a saját autónk sem állunk neki otthon szerelni, hanem keresünk egy megbízható szerelőt, szervízt. Az a biztos és akkor használhatjuk bátran és megnyugodva.


ĂŤrta:
Rottenbacher Tamás
WordPress Magyarország szerkesztő
Nyílt Web Alapítvány alapító
Senior WP fejlesztő

Forrás anyagok: