WordPress biztonság: hogyan tegyük a WP-t biztonságosabbá

WordPress biztonság: hogyan tegyük a WP-t biztonságosabbá

Folyamatosan növekszik azok száma, akik a WordPresst használják weboldal készítéséhez. Sajnos az ismertséggel együtt növekszik azok száma is, akik rosszindulatból esetleg csak butaságból, de megpróbálnak hibát, rést találni a WP-n, hogy átvegyék a wordpress felett az irányítást, kitegyék a saját reklámokat, vagy csak épp, hogy kárt okozzanak.

Ez a legtöbbször csak kellemetlenség, de szeretnénk elkerülni. Ebben az írásban pár egyszerű szabályt, megoldást ismertetünk, amellyel minimálisra tudjuk csökkenteni a sikeres támadásokat.

1. A WordPress legfrissebb verzióját használjuk

Azt mondhatjuk, hogy a legfontosabb és legegyértelműbb feladatunk, mégis az egyik leggyakoribb hiba ok a WordPress frissítés elmaradása. Ennek okát természetesen, hogy a weboldal készítője leköltözik a munka átadását követően, az oldal tulajdonosa pedig magára hagyja az oldalt, így a frissítéseket sem kezeli.

2. A WordPress theme, wordpress sablonok frissítése

Szintén a frissítéseknél találjuk a sablonokat, ezek frissítése is nagyon fontos. Főként a közismert, a wordpress default themek használatának esetében lehet probléma.

Itt nagyon fontos, hogy a használaton kívüli sablonokat távolítsuk el, ezzel is csökkentjük a biztonsági kockázatot.

3. A WordPress pluginek, wordpress bővítmények frissítése

Hasonlóan az előzőhöz, kiemelten fontos a pluginek frissítése. Ennek biztonsági kockázata, hogy kevesebben ismerheti, használhatják, kevesebben ellenőrzik a kódját, így akár alapvető biztonsági hibákat tartalmazhat.

Erre is igaz, hogy a használaton kívüli plugineket kapcsoljuk ki, töröljük le. A használatba lévőket is célszerű csak azokon az oldalakon bekapcsolni, ahol valóban szükség van a használatukra. Ezzel gyorsíthatjuk is a wordpress futását. Az általunk használt wordpress plugin: plugin organiser.

Ehhez kapcsolóan még jelzem, hogy cégünk vállalja weboldalak és wordpress weboldalak üzemeltetését, frissítését, frissen tartását.

 4. Válogasd meg milyen bővítményt, sablont használsz

Még mindig az előző témakör folytatásaként emeljük ki, hogy milyen fontos a megfelelő bővítmény és sablon kiválasztása, mennyire fontos, hogy tudakozódjunk a használata előtt.

Járjunk utána mikor készült, mennyien használják, milyen gyakran jön frissítés hozzá, gyakorlatilag mennyire tartják karban, figyelnek oda a hibáinak a javítására.

Amennyiben a wordpress.com-ról töltjük le, ott láthatunk letöltési statisztikát, felhasználó véleményt, hibalistát, fórumot, amik alapján könnyen jó döntést tudunk hozni.

5. Inaktív, használaton kívüli elhasználók tiltása, törlése

A hozzáférési szabályokat szigorúan kell kezelni. A lehetőség szerint ne legyen automatikus felhasználó regisztráció, ha van, akkor csak a feliratkozó – legkisebb – jogosultsági szintet kapja meg a felhasználó. Majd később mi állítsunk be – ha szükséges – magasabb jogosultsági szintet.

Az inaktív, használaton kívüli felhasználókkal az az egyik probléma, hogy a jelszavuk az idővel kitudódhat, és régi felhasználó jelszava túlságosan elavult, egyszerű lehet.

6. Biztonsági beállítás – könyvtár listázás megakadályozása

Az ún. Directory listing a webszerver olyan szolgáltatása, hogy a böngészőbe listázza adott weboldalt tartalmazó könyvtár fájljainak a listáját. Vannak bizonyos felhasználási módja, amikor ez hasznos, de biztonsági szempontból nem előnyös, így wordpress esetében kerüljük a használatát.

A leggyakoribb hiba, mikor a bővítmény, vagy a sablon könyvtárai listázhatók, így nyilvánossá tesszük az ott található fájlokat.

A legegyszerűbb módja a probléma kiküszöbölésének, ha az érintett könyvtárakba elhelyezünk egy akár üres index.php, index.html fájlt, ugyanis, ha ez létezik a könyvtárban, akkor annak a tartalmát fogja a webszerver kiszolgálni.

7. Bonyolult, komplex biztonsági kulcsok beállítása

A wordpress installálásakor, de később is módosítható a wp-config.php fájlban a a wordpresshez kapcsolódó biztonsági kulcsok és titkosítás, valamint a salt érték.

Most általában a wordpressnek a következő biztonsági kulcsokat tudjuk beállítani: AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY, AUTH_SALT, SECURE_AUTH_SALT, LOGGED_IN_SALT, and NONCE_SALT.

Ezeknek a generálásához, és a konfigba másolásához egy kész megoldással szolgál a számunkra a wordpress.com online kulcsgeneráló apija is: https://api.wordpress.org/secret-key/1.1/salt/. Ilyen formában kapjuk meg a konfighoz:

define('AUTH_KEY',         '&25$K8||8|FXP0,e;&(?hD_[Sz:?{_ap:-V#5M7=J|a|-|+a1eJ;w#0G,/+SGi+`');
define('SECURE_AUTH_KEY',  '+TS%PIsZyKjY: O9 2qXzpZ7Z/N)a;ss?y_(yyj,.xs|.oYw6=7(`QeV_p{|nt^`');
define('LOGGED_IN_KEY',    'dz~V LT{1RLUr*t?$G-r,fl+@1L%]<8ol6W<?!rp]&pNv24J7YRln|Vg/7+x/26*');
define('NONCE_KEY',        '02d`qO,bA+p$=. *h)t%H&x8_f>NG?C0MVR$#F, K{WQcw#-nP$,PoC)vSR{p^m-');
define('AUTH_SALT',        'vI8:Da{_Cs%+~W]K*yAM/PY{UBv__Nb)-yLRTL=0=*=-niS YNXzWp/-*A@gN?)H');
define('SECURE_AUTH_SALT', 's7szy<$XqY=q5+@i a<L;(?/e6Q})Q]:6+kP5BqDv+:`MmH,0#0z!yG%g.&+t}k5');
define('LOGGED_IN_SALT',   ' w R1+Hu+(dt[AF `~Cw.|MQGm7/DS3VxBDGQ,C3up qxK&{kS+hwe=y2Og2s;-V');
define('NONCE_SALT',       'Y1|}iSw?h4gB)E{ ~!gM17Sn:EUml(W2@PhA^=KdH[+FK+p1sx8/fkUU)6diK<~|');

8. Védjük kiemelten a wp-admin könyvtárat a hozzáféréstől

Szinte minden wordpress biztonsági leírás kiemelt feladataként említik. Közismertnek tekinthető a megoldás, a HTTP authentikációval való levédés. Ebben az esetben egy vagy több felhasználó-jelszó párost készítünk az operációs rendszer htpasswd parancsával, pl:

htpasswd -c /var/www/mywp.test.localhost/.htpasswd admin1

Az admin1 felhasználó és a kódolt jelszavával hozunk létre egy fájlt. Olyan helyre tegyük, ami kívül esik a webről elérhető könyvtárakon, de a webszerver kiszolgálónak meglegyen a hozzáférése. Majd a wp-admin könyvtárban létrehozunk egy .htaccess nevű fájlt, amibe bekerül a HTTP authentikációhoz szükséges konfiguráció, pl.:

AuthType Basic
AuthUserFile /var/www/mywp.test.localhost/.htpasswd
AuthName "WordPress Authenticated area."
Require valid-user

A jelentése: Basic authentikáció szükséges a könyvtár eléréséhez – a benne található fájlokhoz is -, az authentikáció ellenőrzéséhez és a hozzáféréshez az adatok a az AuthUserFile-ban találhatók és csak “valid-user”, tehát csak abban a fájlban létező felhasználó használhatja. A folyamat alatt egy ablak ugrik fel a felhasználó név és jelszó bekéréséhez, és az AuthName szöveget írja ki a rendszer a látogatónak.

9. Fájl módosítás tiltása a web adminisztrációból

Amennyiben valaki ismeri a wordpresst, tudja, hogy lehetőségünk van a webes adminisztrációs felületről módosítani a wordpress, a sablonok és a bővítmények akár php alapú fájlok módosítására. Ez nagyszerű lehetőség, és megkönnyíti a dolgunkat. Ha azonban a biztonság a fő szempont, akkor célszerű ezt tiltani, ha módosítani akarunk, akkor a tárhely elérésen keresztül megtehetjük, vagy a módosítás idejére vissza tudjuk engedélyezni.

A fájl módosítás tiltása wp-config.php-ben:

define('DISALLOW_FILE_EDIT', true);

10. WordPress adminisztrátor felhasználó és az ehhez kapcsolódó Enumeration tiltása

A wordpress egy alapvető tulajdonsága, hogy jól dokumentált weboldal _GET hívásokra automatikusan átkerülünk egy másik, általában kereső-optimalizált, felhasználó barát url-re.

Másrészt fontosnak tartjuk biztonsági szempontból, hogy ne a default admin felhasználó nevet használjuk a wordpress esetében az adminisztrációhoz, hanem egy más felhasználónevet válasszunk. Ez azért jó, mert ha a default nevet hagyjuk meg, akkor brute-force módszerrel máris neki lehet állni a jelszó kitalálásához.

Hogy is jön ez össze? Miért fontos az enumeration tiltása?

Amennyiben választottunk egy más felhasználó nevet (pl legyen adm1n0m) az adminisztrációs hozzáférésű felhasználónknak és a WordPress permalink engedélyezve van, akkor amennyiben valaki meghívja a http://mywp.test.localhost/wordpress/?author=1 linket, akkor ezt átdobja a wordpress a http://mywp.test.localhost/author/adm1n0m oldalra. Gyakorlatilag egyetlen lekérdezéssel kiderült mi a weboldal adminisztrátor felhasználóneve. És indíthatják a brute-force algoritmus után elnevezett jelszó megfejtést.

Biztonságos WordPress

Ezzel kimondhatjuk, hogy nagyon sokat tettünk a WP-t biztonságosabbá tételéhez. Mindenképp jelentősen csökkentettük a lehetőségét, hogy kívülről felmérjék a wordpress weboldalunk kódját, hozzáférést szerezzenek. Újabb védelmet építettünk az adminisztrációs jogosultság megszerzéséhez.

 

Comments are closed.