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: