Hogyan védjem a weboldalamat?

Akár egyedi fejlesztésű a weboldal, akár nyílt forrású CMS rendszer az alapja, bárhol lehet benne biztonsági rés, amit a leleményes hackerek kihasználnak.

A szerveren több biztonsági réteg is ügyel arra, hogy egy megtört weboldal ne tudjon kárt tenni se a rendszerben, se más weboldalakban, az oldal (alkalmazás) általános védelmére azonban nagyon korlátozottak a lehetőségek.

Ezen a szinten már a fejlesztőnek, vagy a CMS rendszert telepítőnek kell minél jobban megnehezítenie a támadó dolgát.

Egy biztonsági rést kihasználó hacker valószínűleg malware-t vagy bot-okat akar telepíteni a szerverre. Ehhez első lépésként általában egy php alapú shellt telepít fel (pl. C99shell), aminek segítségével feltérképezheti a könyvtárstruktúrát, belenézhet a file-okba stb. Ez után már könnyedén telepíti botokat, vagy fertőzi meg az oldalt malware-el.


Az alábbi védelmek általános módszerek, melyek nem a betörést, hanem a kártevést gátolják vagy nehezítik meg.

  • Naprakész kód

    Természetesen mindig tartsuk naprakészen a használt keretrendszert (vagy CMS rendszert).

  • Filerendszer-szintű jogosultság-korlátozás

    A legtriviálisabb védelem, ami a UNIX felhasználói jogosultságokon alapul. A lényege, hogy a PHP csak azokra a helyekre tudjon írni, ahova szükséges (pl. upload könyvtár, temp, stb.). Alapvetően azt kell tudni hozzá, hogy a weboldal file-jainak tulajdonosa (= FTP) eltér attól a felhasználótól, aki az oldal PHP kódját futtatja (= webszerver), így a weboldal nem tudja saját magát felülírni.

    Amikor FTP-vel feltöltjük az oldalt, alapértelmezésben a rendszer nem ad írási jogot a PHP számára, ezeket nekünk kell beállítanunk.

    Bővebben a jogosultságkezelésről

    Ez a védelem nem foltozza be a biztonsági rést, de megvédi a "rendszerfájlokat"a felülírástól vagy a fertőzéstől.

  • Webszerver-szintű jogosultság-korlátozás

    Tegyük fel, hogy egy adott könyvtárra adtunk írási jogot a PHP számára. Ezt már nehezebb lesz a támadónak megtalálnia, de idővel sikerülni fog. Az oldalban ugyan már nem fog tudni kárt tenni, de a bot-okat, vagy a phishing oldalakat még mindig fel fogja tudni ide tölteni, majd futtatni.

    A feltöltést nem fogjuk tudni rendszer szinten meggátolni (hiszen az upload könyvtár erre való), de alkalmazás-szinten ellenőrizhetjük a feltöltött file-okat. Ha erre nincs lehetőségünk (pl. nem akarunk beleírni a CMS kódjába), még mindig a kezünkben van a PHP futtatás letiltása az adott könyvtárban.

    Ha az Adminisztrációs felületen állítjuk be a jogosultságokat (Bővebben itt), a rendszer automatikusan letiltja a PHP futtatást az írható könyvtárakban.

    A feltöltést ezzel nem gátoltuk meg, de már lefuttatni nem fogja tudni a támadó.


Ha ezeket az elővigyázatosságokat megtesszük egy új weboldal telepítésekor, a jövőben sokkal kevesebb sikeres támadásra számíthatunk.

Manuális beállítás:

Egyéb esetben helyezzünk el egy .htaccess nevű file-t a védeni kívánt (pl. upload) könyvtárban az alábbi tartalommal:

<FilesMatch "\.(php|phtml|php3|phps)\.?$">
Deny from all
</FilesMatch>

 

Posted in: Tudnivalók