Optimize Joomla SecurityMostanában egyre többször fordul elő, hogy innen is onnan is megkeresnek azzal, hogy nem jól működik a weboldal nézzek már rá. Számos esetben azt tapasztalom, hogy az oldal jelentősen el van hanyagolva. Amikor az érintetteknek erre rámutatok, akkor döbbenten néznek rám. Az embereknek – és sajnos sokszor a kivitelezők is ezt erősítik, hisz nem mondják el, hogy nincs vége az oldal elkészítésekor a munkának – azt hiszik egy weboldal fejlesztéssel kész és nincs több feladat.

Ezzel szemben az az igazság, hogy a biztonságos weboldal kialakítása már a tervezéskor elkezdődik, folytatódik a kivitelezés során, majd az átadást követően is folyamatosan kell vele foglalkozni, ha az elért biztonsági szintet fenn akarjuk tartani. Amennyiben ezt nem vesszük figyelembe, akkor tudomásul kell venni, hogy bármikor érkezhetnek a kéretlen látogatók. Tudom a válasz “eddig nem jöttek ergó nincs gond” nos ez csak szerencse kérdése, nem több…

Az alábbiakban a gondolatokat a Joomla szempontjából szedtem össze, de félreértés ne essék ez bármely weboldal kialakításakor szinte teljesen megegyezik. Külön kiemelném, hogy az egyedileg fejlesztett megoldások esetén a probléma még inkább fontos, mert – tisztelet a kivételnek –, de nem nagyon szoktak az egyedi fejlesztés során a fejlesztők ezzel foglalkozni (igen akár 30%al megdobja az időt és a költségeket).

1. A biztonsággal csak a nagy, neves oldalaknak fontos

Ez az első mondatok egyike amit a megrendelő elmond: “Ez a honlap kicsi, és nem sokakat érdekel, kevés a látogató. Nincs webáruház és nem kezeli a bankkártya-tranzakciókat. Ezért, a honlap nem annyira érdekes, hogy a hackerek ezzel (is) foglalkozzanak, hisz a nagyobb oldalak többel kecsegtetnek

Sajnos, ez nem igaz. Minden honlap és a (web) szerver érdekes a hackereknek! Az eldugott kicsik is, hisz ezeket általában nem megfelelően tartják karban, nem figyelnek rájuk annyira. Ráadásul az oldalak “feltörését” nagyrészt automatizált scriptek végzik, amely nem tesz különbséget a weboldalak között. A hackerek egy weboldal több több okból is érdekes lehet, több dologra is fel tudják használni:

  • Defacing – digitális graffiti, vagy politikai jellegű üzenetek a honlapon
  • Adathalászat – programok telepítése összegyűjteni jelszavak és hitelkártya látogatók
  • Spam – küldött spam e-mailek
  • Vírusok és "trójai kódok" terjesztése
  • Botnet hálózatba való bekapcsolás (botnet hálózatokban a feltört számítógépeket vezérlik távolról). Ezeket használják rendszerint elosztott-denial-of-szerver (DDOS) támadások vagy nagytömegű SPAM küldésére.

2. Weboldal frissítése

A weboldalakat nem frissítik rendszeresen, mert:

  • Nem hiszem, hogy ez fontos (lásd az első érv)
  • Nem tudja frissíteni önmaga, de nem tud/nem akar erre senkit felkérni
  • Van néhány alapvető törés már az oldalon, és ezért nem tudja frissíteni azt
  • … (Írja be a saját béna kifogását)

Minden szoftver tartalmazhat (sőt Murphy óta tudjuk, hogy tartalmaz is) hibákat. Mindegy, hogy a szoftver a helyi számítógépen vagy a szerveren található. A felhasználók mára lassan megértik elfogadják, hogy az asztali gépükre rendszeresen érkeznek a hibajavítások. Meg kell értetni velük, hogy ez a probléma ugyanaz a szerverek esetében is.

Mindegy, hogy a Joomla!-ról (Drupal, WordPress, stb.) vagy 3rd party kiterjesztésekről beszélünk. A szoftverfejlesztők hibáznak, és ezek megoldásaként rendszeres frissítéseket adnak ki, melyben a felfedezett hibákat oldják meg. Frissítéseket a megjelenést követően mihamarabb – persze ellenőrzést követően – érdemes telepíteni, hisz az ismertté vált biztonsági problémákat a hackerek is előszeretettel használják ki. A Joomla! (Drupal, WordPress) már gyárilag tartalmazza az automatikus (egy kattintásos) frissítés lehetőségét. A 3th party gyártók is egyre inkább alkalmazzák ezt, így mára a frissítések telepítése azért nem jelent túl nagy kihívást.

3. “Megtaláltam valahol az Interneten, hát letöltöttem”

Amennyiben találtál egy jó kiterjesztést, sablont a weboldaladhoz, azt szeretnéd megismerni, kipróbálni, így letöltöd a próba verziót. Nincs, vagy nem elég hosszú a tesztidőszak, “rákerestem és megtaláltam egy megosztó oldalon, kipróbálom és ha jó megveszem”. Sokszor halljuk ezt.

Tudomásul kell venni, hogy egy-egy komponens csak az eredeti készítő oldalán van fenn biztosan mindenféle hátsó szándék nélkül. Mindig a készítőtől, a gyártótól töltsd le az érintett komponenseket, hisz ez az egyetlen módja annak, hogy minimálisra csökkentsd a kockázatát annak, hogy manipulált szoftvert kapjál.

Bár a fizetett kiterjesztések vagy sablonok elérhetőek és ingyenesen letölthetőek a fájlmegosztó oldalakon, sajnos gyakran tartalmaznak rejtett beállításokat, egyéb kódokat is. Előfordul, hogy csak hozzáadnak nem kívánt rejtett spam linkeket a honlaphoz (ezeket a Google sem szereti és az oldalra rögtön riasztást ad a megjelenítés helyett). Máskor backdoor scriptek-et tartalmaznak, hogy a hackerek később könnyen hozzáférhessenek a honlaphoz (bizony ezt nem azonnal teszik, mert akkor könnyen lebuknának).

Amennyiben tesztelsz egy kiegészítőt, soha ne az éles oldalon próbáld ki azt! A hackerek nem fognak várni, amíg befejezed a tesztelést, és készen állsz arra, hogy megvásárold az eredeti kiterjesztéseket…

4. “A tárhely szolgáltatónál van mentésem…”

Miért is van szükség a rendszeres mentésre?

  1. Az jó, hogy sikeresen tesztelték az oldal feltöltését (telepítették a helyi teszt szerverről, gondolom). Ellenőrizted már, hogy milyen biztonsági másolatot készített a hosting céged?
  2. Mit csinálsz, ha a webhosting hirtelen csődbe megy? Vagy ha a szervert letiltják, netán jogi okok miatt leállítják (oké ez itthon ma még nem szokásos, de az FBI, IRS, vagy bármi más kormányzati szerv megteheti) csak azért, mert egy másik hosting ügyfél ugyanazon a szerveren végzett illegális dolog?

Ezekben az esetekben létrejöhet az az állapot, hogy a hosting szolgáltatónál lévő mentésedet sem éred el (nem csak a honlapod). Nos ilyenkor mi is van?

Ezekre a kérdésekre a válasz, hogy készíts a weboldalról rendszeresen, a tárhely szolgáltatótól független mentéseket (pl. Joomla esetében az Akeeba backuppal) és tárold ezt egy off-site ponton (pl. a saját gépeden). Igen tudom macerás ezzel (is) foglalkozni de megéri…

5. “Én már találtam olcsó, nekem megfelelő tárhelyet…”

Ezzel a mondattal nagyon sokszor találkozom itthon a megrendelőknél. Amikor egy webhosting cég olcsón (netán ingyen) kínálja szolgáltatásait, érdemes belegondolni, miért is kerül az ennyire kevésbe. Igen, mindennek oka van, s az eszközöket, az áramot Ők sem tudják olcsóbban megvenni mint mások. Lehet mennyiségi kedvezményeket kapni (és továbbadni), de valljuk be őszintén, amikor egy oldalt 3000 Ft / hó értékben, korlátlan (vagy majdnem azzal összemérhető) méretekkel reklámoznak ott gond van!

Ne csak az árát nézd meg a tárhelynek. Nagyon fontos a minőség, különösen a biztonság. Érdemes tanácsot kérni, ki mit javasol (a saját közösségedből, vagy a Joomla fejlesztők részéről, vagy a kivitelezők részéről). Olyan webhosting céget válassz, melynek a szolgáltatási oldal központjában a biztonság van. Győződj meg róla, hogy tudod-e egyszerűen frissíteni Joomla-t (Drupal, WordPress, stb.) és a 3rd party kiterjesztéseket, a rendszergazda panelről. Sajnos itthon is számos esetben az oldalak olyan beállítások mellett működnek, hogy ez nem lehetséges, ekkor a szolgáltatással nem szabad érdemben foglalkozni.

Éppen ezért az olcsó költséges lehet, ezért ügyelj arra, hogy olyan jó minőségű webhosting szolgáltatót használj, akiknél lehetőség szerint Joomla tudás is rendelkezésre áll.

Nem állhatom meg megjegyezni, ez a Joomla (Drupal, WordPress, stb…) tudás nem azt jelenti, hogy már feltett akár 100 oldalt is, hogy futtat ennyit, hanem azt, hogy érdemben ismeri az adott rendszert, tud segíteni a felmerülő hibák megoldásában, és hozzá tud nyúlni a rendszerhez. Ilyen szolgáltató itthon – tisztelet a kevés kivételnek – nem nagyon akad. Itthon mindenki mindenhez ért, ami eléggé érdekes…

6. “Majd ezt a kiterjesztést is használom hamarosan…”

Számos esetben – amikor egy-egy weboldalt kell átnézni – tapasztalom azt, hogy az oldalon annyi komponens van mint karácsonyfán a díszek. Valóban könnyen terjednek 3rd party kiterjesztések, hisz egyszerű telepíteni azokat – egy kattintás és már meg is vagyunk. Amikor megkérdezem, miért is kell ez vagy az a komponens a válasz: “A jövő hónapban már használni szeretnénk azt.

Ezzel a hozzáállással az a baj, hogy

  • Minél több 3th party komponens van telepítve annál több probléma léphet fel, hisz senki nem tesztelte ezeket sem együtt (s sokszor önmagukban sem) az oldalon
  • Minél több 3th party kiterjesztés van telepítve, annál gyakrabban kell az oldal adminisztrációjával foglalkozni, az egyes komponenseket frissíteni (lásd 2 pont)

Javaslom, hogy mindig csak annyit telepíts fel, amire épp szükséged van MOST, és távolítsd el azokat a komponenseket, amelyeket már nem használsz (persze az eltávolítás előtt készíts teljes mentést, mert az ördög nem alszik).

7. “Úgy tűnik ez egy jó és hasznos kiterjesztés…”

Ezt is sokszor hallom, de sajnos ez csak úgy derül ki, ha az adott komponenst telepítjük, teszteljük. Nem győzöm elégszer hangoztatni, hogy a próbálkozásokat, teszteléseket nem szabad az éles weboldalon végezni!

A minket érintő 3th party kiterjesztéseket először egy tesztkörnyezetben – például egy a weboldalunkról készült saját gépünkön futó másolaton – végezzük el. Ha itt mindent rendben találtunk csak akkor szabad az éles környezetben a telepítést elvégezni.

Mára már a saját gépen egy tesztkörnyezet kialakítása nem ördöngösség, elég egy XAMPP-t telepíteni (ez automatikusan minden feltesz és beállít), majd ide kell visszatöltenünk a weboldalunkat a teszteléshez (4. pont).

8. “Telepíteni csak root jogokkal (777) lehet”

Sokat és sokan mondják, hogy a bővítmények telepítése, vagy a képek feltöltése csak akkor lehetséges, ha az adott mappákra teljes root (777) engedélye van az oldalnak. Ugye tudod, hogy ez nem biztonságos? Sokszor azt mondják, hogy állítsd be a root jogokat amikor kell majd állítsd vissza 755-re.

Egyszerűen kijelenthetjük, aki ilyet mond, arra ne bízd rá weboldaladat egy pillanatra sem (sem tervezés, sem kivitelezés, sem üzemeltetés terén)!

Amikor ebben a kérdésben elakadsz, kérlek nézz körül a Joomla fórumokon és tájékozódj, hogy milyen beállítások is kellenek és miképp lehet ezeket elvégezni. Részletes leírásokat fogsz találni, keress rá bátran!

Addig is kiindulásnak nézd át a Joomla projekt vonatkozó Verifying Permission cikkét!

9. “Megőrülök, hogy mindenhová különböző jelszó kell!”

Nagy öröm, ha tudod, mindenhol célszerű eltérő jelszavakat használni és ezt így is teszed. Viszont ennek kényelmes megközelítése érdekében a jelszavakat (felírásuk mellett) tárolod a böngészőkben, az FTP kliensben? A böngészők mára már titkosítva őrzik ezeket, ergó talán védettek, de az FTP kliensek (pl. a FileZilla) nem szokták kódolni a tárolt jelszavakat! A Windows-n ismert vírusok közül nem egy arra specializálódott, hogy a nem titkosított jelszavakat szerezze meg, és küldje el titokban egy-egy pontra. E ponttól kezdve nem vagy biztonságban!

Ügyelj rá tehát, hogy a jelszavak tárolását úgy végezd, hogy azok minden esetben titkosítva legyenek!

10. Én ezekkel mind foglalkoztam!

Amennyiben mindezzel tisztában vagy, és már kezelted is a felmerülő kockázatokat van még egy rész amivel érdemes foglalkozni. Mit gondolsz a HTTP, FTP és e-mail forgalomról? Ez a forgalom nem titkosított!

Az Interneten alapértelmezésben a továbbított adatok nem titkosítottak, azaz azokat bárki könnyen elolvashatja. A felhasználónevek és jelszavak az interneten keresztül kódolatlanul, szöveges formában kerülnek továbbításra.

  1. Ne használj akármilyen nyitott wifi hálózatot a weboldalad kezelésére. Igen, jó, hogy képes vagy csatlakozni az Internetre az ilyen nyílt hálózatokon, de ne feledjük, hogy minden, amit csinálsz, lehet mások figyelik ugyanezen a hálózaton
  2. Még a "biztonságos" Ethernet hálózaton sem megbízható a nem titkosított forgalom. Az Ethernet hálózati protokoll forgalmát az összes csatlakoztatott eszköz hallgatja, s látja az összes áthaladó adatcsomagot. Természetesen ezekből kizárólag azokat használja fel amelyeket neki címeztek. Viszont lehetőség van a hálózat lehallgatására, és így máris minden ott folyó adatcsomagot megkaphat az érdeklődő (ez az úgynevezett "network traffic sniffing")
  3. A Joomla bejelentkezési űrlap adatait rendszerint titkosítatlanul küldi a https nélkül (akár a frontend, akár a  backend felületen vagyunk). Nagyobb biztonság érdekében érdemes ezt átállítani a rendszerben, viszont ehhez a webszervert is fel kell készíteni a HTTPS forgalom kezelésére.
  4. Ajánlott a biztonságos hálózati kommunikációs protokollok használata: HTTPS (böngészők), SFTP (FTP) és a TLS (e-mail) és az SSH.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

*