Biztonság Szakszó

Elavult PHP, WordPress és plugin-verziók

Szerző: · 7 perc olvasás · Frissítve:
Elavult PHP, WordPress és plugin-verziók - Biztonság (szakszó) a tudástárban
Elavult PHP, WordPress és plugin-verziók - Biztonság | eClick GEO-audit tudástár

Az elavult technológia-verzió olyan PHP-, CMS- vagy bővítmény-verzió, amelyhez a fejlesztő már nem ad ki biztonsági javítást. A kód ilyenkor is fut, csak a nyilvánosan ismert hibáit senki nem foltozza be.

Hogyan lesz belőle baj

Minden nagyobb rendszernek van életciklus-naptára. A PHP-ágak két év aktív és egy év biztonsági támogatást kapnak, utána lejárnak. A lejárat napján semmi nem romlik el.

A probléma később jön. Valaki publikál egy sebezhetőséget, és az adott ághoz már nem készül javítás. Onnantól a támadás receptje nyilvános, a szkennerek pedig percek alatt megtalálják a sérülékeny példányokat.

Miért látja ezt kívülről bárki

A verziószám ritkán titok. A Server és X-Powered-By fejléc sokszor kiírja a PHP pontos buildjét. A CMS-ek a forráskódban hagynak generator meta taget, a bővítmények readme-fájljában pedig ott a stable tag.

A technográfiai felismerés pont ezekből dolgozik. Amit egy nyilvános elemző kiolvas, azt egy támadó botja is kiolvassa.

Mit jelent üzletileg

Ez a technikai adósság legdrágább fajtája. A kamat itt nem lassulás, hanem kockázat. A feltört oldalak nagy részén nem adatlopás történik, hanem SEO-spam: idegen aloldalak kerülnek fel a domainedre.

Mit néz ebből a riport

A riport a kívülről látható verziójelekből dolgozik. Ha olyan PHP- vagy CMS-verziót talál, amely már nincs biztonsági támogatásban, magas hatású hibát jelez, kód hatókörrel. Az ajánlás ugyanaz, ami itt is: frissítsd a PHP / CMS verziót a biztonsági támogatott ágra.

Röviden: nem a régi verzió tör fel egy oldalt, hanem az, hogy a hibájához már nem készül javítás.

Miért fontos

A kockázat nem elméleti

A nyilvános sebezhetőségekhez napokon belül kész eszköz tartozik. A botok nem válogatnak látogatószám szerint. Egy napi tíz látogatós céges oldal ugyanúgy célpont, mint egy nagy webshop.

A SEO-számla utólag jön

A feltört oldal első ránézésre rendben van. Jellemzően rejtett aloldalak kerülnek fel rá, idegen nyelvű kulcsszavakkal. A Google ezeket indexeli, a domain pedig megkapja a figyelmeztetést. Ez az index-szennyezés (spam-oldalak a Google-indexben), és a takarítása hetekbe telik.

Amit a látogató lát belőle

Ha a domain bekerül a Safe Browsing listára, a böngésző piros figyelmeztetést tesz az oldal elé. A forgalom nem lassan csökken, hanem egyik napról a másikra elfogy. A riportokban ezt látjuk a legfájdalmasabb végkifejletnek.

A frissítés ára csak nő

Minél régebbi a verzió, annál nagyobb a szakadék. Két minor verziót fél óra átugrani. Öt év lemaradást már csak újraépítéssel lehet behozni.

Kikre vonatkozik

Vonatkozik rád, ha

  • saját tárhelyen futó rendszered van: WordPress, Joomla, Drupal, egyedi PHP-alkalmazás
  • külső fejlesztőtől származó bővítmény, sablon vagy modul fut az oldalon
  • a tárhelyen régi teszt-példány, archív telepítés vagy bemutató-aloldal is maradt

A staging és az elfelejtett teszt-telepítés a legveszélyesebb. Ezeket senki nem frissíti, viszont ugyanarról a szerverről elérhetők. Egy sérülékeny aloldal az egész fiókot elviheti.

Kevésbé vonatkozik rád, ha

Zárt SaaS-en dolgozol: Shopify, Unas, Shoprenter. Ott a rendszermag verziója a szolgáltató felelőssége. A saját sablonkódod, a beillesztett szkriptjeid és a telepített alkalmazásaid viszont maradnak nálad.

Hogyan ellenőrzöd

  1. Nyisd meg a böngésző devtools Network fülét, és töltsd újra az oldalt. Kattints az első dokumentum-kérésre.
  2. A Response Headers alatt keresd a Server és az X-Powered-By sort. Jegyezd fel, ha verziószám van bennük.
  3. Nézd meg a forráskódot (Ctrl+U), és keress rá a generator szóra.
  4. WordPress esetén próbáld meg a /readme.html és a /wp-json/ címet is.
  5. Admin felületen nyisd meg a Vezérlőpult > Állapot > Információ oldalt. Itt látod a PHP-, az adatbázis- és a szerververziót.
  6. Vesd össze a talált verziót a gyártó életciklus-táblázatával. PHP-nál ez a php.net/supported-versions oldal.

Jó jel

  • a PHP-ág aktív vagy biztonsági támogatás alatt áll
  • a CMS a legfrissebb minor verzión fut
  • nincs olyan bővítmény, amelyhez 12 hónapja nem jelent meg frissítés
  • a Site Health nem ír verzió-figyelmeztetést

Rossz jel

  • X-Powered-By: PHP/7.4.33 vagy bármilyen 8.0 alatti ág
  • több tucat függőben lévő frissítés az adminban
  • olyan bővítmény, amit a hivatalos tárolóból már eltávolítottak
  • a szerver saját verziója is régi, nem csak a CMS-é

A riportokban ezt látjuk a leggyakrabban: a CMS friss, a PHP viszont évek óta ugyanaz.

Hogyan javítod

WordPress

  1. Készíts teljes mentést, fájl és adatbázis szinten. Próbáld ki, hogy a visszatöltés is működik.
  2. Másold az oldalt staging környezetbe. A legtöbb tárhelynél ez egy kattintás.
  3. Frissítsd előbb a bővítményeket és a sablont, csak utána a rendszermagot. Általában a régi plugin hasal el az új PHP-n.
  4. Állítsd át a PHP-verziót a tárhely vezérlőpultjában a támogatott ágra, és teszteld staging-en.
  5. Kapcsold be a minor rendszermag-frissítések automatikus telepítését.
  6. Élesítés után járd végig a kritikus útvonalakat: belépés, űrlap, kosár, fizetés.

Shopify

  1. A platform verzióját a szolgáltató kezeli, azzal nincs dolgod.
  2. Nézd át a telepített alkalmazásokat, és távolítsd el a nem használtakat.
  3. Frissítsd a sablon verzióját, majd told át rá az egyedi módosításaidat.

Unas

  1. A rendszermagot a szolgáltató frissíti, ez a saját felületén követhető.
  2. Ellenőrizd a beillesztett külső szkripteket, és cseréld a régi könyvtár-verziókat.
  3. Töröld a már nem használt sablonváltozatokat és tesztoldalakat.

Shoprenter

  1. A platformverzió szintén szolgáltatói oldalon frissül.
  2. Vizsgáld felül az aktív alkalmazásokat és a saját sablonmódosításokat.
  3. A régi API-kulcsokat és integrációkat vond vissza, ha már nem élnek.

Egyedi fejlesztés

  1. Futtass composer outdated és npm audit parancsot, és nézd végig a kritikus találatokat.
  2. Emeld a PHP-verziót a Dockerfile-ban vagy a szerver konfigjában, és futtasd le a tesztkészletet.
  3. Tervezz negyedéves frissítési ablakot. A magyar KKV-oldalak többségén ez a rutin hiányzik.
  4. Tedd a függőség-ellenőrzést a CI-be, hogy ne emlékezetből menjen.

Gyakori hibák

  • A verziószám elrejtése javításnak számít. A fejléc kitakarása nem foltozza be a hibát, a szkenner más ujjlenyomatból is felismeri a rendszert.
  • Csak a CMS frissül, a PHP nem. A tárhely vezérlőpultjában egy legördülő menü dönt, és évekig senki nem nyúl hozzá.
  • Deaktivált bővítmény a fájlrendszerben marad. A kikapcsolt plugin kódja sok esetben továbbra is elérhető HTTP-n keresztül.
  • Automatikus frissítés mentés és staging nélkül. Egy eltört fizetési folyamat drágább, mint a fél óra előkészület.
  • Elfelejtett teszt- és archív telepítések. A /regi/ vagy /test/ mappában futó ősrégi példány ugyanarról a fiókról elérhető.
  • Nulled vagy kalózverziós sablon. Ezekhez sosem jön frissítés, ráadásul gyakran már telepítéskor tartalmaznak hátsó kaput.
  • A frissítés egyszeri projekt, nem folyamat. Fél év múlva ugyanott vagy, ahonnan indultál.

Technikai példa

Először nézd meg, mit árul el az oldal magáról kívülről:

# HTTP-fejlécek és a generator meta tag
curl -sI https://pelda.hu | grep -iE "^server|^x-powered-by"
curl -s https://pelda.hu | grep -i "name=\"generator\""

Egy elavult telepítés jellemző válasza:

Server: Apache/2.4.29 (Ubuntu)
X-Powered-By: PHP/7.4.33
<meta name="generator" content="WordPress 5.8.2" />

Ez a három sor együtt pontos célzást ad egy támadónak. WP-CLI-vel a szerveren belülről is gyorsan leltárt csinálhatsz:

php -v
wp core check-update
wp plugin list --update=available --fields=name,version,update_version

A wp plugin list kimenetében minden sor egy nyitott kockázat, amíg nem frissíted.

Gyakori kérdések

Ha az oldal hibátlanul működik, miért frissítsek?
A működés és a biztonság két külön kérdés. Egy elavult verzió attól még futhat évekig, hogy közben ismert sebezhetőségek vannak benne. A javítás hiánya a kockázat, nem a hibaüzenet.
A tárhelyszolgáltató nem frissíti automatikusan a PHP-t?
Általában nem, mert az eltörhetné az oldaladat. A legtöbb szolgáltató csak felkínálja a választható verziókat a vezérlőpultban. A váltás a te döntésed, és a te felelősséged tesztelni.
Mi van, ha a frissítés eltöri az oldalt?
Ezért megy minden frissítés előbb staging környezetbe. Készíts teljes mentést, frissíts a másolaton, és járd végig a kritikus funkciókat. Ha valami elhasal, ott derül ki, nem élesben.
Elég, ha kikapcsolom a verziószám kiírását?
Csökkenti a zajt, de nem old meg semmit. A rendszerek felismerhetők a fájlszerkezetükből, a sütik nevéből és a sablonok útvonalából is. A verzió elrejtése kiegészítés, nem alternatíva.
Az elavult verzió közvetlenül ront a Google-rangsoroláson?
Közvetlenül nem. A Google nem nézi a PHP-verziódat. A hatás közvetve érkezik: feltörés, spam-aloldalak, biztonsági figyelmeztetés, és az ezekből következő forgalomvesztés.

Források

Kapcsolódó fogalmak

A te oldaladon hogy áll a(z) „Elavult PHP, WordPress és plugin-verziók”?

Futtass egy SEO-auditot: pontszám, fejlesztői ítélet, a leggyorsabb javítások, és minden tételhez bizonyíték.

Ingyenes SEO-audit indítása